Эксплойт
Эксплойт (англ. exploit, от англ. to exploit — «использовать, эксплуатировать») — в электронной обработке данных систематическая возможность использования уязвимостей, возникающих в процессе разработки программного обеспечения. С помощью программного кода эксплойты используют уязвимости и ошибки программ (или целых систем) — чаще всего для получения доступа к ресурсам, проникновения в компьютерную систему или её нарушения. Под Zero-Day-эксплойтом (англ. zero-day exploit) понимают эксплойт, использующий уязвимость, для которой ещё не выпущено исправления (патча) со стороны производителя.
Эксплойт может быть разработан и документирован с целью демонстрации уязвимости. Это позволяет производителям ПО быстрее выявлять и устранять уязвимости. Нередко саму текстовую или техническую публикацию эксплойта также называют эксплойтом.
Эксплойты нередко используют тот факт, что компьютеры с архитектурой фон Неймана — а это большинство персональных и офисных ПК — не отделяют программный код от пользовательских данных. Например, при переполнении буфера код злоумышленника записывается в специальную область памяти, что позволяет изменить ход выполнения приложения. Другой вариант — атака с использованием форматной строки, когда ввод пользователя без фильтрации попадает в функции форматирования, такие как printf(). Злоумышленник может выполнить собственный код, который, например, предоставляет оболочку с полномочиями атакованного приложения.
Локальные эксплойты
Локальные эксплойты могут активироваться при открытии на первый взгляд безвредных файлов (например, офисных документов), если связанная с этим типом файлов программа содержит уязвимость из-за ошибочной или некорректной обработки данных. Обычно эксплойт (например, в файле PDF[1][2][3] или как макрос в файле Word или Excel) пытается использовать уязвимость приложения, с помощью которого файл открывается, чтобы повысить права доступа и выполнить вредоносный код в системы. Основное действие, выполняемое эксплойтом, называется payload (англ. — «полезная нагрузка»). Во многих фреймворках эксплойтов (например, Metasploit) payload можно задавать отдельно, хотя он может быть встроен непосредственно в эксплойт.
Удалённые эксплойты
Активной формой эксплойтов являются атаки из Интернета с использованием специально сформированных пакетов или потоков данных против уязвимостей сетевого ПО. Такие эксплойты называют также удалёнными (remote exploits).
DoS-эксплойты
Часто первыми опубликованными для обнаружившейся уязвимости становятся так называемые DoS-эксплойты (Denial of Service), которые вызывают перегрузку уязвляемого приложения, но не дают возможности выполнения стороннего кода или повышения прав.
Эксплойты выполнения команд
Эксплойты для выполнения команд (command execution exploits) стоят тем, что позволяют злоумышленнику управлять выполнением программного кода на целевой системе. Для успеха атаки автор эксплойта должен знать особенности организации памяти целевого приложения, что возможно благодаря открытым исходным кодам или экспериментам. Код размещается таким образом, чтобы гарантировать его выполнение. Такие эксплойты особенно опасны, так как использующиеся ими приложения часто обладают высокими системными правами, которые автоматически передаются коду злоумышленника.
Эксплойты SQL-инъекций
Эксплойты, использующие SQL-инъекции, представляют собой особый класс эксплойтов и наиболее часто используются против веб-приложений, взаимодействующих с SQL-базами данных, поскольку такие приложения доступны через Интернет, но в целом угроза сохраняется для любого ПО с доступом к SQL-базам[4]. Атаки строятся таким образом, что промежуточный слой приложения ошибочно возвращает или изменяет данные, к которым не должен был предоставлять доступ. Например, форма логина может обрабатывать специально созданный ввод, чтобы допустить неавторизованного пользователя или получить сведения вроде паролей/адресов электронной почты всех зарегистрированных пользователей[5]. Если вводимые значения не проходят фильтрацию (например, не проверяется отсутствие SQL-команд), возникает уязвимость SQL-инъекции[6].
Примеры
- Через уязвимость типа SQL-инъекции в октябре 2014 года была получена возможность доступа к сети Playstation Network компании Sony и к данным её клиентов[7].
- Известная блог-платформа и CMS WordPress была уязвима для SQL-инъекции через плагин Analytics Slimstat, как показал эксперт Марк-Александр Монпа в феврале 2015 года. Под угрозой оказалось свыше миллиона веб-сайтов, которые могли быть захвачены хакерами[8].
Zero-Day-эксплойты
Zero-Day-эксплойтом называют эксплойт, который применяется до выпуска патча к уязвимости. Разработчики в этом случае не имеют времени («ноль дней», англ. zero day), чтобы устранить уязвимость и защитить пользователей. Если обнаруживший уязвимость предпочитает не сообщать о ней производителю ПО, а разрабатывает эксплойт для её эксплуатации, уязвимость ПО может быть раскрыта лишь спустя долгое время после первых атак[9]. Хакеры часто хранят такие эксплойты в тайне, чтобы эксплуатировать уязвимость дольше. За пределами публичного пространства Zero-Day-эксплойты торгуются среди хакеров и могут продаваться компаниям-производителям за крупные суммы[10]. С 2012 по 2018 год цены на Zero-Day-эксплойты увеличились примерно в 10 раз[11]. С ростом подготовки к наступательным кибервойнам и вовлечённости государства отдельные государственные и частные организации стремятся знать об эксплойтах заранее, чтобы либо своевременно закрывать уязвимости патчами, либо использовать эксплойты для атаки на враждебные системы[12].
В качестве превентивной меры эксперты пытаются выявлять уязвимости заранее и информировать об этом производителей. Однако это иногда вызывает критику, поскольку такие проверки могут нарушать законы или лицензионные правила производителей[13].
Примеры
- С ростом сложности ПО и увеличением цен Zero-Day-эксплойты встречаются всё чаще. В августе 2012 года вышел эксплойт[14], позволяющий отключить Security-Manager Java, что позволяло запускать любые программы[15].
- Почти все версии Windows в октябре 2014 были затронуты Zero-Day-уязвимостью в Microsoft Office[16].
- В ноябре 2014 года появились сведения, что BND закупает Zero-Day-эксплойты для перехвата SSL-шифрования. За рабочие Zero-Day-эксплойты для популярных продуктов (Internet Explorer, Flash, Android, iOS) предлагалось до 100 000 долларов. Предполагается, что по проекту Swop в 2015 году на закупку было выделено до 4,5 млн евро[17].
- Рабочая группа «Защита данных и ИТ-безопасность» Общество по информатике критиковала, что BSI не обязано раскрывать собранные Zero-Day-эксплойты, что оставляет бизнес и частных лиц беззащитными перед атаками, создавая потенциальные убытки в миллиарды евро[18].
- В 2019 году Google опубликовала общедоступный перечень всех известных с 2014 года публичных Zero-Day-эксплойтов (проект Zero)[19].
Противодействие
Часто в качестве противодействия упоминают защиту памяти, однако замороженная память может быть считана разными программами. Также IDS позволяет фиксировать атаку, а IPS — предотвращать, используя существующие методы, но это не защищает от эксплойтов, вызванных нераспознанными, системными ошибками. Корень проблемы — некорректная разработка (например, вследствие висячих указателей), а также архитектурные изъяны системы, их трудно выявить.
Единственным решением было бы полностью предотвращать уязвимости ещё на стадии проектирования, но это практически недостижимо. Управляемый код даёт некоторую защиту — например, эффективно предотвращает переполнение буфера, однако это лишь частичное решение. Современные сложные системы, включающие компоненты разных производителей, состоят из множества слоёв, что существенно затрудняет поиск уязвимостей даже на стадии эксплуатации, не говоря уже о разработке. Особенно важно это для критически значимых систем — автомобильной, железнодорожной, авиационной и морской промышленности, где эксплуатация уязвимостей может поставить под угрозу жизни людей, так как любое ПО (обычно в виде прошивки) принципиально уязвимо для атак.
Примеры
- На конференции Black Hat в 2014 году изучалась возможность взлома 21 современной модели автомобиля. Наиболее уязвимыми признаны Bluetooth-интерфейсы, радиоканалы центрального замка, сигнализации, датчики давления в шинах, интернет-подключения и инфотейнмент приложения; было установлено, что существует риск дистанционного захвата управления автомобилем[20].
- Исследования Black Hat показали, что взлом автомобилей не только теория: экспертам Чарли Миллеру и Крису Валасеку удалось получить удалённый доступ к Jeep Cherokee через уязвимость в развлекательной системе машины. Из удалённого доступа можно было управлять тормозами, акселерацией, дверями, климат-контролем и стеклоочистителями; в режиме заднего хода удалось дистанционно повернуть руль. Местоположение автомобиля также возможно определить без согласия владельца. Данная уязвимость была устранена обновлением, которое водитель должен был установить через USB-накопитель или обратившись в сервисный центр[21].
Примечания
- ↑ Торстен Гольц. Tatort Internet: PDF mit Zeitbombe (нем.). Heise online (20 июля 2010). Дата обращения: 14 августа 2024. Архивировано 23 января 2025 года.
- ↑ PDF Exploit для Adobe Reader (англ.). Pastie (25 февраля 2013). Дата обращения: 14 августа 2024. Архивировано 6 января 2014 года.
- ↑ Анализ эксплойта (англ.). virustotal.com (16 февраля 2013). Дата обращения: 14 августа 2024. Архивировано 23 января 2025 года.
- ↑ SQL Injection (нем.). PHP.net. Дата обращения: 19 августа 2011. Архивировано 19 сентября 2025 года.
- ↑ Юрген Шмидт. Заметный рост атак SQL-инъекций (нем.). Heise Security (24 июля 2012). Дата обращения: 14 августа 2024. Архивировано 23 января 2025 года.
- ↑ Даниэль Бахфельд. Giftspritze (нем.). Heise Security (6 января 2004). Дата обращения: 14 августа 2024. Архивировано 23 января 2025 года.
- ↑ Ханно Бёк. SQL-инъекция: уязвимость позволила получить доступ к данным клиентов Sony (нем.). Golem.de (30 октября 2014). Дата обращения: 14 января 2015. Архивировано 22 августа 2025 года.
- ↑ Бьёрн Грайф. Более миллиона сайтов WordPress под угрозой из-за SQL-инъекции (нем.). ZDNet (25 февраля 2015). Дата обращения: 18 ноября 2015. Архивировано 20 мая 2025 года.
- ↑ Zero-Day-эксплойт (нем.). Viruslist.com. Дата обращения: 18 ноября 2011. Архивировано 2 февраля 2012 года.
- ↑ Чарльз Миллер. The Legitimate Vulnerability Market: The Secretive World of 0-day Exploit Sales (англ.). Independent Security Evaluators (28 февраля 2007). Дата обращения: 18 ноября 2011. Архивировано 3 марта 2025 года.
- ↑ Патрик Бёйт. Торговля уязвимостями: идеальный взлом iPhone стоит два миллиона долларов (нем.). spiegel.de (10 февраля 2018). Дата обращения: 14 августа 2024. Архивировано 3 сентября 2025 года.
- ↑ Том Саймонит. Welcome to the Malware-Industrial Complex (англ.). MIT Technology Review (13 февраля 2013). Дата обращения: 19 ноября 2022. Архивировано 10 августа 2020 года.
- ↑ Рональд Айкенберг. Metasploit объявляет награду за эксплойты (нем.). Heise online (15 июня 2011). Дата обращения: 14 августа 2024. Архивировано 23 января 2025 года.
- ↑ CVE-2012-XXXX Java 0day. pastie.org (27 августа 2012). Дата обращения: 14 августа 2024. Архивировано 17 февраля 2013 года.
- ↑ Рональд Айкенберг. Java-0-Day под микроскопом (нем.). Heise Security (28 августа 2012). Дата обращения: 14 августа 2024. Архивировано 3 декабря 2024 года.
- ↑ Рональд Айкенберг. Zero-Day-уязвимость в Windows (нем.). Heise Security (22 октября 2014). Дата обращения: 14 августа 2024. Архивировано 23 января 2025 года.
- ↑ Юрген Шмидт, Детлеф Борчерс. SSL под угрозой перехвата: критика планов BND по Zero-Day-эксплойтам (нем.). Heise Security (10 ноября 2014). Дата обращения: 14 августа 2024. Архивировано 4 февраля 2025 года.
- ↑ Корнелия Винтер. Закон по ИТ-безопасности создаёт неопределённость (нем.). gi.de (18 ноября 2014). Дата обращения: 19 ноября 2022. Архивировано 23 января 2025 года.
- ↑ 0day In the Wild. Google Project Zero (15 мая 2019). Дата обращения: 14 августа 2024. Архивировано 20 мая 2019 года.
- ↑ Брайан Доногью. Black Hat: атаки на самолёты, поезда и автомобили (нем.). Kaspersky lab daily. Дата обращения: 25 ноября 2014. Архивировано 11 сентября 2025 года.
- ↑ Рональд Айкенберг. Хакеры управляют Jeep Cherokee дистанционно (нем.). Heise Security (22 июля 2015). Дата обращения: 14 августа 2024. Архивировано 22 октября 2025 года.
Ссылки
- Что такое атака Zero-Day? Определение и пояснения (нем.). Kaspersky.de (28 мая 2021). Дата обращения: 6 августа 2024.
- Project Zero на google.com
- Аннабелль Брокхюес, Фелицитас Бёзелагер. Zero Day in Südwestfalen (1/5) — Hackeralarm bei Nacht (нем.). Deutschlandfunk — «Hintergrund» (17 июня 2024). Дата обращения: 6 августа 2024.
- Zero Day in Südwestfalen (2/5) — Bürgerservice down (нем.). Deutschlandfunk — «Hintergrund» (18 июня 2024). Дата обращения: 6 августа 2024.
- Zero Day in Südwestfalen (3/5) — Cyberspur ins Ausland (нем.). Deutschlandfunk — «Hintergrund» (19 июня 2024). Дата обращения: 6 августа 2024.
- Zero Day in Südwestfalen (4/5) — Digitale Trümмерarbeit im Amt (нем.). Deutschlandfunk — «Hintergrund» (20 июня 2024). Дата обращения: 6 августа 2024.
- Zero Day in Südwestfalen (5/5) — Rathäuser in Gefahr (нем.). Deutschlandfunk — «Hintergrund» (18 июня 2024). Дата обращения: 6 августа 2024.