Исследователь по ИБ Андрей Коновалов (aka xairy) опубликовал в открытом доступе инструменты для удалённой перепрошивки фирмваре блока камеры и перехвата управления светодиодом веб-камеры на ThinkPad X230. Проект получил название Lights Out и представлен в качестве практической демонстрации того, что вредоносное ПО может записывать видео через веб-камеру без светодиодной индикации на ноутбуках различных производителей.
В отдельном техническом докладе «Lights Out: скрытное отключение светодиодного индикатора веб-камеры ThinkPad» (веб-версия), который Коновалов сделал на POC 2024, представлена подробная информация о обнаружении способа перепрошивки веб-камеры X230, реверс-инжениринга прошивки, добавление импланта для управления светодиодом и заметки о применимости такого подхода к другим ноутбукам.
«Это работает путём перепрошивки прошивки веб-камеры через USB (веб-камера X230 подключена через USB внутри), чтобы добавить возможность произвольного управления светодиодом. Этот подход, вероятно, затрагивает многие другие ноутбуки, поскольку подключение веб-камеры через USB и возможность перепрошивки этого модуля является распространённым дизайнерским паттерном среди производителей ноутбуков», — уточнил Коновалов.
Веб-камера, используемая на ThinkPad X230 (и нескольких других ноутбуках той же эпохи), основана на контроллере USB-камеры Ricoh R5U8710. Этот контроллер хранит часть своей прошивки, часть SROM, на чипе флэш-памяти SPI, расположенном на плате веб-камеры. Контроллер также позволяет перепрошивать содержимое чипа SPI через USB.
Светодиод на плате веб-камеры X230 подключён к контакту GPIO B1 контроллера R5U8710. Порт GPIO B сопоставлен с адресом 0x80 в пространстве памяти XDATA процессора на базе 8051 внутри R5U8710. Таким образом, изменение значения по этому адресу изменяет состояние светодиода. Это работает независимо от того, транслирует ли веб-камера потоковое видео в данный момент или нет.
Инструменты, представленные в репозитории проекта, позволяют прошивать штатную пользовательскую версию фирмваре с помощью так называемого «универсального импланта», управляемого через USB, на чип SPI на плате веб-камеры. Этот имплант позволяет записывать контролируемые данные на произвольные адреса (в пределах пространства памяти XDATA) и вызывать произвольные адреса (в пределах пространства памяти CODE; псевдоним XDATA, начиная со смещения 0xb000).
Универсальный имплант может использоваться для динамической загрузки импланта второго этапа в память контроллера камеры и его выполнения (первоначально использовалось для целей реверс-индениринга) и прямого управления светодиодом веб-камеры.
«Перепрошивка фирмваре модуля веб-камеры может привести к её выходу из строя, используйте эти инструменты с осторожностью», — предупредил Коновалов.
Источник: habr.com