Následná analýza: čo je známe o najnovšom útoku na sieť serverov s kryptografickými kľúčmi SKS Keyserver

Hackeri využili funkciu protokolu OpenPGP, ktorá je známa už viac ako desať rokov.

Povieme vám, o čo ide a prečo to nemôžu uzavrieť.

Následná analýza: čo je známe o najnovšom útoku na sieť serverov s kryptografickými kľúčmi SKS Keyserver
/Unsplash/ Chunlea Ju

Problémy so sieťou

V polovici júna neznámy vykonal útok do siete serverov kryptografických kľúčov Kľúčový server SKS, postavený na protokole OpenPGP. Toto je štandard IETF (RFC 4880), ktorý sa používa na šifrovanie e-mailov a iných správ. Sieť SKS vznikla pred tridsiatimi rokmi na distribúciu verejných certifikátov. Zahŕňa nástroje ako napr GnuPG na šifrovanie údajov a vytváranie elektronických digitálnych podpisov.

Hackeri kompromitovali certifikáty dvoch správcov projektu GnuPG, Roberta Hansena a Daniela Gillmora. Načítanie poškodeného certifikátu zo servera spôsobí zlyhanie GnuPG – systém jednoducho zamrzne. Existuje dôvod domnievať sa, že útočníci sa tam nezastavia a počet napadnutých certifikátov sa bude len zvyšovať. V súčasnosti zostáva rozsah problému neznámy.

Podstata útoku

Hackeri využili zraniteľnosť v protokole OpenPGP. V komunite je známa už desaťročia. Dokonca aj na GitHub nájdete zodpovedajúce exploity. Zatiaľ však nikto neprevzal zodpovednosť za uzavretie „diery“ (o dôvodoch si povieme podrobnejšie neskôr).

Pár výberov z nášho blogu na Habré:

Podľa špecifikácie OpenPGP môže ktokoľvek pridať k certifikátom digitálne podpisy na overenie ich vlastníka. Navyše maximálny počet podpisov nie je nijako regulovaný. A tu nastáva problém – sieť SKS umožňuje umiestniť na jeden certifikát až 150 tisíc podpisov, ale GnuPG takéto číslo nepodporuje. Pri načítavaní certifikátu teda GnuPG (ale aj iné implementácie OpenPGP) zamrzne.

Jeden z užívateľov uskutočnil experiment — import certifikátu mu trval asi 10 minút. Certifikát mal viac ako 54 tisíc podpisov a jeho hmotnosť bola 17 MB:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: key F20691179038E5C6: 4 duplicate signatures removed
gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys
gpg: key F20691179038E5C6: 4 signatures reordered
gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 Jul 16:30 pubring.gpg

Aby toho nebolo málo, servery kľúčov OpenPGP neodstraňujú informácie o certifikátoch. Deje sa tak, aby ste mohli sledovať reťazec všetkých akcií s certifikátmi a zabrániť ich nahradeniu. Preto nie je možné eliminovať narušené prvky.

Sieť SKS je v podstate veľký „súborový server“, na ktorý môže ktokoľvek zapisovať dáta. Na ilustráciu problému, minulý rok rezident GitHub vytvoril súborový systém, ktorá ukladá dokumenty na sieti serverov kryptografických kľúčov.

Prečo nebola zraniteľnosť uzavretá?

Nebol dôvod túto zraniteľnosť uzavrieť. Predtým sa nepoužíval na útoky hackerov. Hoci IT komunita pýtali sa dlho Vývojári SKS a OpenPGP by mali venovať pozornosť problému.

Aby sme boli spravodliví, stojí za zmienku, že v júni stále spustený experimentálny server kľúčov keys.openpgp.org. Poskytuje ochranu pred týmito typmi útokov. Jeho databáza je však naplnená od začiatku a samotný server nie je súčasťou SKS. Preto bude chvíľu trvať, kým sa bude dať použiť.

Následná analýza: čo je známe o najnovšom útoku na sieť serverov s kryptografickými kľúčmi SKS Keyserver
/Unsplash/ Rubén Bagües

Čo sa týka chyby v pôvodnom systéme, jej oprave bráni zložitý synchronizačný mechanizmus. Sieť kľúčových serverov bola pôvodne napísaná ako dôkaz koncepcie pre doktorandskú prácu Yarona Minského. Navyše bol pre prácu zvolený pomerne špecifický jazyk, OCaml. Autor: podľa správca Robert Hansen, kód je ťažko zrozumiteľný, takže sa v ňom robia len drobné opravy. Ak chcete upraviť architektúru SKS, bude potrebné ju prepísať od začiatku.

V každom prípade GnuPG neverí, že sa sieť niekedy podarí opraviť. V príspevku na GitHub dokonca vývojári napísali, že neodporúčajú pracovať s SKS Keyserver. V skutočnosti je to jeden z hlavných dôvodov, prečo iniciovali prechod na novú službu keys.openpgp.org. Ďalší vývoj udalostí môžeme len sledovať.

Pár materiálov z nášho firemného blogu:

Zdroj: hab.com

Pridať komentár