Хакери використали особливість протоколу 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