Mastodon Mastodon Mastodon Mastodon

Реверс-инжиниринг

Обновлено: · CyberSecureFox Editorial Team

Реверс-инжиниринг (обратная разработка) — анализ программ или устройств с целью понять, как они работают, без доступа к исходному коду и документации.

Как проводится реверс-инжиниринг

Аналитики обычно сочетают два подхода:

  • Статический анализ — изучение файла без запуска. Дизассемблеры и декомпиляторы IDA Pro, Ghidra (АНБ открыло её код в 2019 году) и Binary Ninja превращают машинный код в читаемый ассемблер или псевдо-C.
  • Динамический анализ — запуск программы под отладчиком (x64dbg, WinDbg, GDB) или в инструментированной среде с наблюдением за памятью, вызовами API и сетевым трафиком.

Реверс железа добавляет логические анализаторы и извлечение прошивок из микросхем памяти.

Зачем он нужен в безопасности

  • Анализ вредоносного ПО — исследователи разбирают вредоносное ПО, чтобы понять его возможности, извлечь индикаторы и написать правила обнаружения. Авторы вредоносов сопротивляются с помощью обфускации, упаковщиков и антиотладочных приёмов.
  • Поиск уязвимостей в закрытых продуктах — часто в рамках программ bug bounty.
  • Сравнение патчей (patch diffing) — сравнив программу до и после обновления, можно увидеть исправленную ошибку. Атакующие делают так же и за считаные дни создают эксплойт для необновлённых систем — поэтому так важно быстро ставить патчи.
  • Совместимость и аудит — проверка того, что на самом деле делает устройство или приложение с данными пользователей.

Правовые и этические аспекты

Во многих странах реверс-инжиниринг для исследований безопасности и обеспечения совместимости разрешён, но лицензионные соглашения и законы об авторском праве (например, американский DMCA) устанавливают ограничения. Найденные уязвимости исследователи обычно раскрывают скоординированно, вместе с производителем.

Синонимы:
обратная разработка, reverse engineering, реверсинг