Menu dostępności

Krytyczny bug w kryptografii Javy. Eksperci wzywają do aktualizacji!

Eksperci ds. cyberbezpieczeństwa w całym Internecie ostrzegają i wzywają do aktualizacji przed podatnością CVE-2022-21449. Jest to luka w zabezpieczeniach dotycząca aplikacji korzystających z sygnatur algorytmu podpisu cyfrowego krzywej eliptycznej (ang. ECDSA) w Java 15, Java 16, Java 17 i Java 18. Bug otrzymał ocenę 7,5 na 10 w skali CVSS, a eksperci zastanawiają się dlaczego tak mało.

Nowa podatność pochodzi z niewłaściwej implementacji algorytmu weryfikacji podpisów ECDSA i zasadniczo umożliwia atakującemu potencjalne przechwycenie komunikacji i wiadomości, które w innym przypadku powinny zostać zaszyfrowane. Chodzi tu o taką komunikacje jak komunikacja SSL, procesy uwierzytelniania i inne.

Oracle opublikował tydzień temu łatę dla luki po tym, jak firma ForgeRock poinformowała zespół OpenJDK o problemie.

Błąd jest poważny, ponieważ umożliwia atakującemu łatwe sfałszowanie niektórych typów certyfikatów SSL, „uścisków dłoni”, podpisanych JWT, asercji SAML lub tokenów OIDC id oraz nawet, wiadomości uwierzytelniających WebAuth. Standard ECDSA jest szeroko stosowanym mechanizmem podpisywania wszelkiego rodzaju dokumentów cyfrowych, a luka w zabezpieczeniach umożliwia atakującym użycie cyfrowego odpowiednika pustego dowodu osobistego. Mówi się, że jest to eksploit „białej kartki papieru”.

Podobno błąd został wykryty przez Neil’a Madden’a, blogera i eksperta kryptograficznego, już w listopadzie ubiegłego roku, ale Oracle przyznało się do tego dopiero niedawno.
Warto zastanowić się w ogóle, dlaczego podatność wychodzi na jaw teraz, kiedy Java od dawna obsługuje ECDSA. Czy zawsze ten mechanizm był wrażliwy?
Oczywiście nie. Jest to stosunkowo nowy błąd wprowadzony przez przepisanie kodu EC z natywnego kodu C++ na Javę, co miało miejsce w wydaniu Java 15. Chociaż reimplementacja ma zalety pod względem bezpieczeństwa pamięci i łatwości utrzymania, wydaje się, że doświadczeni inżynierowie kryptografowie nie byli zaangażowani ten proces. Oryginalna implementacja C++ nie jest podatna na te błędy, ale Java już tak. Wydaje się, że żadna z implementacji nie zapewnia bardzo dobrego pokrycia testami, a nawet najbardziej pobieżny odczyt specyfikacji ECDSA z pewnością sugerowałby testowanie podstawowych założeń.

Jeśli chodzi o techniczny aspekt podatności, to oczywiście na poziomie szczegółowym jest bardzo złożony, ale na poziomie ogólnym już bardzo prosty. Błąd implementacji polega na tym, że dwie zmienne „r” oraz „s” nie są weryfikowane w funkcji pod kątem wartości zero, która później powoduje, że podpis cyfrowy też ma wartość zero…, czyli po prostu jest pusty.

Brian Moussalli z JFrog Security Research nazwał lukę “Java Psychic Signatures” oraz oświadczył, że powoduje unieważnienie integralności każdej treści, która jest gwarantowana przez podpisy elektroniczne. Może to mieć poważne konsekwencje dla kilku transakcji finansowych we wszystkich branżach przy użyciu handshakes SSL, podpisów elektronicznych, SOA itp. Powiedział też, że brak bezpiecznego uzgadniania między systemami umożliwia atakującemu dostęp do treści, które powinny być chronione, co może mieć krytyczne konsekwencje zarówno dla konsumentów, jak i przedsiębiorstw.
Mike Parkin z Vulcan Cyber nazwał CVE-2022-21449 luką „załataj teraz” i powiedział, że jest to przykład dobrego systemu kryptograficznego, który stał się bezużyteczny z powodu błędu implementacji.


Co powinniśmy zrobić?

Przede wszystkim, jeśli używasz Java 15 lub nowszej, zaktualizuj ją do najnowszej wersji, aby uzyskać poprawkę.

Ogólnie rzecz biorąc, kod kryptograficzny jest bardzo trudny do poprawnej implementacji, a algorytmy podpisu klucza publicznego są jednymi z najtrudniejszych. ECDSA jest samo w sobie jednym z najbardziej delikatnych algorytmów, w którym nawet niewielka ilość błędu w jednej losowej wartości może umożliwić całkowite odzyskanie klucza prywatnego.

Jeśli jesteś programistą i projektujesz protokół lub aplikację, które Twoim zdaniem muszą korzystać z podpisów cyfrowych, zastanów się, czy naprawdę musisz to zrobić – czy zamiast tego zadziałałby prostszy mechanizm? Proste algorytmy MAC, takie jak HMAC, są niezwykle trudne do zepsucia w porównaniu ze schematami podpisów.

Popularne

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jeśli masz odrobinę szczęścia lub „odpowiednie umiejętności” i potrafisz zdobyć lokalne uprawnienia administracyjne na Twoim komputerze w firmie lub zaliczasz się do grona tych szczęściarzy, którzy pracuj...
Jak awaria Azure Front Door rzuciła cień na globalne usługi chmurowe

Jak awaria Azure Front Door rzuciła cień na globalne usługi chmurowe

W środę 9 października użytkownicy platformy Microsoft Azure na całym świecie doświadczyli poważnych zakłóceń. Wiele usług stało się niedostępnych, a administratorzy nie mogli nawet zalogować się do portalu...
Zero-day i groźna eskalacja uprawnień w systemie Windows –  analiza CVE-2025-59230 i ostrzeżenie CISA

Zero-day i groźna eskalacja uprawnień w systemie Windows –  analiza CVE-2025-59230 i ostrzeżenie CISA

Ostrzegamy wszystkie firmy i instytucje przed nowo ujawnioną luką w systemie Microsoft Windows – CVE-2025-59230. Jest to poważna podatność, umożliwiająca lokalnemu atakującemu z niskimi uprawnieniami uzyskanie...
Czego nie mówi Broadcom? Luka w VMware jest banalna do wykorzystania i korzysta z niej co najmniej jedna grupa hakerska!

Czego nie mówi Broadcom? Luka w VMware jest banalna do wykorzystania i korzysta z niej co najmniej jedna grupa hakerska!

Niedawno załatana wysoce poważna luka w zabezpieczeniach VMware jest wykorzystywana jako zero-day od października 2024 roku do wykonywania kodu z podwyższonymi uprawnieniami. Taką informacją podzieliło się w...