Разбираемся, что такое эксплойты, как они попадают в систему и как специалисты по кибербезопасности предотвращают эксплуатацию уязвимостей.
Что такое эксплойт
Эксплойт (exploit) — это специальный код, скрипт или набор действий, который эксплуатирует уязвимости в программном обеспечении. С его помощью атакующие совершают нелегитимные действия — например, получают доступ к файлам, обходят ограничения или запускают вредоносное ПО.
Локальные эксплойты используют, когда атакующий уже имеет доступ к системе. Как правило, здесь главная задача злоумышленника — повысить привилегии и получить root-доступ к системе. Например, в старых версиях Windows через уязвимость в драйверах можно было получить административные права и доступ ко всем файлам.
Эксплойты, запущенные удаленно, наоборот, не требуют локального присутствия на устройстве. Они используются при атаках по сети — через фишинг, зараженные веб-сайты и приложения, уязвимые сетевые сервисы и так далее.
Эксплойты часто создают для уязвимостей нулевого дня (Zero-Day Vulnerability) — это уязвимости, о которых разработчики еще не знают, а следовательно, не придумали защиту от них. Хакеры находят эти уязвимости и специально создают под них эксплойты. По данным GTIG, в 2024 году было зафиксировано всего 75 уязвимостей нулевого дня. При этом 44% zero-day-атак пришлись на корпоративные системы и решения, а 60% уязвимостей нашли в сетевых и защитных устройствах.
Типичные уязвимости, которыми пользуются эксплойты
Use-After-Free
Эта уязвимость возникает, когда программа продолжает использовать участок памяти, который уже был освобожден. Например, такое может случиться, если объект удалили, но на него осталась ссылка. Хакер может занять это место и подложить туда вредоносные данные.
Чтобы атака сработала, злоумышленнику нужно понять, где именно в памяти находится нужная область. Для этого часто используют утечки адресов, хешей и токенов. С этой информацией хакер может вызвать нужные функции или собрать ROP-цепочку. Это такая техника, когда злоумышленник не внедряет свой код, а использует гаджеты — уже существующие участки кода в памяти с инструкцией ret.
Переполнение буфера (Buffer Overflow)
Эта ошибка возникает, когда в буфер записывается больше данных, чем он может вместить. Злоумышленник заранее размещает вредоносный код — обычно это оболочка или загрузчик вируса — на нужные участки памяти, а затем перезаписывает адрес возврата на эти участки. В итоге программа выполняет код.
Обычно Buffer Overflow возникает из-за функций в С/С++, у которых нет ограничения по размеру: strcpy, gets, sprintf. В основном эту ошибку находят в старом или легаси-софте.
Удаленное выполнение кода
Удаленное выполнение кода (Remote Code Execution) позволяет злоумышленнику запускать вредоносный скрипт без локального доступа к устройству. Чаще всего это происходит из-за ошибки в обработке входных данных: например, сайт просит ввести имя пользователя, но вместо этого хакер вводит строку с командой для удаления файлов. Если сайт не проверяет этот ввод, он может случайно передать эту команду серверу, и тот ее выполнит.
Похожие уязвимости часто возникают в REST API, CMS, бэкенд-приложениях и логирующих системах.
SQL-инъекции
SQL — это язык запросов для баз данных. Лазейка для хакеров появляется, когда такие запросы собираются небезопасным образом из пользовательского ввода. Таким образом злоумышленник может изменить структуру запроса, а затем обойти авторизацию и получить доступ к базам данных.
Простой пример: если приложение формирует запрос вроде SELECT * FROM users WHERE name = ‘$name’, и вместо имени передается строка admin’ OR ‘1’=’1, злоумышленник сможет проникнуть в систему без пароля.
Пакеты эксплойтов
Пакет эксплойтов (exploit kit) — это наборы из готовых эксплойтов, собранных в один инструмент. Они умеют автоматически определять уязвимости в системах, подбирать к ним эксплойты и запускать вредоносное ПО. Как правило, злоумышленники распространяют пакеты эксплойтов через фишинговые письма и взломанные сайты.
Самым популярным пакетом эксплойтов был Angler: он запускал атаки нулевого дня в системах Flash, Java и Silverlight, а также обходил защиту Microsoft. Эксперты считают, что Angler отвечал за 40% заражений с помощью эксплойт-китов в 2013–2016 годах и приносил авторам 34 млн долларов ежегодно — пока их не арестовали.
Как айтишники зарабатывают на поиске уязвимостей
Многие компании платят белым хакерам за обнаружение уязвимостей и проверку сценариев недопустимых событий — такие программы называются Bug Bounty.
В России багбаунти-рынок растет с каждым годом: если в 2022 году общая сумма выплат багхантерам на крупнейших платформах составляла 13 млн рублей, то в 2024 году сумма поднялась до 88 млн.
Рост прежде всего связан с большим дефицитом штатных ИБ-специалистов: в прошлом году количество вакансий увеличилось на 17–50%, а количество резюме, напротив, сократилось на 6%. Из-за этого компаниям все чаще приходится обращаться к багхантерам-фрилансерам.
Какие программы есть в России
- Standoff Bug Bounty — платформа для багхантеров, где собраны разные программы и конкурсы. Средняя выплата за одну уязвимость — 58 000 рублей. Некоторые компании готовы выплатить и крупные суммы: например, конкурс Positive dream hunting предлагает 60 млн рублей победителю.
- BI.ZONE Bug Bounty — аналогичная платформа. В 2024 году максимальная выплата составила 1,8 млн рублей, средняя — 44 000 рублей.
- Yandex Bug Bounty — программа по поиску уязвимостей в продуктах Яндекса. Средняя награда за отчет — 95 000 рублей. За новостями можно следить в их телеграм канале.
- VK Bug Bounty — нет лимита на максимальное вознаграждение, действует программа накопительных бонусов для тех, кто регулярно присылает отчеты.
- Контур — есть призы как для начинающих пентестеров, так и для опытных специалистов, которые ловят критические уязвимости. Награды варьируются от 5000 до 1 млн рублей.
Как защититься от эксплойтов
Стопроцентной защиты от эксплойтов нет: в конце концов, многие из них применяют для эксплуатации уязвимостей нулевого дня. Обычному пользователю стоит своевременно обновлять приложения, операционные системы, браузеры — и соблюдать базовую цифровую гигиену.
ИБ-специалисты стараются улучшать защиту систем и используют поведенческий анализ, чтобы распознать эксплойты и вовремя среагировать на атаки.
Коротко об эксплойтах
Эксплойты — это инструмент, с помощью которого хакеры эксплуатируют уязвимости. Чаще всего такие атаки строятся на распространенных уязвимостях вроде переполнения буфера или ошибок в обработке пользовательского ввода. Эксплойты также специально пишут под ранее неизвестные уязвимости — чтобы выявить их, компании создают конкурсные программы для багхантеров.
Заранее защититься от эксплойтов сложно, поэтому стоит вовремя обновлять системы и помнить о цифровой гигиене.