Ataki po stronie klienta w publicznych punktach dostępowych

28
Ataki po stronie klienta w publicznych punktach dostępowych Paweł Rzepa

Transcript of Ataki po stronie klienta w publicznych punktach dostępowych

Page 1: Ataki po stronie klienta w publicznych punktach dostępowych

Ataki po stronie klienta w publicznych punktach dostępowych

Paweł Rzepa

Page 2: Ataki po stronie klienta w publicznych punktach dostępowych

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

Page 3: Ataki po stronie klienta w publicznych punktach dostępowych

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

Page 4: Ataki po stronie klienta w publicznych punktach dostępowych

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.

Page 5: Ataki po stronie klienta w publicznych punktach dostępowych

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

Page 6: Ataki po stronie klienta w publicznych punktach dostępowych

Środowisko testowe – WiFi Pineapple

• To zwyczajny Router WiFi z niezwyczajnym soft’em

Więcej na https://www.wifipineapple.com/

Page 7: Ataki po stronie klienta w publicznych punktach dostępowych

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.

Page 8: Ataki po stronie klienta w publicznych punktach dostępowych

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).

Page 9: Ataki po stronie klienta w publicznych punktach dostępowych

SSLstrip

• SSLstrip po prostu wymusza przekierowanie żądania na port HTTP.

• Wciąż możliwe w niektórych aplikacjach.

Page 10: Ataki po stronie klienta w publicznych punktach dostępowych

SSLstrip

• Przykład:

Page 11: Ataki po stronie klienta w publicznych punktach dostępowych

SSLstrip

• I jeszcze jeden...

Page 12: Ataki po stronie klienta w publicznych punktach dostępowych

SSLsplit

• SSL/TLS proxy.• Przedstawia się klientowi dynamicznie

wygenerowanym certyfikatem.• Nie działa na portale, używające HSTS, ale...

Page 13: Ataki po stronie klienta w publicznych punktach dostępowych

SSLsplit

• ...nie wszystkie portale używają HSTS...

Page 14: Ataki po stronie klienta w publicznych punktach dostępowych

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.

Page 15: Ataki po stronie klienta w publicznych punktach dostępowych

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?

Page 16: Ataki po stronie klienta w publicznych punktach dostępowych

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).

Page 17: Ataki po stronie klienta w publicznych punktach dostępowych

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)

Page 18: Ataki po stronie klienta w publicznych punktach dostępowych

Dnsspoof – stary, ale wciąż jary!

• Czyli przekierowanie dowolnej nazwy domeny na kopię własnej strony.

Page 19: Ataki po stronie klienta w publicznych punktach dostępowych

Dnsspoof

Page 20: Ataki po stronie klienta w publicznych punktach dostępowych

Dnsspoof

Page 21: Ataki po stronie klienta w publicznych punktach dostępowych

Obrona prrzed Dnsspoof• HTTPS w adresie!• VPN z proxy z przypisanym DNS (np. korporacyjny VPN)• Mimo to zawsze ktoś się nabierze

Page 22: Ataki po stronie klienta w publicznych punktach dostępowych

Captive Portals z BeEF hook

• Captive Portal czyli strona, która wyświetli się jako pierwsza zanim nastąpi przekierowanie na żądaną stronę.

Page 23: Ataki po stronie klienta w publicznych punktach dostępowych

Captive Portals z BeEF hook

• Nic nie stoi na przeszkodzie, aby umieścić tam dowolny kod, np. BeEF hook.js

Page 24: Ataki po stronie klienta w publicznych punktach dostępowych

Captive Portals z BeEF hook

Page 25: Ataki po stronie klienta w publicznych punktach dostępowych

Captive Portals z BeEF hook

Page 26: Ataki po stronie klienta w publicznych punktach dostępowych

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

Page 27: Ataki po stronie klienta w publicznych punktach dostępowych

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!

Page 28: Ataki po stronie klienta w publicznych punktach dostępowych

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