Błąd w opensource'owych bibliotekach
Miliony użytkowników serwisów społecznościowych i wielu innych witryn, na których wymagane jest logowanie, jest narażonych na atak. Nate Lawson i Taylor Nelson odkryli prosty błąd w dziesiątkach opensource'owych bibliotek, w tym takich, które są wykorzystywane do implementacji standardów OAuth i OpenID. Uwierzytelnianie dokonywane za ich pomocą jest akceptowane m.in. przez Twittera i Digga. Dziury powodują, że możliwe jest przeprowadzenie znanego od 25 lat ataku (timing attack) polegającego na analizie czasu potrzebnego do wykonania algorytmów kryptograficznych. Dotychczas sądzono, że ich przeprowadzenie przez sieć jest niezwykle trudne. Lawson i Nelson wykazali, że nie w tym przypadku.
Timing attack wymaga przeprowadzenia niezwykle precyzyjnych pomiarów. Informacja o błędnym haśle jest bowiem zwracana natychmiast po napotkaniu pierwszego nieprawidłowego znaku. Oznacza to, że informacja, iż używamy hasła, w którym niewłaściwy jest pierwszy znak zostanie przekazana nieco szybciej, niż wówczas, gdy błędny będzie np. 3. znak.
Specjaliści uważali, że przeprowadzenie ataku, w którym ważne są różnice liczone w milisekundach, jest niemal niemożliwe w przypadku, gdy nie mamy fizycznego dostępu do atakowanego systemu.
Lawson i Nelson opracowali jednak algorytm, który pozwala na przeprowadzanie zdalnych ataków, gdyż uwzględniają one wszelkie zakłócenia związane z działaniem sieci komputerowych. Obaj specjaliści mają zamiar ujawnić szczegóły swoich badań na najbliższej konferencji Black Hat.
Eran Hammer-Lahav z Yahoo!, który bierze udział w pracach OAuth i OpenID uważa, że przeciętny użytkownik nie ma czym się martić. "Nie sądzę, by jakikolwiek duży provider używał po stronie swojego serwera opensource'owych bibliotek. A jeśli nawet to robi, to atak nie jest łatwy do przeprowadzenia".
Lawson i Nelson nie ujawnili, w których bibliotekach tkwi błąd. Powiadomili już ich twórców. Poprawienie luk jest niezwykle proste i nie powinno zająć więcej niż napisanie 6 linijek kodu. Wystarczy bowiem poinstruować oprogramowanie, by w identycznych odstępach czasu informowało zarówno o prawidłowych jak i nieprawidłowych hasłach.
Metoda Lawsona i Nelsona została przetestowana w internecie, sieci lokalnej i chmurach obliczeniowych. Co ciekawe, chmury są bardziej narażone niż "zwykła" sieć, gdyż "przybliżają" napastnika do celu ataku, a zatem występują mniejsze zakłócenia spowodowane pracą w sieci.
Komentarze (4)
Jurgi, 16 lipca 2010, 21:17
Ale wydaje mi się, że będzie to dotyczyć tylko przypadku haseł trzymanych w formie jawnej, w przypadku hashowanych chyba nie jest coś takiego możliwe?
Przemek Kobel, 16 lipca 2010, 21:55
hmm....
Wyrównanie do trzech sekund.
Jurgi, 17 lipca 2010, 17:42
Sześć linijek, ale zależy w jakim języku.
Przemek Kobel, 19 lipca 2010, 09:47
W Perlu wystarczyłaby pewnie jedna (z możliwością zapisania na dwadzieścia sposobów). Tak czy owak, to są tylko dwa polecenia, które i tak byłyby zbędne, gdyby np. serwer nie pozwalał na zbyt częste próby logowania.