SSLv3 umarł. Zjadł go pudel.

POODLE to nazwa nowego ataku, którego szczegóły wczoraj w nocy opublikowała trójka badaczy bezpieczeństwa z Google, w tym Krzysiek Kotowicz, którego możecie kojarzyć zartykułów na Niebezpieczniku i prowadzonych przez niego szkoleń z HTML5.

Najpierw 4 0day’e…

Wczorajszy dzień obfitował w 0day’e, czyli nieznane dotąd dziury, ale wykorzystywane przez przestępców w atakach. Najpierw opublikowano szczegóły ataków wykonywanych przez rosyjską grupę Sandworm, która za swój cel obrała m.in. polskie firmy energetyczne, a potem “łatkowy wtorek” Microsoftu ujawnił dodatkowe 3 0day’e (dwa z nich wykorzystywane przez Chińczyków w atakach na infrastrukturę przemysłową od ponad 5 miesięcy). Przeczytajcie koniecznie nasz wczorajszy artykuł na ten temat, aby dowiedzieć się na czym polegają błędy, jak wyglądają ataki i co zrobić, aby się załatać.

I wtedy pudel zamerdał ogonem…

Kiedy wszyscy aplikowali patche na Windowsach, na Twitterze już zapowiadano informacje na temat poważnego błędu w SSLv3. Niektórzy prewencyjnie wyłączali obsługę tego protokołu na swoich serwerach. I słusznie.

Google opublikowało techniczny dokument informujący o podatności w SSLv3, z którego wniosek jest krótki — błąd wynika z konstrukcji protokołu i nie da się go załatać, a więc należy jak najszybciej wyłączyć obsługę SSLv3 w każdym programie, który go wspiera.

To oznacza zarówno przeglądarki internetowe (oraz wszystkie programy, w które na sztywno wbudowano obsługę SSLv3 – np. koparki bitcoinowe) ale także webserwery. Instrukcje jak to zrobić znajdziecie poniżej. Nie należy jednak wpadać w panikę, aby kogoś zhackować, trzeba się trochę postarać. To nie Heartbleed czy Shellshock, ataku nie da się tak łatwo przeprowadzić na masową skalę.

Atak ochrzczono mianem POODLE (Padding Oracle On Downgraded Legacy Encryption).

POODLE – na czym polega atak?

Atakujący musi znaleźć się w środku komunikacji pomiędzy ofiarą a serwerem, na którym ofiara ma konto (atak określany mianem Man in the Middle). Może to zrobić wstrzykując na stronę złośliwy JavaScript za pomocą podatności na stronie lub kontrolując Wi-Fi, przez które łączy się ofiara i wstrzykując swój kod w nieszyfrowane połączenie (oraz degradując je do SSLv3, bo nie jest ono z reguł domyślnie wybieranym protokołem szyfrowania — tzw.downgrade dance).

Złośliwy JavaScript generuje zapytania GET po HTTPS do strony (np. banku) na której uwierzytelniona jest ofiara (tj. posiada ciasteczko sesyjne z flagą Secure).

2014101506124837832-600x34

Dane w połączeniach HTTPS z użyciem SSLv3 i szyfru CBC są dzielone na bloki i dopiero szyfrowane. Niepełne bloki są uzupełniane tzw. paddingiem. Celem atakującego (który kontroluje w złośliwym żadaniu path i ciało żądania HTTP) jest tak zmanipulować pakiet, aby ostatni bajt ciasteczka znalazł się na początku 8-bajtowego bloku. Następnie wykonując wiele prób i badając odpowiedzi serwera, atakujący jest w stanie bajt po bajcie odszyfrować zawartość ciasteczka, czyli przejąć kontrolę nad kontem ofiary.

POODLE to atak typu padding oracle dotyczący algorytmu szyfrowania CBC wykorzystywanego w SSLv3. Podobne ataki miały już miejsce (np. BEAST, CRIME i Lucky13 czy opublikowany już w 2002 atak Vaudenay’a).

Jak sprawdzić, czy jestem podatny?

Aby sprawdzić, czy jesteś podatny na Poodle (tzn. twój klient HTTP wspiera SSLv3 czy ktoś może z pomocą tej podatności wykraść twoje ciasteczka i przejąć sesje np. w banku), wejdź na https://www.poodletest.com/. Jeśli zobaczysz pudla, “skisłeś” 😉


vulnpoodle

Tu warto nadmienić, że serwisy, które jak większość polskich banków, są zaprojektowane tak, aby praktycznie każdą akcję użytkownika potwierdzać dodatkowym kodem, nie dadzą atakującemu dużego pola do popisu. Będzie sobie jedynie mógł podejrzeć wasze saldo i cześć danych (albo złośliwie przewalutować wam środki do zera, przerzucając je pomiędzy rachunkiem głównym a walutowym w tę i z powrotem — przelewy te z reguły nie wymagają dodatkowego uwierzytelnienia).

Jeśli chodzi o weryfikacje tego, czy podatna jest jakaś strona internetowa, to można to zrobić przy pomocy polecenia:
openssl s_client -ssl3 -connect [IP_SERWERA]:443 
lub wchodząc na stronę https://www.tinfoilsecurity.com/poodle.

Jak zabezpieczyć się przed “POODLE”?

Należy wyłączyć SSLv3 (a jeśli to nie jest możliwe, to włączyć TLS_FALLBACK_SCSV, który zapewni, aby połączenie SSL nie było zestawione jeśli dostępne są bezpieczniejsze opcje).

Przeglądarki i serwery wciąż wspierają SSLv3 (96.9% wsparcie wśród miliona najpopularniejszych stron WWW), ale połączeń w rzeczywistym świecie nawiązywanych przez SSL w wersji 3 nie jest dużo, jeśli wierzyć oświadczeniu CloduFlare, że widzą jedynie 0,65% ruchu HTTPS jako połączenia SSLv3. Najbardziej ucierpią użytkownicy IE6 na Windows XP — ale oni zapewne już dawno zostali boleśniej zhackowani inną podatnością 😉

Poniże instrukcje do zabezpieczenia serwerów (zmodyfikować plik konfiguracyjny serwera):

nignx

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Apache

SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2

Instrukcje dot. zabezpieczenia przeglądarek:

Mozilla Firefox

Ustawić flagę security.tls.version.min na 1.
Dodatkowy opis na stronie Mozilli.

Google Chrome

Uruchamiać przeglądarkę z parametrem startu: – – ssl-version-min=tls1

winPropertiesAfter

Internet Explorer

ie

Więcej informacji na temat ataku możecie wyczytać z postów Adama Langley’a orazMatthew Greena. Historyczne tło dla ataków na SSL zostało też opisane tutaj.

PS. POODLE jako akronim nie do końca wpisuje się w najnowszy trend “przebojowego” i “przerażającego” nazywania krytycznych podatności (por. Heartbleed i Shellshock). Brakuje mu też logotypu. Ale społeczność nie próżnuje. Już tworzy własne logotypy i alternatywne nazwy, np. “SSLappening” 😉

 

 

Żródło : http://niebezpiecznik.pl/post/sslv3-umarl-zjadl-go-pudel/