Это первый материал по «ИТ‑Пикнику», проходившему 2 сентября 2023 года. Будет отдельный обзорный материал мероприятия, а пока хочу представить интервью с руководителем направления исследований безопасности аппаратных решений компании Positive Technologies Алексеем Усановым. Осматривая стенды на «ИТ‑Пикнике», я заглянул на стенд Positive Technologies. Там проходила лекция, я заинтересовался темой и решил послушать. Лекция была посвящена реверс‑инжинирингу в информационной безопасности. Я раньше с темой сталкивался только в контексте создания игр. Когда энтузиасты делают клон игры, но у них нет исходников и советов от разработчиков, только внешний вид игры и примерные представления, на каком движке она была создана. Оказывается, в ИБ это довольно знаковая область. Немного подумав после лекции, я поймал Алексея Усанова и поговорил с ним на тему реверс‑инжиниринга в ИБ, кстати, оказалось, что он написал целую книгу об этом.
Для начала хотелось бы немного объяснить, что такое реверс‑инжиниринг. Реверс‑инжиниринг представляет собой исследование определённого готового устройства, программного обеспечения и документации, идущей к изучаемому объекту с целью понимания принципа его работы. Понятно, что многие, кто открыл это интервью, знаком с термином «обратное проектирование», но лучше уточнить. Надеюсь, интервью будет интересным. Приятного чтения!
Расскажите, пожалуйста, о реверс‑инжиниринге, что это такое?
Если дословно перевести реверс‑инжиниринг, то получится обратная разработка. Этот перевод очень хорошо отражает суть самого направления. При обычной разработке мы из каких‑то отдельных кирпичиков и блоков собираем что‑то цельное; неважно, это программа, устройство, какое‑то изделие. При обратной разработке наша задача — понять, из чего всё перечисленное было сделано. Мы берём что‑то цельное и пытаемся это разложить на кирпичики. Пример: нам важно понять техпроцесс, с помощью которого было произведено устройство. Нам интересно понять, из какого аппаратного обеспечения оно состоит. Кроме того, любое устройство состоит из прошивки и того программного обеспечения, которое на нём исполняется. ПО декомпилируем, разбираем, исследуем программу, нам важно понять, какие алгоритмы внутри этой программы находятся.
Я правильно, понимаю, что реверс‑инжиниринг не делится на аппаратную часть и на программную?
Реверс‑инжиниринг — это вообще один из методов проведения исследований. Фактически мы занимаемся исследованием, и обратное проектирование или реверс‑инжиниринг призваны показать, из чего состоит объект исследования. Поэтому не получится делить его на программный и аппаратный. Да, и в аппаратной и в программной части есть свои методы и инструменты, но основной подход проведения исследований, на мой взгляд, выглядит единым.
За что отвечает непосредственно ваша специализация в информационной безопасности с точки зрения реверс‑инжиниринга?
Непосредственно я занимаюсь исследованием безопасности аппаратных устройств. Однако надо понимать, что современные устройства — они сложные, представляют собой целые информационные системы сами в себе. Как я уже приводил пример раньше, в устройстве есть управляющий микропроцессор, есть прошивка и ПО, которое исполняется на самом устройстве, поэтому специализация всё равно размывается.
Насколько сложно взаимодействовать с вендорами, с производителями сейчас при нахождении каких‑то уязвимостей?
Взаимодействие с вендорами осталось таким же. Часть вендоров негативно воспринимает нахождение уязвимостей через реверс‑инжиниринг, но сейчас мы живём в эпоху, когда вендоры уже начинают понимать, что белые хакеры и реверс‑инженеры — это те люди, которые позволяют им улучшить свой продукт. Поэтому мы видим, что вендоры начинают участвовать в программах bug bounty. Если найдены ошибки, они ответственно разглашаются вендору, и у него есть время на их устранение. И когда происходит информирование, то все исследователи, нашедшие уязвимости, всегда готовы помочь и предложить какие‑то свои решения по их исправлению вендору. Вообще мой опыт говорит, что вендор скорее нормально реагирует на найденные ошибки и готов к конструктивному диалогу.
Бывает ли так, что к вам обращаются сами производители с просьбой проверить, насколько их устройства устойчивы к методам взлома реверс‑инжиниринга?
Да, многие вендоры сами приходят, у них есть осознание того, что аудит безопасности своих решений — это важный момент и делать его собственными силами зачастую очень сложно и не всегда корректно. Тут даже вопрос не о квалификации, а скорее о том, что проверять то, что сделал сам, не всегда правильно.. Ну и совсем банальное — глаз может «замылиться».
Насколько реверс‑инжиниринг востребован у хакеров и киберпреступников?
Здесь надо понимать, говорим ли мы про информационную систему в целом или про реверс‑инжиниринг чего‑то отдельного. Как ни странно, но всё ПО в основном взламывается посредством какого‑то реверс‑инжиниринга. Потому что если мы говорим про веб‑уязвимости, там тоже применяется обратное проектирование для поиска уязвимостей. По сути, реверс‑инжиниринг — это базовый метод поиска уязвимостей, и он применяется очень широко.
Скажите, а часто хакеры покупают устройство на вторичном рынке и потом обратным инжинирингом взламывают целые линейки этого оборудования?
Да, такое бывает и нередко, например, иногда производители оставляют секреты неизменными на протяжении нескольких поколений, и защита не улучшается. Или, например, взламывать какое‑то современное устройство может быть проблематично ввиду того, что используются какие‑то более современные фреймворки, обновлённые дистрибутивы, новые защищённые аппаратные микроконтроллеры или другие компоненты. Однако ключи шифрования могут быть такие же, как и пять лет назад, в похожем старом устройстве и получается, новое устройство возможно, взломать как старое, если ИБ‑специалисты до этого не провёл исследование старого устройства.
Часто ли это бывает, когда хакеры методом обратного инжиниринга восстанавливают, создают целые ИБ‑системы и потом уже пытаются взломать существующие?
Ну, наверное, такие кейсы могут быть, потому что ИБ‑системы фактически это информационные системы, которые состоят из большого количества исполняемых файлов, но я о таких ситуациях не слышал. И эти исполняемые файлы точно так же с помощью методов реверс‑инжиниринга можно исследовать, и поэтому с точки зрения самого процесса можно так искать уязвимости в каких‑то системах информационной безопасности.
Вы написали книгу о реверс‑инжиниринге? Как долго вы её писали?
Да. Месяцев восемь.
Что побудило написать именно книгу по реверс‑инжинирингу?
Я занимаюсь реверсом‑инжинирингом пятнадцать лет. И когда я начинал, доступ к информации был гораздо более затруднён, чем сейчас. Например, по специфике исследования встраиваемых систем информацию до сих пор сложно найти, и она очень разрознена. Да, большую часть информации можно найти, но нормальную подборку источников — очень тяжело. Я очень много занимался именно обучением людей и понимаю, что у меня есть что рассказать. Однако не было списка источников, про который я мог бы сказать, вот, возьмите, почитайте и поймёте, хотите ли вы этим заниматься дальше, интересен ли вам реверс‑инжиниринг. И как раз отсутствие такого списка в итоге трансформировалосьв желание передать какой‑то свой опыт, изложить его в максимально простом виде для тех людей, которые ещё не знают, что такое исследования встраиваемых систем. Поэтому, прочитав эту книгу, они смогут понять, интересно ли им это и где черпать информацию.
Эта книга больше какое‑то учебное пособие или научно‑популярная литература? Какими компетенциями надо обладать, чтобы ее прочитать?
Книга специально написана таким образом, чтобы даже читатель, не обладающий глубокими познаниями в реверс‑инжиниринге, в цифровой схемотехнике, смог из неё почерпнуть максимально большое количество полезной информации. Естественно, там есть разделы, требующие большего понимания предметной области, они нацелены на передачу знаний, которые тяжело где‑то найти. Но основная часть книги написана лёгким языком и будет понятна широкому кругу читателей.
Получается, в книгу вы вложили весь свой пятнадцатилетний опыт работы?
Скорее я вложил в неё ответы на те вопросы, на которые я в своё время сам искал ответы. В книге, естественно, не вся информация, необходимая для проведения исследований «железа». Однако это то, что в первую очередь будет интересовать людей, которые хотят разобраться в новой для себя теме.
Вы планируете продолжение книги или отход в сторону, в более глубинные знания?
Об этом я ещё не думал, но вы не первый человек, который задаёт мне этот вопрос. Поэтому я должен понять, что ещё могу полезного рассказать людям для того, чтобы это была не просто книга, а та, что принесёт им пользу. Что касается изданной книги, я уже задумываюсь о том, как можно дополнить и улучшить её, выпустить второе издание, но это точно не в ближайший год.
Возможно, я не до конца представил тему реверс‑инжиниринга. Однако надо понимать, что вопросы я придумывал во время лекции. И к тому же, разговор касался не всего реверс‑инжиниринга, а только его использования в информационной безопасности и хакинге. Поэтому вполне вероятно, что я продолжу разговор с другими специалистами по реверс‑инжинирингу, так как он используется не только в ИБ. Также я поразмышляю, какие ещё вопросы можно задать Алексею Усанову после прочтения его книги. И вполне вероятно, что будет вторая часть интервью по обратному проектированию. Рекомендую посмотреть запись выступления Алексея с «ИТ‑пикника» — «Как устроен мир вокруг нас: реверс‑инжиниринг embedded устройств». Оно небольшое, но довольно информативное.
Кстати, на другом мероприятии — OFFZone 2023 — другой специалист Positive Technologies вёл лекцию «Нет прошивки — есть ачивки. 15 уязвимостей и другие находки в ПЛК Mitsubishi FX5U». Эта лекция также была посвящена обратному проектированию в ИБ. Её тоже стоит посмотреть.
Кстати, книгу мне удалось достать, это было несложно, и Алексей мне её даже подписал. Такие вещи мне очень нравятся, потому что приятно получить автограф не просто автора, а «боевого» специалиста с большим опытом.