Post-analityka: co wiadomo o ostatnim ataku na sieć serwerów kluczy kryptograficznych SKS Keyserver

Hakerzy wykorzystali cechę protokołu OpenPGP, o której wiadomo od ponad dziesięciu lat.

Wyjaśniamy, na czym to polega i dlaczego nie da się tego naprawić.

Post-analityka: co wiadomo o ostatnim ataku na sieć serwerów kluczy kryptograficznych SKS Keyserver
/ Unsplash / Chunlea Ju

Problemy w sieci

W połowie czerwca nieznani sprawcy przeprowadzili atak na sieć serwerów kluczy kryptograficznych SKS Keyserver, opartą na protokole OpenPGP. To standard IETF (RFC 4880), który jest używany do szyfrowania e-maili i innych wiadomości. Sieć SKS została stworzona trzydzieści lat temu w celu dystrybucji publicznych certyfikatów. Do sieci łączą się takie narzędzia jak GnuPG do szyfrowania danych i tworzenia elektronicznych podpisów.

Hakerzy skompromitowali certyfikaty dwóch głównych współtwórców projektu GnuPG — Roberta Hansena i Daniela Gillmora. Pobranie uszkodzonego certyfikatu z serwera powoduje awarię GnuPG — system po prostu się zawiesza. Istnieją podstawy, aby sądzić, że na tym sprawcy się nie zatrzymają, a liczba skompromitowanych certyfikatów tylko wzrośnie. Na chwilę obecną skala problemu pozostaje nieznana.

Istota ataku

Hakerzy wykorzystali lukę w protokole OpenPGP. Jest ona znana społeczności od wielu lat. Nawet na GitHubie można znaleźć są odpowiednie exploity. Ale jak dotąd nikt nie wziął odpowiedzialności za załataniu "dziury" (o przyczynach porozmawiamy później).

Dwie kompilacje z naszego bloga na Habrze:

Zgodnie ze specyfikacją OpenPGP każdy może dodawać podpisy cyfrowe do certyfikatów w celu potwierdzenia ich właściciela. Co więcej, maksymalna liczba podpisów nie jest w żaden sposób regulowana. A tutaj pojawia się problem — sieć SKS pozwala umieszczać do 150 tys. podpisów na jednym certyfikacie, ale GnuPG nie obsługuje ich takiej liczby. W ten sposób przy pobieraniu certyfikatu GnuPG (jak i innych realizacji OpenPGP) zawiesza się.

Jeden z użytkowników przeprowadził eksperyment — import certyfikatu zajął mu około 10 minut. Certyfikat miał ponad 54 tys. podpisów, a jego rozmiar wyniósł 17 MB:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: klucz F20691179038E5C6: 4 duplikaty podpisów usunięto
gpg: klucz F20691179038E5C6: 54614 podpisów nie sprawdzono z powodu brakujących kluczy
gpg: klucz F20691179038E5C6: 4 podpisy przerejestrowano
gpg: klucz F20691179038E5C6: klucz publiczny "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" zaimportowany
gpg: nie znaleziono kluczy ostatecznie zaufanych
gpg: Łączna liczba przetworzonych: 1
gpg:               zaimportowanych: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 lip 16:30 pubring.gpg

Sytuację pogarsza fakt, że serwery kluczy OpenPGP nie usuwają informacji o certyfikatów. Zostało to zrobione, aby móc śledzić wszystkie działania z certyfikatów i wykluczyć ich podmianę. Dlatego nie można zlikwidować skompromitowanych elementów.

W istocie sieć SKS jest dużym „serwerem plików”, na który każdy może zapisać dane. Aby zilustrować problem, w ubiegłym roku rezydent GitHub stworzył system plików, który przechowuje dokumenty w sieci serwerów kluczy kryptograficznych.

Dlaczego nie zamknięto luki

Nie było podstaw do zamknęcia luki. Wcześniej nie była wykorzystywana do przeprowadzenia ataków hakerskich. Mimo to społeczność IT od dawna prosiła deweloperów SKS i OpenPGP o zwrócenie uwagi na problem.

Z słuszności warto zauważyć, że w czerwcu w końcu uruchomili eksperymentalny serwer kluczy keys.openpgp.org. W nim wdrożono ochronę przed tego rodzaju atakami. Niemniej jednak jego baza danych jest wypełniana od zera, a sam serwer nie jest częścią SKS. Dlatego minie trochę czasu, zanim będzie można z niego korzystać.

Post-analityka: co wiadomo o ostatnim ataku na sieć serwerów kluczy kryptograficznych SKS Keyserver
/ Unsplash / Rubén Bagüés

Jeśli chodzi o błąd w oryginalnym systemie, to trudno go naprawić z powodu skomplikowanego mechanizmu synchronizacji. Sieć serwerów kluczy była początkowo tworzona jako proof of concept dla obrony pracy doktorskiej Yaron Minsky'ego. Co więcej, do pracy wybrano dość specyficzny język OCaml. Z słowami według maintanera Roberta Hansena, zrozumienie kodu jest trudne, dlatego wprowadza się jedynie niewielkie poprawki. Aby zmodyfikować architekturę SKS, trzeba będzie przepisać ją od podstaw.

W każdym razie w GnuPG nie wierzą, że sieć kiedykolwiek zostanie naprawiona. W poście na GitHub deweloperzy nawet napisali, że nie rekomendują pracy z serwerem kluczy SKS. Właściwie to jedna z głównych przyczyn, dla których zainicjowali przejście na nową usługę keys.openpgp.org. Pozostaje nam tylko obserwować dalszy rozwój wydarzeń.

Kilka materiałów z naszego bloga korporacyjnego:

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster