Що таке вразливість Heartbleed?

click fraud protection

Однією з найвідоміших уразливостей середини 2010-х років була «Heartbleed». Heartbleed був особливо серйозним, оскільки його програмне забезпечення вплинуло на «OpenSSL», головну криптографічну бібліотеку для з'єднань HTTPS, які дуже широко використовуються. Що ще гірше, уразливість була присутня в OpenSSL більше двох років тому його виявили, оприлюднили та виправили, що означало, що багато людей використовували вразливий версія.

Heartbleed була вразливістю до витоку даних у розширенні heartbeat, яке при експлуатації витікало дані з RAM із сервера на клієнта. Розширення heartbeat використовується для підтримки з'єднання між веб-сервером і клієнтом без виконання звичайного запиту сторінки.

У випадку OpenSSL клієнт надсилає повідомлення на сервер і повідомляє серверу про тривалість повідомлення, до 64 КБ. Після цього сервер повинен відтворити те саме повідомлення. Однак найважливіше те, що сервер насправді не перевірив, чи було повідомлення таким довгим, як стверджував клієнт. Це означало, що клієнт міг надіслати повідомлення розміром 10 КБ, стверджувати, що це 64 КБ, і отримати відповідь 64 КБ, а додаткові 54 КБ складатимуться з наступних 54 КБ оперативної пам’яті, незалежно від того, які дані там зберігалися. Цей процес добре візуалізується

XKCD комікс №1354.

Зображення надано xkcd.com.

Роблячи багато невеликих запитів і стверджуючи, що вони великі, зловмисник може створити картину більшої частини оперативної пам’яті сервера, об’єднавши відповіді. Дані, які зберігаються в RAM, які можуть бути витоком, включають ключі шифрування, сертифікати HTTPS, а також незашифровані дані POST, такі як імена користувачів та паролі.

Примітка: він менш відомий, але протокол серцевого ритму та експлойт також працювали в іншому напрямку. Шкідливий сервер міг бути налаштований на читання до 64 КБ пам’яті користувача за запит на серцевий ритм.

Проблема була виявлена ​​кількома дослідниками безпеки незалежно один від одного першого квітня 2014 року та була розкрита приватно для OpenSSL, щоб можна було створити виправлення. Помилка була оприлюднена, коли патч був випущений сьомого квітня 2014 року. Найкращим рішенням для вирішення проблеми було застосування виправлення, але також можна було виправити проблему, вимкнувши розширення серцевого ритму, якщо негайно встановити виправлення було неможливо.

На жаль, незважаючи на те, що експлойт був загальнодоступним і загальновідомим, багато веб-сайтів все ще не оновлювалися відразу, а вразливість все ще час від часу виявлялася навіть через роки. Це призвело до низки випадків використання експлойту для отримання доступу до облікових записів або витоку даних.