Битлента
Словарь терминов3 мин чтения·

Эксплойт: как ошибка в программе превращается в атаку

Что такое эксплойт, чем он отличается от уязвимости и вредоносной программы, какие бывают виды и как защита закрывает такие атаки.

Ключ, подобранный к дефектному замку

Эксплойт, от английского exploit, «использовать», это код или последовательность действий, которая применяет конкретную уязвимость в программе, чтобы заставить её сделать то, чего не планировали авторы. Уязвимость это дефект, эксплойт это способ на нём сыграть. Пока дефект существует без рабочего эксплойта, он остаётся теоретической проблемой, а когда код атаки написан и опубликован, риск резко возрастает.

Важно и то, чем эксплойт не является. Это не готовая вредоносная программа сама по себе, а скорее инструмент доставки: он открывает дверь, а что окажется внутри, зависит от того, кто его использует. Через ту же брешь может быть запущена что угодно, от шифровальщика до простого шпионского модуля.

Какие бывают виды

Эксплойты делят по месту применения. Удалённые работают через сеть: злоумышленник посылает специально составленные данные сервису, и тот выполняет чужие команды, даже если пользователь ничего не нажимал. Локальные требуют, чтобы у атакующего уже был доступ к компьютеру, и используются, чтобы повысить права с обычного пользователя до администратора. Отдельная группа срабатывает при открытии документа, картинки или страницы: программа-просмотрщик неправильно разбирает подготовленный файл.

По цели различают эксплойты для браузеров, операционных систем, офисных пакетов, сетевого оборудования и веб-приложений. Про уязвимость, для которой эксплойт появился раньше, чем исправление, говорят как о неизвестной производителю, и этому посвящена отдельная страница про уязвимость нулевого дня.

Как устроена цепочка атаки

Одиночный эксплойт редко решает всё. Обычно атака состоит из звеньев: сначала уязвимость в браузере даёт исполнение кода внутри его ограниченной среды, затем второе звено выходит за пределы этой изоляции, третье поднимает права. Такие цепочки дороги в разработке, поэтому массово их используют нечасто, а для широких кампаний берут старые, давно исправленные бреши, рассчитывая на тех, кто не обновляется.

Типовые технические причины ошибок связаны с обработкой памяти: запись за границы буфера, использование уже освобождённого участка, неверная проверка размера. Другой массовый класс это ошибки в логике веб-приложений, например внедрение запросов, о которых есть отдельные материалы по SQL-инъекциям и XSS.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Где вы сталкиваетесь с этим косвенно

Пользователь редко видит эксплойт напрямую. Он проявляется в описаниях обновлений, где сказано, что исправлена уязвимость, которая «могла использоваться в реальных атаках». Такая формулировка означает, что обновление стоит поставить без промедления. Ещё один след это оповещения антивируса и защитных функций системы о заблокированной попытке эксплуатации.

Многие современные системы включают технологии, которые затрудняют работу эксплойтов: случайное размещение областей памяти, запрет исполнения кода в области данных, изоляция процессов. Они не устраняют саму ошибку, но делают написание рабочего кода куда сложнее и дороже.

Как снизить риск

Главная мера проста и скучна: своевременные обновления. Подавляющее большинство успешных атак используют уязвимости, для которых исправление уже вышло. Второе условие это минимум лишнего: удалённые программы, отключённые неиспользуемые сервисы и закрытые порты не дают эксплойту цели.

Дополнительно помогают работа под обычной учётной записью без прав администратора, отдельные профили или песочницы для непроверенных файлов, отключение автоматического запуска макросов в документах. Проверить у себя можно в разделе обновлений системы и в списке установленных программ: всё, что давно не обновлялось и не нужно, лучше удалить.

Как исследователи относятся к эксплойтам

В сообществе безопасности эксплойты пишут и с защитными целями. Проверка собственной инфраструктуры на устойчивость, оценка настоящей опасности уязвимости, проверка эффективности исправления, разработка правил обнаружения для защитных систем: всё это требует рабочего примера. Специальные фреймворки для тестирования собирают такие примеры в удобном виде, и ими пользуются специалисты по тестированию на проникновение с разрешения владельцев систем.

Принято придерживаться ответственного раскрытия: исследователь сначала уведомляет производителя, даёт разумный срок на исправление и лишь затем публикует подробности. Такой порядок даёт пользователям возможность обновиться до того, как технические детали станут общеизвестными. Запуск чужих эксплойтов против систем без разрешения владельца нарушает закон в большинстве стран.

Отдельно отметим готовые наборы эксплойтов, которые встраивают на веб-страницы: посетитель с устаревшим браузером заражается сам, без скачивания файлов. Эти наборы рассчитаны на известные, давно исправленные дыры, поэтому актуальный браузер защищает лучше всего.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
эксплойтуязвимостикибербезопасность

Часто задаваемые вопросы

Читайте также