Свободное железо — не панацея

На 36С3 исследователь рассуждает о том, достаточно ли применения концепции открытого аппаратного обеспечения для того, чтобы быть уверенным в безопасности устройств.

На 36С3 исследователь рассуждает о том, достаточно ли применения концепции открытого аппаратного обеспечения для того, чтобы быть уверенным в безопасности устройств

Программное обеспечение с открытым исходным кодом часто считают более безопасным, чем проприетарное. Похожую концепцию пытаются использовать и при разработке железа, однако у экспертов, известных как Andrew «bunnie» Huang, Sean «xobs» Cross и Tom Marble, возникли сомнения в том, что этого достаточно, чтобы быть уверенным в безопасности железа. На прошедшей в последние дни 2019 года 36-й хакерской конференции Chaos Communication Congress (36C3) bunnie рассказал, почему это так.

Принципиальная разница

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

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

Что может пойти не так?

По большому счету, между отправкой чипов или целых устройств с фабрики и началом их использования с ними может произойти что угодно. Во-первых, в железе есть микропрограммы, которые могут подменить. Да, это, разумеется, софт, и его целостность можно проверить, но для проверки придется полагаться на железо. Поэтому bunnie сфокусировался на чисто «железных» проблемах — возможности подмены или модификации компонентов, а также добавления новых.

Добавление компонента

За примерами далеко ходить не нужно: сейчас абсолютно посторонний модуль можно добавить даже в разъем обыкновенного провода или манипулятора — что уж говорить о сложном многокомпонентном устройстве. Другое дело, что посторонний чип легче всего обнаружить.

Подмена компонента

Простейший способ подмены компонента — махинации с маркировкой. Исследователь привел пару примеров из собственного опыта. Как-то он обнаружил микроконтроллер, который вел себя некорректно. При визуальном осмотре чипа выяснилось, что маркировка, согласно которой он был произведен компанией STMicroelectronics, была фальшивой, а на самом деле это другой чип от совершенно другого производителя. Да, в этот раз целью мошенничества было подсунуть гораздо более дешевый компонент вместо дорогого, однако маркировка была вполне убедительной, так что внутри могло оказаться что угодно.

Модификация чипа

Звучит фантастически — обычно люди уверены, что чипы делаются в стерильной среде и сделать с ними что-то вне фабрики невозможно. Но на самом деле, это не так. В корпусе современной микросхемы может находиться несколько чипов. И при желании к ним можно добавить еще один, аккуратно подсоединив выходы к уже существующим. Причем оборудование, которое может справиться с такой операцией, в Китае можно купить достаточно недорого (по словам докладчика, подержанная машина для микросварки обойдется примерно в 7 000 долларов США). Правда, такая модификация будет заметна при просвечивании рентгеном.

С микросхемами, сделанными по принципу wafer-level chip-scale package (WL-CSP) справиться гораздо дороже, но и результат будет менее заметен: из-за расположения контактов под корпусом, картинка на рентгене будет недоступна.

Модификация интегральной схемы

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

Основной вывод: есть множество методов сделать железо опасным, не все эти методы дороги и трудозатратны, а главное, нет прямой зависимости между сложностью атаки и сложностью ее обнаружения.

В какой момент железо может быть подменено?

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

В финале bunnie уходит в рассуждения о том, как должен меняться подход к производству железа, чтобы конечный пользователь мог самостоятельно исследовать устройства и чипы и убеждаться в их надежности. Если вам интересна философия этого движения, а также технические подробности модификации чипов, то можно ознакомиться с записью выступления на сайте конференции.

Практический же совет компаниям тут может быть только один — нужно учитывать существование такой опасности и полагаться не только на продукты для защиты конечных точек, но и на системы защиты корпоративной инфраструктуры от сложных угроз и целевых атак.

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.