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

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

Разказваме какво представлява и защо не може да бъде затворена.

Пост-анализ: какво е известно за последната атака на мрежата от сървъри за криптографски ключове SKS Keyserver
/ Unsplash / Chunlea Ju

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

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

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

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

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

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

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

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

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: ключ F20691179038E5C6: 4 дублирующих подписи удалены
gpg: ключ F20691179038E5C6: 54614 подписей не проверены из-за отсутствия ключей
gpg: ключ F20691179038E5C6: 4 подписи переупорядочены
gpg: ключ F20691179038E5C6: открытый ключ "Даниел Кahn Гилмор <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 / Rubén Bagüés

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

В любом случае в GnuPG не верят, что сеть когда-нибудь удастся исправить. В посте на GitHub разработчики даже написали, что не рекомендуют работать с SKS Keyserver. Собственно, это одна из главных причин, почему они инициировали переход на новый сервис keys.openpgp.org. Нам остаётся лишь наблюдать за дальнейшим развитием событий.

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

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

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