Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Generowałeś automatycznie hasło w menadżerze haseł od Kasperskiego? Lepiej je zmień…

09 lipca 2021, 19:30 | W biegu | komentarze 2

Menedżer haseł od rosyjskiej firmy Kaspersky jest stosunkowo intuicyjny i jak większość podobnych produktów pozwala przechowywać, synchronizować i generować hasła do aplikacji. Jeden z badaczy odkrył prosty, ale poważny błąd w ostatniej z wymienionych funkcji i zgłosił go za pośrednictwem HackerOne.

Generowanie hasła odbywało się z wykorzystaniem aktualnego czasu w sekundach. Fragment kodu odpowiedzialny za wygenerowanie był następujący:

std::string pwlib::generatePassword(pwdlib::Policy policy)

{

  return generatePassword(policy, time(0));

}

W związku z tym można było wygenerować maksymalnie 232 (czyli 4294967296) haseł dla danego zestawu znaków (domyślnie: duże litery + małe litery + cyfry + znaki specjalne, długość 12). Jako ciekawostkę można dodać, że jeśli dwie osoby uruchomią generator w tej samej sekundzie, otrzymają to samo hasło. Atakujący mógłby wygenerować na tej podstawie swój zestaw i użyć go do zautomatyzowanych ataków. Istnieją gotowe i sprawdzone narzędzia do odzyskiwania haseł typu hashcat, John the Ripper, Hydra czy skrypt ssh_login w Metasploit. Podaje się w nich konkretny cel, np. SSH. Do osobnych plików zapisujemy wygenerowane hasła i użytkowników (zwykle root, admin, user). Są również gotowe zestawy z najczęściej używanymi nazwami. Użycie Hydry jest proste: hydra -L uzytkownicy.txt -P hasla.txt ssh://[host].

Przykładowy scenariusz ataku na organizację:

  • ustalenie, czy używane jest oprogramowanie Kaspersky Total Security (samego menedżera haseł raczej się nie instaluje):
    • socjotechnika (podajemy się za pracownika Kaspersky lub firmowy IT i prosimy np. o sprawdzenie licencji)
    • prezentacja (w obecnych czasach wiele firm ustala różne kwestie z klientami online, również z użyciem udostępniania ekranu)
  • jeśli tak, można przystąpić do ataku:
    • zewnętrzny rekonesans infrastruktury (SSH, RDP, VPN, poczta)
    • wybranie celu i atak

Prawdopodobnie hasło z KPM zostało gdzieś użyte. Szczególnie interesująca wydaje się poczta. W przypadku zwykłych użytkowników atak jest znacznie prostszy:

It is quite common that Web sites or forums display the creation time of accounts. Knowing the creation date of an account, an attacker can try to bruteforce the account password with a small range of passwords (~100) and gain access to it.

Dlaczego błąd został wykryty dopiero w 2019 roku? Według badacza powodem jest animacja generowania hasła. Trwa dłużej niż sekundę, więc w tym czasie nie można nacisnąć kilkakrotnie przycisku „Generate”.

Podatność CVE-2020-27020 została załatana. Dotyczyła kluczowych systemów: Windows, Android i iOS. Warto też zauważyć, że producent wymusił w październiku 2020 roku zmianę niektórych haseł.

–Michał Giza

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Robert

    Problem menadżera haseł Kaspersky jest taki, że to aplikacja z zamkniętym kodem źródłowym i jest trudno zweryfikować cokolwiek bez Inżynierii odwrotnej. Takie rzeczy potem wychodzą przypadkiem, o ile producent oprogramowania sam się wcześniej nie zorientuje i nie naprawi błędu.

    Z ciekawości sprawdziłem otwarto źródłowy KeepassXC, tam do generowania losowego hasła używany jest „libgcrypt”, czyli biblioteka bazująca na kodzie GnuPG.
    W gałęzi „develop” zmieniono to na „nowocześniejszą” bibliotekę „Botan”. Każdy, kto choć trochę ogarnia programowanie może zaglądnąć do kodu i zweryfikować, czy nie ma podobnych banalnych błędów.
    W kwestii bezpieczeństwa moim zdaniem oprogramowanie open source jest nieco dynamiczniejsze, choć i tutaj bywa, że wychodzą błędy, które tkwiły lata w kodzie i nie zostały wcześniej zauważone.

    Odpowiedz
    • 44

      Pytanie czy można opierać się na etyce producenta z Federacji Rosyjskiej infiltrowanego przez FSB?

      BTW:
      Czy hasła prominentnych klientów WP Poczty nie były generowane tym softem? Nie wymagałoby to zbyt dużej determinacji „3 literowców”

      Odpowiedz

Odpowiedz