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