У широко використовуваній криптографічній бібліотеці OpenSSL виявлено небезпечну вразливість під кодовою назвою HollowByte, яка дозволяє зловмисникам викликати вичерпання системних ресурсів та повну відмову в обслуговуванні (DoS) на невразливих до цього шлюзах і серверах. Ця атака є надзвичайно асиметричною: зловмиснику без авторизації достатньо надіслати всього 11 байт даних у TLS-запиті, щоб змусити сервер виділити до 131 КБ оперативної пам'яті під повідомлення, яке ніколи не буде надіслане повністю.
Згідно з дослідженнями команди Okta Red Team, на системах під керуванням бібліотеки glibc (яка є стандартною для більшості популярних дистрибутивів Linux), виділена під це фантомне з'єднання пам'ять залишається заблокованою в системі. Оскільки очікуване повідомлення не приходить, з'єднання зависає, а вивільнити зайняту пам'ять без перезапуску всього процесу сервера стає неможливо. Це дозволяє зловмисникам за допомогою мінімальної кількості запитів та низької пропускної спроможності каналу зв'язку повністю зупинити роботу сервера, влаштувавши низькоінтенсивну атаку типу Denial of Service.
Цікаво, що виправлення для HollowByte було випущено розробниками OpenSSL ще у червні, проте це було зроблено тихо (silent patch). Оновлення безпеки не супроводжувалося офіційним ідентифікатором CVE, релізом з безпеки чи бодай помітним записом у списку змін (changelog). Така практика прихованого виправлення створює значні ризики для системних адміністраторів, оскільки багато організацій налаштовують пріоритетність оновлень на основі баз даних CVE. Через відсутність ідентифікатора це критичне оновлення могло бути проігнороване чи відкладене багатьма технічними командами.
Оскільки протокол TLS є фундаментом безпеки для більшості вебсервісів, поштових систем, VPN-з'єднань та API-шлюзів, під загрозою опиняється будь-яка інфраструктура, що використовує вразливі збірки OpenSSL на зовнішньому периметрі. Сервери, які приймають та термінують TLS-трафік (наприклад, під керуванням Nginx, Apache або HAProxy), можуть бути заблоковані за лічені секунди, якщо зловмисник запустить масове надсилання таких коротких 11-байтних запитів, що призведе до швидкого вичерпання всієї доступної оперативної пам'яті сервера.
Команда Okta Red Team, яка першою виявила та задокументувала проблему, вирішила опублікувати детальне дослідження лише після того, як переконалася, що виправлення інтегроване в основні гілки коду OpenSSL. Назва HollowByte (дослівно — «порожній байт») дуже влучно описує суть вразливості: сервер змушений тримати відкритими «порожні» структури даних у пам'яті, витрачаючи цінні ресурси на з'єднання, які не несуть жодного корисного навантаження.
Для спеціалістів із кібербезпеки та пентестерів виявлення HollowByte є класичним прикладом того, як мікроскопічна помилка в управлінні пам'яттю на рівні системних бібліотек може призвести до масштабних збоїв у роботі критичної інфраструктури. Під час проведення тестів на проникнення перевірка стійкості сервісів до подібних DoS-векторів дозволяє оцінити загальну відмовостійкість систем клієнта перед реальними кібератаками.
Що це означає на практиці
- Термінове оновлення OpenSSL: Перевірте версію OpenSSL, яка встановлена на ваших серверах та мережевих шлюзах. Переконайтеся, що ви використовуєте версію, яка містить червневий патч (або новішу). Оскільки офіційного CVE не було створено, орієнтуйтеся на дату випуску пакетів у ваших дистрибутивах Linux (Debian, Ubuntu, RHEL тощо) та оновіть систему через менеджер пакетів (
apt update && apt upgrade opensslабоdnf update openssl). - Моніторинг споживання оперативної пам'яті: Налаштуйте або перевірте існуючі сповіщення у системах моніторингу (наприклад, Prometheus/Grafana або Zabbix). Різке та незрозуміле зростання споживання RAM процесами, що забезпечують роботу вебсерверів чи VPN-шлюзів, при стабільному рівні трафіку може свідчити про спробу експлуатації HollowByte.
- Налаштування лімітів з'єднань (Rate Limiting) та таймаутів: На рівні балансувальників навантаження або брандмауерів налаштуйте агресивні таймаути для незавершених TLS-рукостискань (handshake timeouts). Обмежте максимальну кількість одночасних незавершених з'єднань з однієї IP-адреси, щоб завадити зловмиснику швидко накопичувати заблоковані обсяги пам'яті.
- Перезапуск сервісів після оновлення: Пам'ятайте, що простого оновлення бібліотеки OpenSSL у системі недостатньо. Будь-які демони та сервіси, які використовують цю бібліотеку (Nginx, HAProxy, OpenVPN, SSH-сервери тощо), повинні бути перезапущені для застосування змін у пам'яті. Оптимальним рішенням після оновлення ядра безпеки є повне перезавантаження сервера (reboot).
