Как стать автором
Обновить

Исследуем «вредоносную» флешку RJ45

Время на прочтение6 мин
Количество просмотров2K
Автор оригинала: Michał Zalewski

Обратная разработка аппаратного обеспечения бывает очень сложна — но иногда для неё может потребоваться только уютное кресло и Google Translate.

Просматривая заголовки, связанные с информационной безопасностью, следует исходить из того, что сообщения о распространённом саботаже, нарушающем цепи поставок обычно ложные. Нет, я не утверждаю, что атака такого рода не может произойти; просто подобные фокусы сложны, времязатратны и рискованны. К такому прибегаешь, только если других вариантов не осталось. Как правило, гораздо проще выкрасть учётные данные или заставить кого-нибудь скачать вредоносный файл.

Недавно юный предприниматель взбаламутил соцсети, заявив, что приобретённый им в Китае девайс для подключения Ethernet-to-USB сразу был начинён вредоносом, который «ускользал от виртуальных машин», «считывал клавиатурный ввод» и «использовал характерные русскоязычные элементы».

Считайте, что я этого не говорил.
Считайте, что я этого не говорил.

Эти откровения собрали миллионы просмотров, но детали проблемы выглядели весьма туманно. Автор поста продемонстрировал неоднозначный отчёт о сканировании из антивируса, сделанный в Crowdstrike Falcon, но пример казался насквозь фальшивым: бинарник представлял собой самоизвлекаемый EXE-файл, созданный при помощи 7-Zip. Это широко известный свободно распространяемый архиватор, разработанный Игорем Павловым. Те самые «характерные русскоязычные элементы» отсылали к национальности автора, все остальные детали в основном выглядели типично для самоизвлекаемых архивов, устанавливающих драйверы. Наконец, складывалось впечатление, что содержимое архива соответствует подписанному общедоступному драйверу 2.0.7.0 для чипа RJ45-to-USB, изготавливаемого шэньчженьской компанией CoreChips. В сопутствующем .inf-файле она также называется Corechip Semiconductor.

Признаки вредоноса

Противодействие обнаружению/неуловимость

Создаёт процесс в режиме останова (вероятно, для инъекции процесса)

Осведомлённость о среде выполнения

Читает ключ реестра, специфичный для виртуальной машины

Читает реестр для VMWare-специфичных артефактов

Входная выборка содержит известный фокус для обхода VM

Установка/долговременное сохранение

Сбрасывает системный драйвер

Записывает данные в удалённый процесс

 

Да, предполагается, что примерно так и должен действовать подобный вирус.

В справке по драйверу идёт отсылка к чипу под названием SR9900; практически отсутствует информация как по этому чипу, так и по его изготовителю. Но я немного покопался в данных и полагаю, что это точный клон Realtek RTL8152B. В англоязычном брифе по продукту подразумевается, что «SR» означает “Supereal”. Это название фигурирует в контексте контрафактных чипов FTDI FT232RL, которые недавно были настоящим проклятьем для всей отрасли.

Родословная этого чипа важна не только из-за потенциального одурачивания через имитацию IP, но и потому, что исходная архитектура Realtek достаточно древняя; спецификация датируется 2013 годом. Устройство поддерживает 100BASE-TX и USB 2.0, то есть, здесь нам слышатся отголоски эры Windows 7. Это было время неудобств — тогда CD-дисководы уже выходили из моды, но невозможно было рассчитывать, что любой компьютер постоянно будет онлайн. Поэтому на некоторых устройствах, позиционируемых как внешние накопители, было целесообразно держать их собственные драйверы. С точки зрения безопасности, это было ничуть не лучше или не хуже, чем любой другой импровизированный способ доставки файла.

Иными словами, с учётом исторического контекста, хранение драйвера на устройстве или сам этот драйвер не воспринимались как нечто изрядно странное.

Тем не менее, автор темы подразумевал, что на этом история не оканчивается. В топике рассылались снимки устройства в разобранном виде, при этом указывали на скудно заполненную макетную плату с последовательной интегральной схемой типа 25x40, подключённой рядом с вышеупомянутым SR9900:

Один из оригинальных снимков устройства в разобранном состоянии. Из социальных сетей.
Один из оригинальных снимков устройства в разобранном состоянии. Из социальных сетей.

Почему этому устройству требовалось 512 кБ флэш-памяти? Она была выделена для прошивки, или именно там злоумышленники хранили украденные пакеты?... За спрос не бьют! Вредоносное аппаратное обеспечение действительно существует. Им пользуются как разведслужбы, так и частные пентестеры. Хм, даже я сам лет десять с лишним назад соорудил для работы вредоносную плазменную лампу. Однако, мы здесь собрались не чтобы подискутировать, возможно ли собрать вредоносный адаптер RJ45-to-USB. Нас интересовало, прав ли автор поста, что в данном конкретном случае «опять торчат китайские уши».

К сожалению, что в SR9900, что в RTL8152B одинаково зыбко описано, зачем именно нужна сопутствующая интегральная схема с флэш-памятью. Я выкопал следующий архитектурный обзор, но и в нём ничего особенного не сообщается:

Архитектура CoreChips SR9900, из краткого описания к продукту.
Архитектура CoreChips SR9900, из краткого описания к продукту.

Поиск нужных схем по картинкам также ни к чему не привёл. Я нашёл несколько вариантов конструкции, в которых фигурировал оригинальный чип Realtek, но к последовательным пинам ничего не было подключено:

Участок схемы RTL8152B, из одного обсуждения на форуме.
Участок схемы RTL8152B, из одного обсуждения на форуме.

Я уже был отправиться на тёмную сторону (amazon.com) и просто приобрести такую флешку с одной лишь целью — дампировать содержимое чипа памяти. Работать с шиной последовательного периферийного интерфейса (SPI) не составляет труда. В сущности, вы сообщаете тактовый сигнал с такой частотой, с какой вам удобно. Можно даже пальцем на кнопку нажимать. На переднем фронте каждого такта периферия считывает один бит с линии «serial in», и в то же время хост отправляет один бит обратно через «serial out». Ни тебе рукопожатий, ни заголовков, ни разрядов чётности, ни потока управления.

«Прикладной» протокол флэш-чипа столь же прост и обычен практически для любых последовательных интегральных схем памяти. Чтобы заставить его работать, хост отправляет инструкцию READ размером 1 байт (0x03), за которой следуют три адресных байта. Чип начинает отправлять данные сразу же после того, как получит четырёхбайтную последовательность, и поток бит продолжает идти до тех пор, пока с хоста поступает тактовый сигнал:

Последовательный протокол для чтения из памяти. Из спецификации на микрочип 25x40
Последовательный протокол для чтения из памяти. Из спецификации на микрочип 25x40

Но затем, когда товар очутился у меня в корзине, на меня снизошло озарение. Я отправился на сайт CoreChips и через Google Translate попытался найти оригинальный китайский текст, который переводился бы на английский как “SR9900 series chip Windows system mass production tool” (Инструмент массового производства систем Windows с чипом серии SR9900). Я поискал подходящую строку и вышел на несколько старых китаеязычных форумных тредов. Один из них вывел меня на скачивание файла, защищённого паролем и пэйуоллом. Этот архив назывался «SR9900(A)设计资料1018.rar». Раскошелившись ещё на $2.99, я стал счастливым обладателем архива, в котором находился очень винтажный на вид производственный инструмент SR9900:

Инструмент SR9900Efuse.
Инструмент SR9900Efuse.

Вместе с ним предоставлялся 168-килобайтный образ файловой системы 9660 (!), в котором был и самоизвлекаемый драйвер для Windows. Инструмент программирования досимвольно копирует файл .iso во флэш-память SPI. Ага: чип, в сущности, играет роль «программно-определяемого» CD-ROM, служит импровизированной заменой для физического носителя, который вам пришлось бы использовать с такой аппаратурой ранее. Образ диска можете скачать здесь; пароль к файлу — “rj45”.

В качестве лирического отступления: образ CD-ROM был создан при помощи «ULTRAISO V9.3 CD & DVD CREATOR, (C) EZB SYSTEMS» — ещё одного откровенно винтажного инструмента, дошедшего до нас из времён Windows XP:

Снимок UltraISO в действии.
Снимок UltraISO в действии.

Если хотите его попробовать, учтите, что для работы этого инструмента требуется процессор Intel Pentium с частотой 166 МГц или выше.

В подтверждение того, что я не ошибся с находкой, в архиве также лежал документ под названием “SR9900(A)设计前必看.docx”. В нём содержался пассаж следующего содержания:

“При использовании SR9900 в качестве сетевой USB-карты (качество на уровне потребительского рынка периферии) SPI может послужить в качестве виртуального оптического диска при установке системного драйвера для Windows (SPI-энергонезависимая память с заранее записанным драйвером SR9900 для работы под Windows)”

Также подчёркивалось, что использовать чип с флэш-памятью не обязательно.

Вот к чему мы пришли: предсказуемый и немного унылый вывод, что странное ещё не значит плохое. Мы проделали эту работу, вполне обойдясь без аппаратной лаборатории; хватило всего лишь запастись терпением и изобретательно погуглить.  

Честно говоря, осталась ещё одна невскрытая карта: в самой интегральной схеме SR9900 содержится два маленьких микроконтроллерных ядра — USB и Ethernet — и на каждом из них выполняется свой внутренний код. Если нам кажется, что производитель чипа в чём-то темнит, то почему бы не заглянуть в них. В Realtek предоставляется свободно распространяемый драйвер Linux для RTL8152, способный немного пропатчить память прошивки. Лично мне не кажется, что там имеет место какое-либо шифрование или цифровое подписывание.

Стоит ли беспокоиться, что кто-нибудь пришлёт нам из дальних стран вредоносную флешку? Если вы — учёный, занятый в иранской ядерной программе, то, пожалуй, стоит! Если вы состоите в совете директоров критически важной гражданской компании, то, пожалуй, некоторая осторожность также не повредит. Возможно, кто-то занимается промышленным шпионажем и заносит в Excel-табличку список всех ваших поставщиков — так, на всякий случай.

Но если я всего лишь администрирую домашнюю сеть, то, думаю, ничего страшного не случится.

Теги:
Хабы:
+8
Комментарии3

Публикации

Истории

Работа

Ближайшие события

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань