Что такое эксплойт: виды, 0-day и защита
Проверено экспертной редакцией SecRadar · по первоисточникам ФСТЭК / ФСБ / Банка России
Эксплойт — это код, скрипт или последовательность действий, которые используют конкретную уязвимость в программном или аппаратном обеспечении, чтобы заставить систему сделать то, что не предусмотрел разработчик. Материал разводит эксплойт, уязвимость, вредоносное ПО и payload, показывает основные виды эксплойтов и их жизненный цикл от раскрытия уязвимости до патча, отдельно разбирает эксплойты нулевого дня и объясняет, какими классами средств защиты закрывается риск на каждом этапе.
Кратко
- Что это
- Код или техника, которые используют конкретную уязвимость для непредусмотренных разработчиком действий.
- Vs уязвимость
- Уязвимость — сам дефект в коде. Эксплойт — конкретный инструмент, который этот дефект использует.
- Vs вредоносное ПО
- Эксплойт даёт первоначальный доступ, вредоносное ПО — то, что делает систему после проникновения.
- Vs payload
- Payload — полезная нагрузка, которую эксплойт доставляет и запускает после успешной эксплуатации.
- Виды
- По типу уязвимости (RCE, LPE, переполнение буфера, SQLi/XSS), по известности (0-day / n-day), по доступу (remote / local), цепочки (chaining).
- 0-day
- Эксплойт под уязвимость без патча — самая дорогая и опасная категория, отсутствует защита по сигнатурам.
- Как защититься
- Управление уязвимостями и патч-менеджмент, EDR, песочница, WAF для веб-эксплойтов, безопасная разработка (РБПО).
Что такое эксплойт
Эксплойт — это код, скрипт или последовательность действий, которые используют конкретную уязвимость в программном или аппаратном обеспечении для выполнения непредусмотренных разработчиком действий: выполнения произвольного кода, повышения привилегий, обхода аутентификации или отказа в обслуживании. Без самой уязвимости эксплойт бесполезен — это инструмент, «заточенный» под одну конкретную брешь или небольшой класс похожих дефектов, а не универсальная отмычка.
Слово «эксплойт» в ИБ обозначает и глагол (эксплуатировать уязвимость, то есть использовать её на практике), и существительное (конкретный файл, скрипт или набор команд, который эту эксплуатацию выполняет). Эксплойт может существовать в виде отдельного самостоятельного файла, встроенного модуля внутри более крупного инструмента атаки или строки данных, которая ничем не отличается от обычного сетевого запроса, кроме специально сформированного содержимого, которое ломает логику обработки на стороне цели.
В обиходе термин часто путают с тремя соседними понятиями, хотя каждое из них описывает свою часть цепочки атаки:
Уязвимость дефект
Сама ошибка или недочёт в коде, конфигурации или логике программы — например, отсутствие проверки длины входных данных. Подробнее в материале об уязвимости нулевого дня.
Эксплойт инструмент
Конкретный код или техника, которые превращают теоретический дефект в практический результат — выполнение кода, повышение привилегий, обход защиты.
Вредоносное ПО полезная функция
Программа с более широкой и долгоиграющей задачей — шифрование файлов, кража данных, скрытое управление системой. Эксплойт часто лишь открывает ей дверь. Подробнее — виды вредоносного ПО.
Payload полезная нагрузка
Код, который эксплойт доставляет и запускает уже после успешной эксплуатации: открытие обратного соединения, установка бэкдора, загрузка следующего этапа атаки.
Виды эксплойтов
Эксплойты классифицируют по нескольким независимым признакам сразу: по типу уязвимости, которую они используют, по тому, известна ли уязвимость публично, по способу доступа к цели и по тому, применяется ли эксплойт в одиночку или в связке с другими. Один и тот же эксплойт обычно попадает сразу в несколько категорий — например, remote RCE-эксплойт под известную (не 0-day) уязвимость веб-сервера.
↔ таблицу можно прокрутить вбок
| Признак | Категория | Что означает |
|---|---|---|
| По типу уязвимости | Переполнение буфера (buffer overflow) | Программа записывает данные за границу выделенной памяти, что позволяет перезаписать соседние области и выполнить свой код |
| RCE (Remote Code Execution) | Позволяет выполнить произвольный код на удалённой системе — как правило, самая тяжёлая по последствиям категория | |
| LPE (Local Privilege Escalation) | Повышает привилегии уже полученной локальной учётной записи до уровня администратора или системы | |
| SQLi / XSS-эксплойты | Используют недостатки обработки пользовательского ввода в веб-приложении — подробнее в материале об SQL-инъекции | |
| По известности | Known / n-day | Уязвимость публично раскрыта, для неё обычно уже есть патч и запись CVE |
| 0-day | Уязвимость ещё не известна разработчику, патча не существует — разбор ниже | |
| По способу доступа | Remote | Эксплуатация выполняется удалённо, через сеть, без физического или предварительного локального доступа к системе |
| Local | Требует, чтобы у атакующего уже был какой-то доступ к системе (учётная запись, сессия), который эксплойт затем расширяет |
Отдельная категория — эксплойт-цепочки (exploit chaining): несколько эксплойтов применяются последовательно, потому что ни один из них по отдельности не даёт нужного результата. Типичная схема — remote-эксплойт получает первоначальный, но ограниченный доступ к системе (например, от имени низкопривилегированного веб-сервиса), а затем local LPE-эксплойт повышает эти права до администратора или системной учётной записи.
Именно поэтому оценка риска отдельно взятой уязвимости средней тяжести может быть обманчивой: в цепочке с другой уязвимостью она способна дать полный контроль над системой.
Эксплойт нулевого дня (0-day exploit)
Эксплойт нулевого дня — это эксплойт под уязвимость, о которой ещё не знает разработчик затронутого продукта и для которой поэтому физически не существует патча. Он опаснее обычного эксплойта по одной причине: против него не работает сигнатурная защита и не помогает своевременная установка обновлений — обновления просто ещё нет. Подробный разбор термина, жизненного цикла и того, кто использует такие уязвимости, — в материале «Уязвимость нулевого дня».
Разработка рабочего 0-day-эксплойта под сложную уязвимость — дорогая инженерная задача, поэтому вокруг таких эксплойтов сложился отдельный коммерческий рынок. На нём исторически работали открытые брокеры эксплойтов: например, компания Zerodium с 2015 года публиковала на своём сайте прайс-лист на покупку рабочих 0-day-эксплойтов под популярные платформы и приложения.
В начале 2025 года компания фактически прекратила публичную деятельность — сайт zerodium.com сведён к странице с контактным email и PGP-ключом, актуального прайс-листа на нём больше нет (проверено на дату публикации).
Три смежных термина стоит различать: 0-day-эксплойт — под ещё нераскрытую уязвимость; 1-day-эксплойт — под уязвимость, для которой патч только что вышел (счёт идёт на дни, пока не все успели обновиться); n-day-эксплойт — под давно известную и патченную уязвимость, которая остаётся рабочей только против систем, где обновление так и не установили.
На практике именно n-day-эксплуатация даёт основной массовый ущерб, потому что дешевле и доступнее 0-day, а незапатченных систем в любой момент времени достаточно много — это обобщение по открытым отраслевым отчётам (Verizon DBIR, Mandiant M-Trends), стабильно фиксирующим преобладание известных уязвимостей над 0-day в реальных атаках.
Жизненный цикл эксплойта и exploit kits
Эксплойт проходит путь от раскрытия уязвимости через proof-of-concept и «вооружение» до реальной эксплуатации и последующего патча — на каждой стадии риск для организаций разный, и часть этого пути автоматизируют exploit kits, наборы для массовой эксплуатации сразу нескольких уязвимостей.
Раскрытие уязвимости
Дефект находит исследователь, вендор или злоумышленник. Раскрытие бывает ответственным (координированным с вендором, с отсрочкой до патча) или публичным и немедленным.
Proof-of-Concept (PoC)
Публикуется демонстрационный код, который доказывает саму возможность эксплуатации, но обычно не пригоден для атаки «из коробки» — требует доработки.
Weaponization
PoC превращается в рабочий, надёжный эксплойт: добавляется обход защитных механизмов, доставка payload, устойчивость к разным версиям и конфигурациям цели.
Эксплуатация
Эксплойт применяется против реальных целей — точечно (одна организация) или массово, часто через автоматизированные exploit kits.
Патч
Вендор выпускает исправление, уязвимости присваивается CVE и (для российских систем) запись в БДУ ФСТЭК. Риск не исчезает — эксплойт остаётся рабочим против всех, кто патч не установил.
Exploit kits — это готовые наборы, которые бандлируют эксплойты сразу под несколько известных уязвимостей браузеров, плагинов и их компонентов и автоматически подбирают подходящий эксплойт под конкретную жертву при заходе на заражённую или вредоносную страницу (drive-by download). Комплект избавляет атакующего от необходимости разбираться в деталях каждой уязвимости — достаточно раз в обновлении набора получить новый рабочий эксплойт.
Два случая из практики показывают, как быстро уязвимость проходит этот путь и какой ущерб наносит на разных стадиях. Эксплойт EternalBlue, разработанный для уязвимости в протоколе SMBv1 (устранена обновлением Microsoft MS17-010, ключевая уязвимость получила идентификатор CVE-2017-0144), стал публично известен после утечки инструментария группы Shadow Brokers в 2017 году; уже после выхода патча его использовала эпидемия шифровальщика WannaCry — характерный пример того, что основной ущерб нанесла не сама 0-day-стадия, а последующая n-day-эксплуатация систем без обновлений.
Уязвимость Log4Shell (CVE-2021-44228) в библиотеке Apache Log4j стала публично известна 9–10 декабря 2021 года; патч (Log4j 2.15.0) к этому моменту уже вышел — 6 декабря 2021 года, — но массовая эксплуатация по всему интернету всё равно началась практически сразу после публикации, из-за огромного числа систем с этой библиотекой и разной скорости обновления.
Как защититься от эксплойтов
Против эксплойтов не существует одной универсальной меры — защита строится на нескольких независимых рубежах: закрыть уязвимость патчем до появления эксплойта, поймать попытку эксплуатации по поведению, если патча ещё нет, и сократить число уязвимостей, которые вообще можно эксплуатировать.
- Управление уязвимостями и патч-менеджмент. VM-системы инвентаризируют активы, сканируют их на известные уязвимости и приоритизируют устранение по критичности и факту наличия рабочего эксплойта — это закрывает риск n-day-эксплуатации, на которую приходится основной массовый ущерб.
- Поведенческое обнаружение. EDR/XDR следит не за сигнатурой конкретного эксплойта, а за подозрительным поведением процесса — попыткой повышения привилегий, нетипичной инъекцией кода, — и способен заметить эксплуатацию неизвестной уязвимости по её действиям.
- Песочница. Песочница запускает подозрительные файлы и вложения в изолированной среде и проверяет их реальное поведение до того, как они попадут в рабочую инфраструктуру — рубеж, отдельный от EDR и полезный именно на уровне доставки эксплойта.
- WAF для веб-эксплойтов. WAF блокирует известные паттерны SQLi, XSS и других веб-эксплойтов на уровне HTTP-трафика, а до установки официального патча может работать как виртуальный патчинг конкретной уязвимости веб-приложения.
- Безопасная разработка. Практики разработки безопасного программного обеспечения (РБПО) — статический и динамический анализ кода, ревью, тестирование на проникновение — снижают число уязвимостей, которые в принципе попадают в продакшн и которые впоследствии можно эксплуатировать.
Источником сведений об уже известных уязвимостях и связанных с ними эксплойтах служат открытые реестры: международная система идентификаторов CVE и база NVD (National Vulnerability Database) ведения NIST — а для российских ГИС, ИСПДн и объектов КИИ также банк данных угроз безопасности информации (БДУ) ФСТЭК России, который используется при построении модели угроз.
От угрозы к защите
Каждому этапу жизненного цикла эксплойта соответствует свой класс средств защиты — от закрытия уязвимости до патча и до поведенческого обнаружения самой попытки эксплуатации, если патча ещё нет. Ниже — прямые ссылки на профильные классы СЗИ и связанные термины словаря.
Управление уязвимостями (VM) — инвентаризация, сканирование, приоритизация и контроль сроков устранения
EDR/XDR — поведенческое обнаружение попытки эксплуатации на конечной точке
Песочница — проверка поведения подозрительных файлов и вложений до попадания в инфраструктуру
WAF — блокировка известных паттернов SQLi/XSS-эксплуатации на уровне HTTP
Смежные термины словаря: уязвимость нулевого дня, виды вредоносного ПО, SQL-инъекция.
Частые вопросы
Что такое эксплойт простыми словами?
Чем эксплойт отличается от уязвимости?
Чем эксплойт отличается от вредоносного ПО?
Что такое эксплойт нулевого дня?
Что такое payload у эксплойта?
Как защититься от эксплойтов?
Словарь угроз на SecRadar
Разбор терминов и методов атак без вендорной привязки — что стоит за понятием, как оно связано со смежными угрозами и какие классы СЗИ закрывают конкретный риск.