Хакеры использовали особенность протокола OpenPGP, о которой известно более десяти лет.
Рассказываем, в чем суть и почему её не могут закрыть.
/ Unsplash /
Проблемы в сети
В середине июня неизвестные
Хакеры скомпрометировали сертификаты двух мейнтейнеров проекта GnuPG — Роберта Хансена (Robert Hansen) и Дэниела Гиллмора (Daniel Gillmor). Загрузка испорченного сертификата с сервера приводит к сбою в работе GnuPG — система просто зависает. Есть основания полагать, что на этом злоумышленники не остановятся, и число скомпрометированных сертификатов будет лишь увеличиваться. На текущий момент масштабы проблемы остаются неизвестными.
Суть атаки
Хакеры воспользовались уязвимостью в протоколе OpenPGP. Она известна сообществу уже не один десяток лет. Даже на GitHub
Пара подборок из нашего блога на Хабре:
Согласно спецификации OpenPGP кто угодно может добавлять цифровые подписи к сертификатам для подтверждения их владельца. Причем максимальное число подписей никак не регламентировано. И здесь возникает проблема — сеть SKS позволяет разместить до 150 тыс. подписей на один сертификат, но GnuPG такое их количество не поддерживает. Таким образом, при загрузке сертификата GnuPG (как, впрочем, и другие реализации OpenPGP) зависает.
Один из пользователей
$ 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
Ситуацию усугубляет тот факт, что серверы ключей с OpenPGP не удаляют информацию о сертификатах. Так сделано, чтобы можно было проследить цепочку всех действий с сертификатами и исключить их подмену. Поэтому ликвидировать скомпрометированные элементы нельзя.
По сути, сеть SKS представляет собой большой «файловый сервер», на который любой желающий может записать данные. Чтобы проиллюстрировать проблему, в прошлом году резидент GitHub
Почему уязвимость не закрыли
Для закрытия уязвимости не было повода. Ранее её не использовали для проведения хакерских атак. Хотя ИТ-сообщество
Справедливости ради стоит отметить, что в июне они все же
/ Unsplash /
Что касается бага в оригинальной системе, то исправить его мешает сложный механизм синхронизации. Сеть серверов ключей изначально писалась как proof of concept для защиты докторской диссертации Яроном Мински (Yaron Minsky). Причем для работы был выбран довольно специфический язык OCaml. По
В любом случае в GnuPG не верят, что сеть когда-нибудь удастся исправить. В посте на GitHub разработчики даже написали, что не рекомендуют работать с SKS Keyserver. Собственно, это одна из главных причин, почему они инициировали переход на новый сервис keys.openpgp.org. Нам остается лишь наблюдать за дальнейшим развитием событий.
Пара материалов из нашего корпоративного блога:
Источник: habr.com