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 Ransomeware - płacić, czy nie płacić? - Kroll Ontrack Blog Polska

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