Przełamali dwustopniowe uwierzytelnianie
Cyberprzestępcy przełamali dwuetapowe zabezpieczenia (two-factor authentication) bankowe. System jednorazowych haseł nie jest zatem tak bezpieczny, jak mogłoby się wydawać.
Przekonał się o tym menedżer firmy Ferma, który przed kilkoma miesiącami zalogował się na swoje konto. Używał przy tym hasła jednorazowego, którym był sześciocyfrowy kod generowany automatycznie przez specjalne urządzenie co 30-60 sekund. Okazało się, że w czasie, gdy mężczyzna był zalogowany na koncie, cyberprzestępcy przeprowadzili 27 transakcji, okradając go na 447 000 dolarów.
Późniejsze badania komputera poszkodowanego ujawniły, że wcześniej, podczas wizyty na jednej z witryn, został on zarażony szkodliwym kodem, który potrafi zainicjować transakcje i korzysta ze słabości systemu haseł jednorazowych.
Eksperci zauważają, że żadne zabezpieczenia nie powstrzymają cyberprzestępców. Mogą jedynie utrudnić im pracę i spowodować, że włamanie stanie się bardziej kosztowne.
Jeśli użytkownik dopuści do zainfekowania komputera, nie może być pewien, czy nie zostanie okradziony. I nie uchronią go przed tym nawet hasła jednorazowe.
Znacznie lepszym rozwiązaniem od stosowania po stronie użytkownika urządzeń generujących hasła jest wysyłanie ich SMS-em, jednak walka z cyberprzestępcami przypomina zabawę w kotka i myszkę. "Przestępcy otwierają jakieś drzwi, my je zamykamy, a oni znajdują inne" - mówi Ariel Avitan odpowiedzialny za bezpieczeństwo w firmie Frost & Sullivan.
Komentarze (8)
mikroos, 22 września 2009, 14:48
W zasadzie banalnym rozwiązaniem problemu byłby (a raczej: jest) limit liczby lub kwoty transakcji. Nie sądzę, żeby ktokolwiek rzeczywiście wykonywał jednego dnia 27 transakcji na kwotę pół miliona dolarów. Wystarczyłby limit do 10 transakcji lub 10 000 dolarów + konieczność autoryzacji inną drogą, gdy chce się ten limit przekroczyć. W zasadzie aż mi się ciśnie na usta stwierdzenie, że bank nawalił na całej linii, bo nie wykorzystał środków bezpieczeństwa dostępnych od wielu, wielu lat.
wilk, 22 września 2009, 15:27
Ciężko to nazwać "przełamaniem", bo samo uwierzytelnienie spełniło swoje zadanie. Wina kolesia, że ma syf na kompie i odwiedza niebezpieczne stronki. Ciekawe jest też stwierdzenie "korzysta ze słabości systemu haseł jednorazowych", bo jeśli miał on token typu challenge-response, to dziwne, że nie zauważył 27 próśb o wysłanie kodu. Chyba, że to była jakaś inna odmiana tokenu. Nie bardzo wiem czemu rozwiązanie via SMS miałoby być znacznie lepsze...
yaworski, 22 września 2009, 15:31
Od jakiegoś czasu korzystam z autoryzacji operacji kodami przesyłanymi SMSem. W każdym SMSie, oprócz kodu, znajdują się dane operacji (kwota, 6 początkowych i 4 końcowe liczby numeru konta docelowego) oraz numer operacji dokonywanej tego dnia (każdego dnia licznik zaczyna się od 1).
Do przeprowadzenia ataku na tego typu system, atakujący musiałby zarazić również telefon i np zmieniać treść SMSa, ale to byłoby i tak bardzo ciężkie, bo trojan w telefonie musiałby znać oryginalne dane transakcji, którą użytkownik przeprowadza. Ewentualnie atakujący musiałby wcześniej ukraść sam telefon.
@wilk:
Jeżeli Token generuje kod w oparciu tylko i wyłącznie o aktualny czas (to by wynikało z treści). Jeżeli kod się zmienia co kilkanaście sekund, to przez te kilkanaście sekund można przeprowadzić wiele operacji przy pomocy tego samego kodu. W takim razie to nie jest nawet kod jednorazowy i atakujący wcale nie wykorzystał słabości kodów jednorazowych, bo tu nie miało miejsca użycie takiego kodu.
Token Challenge-Response oczywiście jest dużo lepszym zabezpieczeniem. Kod generowany przez bank jest przetwarzany przez Token w oparciu o zmienną czasową. Jednak jeżeli atakującemu udałoby się złamać algorytm i klucz tokenu, mógłby on sam generować odpowiedź tokenu.
W przypadku autoryzacji SMSem masz w pełni losowe kody, które zna tylko system bankowy i Ty (no ewentualnie operator Twojej sieci).
lucky_one, 22 września 2009, 17:37
A ja ciągle korzystam z papierowej listy haseł jednorazowych (mniejsza szansa że ukradną mi listę, niż telefon) i też uważam że taki typ dwupoziomowej autoryzacji jest w zasadzie nie do złamania. Ktoś musiałby podsłuchać moją klawiaturę lub w inny sposób wykraść login i hasło do banku, a następnie napaść na mnie kradnąc listę (bądź w przypadku haseł smsowych - telefon). Tego typu przedsięwzięcie w zupełności nie opłaca się wykonaniu na zwykłą osobę, której obrót na koncie nie przekracza kilku-kilkunastu tysięcy miesięcznie.. Także możemy spać bezpiecznie
@mikroos: Ja myślę że ten bank oferuje takie limity o jakich mówisz, ale ten gość po prostu mógł je sobie zdjąć. Np ja tak zrobiłem, bo któregoś dnia zostałem zblokowany tym, ze wykonałem 5 czy ileś transakcji (akurat tak dziwnie wyszło, że dużo razy do bankomatu chodziłem). No ale ja, to wiem że nie ma mnie co napadać - gdybym miał na koncie większe sumy, to pewnie zrobiłbym właśnie tak jak zasugerowałeś - określił limity ilości oraz sumy transakcji..
wilk, 22 września 2009, 18:33
Wystarczy ją sfotografować.
lucky_one, 22 września 2009, 19:16
Myślę że nie jest to takie proste, zważywszy że wyciągam ją jedynie będąc przy komputerze, jedynie gdy wykonuję transakcję która nie jest zdefiniowana
Także zapewne fakt fotografowania byłby mi znany - a wtedy zero problemu - dzwonię do banku żeby zablokowali tę listę, i po sprawie A zdaje się, że nawet mogę zablokować ją sam, po zalogowaniu się
yaworski, 22 września 2009, 20:00
@lucky_one: nie bierzesz pod uwagę takiej ewentualności, że na Twoim komputerze zostanie zainstalowany trojan, który podepnie się pod przeglądarkę i będzie pośredniczył w transakcji odpowiednio podmieniając dane transakcji. Takiego trojana nie wykryjesz przez sprawdzenie certyfikatu strony banku, bo on już działa po Twojej stronie, a nie pomiędzy przeglądarką, a bankiem. Wprowadzasz swoje dane przelewu, podajesz kod jednorazowy. Dane przelewu lecą już zmienione, ale z poprawnym kodem. Nie masz możliwości weryfikacji tego (trojan na bieżąco modyfikuje zawartość strony, żebyś myślał, że wszystko jest ok).
Z SMSami jest inaczej. Kod jest generowany do tej jednej operacji i dostajesz dane tej transakcji, które możesz zweryfikować i których trojan nie może zamaskować. Jeżeli trojan zmodyfikuje dane do transakcji, to w SMSie dostane dane wysłane przez niego, a nie te, które sam wpisałem w formularzu na stronie. Więc oprócz tego, że masz kod jednorazowy, to dodatkowo dostajesz jeszcze jeden poziom zabezpieczenia.
witrak(), 24 września 2009, 10:37
To nie tak działa.
To prawda, że token sprzętowy jest de facto zegarkiem, podającym czas (w minutach, od umownej dla danej serii tokenów chwili początkowej) w postaci zaszyfrowanej - innym kluczem dla każdego użytkownika (a zarazem tokenu), co powoduje, że sekwencja tych samych liczb (000000 do 999999) jest inna dla każdego tokenu.
ALE:
Każdy kod generowany przez token jest jednorazowy - nawet jeśli ktoś zdąży wprowadzić drugą operację przed wygaśnięciem ważności kodu to potwierdzenie jej "zużytym kodem" się nie uda. To oczywiście limituje ilość operacji bankowych - w godzinę można zrobić max 60 przelewów, jeśli zmiana kodu jest co minutę, a każdy przelew trzeba oddzielnie zatwierdzić.
I tak, i nie. Bo taki token może wykorzystywać nie tylko o zmienną czasową, ale też hasło. Wtedy token ma dwa: jedno do jego odblokowania ("zalogowanie do tokenu") i drugie, potrzebne do wygenerowania kodu odpowiedzi z wprowadzonego kodu dostarczonego przez bank.
W dodatku, ponieważ wygenerowany kod ma ograniczony okres ważności, przestępca nawet znając algorytm stosowany przez bank do generowanie challenge'u ma znikome szanse zdążyć tak dobrać treść "fałszywego" przelewu, aby uzyskać to samo, co bank wygenerował dla przelewu klienta (musi to robić metodą prób i błędów, bo challenge jest tworzony przez szyfrowanie). (Gdyby zdążył, mógłby unieważnić przelew oryginalny i złożyć swój, blokując na chwilę komunikację klienta, a ten wprowadzając kod do swojego przelewu potwierdziłby "fałszywkę".)
Niestety już nie tylko - złamano algorytmy szyfrowania komunikacji w sieciach GSM i teraz ani rozmowy ani SMSy nie są tajne :-(
Ktoś dysponujący odpowiednim sprzętem może nie tylko podsłuchać jedno i drugie, ale nawet "podstawić" fałszywą stację bazową i włączyć się w komunikację...
To są skutki wiary, że tajne algorytmy są lepsze niż OpenSource, choć te drugie sprawdza więcej ludzi i dziury są wykrywane o niebo szybciej.
witrak()