Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Wydobywanie sekretów z SSL / TLS
BREACH to nowy rodzaj ataku, dzięki któremu możliwe jest wydobywanie niektórych interesujących informacji z komunikacji zabezpieczonej za pomocą httpsa, bez względu na zastosowaną wersję protokołu oraz rodzaj szyfrowania. Brzmi niepokojąco, jednak nie warto panikować, gdyż potencjalny intruz musi spełnić całą gamę wstępnych wymogów. Spójrzmy.
O nowym ataku poinformowała właśnie arstechnica. W celu jego przeprowadzenia, intruz musi posiadać możliwość podsłuchiwania ruchu sieciowego swej ofiary. Niezbędne jest również zwabienie docelowego użytkownika na specjalnie przygotowaną witrynę, a atakowany serwer musi korzystać z kompresji http.
Zadaniem złośliwego odnośnika jest wymuszenie procesu odpytywania docelowego serwera korzystającego z httpsa. Intruz obserwując otrzymywane odpowiedzi, na podstawie kilku ciekawych zależności, jest w stanie wydedukować niektóre potencjalnie interesujące informacje.
BREACH (ang. Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) wykorzystuje dobrze znane zasady działania popularnej kompresji http do odgadnięcia niektórych fragmentów szyfrowanej komunikacji. Zasadniczo, na podstawie próbkowania odpowiedzi i porównywania ich rozmiaru z oryginalnymi odpowiedziami serwera, możliwe jest odgadnięcie zaszyfrowanej zawartości.
Przykładowo, chcąc wydobyć z szyfrowanej komunikacji adres e-mail, intruz może przeprowadzić próbkowanie serwisu webowego z wykorzystaniem metody BREACH dla ciągu „gmail.com”. Jeśli rozmiar otrzymanej odpowiedzi nie jest znacząco większy od odpowiedzi oryginalnie zaobserwowanej w komunikacji użytkownika, oznacza to, że sprawdzany ciąg znajdował się w tejże komunikacji. Dzieje się tak, ponieważ algorytm kompresji jedynie oznaczył kolejne wystąpienie obecnego już wcześniej ciągu znaków, co nie zwiększa rozmiaru całej wiadomości.
Jeśli natomiast zaobserwujemy wzrost rozmiaru odpowiedzi, ciąg dla którego próbkujemy, oryginalnie nie występował. Na tej zasadzie możemy kolejno próbkować pod kątem występowania kolejnych znaków, czyli np. szukamy „a@gmail.com”, „b@gmail.com”, itd. Jeśli ustalimy, że kolejny występujący ciąg to np. „z@gmail.com”, przechodzimy do próbkowania w poszukiwaniu kolejnego znaku, czyli próbujemy: „az@gmail.com”, „bz@gmail.com” itd.
Na podstawie takiej oto prostej zależności możliwe jest więc crackowanie zaszyfrowanej zawartości znak po znaku. Jak podają sami autorzy tej metody, wyciągnięcie typowych danych o określonych formatach, takich jak adresy e-mail, czy rozmaite tokeny (poprzedzone np. typowym ciągiem „request_token=”), jest możliwe w czasie około 30 sekund. Szczegóły dotyczące BREACH oraz przykładowe narzędzia zostaną opublikowane podczas trwającej właśnie konferencji Black HAT USA 2013.
Co ciekawe, powyższy atak bardzo przypomina typowe „filmowe” sceny crackowania, gdzie praktycznie zawsze odkrywane są po sobie kolejne znaki poszukiwanego sekretu. Przykładem może być tutaj scena z klasycznych już „Gier wojennych”, gdzie superkomputer WOPR crackuje właśnie znak po znaku kod pozwalający na odpalenie rakiet z głowicami jądrowymi.
Jak już wspominałem, praktyczne wykonanie metody BREACH nie jest łatwe i w najlepszym wypadku pozwala jedynie na wyciągnięci tylko niektórych fragmentów zaszyfrowanej komunikacji. Wygląda więc na to, że pomimo nieustających nowych odkryć z zakresu (nie)bezpieczeństwa SSL / TLS, te popularne protokoły nadal spełniają swą podstawową funkcję.
W obliczu ostatnich rewelacji dotyczących amerykańskich programów powszechnego wywiadu elektronicznego, z pewnością tego typu informacje będą jednak budzić spore emocje.
– Wojciech Smol, (wojciech.smol<at>sekurak.pl)
Wygląda jak atak CRIME przeniesiony częściowo warstwę wyżej. W każdym razie nie tak ciekawy jak BEAST ale za to łatwy do wytłumaczenia ;)
podobny do sqlblind