Пост-аналіз: що відомо про останню атаку на мережу серверів криптоключів 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: 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 створив файлову системуяка зберігає документи в мережі серверів криптографічних ключів.

Чому вразливість не закрили

Для закриття вразливості був приводу. Раніше її не використовували для хакерських атак. Хоча ІТ-спільнота давно просило розробників 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

Додати коментар або відгук