Эксплойт

Экспло́йт (англ. exploit, эксплуатировать) — компьютерная программа, фрагмент программного кода или последовательность команд, использующие уязвимости в программном обеспечении и применяемые для проведения атаки на вычислительную систему. Целью атаки может быть как захват контроля над системой (повышение привилегий), так и нарушение её функционирования (DoS-атака). Вирус для уничтожения программ, игр, приложений.

Классификация

[править | править код]

В зависимости от метода получения доступа к уязвимому программному обеспечению эксплойты подразделяются на удалённые (англ. remote) и локальные (англ. local).

  • Удалённый эксплойт работает через сеть и использует уязвимость в защите без какого-либо предварительного доступа к уязвимой системе;
  • Локальный эксплойт запускается непосредственно в уязвимой системе, требуя предварительного доступа к ней. Обычно используется для получения взломщиком прав суперпользователя.

Атака эксплойта может быть нацелена на различные компоненты вычислительной системы — серверные приложения, клиентские приложения или модули операционной системы. Для использования серверной уязвимости эксплойту достаточно сформировать и послать серверу запрос, содержащий вредоносный код. Использовать уязвимость клиента немного сложнее — требуется убедить пользователя в необходимости подключения к поддельному серверу (перехода по ссылке в случае если уязвимый клиент является браузером).

Виды эксплойтов

[править | править код]

Эксплойты фактически предназначены для выполнения сторонних действий на уязвимой системе и могут быть разделены между собой следующим образом:

  1. Эксплойты для операционных систем.
  2. Эксплойты для прикладного ПО (музыкальные проигрыватели, офисные пакеты и т. д.).
  3. Эксплойты для браузеров (Internet Explorer, Mozilla Firefox, Opera и другие).
  4. Эксплойты для интернет-продуктов (IPB, WordPress, VBulletin, phpBB).
  5. Эксплойты для интернет-сайтов (facebook.com, hi5.com, livejournal.com).
  6. Другие эксплойты[1].

Под термином pivoting (англ. поворот) понимается метод, используемый тестировщиками компьютерной безопасности при тестах на проникновение,[2] который использует взломанную систему для атаки на другие системы в той же сети, чтобы избежать ограничений, таких как конфигурации брандмауэра, которые могут запрещать прямой доступ ко всем машинам. Например, если злоумышленник взламывает веб-сервер в корпоративной сети, злоумышленник может затем использовать взломанный веб-сервер для атаки других систем в сети. Эти типы атак часто называют многоуровневыми.[3]

Как выглядит эксплойт?

[править | править код]

Эксплойт может распространяться в виде исходных текстов, исполняемых модулей или словесного описания использования уязвимости. Он может быть написан на любом языке программирования (наиболее часто использующиеся: C/C++, Perl, Python, PHP, HTML+JavaScript)[4].

Эксплойты могут быть классифицированы также по типу используемой ими уязвимости, такой как: переполнение буфера, внедрение SQL-кода, межсайтовый скриптинг, подделка межсайтовых запросов и т. д.

Актуальность

[править | править код]

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

После закрытия уязвимости производителем шанс успешного применения эксплойта начинает стремительно уменьшаться. Поэтому особой популярностью среди хакеров пользуются так называемые 0day-эксплойты, использующие недавно появившиеся уязвимости, которые ещё не стали общеизвестны[5].

Связки (набор эксплойтов, exploit kit)

[править | править код]

Связки эксплойтов представляют собой пакет эксплойтов сразу под несколько программ (версий) и/или под разные уязвимости в них. В последних версиях связок производится выбор эксплойта именно под конкретную программу пользователя.

В большинстве случаев эксплойт-киты применяются для атак, использующих уязвимости браузеров или их дополнений (частыми целями, к примеру, являются Java, Flash и PDF[6]).

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

Примечания

[править | править код]
  1. Эксплойт – что это, особенности распространения эксплойтов и примеры. ESET. Дата обращения: 24 июня 2022. Архивировано 14 июля 2022 года.
  2. Ric Messier. CEH v11 Certified Ethical Hacker Study Guide. — Sybex, 2021. — ISBN 978-1119800286. Архивная копия от 27 октября 2021 на Wayback Machine
  3. Metasploit Basics – Part 3: Pivoting and Interfaces. Digital Bond. Дата обращения: 25 октября 2021. Архивировано 26 октября 2010 года.
  4. ReanimatoR. Что такое эксплойт? xakepam.ru (22 августа 2008). Дата обращения: 31 августа 2009. Архивировано из оригинала 8 февраля 2012 года.
  5. Catherine Engelke. What is zero-day exploit? (англ.). SearchSecurity.com (4 июня 2007). Дата обращения: 31 августа 2009. Архивировано из оригинала 3 октября 2010 года.
  6. Trend Micro | Enterprise Cybersecurity Solutions. Дата обращения: 7 сентября 2016. Архивировано 6 августа 2016 года.