21.02.2014 | 11:22

Adam Haertle

Dzięki pomyłce przestępców ofiary mogą odzyskać zaszyfrowane pliki

Prawidłowe stosowanie kryptografii jest trudne a autorzy złośliwego oprogramowania również popełniają błędy. Mogą z tego skorzystać ofiary jednego z najnowszych wariantów ransomware, którego twórcy pomylili 128 cyfr ze 128 bajtami.

Oprogramowanie szyfrujące pliki na dysku użytkownika i wymuszające okup za ich odszyfrowanie staje się coraz popularniejsze. Najwyraźniej przychody z tej działalności muszą być spore, ponieważ konkurencja jest duża. Na szczęście okazuje się, ze nie wszyscy autorzy ransomware prawidłowo wdrażają szyfrowanie plików, dzięki czemu w jednym z wariantów możliwe jest ich odszyfrowanie.

Pechowy wybór ofiary

Niedawno powstały gatunek ransoware o nazwie BitCrypt zaraził komputer pewnego użytkownika, szyfrując wszystkie zdjęcia jego syna. Użytkownik oczywiście nie miał kopii bezpieczeństwa, nie licząc kilku zdjęć wrzuconych na Facebooka. Miał za to w zanadrzu tajną broń – był nią ojciec chrzestny dziecka, pracujący w firmie Cassidian Cybersecurity. Wobec możliwej utraty zdjęć chrześniaka wszystkie ręce zostały wezwane na pokład i zespół przystąpił do analizy problemu.

Niestety ofiara infekcji znajdowała się 400 km dalej i nie było na miejscu nikogo, kto mógłby pomóc, zatem analiza zaczęła się od zdjęcia ekranu zarażonego komputera. Była na nim krótka informacja o zaszyfrowaniu wszystkich plików oraz wskazówka, by odwiedzić witrynę bitcrypt.info i podać na niej kod DRU-84-539467. Dodatkowo informacja zawierała adres zapasowej strony w sieci Tor na wypadek, gdyby poprzedni link był już nieaktywny. Strona wskazana w instrukcji została założona 3 lutego 2014 i zawierała jedynie formularz służący do podania numeru infekcji (obecnie domena została zawieszona).

Wygląd bitcrypt.info

Wygląd bitcrypt.info

Po zalogowaniu użytkownik otrzymywał kolejne instrukcje, obejmujące, jak się pewnie domyślacie, płatność w BTC. Cena nie była wygórowana – jedynie 0,4 BTC, co po ówczesnym kursie oznaczało ok. 260 euro, obecnie oczywiście znacznie mniej (autor ransomware musi sobie pluć w brodę…). Co ciekawe, na adres portfela podany w komunikacie faktycznie dotarło kilka płatności.

Analiza szyfrowania

Program twierdził, że używa szyfrowania RSA z kluczem o długości 1024 bitów, obecnie uznawanego za nie do złamania w domowych warunkach (oficjalnie nikomu do tej pory się nie udało). Na szczęście badaczom udało się znaleźć kopię złośliwego programu w serwisie VirusTotal, zatem postanowili zweryfikować to twierdzenie. Po rozpakowaniu próbki w środku znaleziono kod stworzony w Delphi i przystąpiono do jego analizy.

Na początku działania programu losowany jest jeden z 1000 przechowywanych w programie kluczy RSA, który zostanie wykorzystany w procesie szyfrowania plików, a jego identyfikator zapisywany jest w numerze infekcji, przekazywanym użytkownikowi. Program wybiera jedynie pliki z kilkunastoma najpopularniejszymi rozszerzeniami i szyfruje je za pomocą algorytmu AES w trybie CTR. Dla każdego pliku losowane jest 16-znakowe hasło, z którego za pomocą funkcji PBKDF2 z 1000 interacji i losową solą generowany jest klucz o długości 192 bitów, używany następnie w szyfrowaniu AES. Klucz AES jest następnie szyfrowany algorytmem RSA i zapisywany w zaszyfrowanej formie razem z plikiem.

Teoretycznie trudno znaleźć lukę w tym sposobie postępowania. Kiedy jednak badacze przyjrzeli się kluczowi RSA, zaczęli świętować. Okazało się, że autorowi programu pomyliły się bajty z cyframi. Zamiast stworzyć klucz o długości 128 bajtów (1024 bitów), klucz tworzony przez program ma 128 cyfr, czyli 464 426 bity. Zamiast RSA-1024 niemożliwego do złamania mamy zatem do czynienia z RSA-464 RSA-426, a klucze o zbliżonej długości były łamane już w roku 1994.

Podsumowanie

Autorzy odkrycia na tym nie poprzestali i wykorzystując dostępne implementacje algorytmów faktoryzacji stworzyli narzędzie w Pythonie, służące do odszyfrowywania plików BitCrypta. Cały proces na czterordzeniowym procesorze zajmuje ok 2 dni, zatem jest w zasięgu praktycznie każdego poszkodowanego. Mimo tego przypominamy, by jednak robić kopie bezpieczeństwa najważniejszych plików – nie każdy autor złośliwego oprogramowania robi takie błędy.

Powrót

Komentarze

  • 2014.02.21 11:55 Maciek

    sORRY ale w jaki sposob 128 cyfr to 464 bity ?

    Odpowiedz
    • 2014.02.21 12:03 Adam

      Tu znajdziesz wyjaśnienie: http://stackoverflow.com/questions/7150035/calculating-bits-required-to-store-decimal-number.
      W skrócie: bo 2 do potęgi 464 jest większe od największej liczby 128-cyfrowej.

      Odpowiedz
      • 2014.02.21 12:16 Maciek

        dzienks

        Odpowiedz
        • 2014.02.22 13:10 minus1

          Nie chcę wyjść na czepialskiego złośliwca ale trudno jeżeli wyjdę. Podsumujmy, nie masz bladego pojęcia z matematyki (odpowiedź na twoje pytanie, średnio uzdolniony uczeń gimnazjum powinien znaleźć w przeciągu 15 minut, za pomocą kartki i ołówka), informatyki (nie wiesz nic na temat reprezentacji liczb w pamięci) i języka polskiego (dzienks -> dzienkuje != dziękuje). Przepraszam

          Odpowiedz
          • 2014.02.22 13:43 Maciek

            Dzieki że mi powiedziałeś ze nie wiem, bo tego tez nie wiedziałem że nie wiem .

  • 2014.02.21 12:19 wytrzeszcz

    jak to łamanie przebiega wstawia sie kolejne klucze i patrzy kiedy wyjdzie obrazek czy jak?

    Odpowiedz
    • 2014.02.21 12:38 Marcin Rybak

      do tego używany jest HMAC: http://en.wikipedia.org/wiki/HMAC, odpowiada on za integralność danych

      Odpowiedz
    • 2014.02.21 13:19 Adam

      Polega na rozłożeniu na czynniki iloczynu dwóch dużych liczb pierwszych. Poszukaj jakiegoś tekstu o RSA, tam wszystko znajdziesz.

      Odpowiedz
      • 2014.02.22 13:45 Maciek

        Ooooo tego tez nie wiedzialem a chcialem sie dowiedziec, skad program łamiacy jakies hasło wie ze znalazl odpowiedz…

        Odpowiedz
  • 2014.02.21 12:23 Marcin Rybak

    Kluczem do „dobrej kryptografi” jest zapewnienie, aby PRNG (pseudorandom number generator) był faktycznie random. Jeśli którykolwiek z elementów jest przewidywalny (mimo, że wygląda na losowy), to całe szyfrowanie jest do d… . Jeśli coś jest przewidywalne to nie jest losowe.

    Odpowiedz
    • 2014.02.21 14:18 JackN

      Akurat artykuł nie jest o tym. Nawet jakbyś miał świetnego RandGena to i tak nic Ci to nie da, bo – jak wspomina autor artykułu – RSA-464 jest stosunkowo proste do złamania. Czyt. faktoryzacja klucza 464-bitowego jest jest stosunkowo proste.

      Odpowiedz
      • 2014.02.21 15:36 Marcin Rybak

        zgadzam się, natomiast to była ogólna i luźna uwaga dot. kryptografii, jak stosunkowo prosty błąd na początku, może skutkować położeniem całego pomysłu, dokładnie tak jak w przypadku w artykule.

        Odpowiedz
  • 2014.02.21 15:00 Szulcu

    Potrzeba 426 bitów, a nie 464:
    2^n = 10^128
    n = log2(10^128)
    n = 425,21
    zatem po zaokrągleniu w górę mamy 426 bity, a więc RSA-426 (i tak też jest obecnie podane w oryginalnym artykule po angielsku, ale podejrzewam że wcześniej też mieli błąd i dlatego również u Was się on pojawił :) ).
    Pozdrawiam.

    Odpowiedz
    • 2014.02.21 15:06 Adam

      O, dzięki, jak to wszystkich i wszędzie trzeba sprawdzać :) Poprawione.

      Odpowiedz
      • 2014.02.21 15:11 Szulcu

        Heh, nadal jest błąd: zamiast na RSA-426 poprawiłeś na RSA-424 :P

        Odpowiedz
        • 2014.02.21 17:31 Adam

          Dzisiaj jest ciężki dzień… ;)

          Odpowiedz
  • 2014.02.21 20:32 b373lgeuse

    Link do decrypta nie działa. Warto by go zapisać 'na później’ i do anal izy. Gdybyście poprawili, albo podesłali na emila byłbym wdzięczny.
    Pozdrawiam z piwnicy.

    Odpowiedz
    • 2014.02.21 20:37 b373lgeuse

      Aha. To sam bitbucket leży..
      ddos dla zyskania na czasie, zanim wszyscy się dowiedzą? :P

      Odpowiedz
      • 2014.02.21 22:06 Adam

        Już się naprawiło :)

        Odpowiedz
  • 2014.02.28 13:14 Jacek

    Ma ktoś execa zrobionego z pliku *.py bo jakoś nie chce to u mnie działac .

    Jacek

    Odpowiedz
  • 2014.03.01 22:08 michał

    Cześć,
    Padłem ofiarą tego świństwa, większość plików na hdd mam z dodanym rozszerzeniem *bitcrypt2
    Czy ktoś poradzi jak się tego pozbyć?

    Odpowiedz
  • 2015.01.30 08:10 Sylwia

    Cześć,
    Ktoś może wie jak rozszyfrować pliki z rozszerzeniem ucusiyf? Koń trojanski znowu zaatakował tym razem moje pliki doc i pdf. Z góry dziękuję za pomoc.

    Odpowiedz
  • 2016.04.20 18:18 Daria

    Witam. Przepraszam, że nie piszę tu na temat, ale mam pewien problem z komputerem. Otóż tak: Mój komputer nie może może otworzyć systemu (ustawienia, menu , sklep itp.) chociaż wcześniej mógł. Mam system Windows 8.1 i wcześniej działał jakby nic się z nim nie działo. Nawet mój program antywirusowy (kupiony w sklepie i dodatkowo polecany) przestał działać i został skasowany. Nie mogę nic zainstalować ani na odwrót. Nie wiem co się dzieje. Próbowałam wszystkiego co mogłam, ale nie mogę nawet zrobić resetu, bo jest zablokowany. Proszę o pomoc.

    Odpowiedz
  • 2016.11.06 00:04 janka

    zakodowało mi wszystkie pliki a mam zdjęcia meza który nie dawno mi zmarł i nie mogę ich wyswietlic .zostały zakodowane przy uzyciu szyfru RSA-2048 oraz AES-128 co mam zrobić nie mam zadnych teraz pamiątek po mezu.podane jakies linki sa ale nie wiem co zrobic

    Odpowiedz

Zostaw odpowiedź do Maciek

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Dzięki pomyłce przestępców ofiary mogą odzyskać zaszyfrowane pliki

Komentarze