Обратный инжиниринг

Обратный инжиниринг в ИТ больше не считают ругательством


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

«Цифровые пираты» и этика бизнеса

Для большинства людей слова «обратный (реверсный) инжиниринг» несут лишь негативные ассоциации. Это не вполне справедливо. Важно понять две вещи. Во-первых, обратный инжиниринг не подразумевает прямого копирования устройства или программы. Его используют, чтобы понять принцип их работы, исследовать не прописанные в документации возможности. Он может вести к созданию аналога. Нередко на вполне законных основаниях.

Во-вторых, реверсный инжиниринг (RE) уже давно стал нормальной практикой для средних и небольших компаний, помогающей оставаться конкурентоспособными на рынке. Самые известные примеры, когда суд встал на сторону создателей аналога: эмуляция игровых консолей Sega Enterprises и Sony Computer Entertainment. Его активно применяют производители антивирусных программ, разбирая вредоносное ПО в шестнадцатиричных редакторах.

Обратный инжиниринг способствует технологическому развитию, если мы смотрим на этот процесс с точки зрения потребителя, и облегчает поиск и устранение угроз информационной безопасности.

Не случайно польза RE, к примеру, в США признается на государственном уровне. Осенью прошлого года регулятор убрал из списка исключений закона Digital Millennium Copyright Act несколько пунктов, по сути, разрешив частным разработчикам заниматься реверсным инжинирингом программных продуктов «с целью повышения их безопасности».

В развивающихся странах к обратному «вскрытию» относятся более чем лояльно. В Индии на этом построена практически вся фармацевтическая промышленность. Перечислять «достижения» китайских копирайтеров можно до бесконечности. Тайваньская ASUS вырвалась в лидеры рынка, во многом благодаря тому, что быстро научилась изготавливать более дешевые реплики CPU Intel, а затем и продукции HP, с которыми активно сотрудничала.

На сегодняшний день реверсный инжиниринг — отдельная специализация в ИТ. Существует огромное количество онлайн-курсов RE. В интернете выложена масса полезных ресурсов для изучения навыков обратного вскрытия ПО и «железа». Подобные списки можно найти здесь и здесь.

 

Темная сторона обратного инжиниринга

Не многие знают, но даже греческая цивилизация началась с банального пиратства. Позже историки назвали это нейтральным термином «колонизация». По схожему сценарию зарождалась индустрия полупроводников, когда копирование чипов было в порядке вещей. До середины 1980-х — начала 1990-х не существовало законодательной базы, защищающей производителей hardware и software от копирования их продукции.

Хрестоматийным примером обратного инжиниринга на более-менее законных основаниях считается история создания копии BIOS IBM компанией Phoenix Technologies Ltd. Для того чтобы избежать юридических последствий и уйти от практики топорного копирайта, здесь изобрели подход, позже названный «чистой комнатой» или «китайской стеной».

На первом этапе команда инженеров детально изучила BIOS IBM и описала все, что он делает, без ссылок на оригинальный код. Затем вторая команда программистов на основе этих спецификаций написала свой BIOS, функционировавший в точности, как указано в документации.

Метод чистой комнаты

Метод чистой комнаты

В СССР с 1969 года электротехническая промышленность практически полностью перешла на копирование западных образцов, когда была принята программа «Единая система ЭВМ». Изначально с ее помощью пытались решить чисто утилитарную задачу совместимости отечественных машин и ПО, выработки стандарта. За основу взяли систему IBM 360. Разобрали код и, конечном счете, решили скопировать все, плоть до очевидных ошибок.

С помощью оригинального масс-спектрометра с аргоновым травлением советские инженеры разбирали послойно любые микросхемы, получая точный состав процессоров и компьютерных плат IBM. В итоге процессоры всех серий стали точной копией Intel. Ходит легенда, что американские рабочие стали даже оставлять нецензурные послания на платах для своих российских коллег.

 

Польза реверсного инжиниринга в ИТ

Примеров обратного инжиниринга в индустрии ИТ великое множество. О самых известных случаях пиратства в ИТ можно почитать на сайте Quora. Компания AMD после 5 лет работы получила клон чипа Intel 80386 и смогла предложить его рынку по более низкой цене, потому что затраты на R&D у нее были в десятки раз меньше. Компания Marcan сумела взломать сенсорный игровой контроллер Microsoft Kinect за три часа.

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

Кроме того, лицензионные соглашения между правообладателем и пользователем, как правило, полностью исключают декoмпиляцию, дизассемблирование, реверс-инжиниринг и прочие «опасные» для бизнеса вещи.

На практике обратный инжиниринг в ИТ продолжают широко применять для решения различных задач. Далеко не всегда цель вскрытия — умышленно навредить производителю и создать точный аналог его продукта. Однако про «светлую сторону» реверсинга мы знаем гораздо меньше.

В 2014 году автор блога в журнале EE Times предложил отказаться использовать слова «реверсный инжиниринг» как ругательство. Многим технологическим компаниям RE приносил и продолжает приносить ощутимую пользу. Вот лишь несколько позитивных сторон применения обратного инжиниринга в ИТ:

  • Его можно использовать как инструмент обучения технического персонала.
  • Он помогает создавать доступные, конкурентные продукты (если не нарушать закон и применять правило «чистой комнаты»).
  • Находить не задокументированные производителем полезные свойства информационного продукта.
  • Повышать безопасность приобретенного «железа» и софта самостоятельно.

На последнем пункте стоит остановиться подробнее. Многие компании озабочены вопросом информационной безопасности. Самый простой способ обеспечить надежность инфраструктуры — использовать проверенные программные продукты и оборудование.

Обратный инжиниринг помогает выявлять уязвимости ПО и «железа» и настраивать систему безопасности под конкретные запросы компании. Здесь можно прочитать пример вскрытия IP-камеры, которое обнаружила бэкдор, позволяющий получить доступ к FTP-серверу, паролю Wi-Fi и административному интерфейсу устройства. Для корпоративного пользователя эта уязвимость представляет реальную угрозу. Минимальные изменения в системном файле решают проблему.

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

Материал оказался полезным? Поделитесь с друзьями: