Дисклеймер. Много лет в сообществе технических специалистов идёт дискуссия о возможности внедрения троянов в популярные коммерческие микросхемы. К сожалению, в этот чисто технический вопрос вмешиваются политические аргументы: мол, давайте переходить на российские процессоры, потому что в западных чипах закладки! Такой типичный FUD (см. контрпропаганду на Хабре). Кстати, американские коллеги используют такие же аргументы, но против китайских микрочипов. Похоже, политики любят использовать «пугалки» для принятия выгодных решений, ведь искусство политики древнее самого человечества.

Хотим ещё раз подчеркнуть: мы исследуем эту тему исключительно в общемировом контексте как важную область микроэлектроники и информационной безопасности. А как используют данные факты ангажированные представители индустрии и политики — пусть останется на их совести.

В прошлой статье мы подробно обсудили классификацию аппаратных бэкдоров и методы их закладки.


Если вкратце, ввести аппаратный бэкдор можно на любом этапе производственного цикла: от проектирования до корпусировки. По мнению некоторых исследователей, самым рискованным является именно этап проектирования (см. статью Hardware Trojans in Chips: A Survey for Detection and Prevention, doi: 10.3390/s20185165), а не производства. Дело в том, что внешнему подрядчику (производственной фабрике) не так легко внести изменения в готовый проект, присланный заказчиком. Гораздо легче разместить закладку самому разработчику микросхемы на этапе проектирования, когда проект открыт на экране компьютера в инструменте EDA.

Более того, в таком случае закладку можно внедрить гораздо более скрытно. После скандала с Meltdown и Spectre появилось мнение, что именно на таком уровне мы увидим следующую волну атак. То есть даже после обнаружения бэкдора останется сомнение, а это действительно бэкдор или просто случайная ошибка разработчиков?

▍ Обнаружение


В 2022 году вышло наиболее полное исследование, которое суммирует существующие практические данные по реальному обнаружению аппаратных троянов. Если свести к сухому остатку, то обнаружение осуществляется тремя методами:

  • временны́е диаграммы (waveform tests);
  • тесты на задержку прохождения сигнала (delay tests);
  • проверки на пустоты «заполненной» матрицы.

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

Сравнение сигнала до и после внедрения аппаратной закладки (код Verilog дизайна с закладкой и без, проверить можно в EDA Playgrounds)

Тесты на задержку работают, потому что каждый логический гейт даёт некоторую произвольную, но известную задержку, так что вставка неавторизованного гейта в проект увеличивает эту задержку настолько, что её можно обнаружить (в определённых границах).

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

Как мы уже упоминали, в качестве защитной меры можно провести полный реверс-инжиниринг, то есть обратную разработку микросхем, анализировать их функциональность, по возможности сравнив с образцом:


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

▍ Сравнение образцов под микроскопом


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

Внешний вид установки Variomill

Например, так выглядят элементы микросхемы в установке Variomill с энергией сканирующего луча 5, 10 и 15 кВ (верхний ряд), полем зрения 500, 100 и 20 мкм (второй ряд), скоростью сканирования 3,2 мкс/пиксель, 10 мкс/пиксель и 32 мкс/пиксель (третий ряд), а также с разным разрешением (четвёртый ряд).



Для уточнения заметим, что объектом сканирования выступает микросхема RFID со старой смарт-карты, какие часто производятся по техпроцессу 90–180 нм.

В рамках эксперимента учёные сначала аккуратно модифицировали изображение. Они добавили туда четыре аппаратные закладки. Две из них — путём изменения стандартной цифровой логики в слое легирования, а ещё две — путём добавления абсолютно новых элементов на микросхеме.


Одна из двух закладок, сделанных путём изменения в цифровой логике (NAND → NOR)

Четыре установленных бэкдора (зелёные и синие квадраты). Красным цветом обозначены пустые области на микросхеме

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

Затем выполняется сравнение изображений по структурному сходству (SSIM). Индекс SSIM — метрика, которая сравнивает пиксели по трём характеристикам: яркость, контраст и структура (отношение ковариаций между образцами).

Вот схематично процесс обработки:

Слева направо: фото оригинала (golden IC); фото с фабричного образца c выделенными изменениями по сравнению с оригиналом; изображение после бинаризации и гауссова фильтра; наиболее подозрительные области, выделенные алгоритмом SSIM

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

Ни один из этих методов не способен обнаружить саботажа в производстве изделия путём ухудшения его физических свойств с запланированным устареванием, усиленной деградацией или быстрым выходом из строя. Дело в том, что такие акты саботажа не изменяют слой легирования, а меняют характеристики, например, покрытия или подложки (так называемая «параметрическая» закладка).

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

Реверс-инжиниринг Сканер закладок
Количество необходимых образцов 50–100 1
Обнаружено закладок Все (кроме саботажа по надёжности) Все (кроме саботажа по надёжности и межсоединений)
Время выполнения Месяцы Часы
Обработка изображений (отдельно) Требуется Не требуется
Выделение полигонов Требуется Не требуется
Если сравнивать такой сканер с электрическими тестами, то он обеспечивает более надёжный результат:

Тип закладки Логический тест Тест питания Тест на задержку Время выполнения Сканер закладок
Функциональная Возможно Возможно Возможно Возможно Да
Параметрическая Нет Да Да Нет В будущем
Большая Возможно Да Возможно Да Да
Маленькая Да Нет Да Возможно Да
Конкретная Да Да Да Возможно Да
Нечёткая Да Возможно Да Возможно Да
В упомянутой научной работе исследователи искали изменения, якобы внесённые нечистоплотным подрядчиком (полупроводниковой фабрикой) в оригинальные шаблоны. Но ранее уже отмечалось, что некоторые считают самым рискованным именно этап проектирования, а не производства. Что делать, если нечистоплотным выступит не подрядчик, а разработчик микросхемы — это риторический вопрос. Возможно, никакие микроскопы тут не помогут.

По мнению безопасников, бэкдоры в микросхемах — это «не проблема, которую можно решить, а скорее условие, в котором мы существуем». Такой подход к жизни — часть философии стоицизма. Это не значит, что мы обязаны бездействовать. Просто если жизнь не очень приятная, то это принимается спокойно, без истерики.

Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ????️

Комментарии (45)


  1. sepuka
    00.00.0000 00:00
    +26

    Хорошая попытка. В статье прекрасно практически всё. Особенно саботаж по надёжности со стороны производства понравился. Так и представляю, как сидят они там и гвози в яйца подбрасывают заменяют материалы, например, на аналоги с меньшей очисткой от хлоридов, специально чтобы естественный процесс деградации происходил быстрее...

    Ребята, то что вы называете запланированной деградацией, называтется следствием миниатюризации и уменьшения стоимости. Простой пример, один и тот же die в корпусе QFP переживёт 10000 термоциклов, BGA -- 3-8 тыс, QFN 1-3 тыс, flip chip только 1 тыс. Чисто из-за температурного расширения, а не потому, что жадный буржуй решил убить чип через такое-то время.

    Покажите работающий пример, как эти нарисованные «четыре аппаратные закладки» удалось активировать...


    1. K0styan
      00.00.0000 00:00
      +16

      Так это и не закладки в классическом понимании. Офигеть: NAND в NOR превратили! Это специально внесённая ошибка в топологию. И она при тестировании сразу будет обнаружена.

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


    1. 104u
      00.00.0000 00:00

      А откуда эти цифры? Проводились какие-то исследования? Было бы интересно почитать подробнее


      1. 104u
        00.00.0000 00:00

        P.S. bga может быть с flip chip, а может быть с wire bonding, не совсем понятно, почему разные вещи (корпусировка микросхем и, собственно, вид корпуса, который потом паяется на плату) в одной куче. Объясните, пожалуйста, что имелось в виду?


        1. sepuka
          00.00.0000 00:00

          Скорее всего имелось в виду соотношение площади die и корпуса и разное влияние температурного расширения на соединение.


      1. sepuka
        00.00.0000 00:00
        +2

        Конкретно эти цифры из книжки "Design for Excellence in Electronics Manufacturing" by Cheryl Tulkoff, Greg Caswell, 2021.


        1. Chatter_A
          00.00.0000 00:00
          +3

          Есть такое высказывание в этой книге, без ссылок на источники. И в книге вообще нет ссылок ни на один источник. И ни одной рецензии. Джентльмены верят друг-другу на слово? Это не учебник и не научная работа. Науч-поп, с натяжкой.


          1. 104u
            00.00.0000 00:00

            Извиняюсь за, возможно, тупой вопрос, но где вы нашли эту книжку? Мне интересна аргументация этого утверждения

            P.S. вопрос снимается, нашёл


          1. sepuka
            00.00.0000 00:00
            +1

            Авторы занимаются reliability в Ansys DfI Solutions, это их собственные данные. Эти данные вполне бьются с другими, в основном это разные appnote и design review, что получал в процессе работы.


        1. 104u
          00.00.0000 00:00

          Почитал, там имеется в виду "износ" пайки разных корпусов на платы. (я думал, что проблема именно в методах корпусировки чипов) Но каким боком здесь flip chip тогда? Если всё предыдущее было корпусами микросхем, то здесь метод крепления чипа к корпусу. Меня интересует именно это, поскольку, например, те же древние процы в PGA/LGA корпусах (которые и есть flip chip с самым меньшим количеством циклов, судя по этой книге) ну крайне редко выходили из строя


          1. sepuka
            00.00.0000 00:00

            Вообще, выводы из кристалла могут быть и из проводящего полимера, и в виде металлических столбиков (Au, Cu) и в виде шариков припоя. Присоединяться может ультразвуковой и термозвуковой сваркой, проводящими клеями или пайкой оплавлением. Возможно, имелось в виду самое ненадёжное из современных массовых соединений.


            1. 104u
              00.00.0000 00:00

              Но разве перечисленные методы используются для flip chip? Я не спорю, что могут быть методы корпусировки, удешевляющие производство и снижающие надёжность (не всегда намеренно, вспоминаем нвидию и АМД с отвалами, у них как раз flip chip), но разве flip chip уже стали сажать на клей или приваривать? И, может быть, подскажете, почему всё-таки автор всё это упоминает в одном предложении? Понятно, что вы не автор, но, возможно, есть предположения


    1. aumi13
      00.00.0000 00:00

      переход на хрупкое олово это и есть запланированное устаревание, с пластичным свинцом по 25 лет бы работало без сбоев


      1. 104u
        00.00.0000 00:00
        +3

        Справедливости ради, даже в тех же древних телевизорах, в которых бессвинцовые припои вряд ли были, в термонагруженных частях (строчник, силовик строчника и всё, что было с ними рядом) постоянно попадались кольцевые трещины


  1. EvilMan
    00.00.0000 00:00
    +11

    По мнению безопасников, бэкдоры в микросхемах — это «не проблема, которую можно решить, а скорее условие, в котором мы существуем».

    Пусть хотя бы один случай приведут, когда хотя бы одну такую аппаратную закладку нашли в дикой природе. Вот тогда и поговорим.


    1. powerman
      00.00.0000 00:00
      +1

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


      1. Gordon01
        00.00.0000 00:00

        Может это про бирусы было? https://www.rom.by/article/Birus-y_Chast_vtoraja


      1. K0styan
        00.00.0000 00:00
        +1

        Ну одно дело - на собранном изделии (а особенно если ещё и в фирмвари). Это вполне возможно. Но на уровне кристалла самого - пока реально ни единого внятного случая не было.

        Так-то и то, и то можно "аппаратной закладкой" назвать, но сложности совершенно несопоставимы.


      1. CTheo
        00.00.0000 00:00
        +3

        Она вроде бы https://xakep.ru/2011/12/26/58104/


        1. powerman
          00.00.0000 00:00

          Да!


        1. dartraiden
          00.00.0000 00:00
          +2

          История, конечно, красивая, но без малейших пруфов, что приводит к необходимости верить джентльменам исключительно на слово.


          Та часть, где автор описывается аппаратную составляющую, выглядит вполне правдоподобно — это он "нашёл" Intel Management Engine, судя по всему. А вот там, где начинается про гипервизор в прошивке, якобы добавленный китайцами — вот тут уже остаётся только верить на слово.


      1. vikarti
        00.00.0000 00:00

        Помню ту статью. По описанию — это закладка в BIOS а не в железе.


    1. Arhammon
      00.00.0000 00:00
      +2

      Этож практически религиозный диспут - вот в статье даже приведены уязвимости процессоров) Какие доказательства, что это неудачный выбор разработчиков, а не ЦРУ, китайцы или массоны?))))


      1. Val_SA
        00.00.0000 00:00
        +1

        Неудачный выбор разработчиков - масонов, нанятых китайскими агентами в ЦРУ)))


    1. Javian
      00.00.0000 00:00
      +1

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


    1. vanxant
      00.00.0000 00:00
      +2

      Первая пачка санкций хуавею прилетела официально за закладки в сетевых разьемах их серверов


      1. EvilMan
        00.00.0000 00:00

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


  1. sergeyns
    00.00.0000 00:00
    +3

    Интересно что полностью замалчивается вопрос о погрешностях работы микроскопа... Что-то есть подозрение что эти исследователи исследовали "эталонные" слои кристалла вытащенные "из-под сканера на линии", а не реальные образцы после травления....


  1. AndreyAlin
    00.00.0000 00:00
    +5

    А что если закладка в самом электронном микроскопе?


    1. TimsTims
      00.00.0000 00:00
      +3

      Там 3 стадии постобработки. Бэкдор мог быть в одной из них.


  1. slog2
    00.00.0000 00:00
    +11

    Ну добавили инвертор или конденсатор и что? Сломали схему. А закладки то где? Не вижу что нашли. Может не там искали? В мозгах у параноиков искать пробовали?


    1. tmxx
      00.00.0000 00:00

      Ну зачем вы сразу так... Возможно, это хорошо продаётся...


    1. playnet
      00.00.0000 00:00
      +1

      для proof of concept и не должно быть рабочим, нужен только сам факт. Даже полностью нерабочий, но дающий наглядный пример.


      1. K0styan
        00.00.0000 00:00
        +1

        Ну, да. По сути статья говорит: "мы научили computer vision искать отклонения фактической топологии на кристалле от проектной". Но делать логический переход к понятию "закладки" - слишком резко.


    1. nixtonixto
      00.00.0000 00:00
      +1

      Все процессоры состоят из таких вот инверторов. И там, где миллиарды элементов — можно найти пустое местечко, в котором незаметно спрячется закладка на десяток тысяч элементов, а это уже процессорное ядро уровня Cortex-M0.


      1. K0styan
        00.00.0000 00:00
        +2

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

        А так в итоге придётся прийти к неслабому перепроектированию топологии как таковой. Можно и такое провернуть, но рациональность такого решения очень сомнительная.


    1. foxyrus
      00.00.0000 00:00

      Если пофантазировать, то например смена одного "инвертора или конденсатора", при поступления определённых байтов в какой-нибудь регистр вполне себе может, например, помочь в превышении привилегий на хостовой машине.


      1. K0styan
        00.00.0000 00:00

        Верно. Но тут есть нюанс: чтобы задействовать такую тонкую закладку, надо точно быть уверенным в том, какое ПО на этом железе работает - до бинарного кода, даже не до ассемблера. Но с другой стороны, если есть такой контроль над софтом на целевой машине, зачем нужна "железная" закладка в принципе?


  1. Gryphon88
    00.00.0000 00:00
    +12

    Честно говоря, не понимаю такой старательный поиск чего-то скрытого. Сейчас довольно много "троянских слонов" типа Intel AMT, от которых не отказываются, потому что так дешевле или нет альтернативы. Еще может быть железка на плате, на которую нет документации, или два чипа в одном корпусе: нужный для исполнения функции и "стоп-кран". Не думаю, что делается полный аудит закупленного устройства, кто бы ни был поставщиком, а чипы без маркировки встречаются очень часто.


    Анекдот на тему

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


  1. asantat
    00.00.0000 00:00
    +2

    Удивляет наивность некоторых комментаторов. Статья основывается на результатах нескольких работ, опубликованных в рецензируемых журналах известных профильных научных издательств. Поэтому вопросы по идее должны быть адресованы не к автору этого обзора, изложенного в весьма вольном стиле, а к MDPI или Springer за их редакционную политику, или же к авторам исходных исследований или обзоров. Возможно, у меня плохо с сарказмом и я не увидел скрытых смыслов в комментариях по поводу закладок в инструменте или фантазиях в жанре "давайте предположим, что изменение логики в аппаратной схеме не приводит к формированию нового функционала, а является всего лишь изменением логики, которая, вероятно, ломает схему, хотя автор со ссылкой на опубликованный источник говорит об обратном".


    1. dartraiden
      00.00.0000 00:00
      +3

      Поэтому вопросы по идее должны быть адресованы не к автору этого обзора, изложенного в весьма вольном стиле, а к MDPI или Springer за их редакционную политику

      Если бы они ещё отвечали на эти вопросы. Вспомним историю с "расследованием" Bloomberg про закладки в материнках Supermicro. Им задали множество вопросов, самым невинным из которых было "а почему вы в качестве якобы микросхемы с закладкой показываете самый обычный балун?". Вместо ответа они выпустили второй материал.


  1. titbit
    00.00.0000 00:00
    +3

    Да какой смысл в аппаратных закладках, если софтовые намного проще и надежнее? Их еще и обновлять можно периодически. Вон сколько проблем с безопаностью ежедневно обнаруживается в софте даже в полностью открытом, а сколько ошибок уже сделано, но еще никем не обнаружено? Чем не закладки? Софт уже стал настолько сложным, что технически невозможно провести его полный аудит при его взаимодействии с железом с учетом кучи известных и неизвестных отклонений описанных в errata чипов с которыми он работает.


    1. nixtonixto
      00.00.0000 00:00
      -1

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


      1. selkwind
        00.00.0000 00:00
        +4

        Потенциальный противник может провести аудит софта

        Только если там команда из минимум нескольких десятков работников, где все уровня Кармака. И то под вопросом, судя по тому как уязвимости в том же OpenSSL нашлись только спустя много лет после его появления в публичной среде.


        1. vanxant
          00.00.0000 00:00
          -2

          Только если там команда из минимум нескольких десятков работников,

          В "Базальт СПО" больше сотни сотрудников, у Каспера вообще больше 4000 (но не все из них заняты ОС или хотя бы безопасностью).

          А ещё можно изначально запретить использовать openSSL и вообще любую неправославную криптографию.