Ataki po stronie klienta w publicznych punktach dostępowych
-
Upload
pawel-rzepa -
Category
Technology
-
view
689 -
download
0
Transcript of Ataki po stronie klienta w publicznych punktach dostępowych
Ataki po stronie klienta w publicznych punktach dostępowych
Paweł Rzepa
Agenda• Kim jestem• Zarys problemu• Środowisko testowe• SSLstrip• SSLsplit• Metody obrony przed atakami MitM• Dnsspoof• Złośliwy kod w Captive Portals• Wnioski• Dla zainteresowanych
Kim jestem?
• Specjalista ds. bezpieczeństwa w organizacji EY.
• Na co dzień zajmuję się szukaniem podatności w wewnętrznych aplikacjach EY.
• Kontakt: [email protected]://pl.linkedin.com/pub/pawel-rzepa/5b/696/532
Zarys problemu, czyli skąd pomysł na tą prezentację?• Mit 1. Jak aplikacja działa na HTTPS to niemożliwe są ataki
MitM.• Mit 2. Jeżeli aplikacja używa flagi secure to niemożliwe są
ataki MitM.
Niestety nie zawsze jest to prawdą! A ponadto:
• Większość aplikacji, które testuję zezwalają na transmisję HTTP (poprzez wymuszenie http:// w adresie, lub zmianę User Agent) i/lub nie mają zaimplementowanej flagi secure.
Flaga secure• Atrybut „secure” w nagłówku Set-Cookie wymusza użycie
protokołu HTTPS do transmisji ciasteczek.
Więcej o implementacji flagi secure: https://www.owasp.org/index.php/SecureFlag
Środowisko testowe – WiFi Pineapple
• To zwyczajny Router WiFi z niezwyczajnym soft’em
Więcej na https://www.wifipineapple.com/
WiFi Pineapple – połączenie z Internetem
• Może korzystać z Internetu mobilnego (modem 3/4G)• Może pracować jednocześnie jako klient innego AP i
rozgłaszać swoją sieć.• Może w ogóle nie mieć podłączenia do Internetu i
dalej być wartościowy.
WiFi Pineapple – połączenie z klientem
• Rozgłaszanie otwartej sieci WiFi pod zachęcającą nazwą (np. „Miejski Internet”).
• Fałszywy AP – podstawienie pod istniejącą sieć.• Podszycie się pod sieć szukaną przez urządzenie
końcowe (Karma).
SSLstrip
• SSLstrip po prostu wymusza przekierowanie żądania na port HTTP.
• Wciąż możliwe w niektórych aplikacjach.
SSLstrip
• Przykład:
SSLstrip
• I jeszcze jeden...
SSLsplit
• SSL/TLS proxy.• Przedstawia się klientowi dynamicznie
wygenerowanym certyfikatem.• Nie działa na portale, używające HSTS, ale...
SSLsplit
• ...nie wszystkie portale używają HSTS...
Co jest nie tak? Co robić? Jak żyć?!
• Stosować nagłówek HTTP Strict Transport Security (HSTS). Wymusza transmisję HTTPS oraz nie zezwala na akceptację niezaufanego certyfikatu.
Co jest nie tak? Co robić? Jak żyć?!
• Stosować Certificate Pinning – „na sztywno” przypisany certyfikat do klienta (aplikacji mobilnej, przeglądarki). Połączenie jest ustanowione tylko gdy certyfikat jest zaufany.
• Stosować tylko certyfikaty podpisane przez zaufane Certificate Authority – piękne, ale czy realne?
Chain of trust• Hierarchicznie Certificate Authority gwarantują, że dany certyfikat
jest prawdziwy.
• Podpisanie certyfikatu wiąże się z dodatkowymi kosztami, dlatego nie każdy decyduje się na ten krok (powszechny problem w aplikacjach mobilnych).
Czy grozi nam coś jeszcze?• Załóżmy, że mamy to wszystko – czy grozi nam jeszcze jakieś
niebezpieczeństwo?• Odp: Oczywiście • Dnsspoof• Captive Portals ze złośliwym kodem• Podatności w samym SSL (więcej na ten temat
https://www.digicert.com/cert-inspector-vulnerabilities.htm#certificate_vulnerabilities)
• Podatności w TLS, czyli Key Compromise Impersonation (więcej https://kcitls.org/)
• Podstawienie plików aktualizacyjnych na złośliwe (np. peinjector https://peinjector.eu/ czy evilgrade http://www.infobyte.com.ar/down/isr-evilgrade-Readme.txt)
Dnsspoof – stary, ale wciąż jary!
• Czyli przekierowanie dowolnej nazwy domeny na kopię własnej strony.
Dnsspoof
Dnsspoof
Obrona prrzed Dnsspoof• HTTPS w adresie!• VPN z proxy z przypisanym DNS (np. korporacyjny VPN)• Mimo to zawsze ktoś się nabierze
Captive Portals z BeEF hook
• Captive Portal czyli strona, która wyświetli się jako pierwsza zanim nastąpi przekierowanie na żądaną stronę.
Captive Portals z BeEF hook
• Nic nie stoi na przeszkodzie, aby umieścić tam dowolny kod, np. BeEF hook.js
Captive Portals z BeEF hook
Captive Portals z BeEF hook
Obrona przed złośliwym kodem na Captive Portals
• Wyłączona obsługa skryptów?• Chrome extension?
http://blog.cylance.com/vegan-chrome-extension-to-defeat-beef
• Zaktualizowana przeglądarka + zdrowy rozsądek
Wnioski• Komunikacja nieszyfrowana to zeszła epoka! • Szyfrowanie to metoda na ataki MitM, ale tylko jeśli jest
WŁAŚCIWIE zaimplementowane!• Sama flaga secure to za mało. Należy ją uzupełnić o nagłówek
HSTS!• Stosuj certificate pinning!• Multi-factor Authentication do poufnych operacji!• Duża ostrożność w stosowaniu publicznych punktów dostępu!• Wyłącz łączenie się przez WiFi jeśli z niego nie korzystasz!
Dla zainteresowanych tematem• Wszystko, co powinieneś wiedzieć o komunikacji
szyfrowanej: https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
• Dobrze wytłumaczone działanie HSTS: http://sekurak.pl/hsts-czyli-http-strict-transport-security/
• Ataki na Pineapple też są możliwe: http://www.networkworld.com/article/2462478/microsoft-subnet/hacker-hunts-and-pwns-wifi-pineapples-with-0-day-at-def-con.html