Вирус для монитора

Недавний разговор об атаке на 3D-принтер наглядно продемонстрировал, насколько трудно большинству пользователей уяснить смысл термина «принципиально новая уязвимость». Такую нельзя предсказать, тем более обнаружить автоматически — на то она и «принципиально новая», чтобы не вытекать из предыдущих исследований!

Чтобы её открыть, необходимо совершить своего рода гениальный мыслительный скачок — «вдруг» понять, что то, что раньше считалось безобидным и бесполезным, может быть обращено против пользователя: 3D-принтер, «умный» телевизор, жёсткий диск, BIOS, даже антивирус. Открытия такие делаются крайне редко — и тем приятней, что за нынешнее лето тему удаётся поднимать уже второй раз. В прошлый раз речь шла о 3D-печати. Сегодня поговорим об атаке на компьютерный монитор.

Спросите простого юзера, как монитор функционирует, и вы услышите что-нибудь вроде «отображает информацию». Но даже и пользователи продвинутые часто придерживаются практически такого же мнения: монитор — суть пассивное устройство, визуализирующее поток данных, поступающих на него. Увы, с действительностью это имеет мало общего.

110816-1

Рискну утверждать, что заблуждение это проистекает не только из «вроде бы очевидного» принципа действия (вот же он, стоит, показывает и больше ничего!), но и модулировано историческими обстоятельствами. Всего-то четверть века назад, в эпоху 8-битных машин, так оно на самом деле и было. Схема работы монитора/дисплея в мире 8 бит была очень простой. Прямо в оперативной памяти выделялся некоторый кусок, содержимое которого, через микросхему-контроллер («графическую карту», выражаясь современным языком), транслировалось на бытовой телевизор. Что, кстати, позволяло пользоваться экраном не по назначению. Памяти вечно не хватало и случалось, часть экрана употреблялась под хранение данных или даже исполняемого кода — такое, в частности, практиковалось на ZX Spectrum.

С тех пор, однако, многое поменялось. Монитор стал самостоятельным устройством, сам самое напоминающим отдельный компьютер. Тут и собственный микропроцессор, и своя оперативная память, и флэш-ПЗУ, где хранится firmware — управляющая программа, принимающая данные извне по стандартному протоколу, обрабатывающая их и собственно отображающая. Так что хоть внешне работа монитора не изменилась, внутренне она претерпела радикальные изменения. А это — по крайней мере теоретически — означает, что его можно заставить сделать что-то, чего пользователь от него не ожидает.

Такой целью и задались ребята из американской конторы Red Balloon Security. Не стану утверждать, что они были первыми, кто попытался, но они точно стали первыми, кто добился значимых результатов и предал их огласке. Их презентация только что состоялась на DEFCON. Вот она в полном объёме (слайды из неё иллюстрируют сегодняшнюю колонку), а я перескажу самые важные моменты.

110816-2

Подопытным стал Dell U2410 — обычная рабочая лошадка дисплейного племени. Производители сложной техники нынче не жалуют желающих в ней покопаться, поэтому инструкций или документации в публичном доступе нет, и изучение внутренностей монитора напоминает более исследование чужой планеты, нежели освоение новой архитектуры. Вооружившись отвёрткой, дизассемблером, здравым смыслом и терпением (говорят, на всё про всё ушло два года), авторы установили, что управляет им серийно выпускаемый микроконтроллер. Его firmware была препарирована и методом тыка нащупаны ключевые процедуры и участки памяти, модификация которых позволила получить контроль над монитором.

Ребята подчёркивают, что добиться этого можно с любой персоналки даже без привилегированного доступа к ней, то есть, например, с помощью вредоносной программы, попавшей на компьютер через уязвимость в браузере. Фирмварь модифицируют (если нужно, то и перепрошивая), после чего она, параллельно с основными обязанностями, начинает делать что-то ещё. Вот три трюка, продемонстрированных авторами (исходники, кстати, опубликованы).

Во-первых, можно «на лету» подменять отображаемую картинку. Скажем, нарисовать неверную сумму денег в электронном кошельке: обнаружить число и модифицировать его попиксельно. Во-вторых, можно полностью или частично занять экран какой-нибудь постоянной надписью. Скажем, требованием о переводе суммы X на банковский счёт Y. Наконец, в-третьих, можно заставить часть электронной схемы монитора работать как радиопередатчик — транслируя в эфир какие-нибудь важные данные (эту функцию назвали Funtenna). Злоумышленник, вооружённый хорошим приёмником, может спрятаться в соседнем помещении.

Funtenna.
Funtenna.

Почему это стало возможным? Потому что производитель не позаботился защитить управляющую программу монитора от модификации — как это часто бывает с технологиями, которые никогда раньше не пытались использовать против людей, то бишь не по назначению. Но авторы говорят, что речь не только об одной серии мониторов Dell: выполненная ими оценка позволяет утверждать, что точно так же обстоят дела с мониторами Samsung, Acer, HP и, вероятно, других марок. Чего, в общем, и следует ожидать: так всегда и бывает, пока проблема не обнаружится. И отсюда следующий вопрос: насколько велика проблема?

Потенциально — очень велика. Подобным образом можно атаковать чуть ли не каждый десктоп на планете (а может быть и ноутбуки). Защита же появится в лучшем случае в следующих моделях устройств, а тем, что уже стоят на столах, придётся доживать свой век незащищёнными (никто не станет трудиться над новой прошивкой для устаревших устройств). Антивирусы о такой заразе не имеют понятия, да и лезть внутрь мониторов не умеют. К счастью, практически опасаться в ближайшем будущем эпидемии вируса для мониторов не стоит. Сделать такую программу универсальной чрезвычайно сложно. По крайней мере пока писать «вредоносный» код приходится под конкретную модель: даже небольшие отличия в аппаратной части (другая модификация микроконтроллера, например) делают «вирус» неработоспособным.

Но не торопитесь списывать «чёрный хак» монитора со счетов. Непрактичный в качестве оружия массового поражения, он уже готов показать себя в качестве оружия высокоточного. Стоит опасаться направленных единичных атак, организованных спецслужбами или террористическими организациями против промышленных объектов и важных объектов гражданской инфраструктуры. Тут задача сильно упрощается, во-первых, тем, что можно точно узнать, какое оборудование используется на атакуемом объекте. И во-вторых, мониторы здесь часто отображают стационарную картинку (набор регуляторов SCADA-системы и т.п.), подменить которую сравнительно легче. Остаётся только придумать способ причинить системе ущерб, введя оператора в заблуждение неверными данными на экране…

P.S. В статье использована графическая работа Andrew Magill.

Что будем искать? Например,ChatGPT

Мы в социальных сетях