Пост-анализ: какво се знае за последната атака срещу мрежата на сървъри за криптоключове SKS Keyserver

Хакерите използваха особеност на протокола OpenPGP, която е известна от повече от десет години.

Разказваме каква е същността и защо не могат да я закрият.

Пост-анализ: какво се знае за последната атака срещу мрежата на сървъри за криптоключове SKS Keyserver
/ Unsplash / Чунлеа Джу

Проблеми в мрежата

В средата на юни неизвестни лица извършиха атака върху мрежата от криптографски ключове SKS Keyserver, изградена на базата на протокола OpenPGP. Това е стандарт на IETF (RFC 4880), който се използва за криптиране на електронна поща и други съобщения. Мрежата SKS е създадена преди тридесет години за разпространение на публични сертификати. Към нея се свързват инструменти като GnuPG за криптиране на данни и създаване на електронни цифрови подписи.

Хакерите компрометираха сертификатите на двама поддържатели на проекта GnuPG — Роберт Хансен (Robert Hansen) и Дэниел Гиллмор (Daniel Gillmor). Зареждането на повреден сертификат от сървъра води до срив на GnuPG — системата просто засяда. Има основания да се смята, че злонамерените лица няма да се спрат на това и броят на компрометираните сертификати ще продължи да нараства. Към момента мащабите на проблема остават неизвестни.

Същността на атаката

Хакерите се възползваха от уязвимост в протокола OpenPGP. Тя е известна на обществеността вече не един десетилетие. Дори в GitHub може да се намери има съответни експлойти. Но засега никой не се е ангажирал да закрие "проблема" (по-късно ще говорим по-подробно за причините).

Пара подборки от нашия блог в Хабра:

Според спецификацията на OpenPGP всеки може да добавя цифрови подписи към сертификатите, за да потвърди тяхния собственик. Въпреки това, максималният брой подписи не е регламентиран. И тук възниква проблемът — мрежата SKS позволява да се поставят до 150 000 подписа на един сертификат, но GnuPG не поддържа такава бройка. По този начин, при зареждане на сертификат GnuPG (както и други реализации на OpenPGP) засяда.

Един от потребителите извърши експеримент — импортът на сертификата му отне около 10 минути. Сертификатът имаше над 54 000 подписа, а размерът му беше 17 Мбайта:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: ключ F20691179038E5C6: 4 дублирани подписи премахнати
gpg: ключ F20691179038E5C6: 54614 подписи не проверени поради липсващи ключове
gpg: ключ F20691179038E5C6: 4 подписи реорганизирани
gpg: ключ F20691179038E5C6: публичен ключ "Даниел Кан Гилмор <dkg@fifthhorseman.net>" импортиран
gpg: не са намерени окончателно доверени ключове
gpg: Общо обработени: 1
gpg:               импортирани: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 юли 16:30 pubring.gpg

Ситуацията се усложнява от факта, че сървърите на ключове с OpenPGP не премахват информация за сертификатите. Това е направено, за да се проследи веригата от действия с сертификатите и да се изключи тяхната подмяна. Следователно еневъзможно да се ликвидират компрометирани елементи.

По същество, мрежата SKS представлява голям "файлов сървър", на който всеки желаещ може да записва данни. За да илюстрираме проблема, миналата година резидентът на GitHub създаде файловата система, която съхранява документи в мрежата от сървъри на криптографски ключове.

Защо уязвимостта не беше затворена

Нямаше причина за затваряне на уязвимостта. По-рано не е била използвана за провеждане на хакерски атаки. Въпреки това ИТ общността отдавна е искала разработчиците на SKS и OpenPGP да обърнат внимание на проблема.

За справедливост трябва да се отбележи, че през юни те все пак успяха експериментален сървър на ключове keys.openpgp.org. В него е реализирана защита срещу подобни типове атаки. Обаче неговата база данни се запълва от нула, а самият сървър не е част от SKS. Затова ще отнеме време, преди да може да се използва.

Пост-анализ: какво се знае за последната атака срещу мрежата на сървъри за криптоключове SKS Keyserver
/ Unsplash / Рубен Багюес

Що се отнася до бъга в оригиналната система, неговото поправяне е затруднено от сложния механизъм на синхронизация. Мрежата от сървъри на ключове първоначално е написана като proof of concept за защита на докторската дисертация на Ярон Мински (Yaron Minsky). За работа е избран доста специфичен език OCaml. Според думите умейкъра Робърт Хансен, разбирането на кода е трудно, затова в него се внасят само малки поправки. За да се модифицира архитектурата на SKS, тя ще трябва да бъде презаписана от нула.

Каквото и да е, в GnuPG не вярват, че мрежата някога ще може да бъде поправена. В пост на GitHub разработчиците дори написаха, че не препоръчват работа с SKS Keyserver. Всъщност, това е една от главните причини, поради които те инициираха прехода към новата услуга keys.openpgp.org. Остава само да наблюдаваме развитието на събитията.

Няколко материала от нашия корпоративен блог:

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster