HTML5
Upgrade wielutechnologii używanych przez
aplikacje webowe
Dużo nowej dokumentacji
Dużo nowego kodu
Prace trwają od 2004
OWASP 4
5.
HTML5
Bogaty, opartyna standardach klient
Przenoszenie logiki na stronę klienta
więcej danych
więcej możliwości
Nowe API
Geolocation, Drag & Drop, Filesystem, WebSockets,
WebWorkers, Touch Events...
OWASP 5
6.
HTML5 i bezpieczeństwo
Wiele rozwiązań roboczych
Tradycyjne webowe podatności HTML wciąż
istnieją
XSS
CSRF
Nowe API dostępne dla Javascriptu
XSS zyskuje na znaczeniu
OWASP 6
Wykorzystanie XSS
HTML5pomaga przy eksploitacji
WebSockets - wydajne połączenie z C&C
Dane w DB, HTML5 filesystem, Web Storage
// stealth mode
history.pushState('/innocent-url')
// wstrzyknięcie kodu
localStorage['code']='alert(/1/)';
// później
eval(localStorage['code'])
OWASP 12
CORS
Międzydomenowe XHR,z poświadczeniami
(credentials):
cookies
certyfikat SSL/TLS kliencki
poświadczenia HTTP auth
Docelowy serwer podejmuje decyzję
Odsyła odpowiednie nagłówki
OWASP 15
16.
CORS
// http://attacker.cn
var xhr= new XMLHttpRequest();
xhr.open("POST", "http://victim.pl");
xhr.setRequestHeader("Content-Type", "text/plain");
xhr.withCredentials = "true"; // cookies etc.
xhr.send("Anything");
OWASP 16
17.
CORS
Żądanie XHRdociera do serwera
Z poświadczeniami
Można wykorzystać do Cross Site Request Forgery
Tak jak <form>, <img src> itd.
Nic nowego?
OWASP 17
Nagłówek Origin
Referer: http://host:port/url/?a=1
Często używany do zabezpieczenia przed CSRF
if (req.headers.referer
&& !req.headers.referer.match('ok.com')) {
tell_attacker_to_get_lost();
} else {
process();
}
Kiedyś łatwy do podrobienia
OWASP 31
Nagłówek Origin
szanujeprywatność
Referer: http://host:port/naga-prawda
Origin: http://host:port
zachowany przy ruchu https:// → http://
nie może być podrobiony
nieznany → Origin: null
OWASP 33
34.
HSTS
HTTP StrictTransport Security
Zabezpiecza przed atakami SSL stripping
GET / HTTP/1.1
Host: gmail.com
HTTP/1.1 301 Be Secure
Location: https://mail.google.com/
OWASP 34
35.
HSTS
Strict-Transport-Security: max-age=1576800;
includeSubDomains
Dozwolone tylko szyfrowane połączenia
Ciche tłumaczenie http:// na https://
“Hard fail” w przypadku błędów SSL/TLS
OWASP 35
36.
Iframe sandbox
<script>user_id=4</script>
<iframe sandbox src=untrusted-ad.aspx />
Bez dostępu do DOM
Bez skryptów
Bez pluginów (Java, Flash, ...)
Bez formularzy
Bez framebusting
Ograniczenia można wybiórczo wyłączać
OWASP 36
Podsumowanie
Nowe możliwości,także dla atakującego
XSS groźniejszy w skutkach
Nowe narzędzia do obrony
Warto je zastosować w kombinacji z tradycyjnymi
metodami
OWASP 38