Владимир Кононович, старший специалист по обратной разработке в отделе исследовательской лаборатории BI.ZONE и лауреат премии Киберпросвет, рассказал порталу Cyber Media о своем опыте в аппаратном реверс-инжиниринге, его специфике и отличиях от обратной разработки вредоносных программ.
Cyber Media: Какими задачами занимается специалист по обратной разработке в ИБ-компании?
Владимир Кононович: Даже в пределах одной компании специалисты по обратной разработке могут выполнять совершенно разные, никак не связанные друг с другом задачи. Например, одни исследуют вредоносное ПО и обучают производимый компанией продукт новым правилам детектирования и реагирования на обнаруженные угрозы.
Другие могут вообще не сталкиваться с ВПО, а работать с промышленными устройствами. Такие специалисты разбираются в прошивках и огромных SCADA-системах — вредоносов там, как правило, не бывает, при анализе файла не нужно беспокоиться, что он заразит рабочий компьютер. Поэтому здесь никто и думать не будет о том, чтобы из предосторожности запускать какие-то файлы только в песочнице.
Третьи могут заниматься, например, исключительно банковскими системами — у них тоже своя специфика. С одной стороны, банковское ПО не может быть вредоносным, поэтому не требует запуска в защищенной среде. С другой — при его анализе всегда нужно держать в уме гипотетическую возможность попадания такого ПО в руки злоумышленника, а значит, обращать внимание на такие вещи, которые могут помочь преступнику получить админские права или доступ к важным системам.
Ну и отдельно я бы хотел выделить ребят, занимающихся аппаратной безопасностью: оценкой защищенности банкоматов, платежных терминалов, IoT-устройств и так далее. Сюда входит физическое изучение самого «железа» и проверка механизмов безопасности, которые в нем реализованы. Именно аппаратной безопасности я посвящаю все свое рабочее время.
Cyber Media: Раз уж зашла речь об аппаратном реверс-инжиниринге, то в чем его специфика?
Владимир Кононович: Чтобы ответить на этот вопрос, я приведу в пример другое направление реверс-инжиниринга, где мне довелось поработать — антивирусное ПО. А потом уже и о своей работе расскажу, пусть каждый решит сам, что ему интереснее.
Когда работаешь с вредоносным ПО, рано или поздно начинаешь замечать некоторое однообразие: вот очередная модификация давно известного алгоритма скачивания файла, вот чуть измененные методы обхода детектирования, сокрытия в системе, подмены буфера обмена. Изредка попадаются интересные образцы, которые используют кем-то найденную новую уязвимость, но такого крайне мало. И тогда работа становится рутиной.
Чего нельзя сказать о работе специалиста по реверс-инжинирингу физических устройств. Каждый раз это абсолютно разные «железки», с иным центральным процессором, иными подходами к защите данных, защите исполняемого кода (прошивки) от обратной разработки. Чаще всего по устройству не получается найти полезную документацию, описание алгоритмов работы и т. п. Твои самые близкие друзья на время проекта — это паяльник, микроскоп, куча проводков разной степени тонкости, программаторы и много чего еще, что ты будешь пытаться применить в первый раз. И, конечно же, декомпиляторы, дизассемблеры, отладчики — программы, без которых никуда в моей работе.
С вредоносным ПО видно, как кто-то использует уязвимости, твой «детект» — еще одна строчка в антивирусной базе. В случае «железок» ты сам ищешь уязвимости, сам сообщаешь разработчикам, сам помогаешь исправить. Твои находки могут пригодиться таким же специалистам, как ты, или стать замечательным материалом для публичных выступлений и статей (конечно, с учетом NDA и соглашений об ответственном разглашении).
Cyber Media: Были ли в Вашей практике какие-то интересные находки при работе с распространенными устройствами?
Владимир Кононович: Пожалуй, самое интересное, с чем мне доводилось работать, это банкоматы различных банков. К их защите по понятным причинам особенно высокие требования, поэтому поиск недочетов в безопасности превращается в настоящий квест.
Кое-что нам с коллегой удалось обнаружить: это были уязвимости, позволявшие выводить денежные средства, просто подключившись в нужном месте к банкомату с ноутбука. К тому же мне особенно нравилась полная противоположность нашего подхода подходу «малварщиков» и их известной разработке Cutlet Maker. Мы не писали вредоносное ПО, не перехватывали клавиши. Мы просто подключались к банкомату и в нужной последовательности отправляли необходимые команды непосредственно «железке», которая делает выдачу.
После такого не остается никаких цифровых следов, подошел — снял — ушел. Конечно, все в рамках тестовых лабораторий банков-заказчиков. Самым приятным моментом было жужжание банкомата, который по твоей команде только что выдал тебе пачку «фантиков». И, конечно, радуешься, когда по итогам твоего исследования найденные уязвимости устраняют и усиливают защиту. То, что сейчас у большинства банков банкоматы защищены на очень высоком уровне — во многом результат работы таких вот команд.
Cyber Media: Какие специфические знания могут понадобиться в случае с аппаратным реверс-инжинирингом?
Владимир Кононович: Специфических знаний в моей работе требуется очень много и самых разных. И это не только навык пайки, умение отличать конденсатор от резистора, а транзистор — от микросхемы памяти. Нужны еще и навыки обратной разработки ПО (желательно не только EXE/DLL), опыт программирования на C/C++/Python/Assembler, понимание множества протоколов передачи данных и т. п.
Но хочу вас успокоить: всему можно научиться самостоятельно. Только одному навыку научиться нельзя, хоть это и самый необходимый навык реверс-инженера: усидчивость. Без нее в профессии никуда.
Нажимая на кнопку, я даю Согласие на обработку персональных данных в соответствии с Политикой обработки.
Зарегистрироваться