Если бы MikaTech была недобросовестной компанией, вы бы нашли множество негативных отзывов о её услугах в интернете за 28-летнюю историю
Итак, ответ — ДА! Мы хорошие люди.Почему выбирают Mikatech, пожалуйста, нажмите здесь, чтобы узнать
О компании MikaTech
Время пролетело быстро: с того дня, когда мы выполнили наш первый проект по обратной разработке MCU 8051 в 1998 году, до того дня, когда мы создали нашу миллионную лабораторию обратной разработки в 2012 году, прошло 14 лет. Теперь мы начинаем наш новый бизнес по разработке встраиваемых визуальных систем, надеемся, что сможем прослужить ещё 10 лет.
Peter Lee
Сооснователь и генеральный директор
Atmel производит ряд устройств на базе ARM в своём портфеле продуктов. У нас был один такой экземпляр в лаборатории, так что приступим, как обычно…
Ядро ARM внутри этих микроконтроллеров (MCU) является популярным выбором для встраиваемых систем благодаря своей производительности и энергоэффективности. Однако, насколько бы продвинутым ни был процессор, истинная безопасность системы часто зависит от физической реализации механизмов защиты памяти. Это конкретное устройство, AT91SAM7S32, является ярким примером хорошо спроектированной, но в конечном счёте проницаемой крепости. Наша команда приступила к детальному анализу, чтобы понять, как биты блокировки и конфигурационные предохранители интегрированы в кристалл, и определить, смогут ли заявленные функции безопасности противостоять решительному противнику. Задача была сложной из-за нескольких металлических слоёв и плотной компоновки, но при наличии правильных инструментов и терпения даже самые сложные конструкции можно распутать. В следующих разделах описан наш путь: от декапсуляции до финальной идентификации уязвимых точек, позволяющих полностью считать защищённый код.

Устройство было в 48-выводном корпусе типа QFP. Мы также приобрели образцы других представителей семейства, хотя первоначальный анализ проводился на детали AT91SAM7S32, показанной выше. Все изображения относятся к этой конкретной детали, хотя между другими членами этой линейки нет существенных различий, кроме объёмов памяти.
Выбор 48-выводного корпуса QFP распространён для микроконтроллеров среднего уровня, предлагая хороший баланс между количеством выводов и занимаемым местом на плате. Однако этот тип корпуса относительно легко декапсулировать по сравнению с более продвинутыми корпусами BGA или QFN, что делает его привлекательной целью для обратной разработки. Единообразие в рамках семейства означает, что успешная атака на AT91SAM7S32 может быть легко адаптирована для его более крупных собратьев, таких как AT91SAM7S256 или AT91SAM7X512, которые используют ту же архитектуру безопасности. Эта согласованность является палкой о двух концах: хотя она упрощает проектирование и производство, это также означает, что одна уязвимость может скомпрометировать целую линейку продуктов. Как мы увидим, предохранители, отвечающие за состояние блокировки, расположены предсказуемым образом, что значительно облегчает извлечение конфигурации безопасности.

После декапсуляции кристалла из корпуса QFP мы видим красиво спроектированную 210-нм конструкцию с 5 металлическими слоями! Да, 5 металлических слоёв! Как ни странно, мы думали, что это 220-нм с 5 металлами, но, по-видимому, у Atmel нет 0,22-мкм техпроцесса, так что это соответствует их 0,21-мкм.
Декапсуляция — это критический первый шаг в любом анализе аппаратной безопасности, так как она открывает кристалл без повреждения базовых схем. Структура с 5 металлическими слоями впечатляет, поскольку каждый дополнительный слой добавляет сложности задаче атакующего. Верхние слои (M5 и M4) в основном используются для распределения питания и глобальной маршрутизации, в то время как нижние слои (M1–M3) содержат основную логику, SRAM и, что самое важное, флэш-память. Массив флэш-памяти особенно хорошо защищён: сплошной металлический экран покрывает всю область ячеек, предположительно для предотвращения УФ-стирания сохранённого кода. Это прямой ответ на атаки, которые преследовали более ранние устройства, такие как серия AT88SC, где простой УФ-лампа могла сбросить биты блокировки. Однако, как мы покажем, это экранирование только повышает планку, но не устраняет уязвимость полностью, поскольку сфокусированный лазер всё же может проникнуть через металлический стек и манипулировать состояниями нижележащих предохранителей.
Ядро работает при 1,8 В и допускает работу при 1,65 В (таким образом, используется их ATC20 процесс). Техническую документацию на устройство можно найти здесь. 32-КБ часть Flash также содержит 8 КБ SRAM (это много ОЗУ!).
Обратите внимание, что в этой конкретной компоновке есть заполнительный металл CMP (например, мёртвый металл, металлические вставки, ни к чему не подключённые, плавающие в SiO2), покрывающий почти весь кристалл.
Наличие заполнительного металла CMP является стандартным приёмом для обеспечения равномерной планаризации во время производства, но он также служит непреднамеренным препятствием для оптического контроля. Заполнительный металл затрудняет визуальное различие активной маршрутизации и фиктивных шаблонов, требуя от атакующего перекрёстной ссылки на несколько слоёв и использования передовых методов визуализации. Тем не менее, это незначительное неудобство по сравнению с реальной проблемой: хранением битов блокировки. Конфигурационные предохранители, управляющие разрешениями безопасности, погребены под тремя металлическими слоями, что делает их недоступными для простого зондирования или УФ-облучения. Чтобы манипулировать этими предохранителями, атакующему необходимо либо выборочно удалить верхние металлические слои, либо использовать лазерный резак для создания короткого замыкания или разрыва в узлах предохранителей. Это нетривиальная задача, но, как мы показали на других устройствах, она далеко не невозможна.

На изображении выше были удалены верхние 2 металлических слоя. Металл 5 (M5) — самый верхний — содержит заполнительный металл CMP и некоторые силовые плоскости. Металл 4 (M4) содержал дополнительные силовые плоскости и маршрутные провода.
При оставшихся металлах 1–3 мы можем получить хороший обзор топологии. Мы чётко видим флэш-память, предохранители и SRAM. Флэш-память имеет сплошное металлическое покрытие над всей областью ячеек, что стало обычной практикой у Atmel, чтобы предотвратить УФ-атаки, как мы полагаем?
Это металлическое покрытие над массивом флэш-памяти является прямым контрмерой против УФ-бэкдора, обнаруженного в их более ранних продуктах CryptoMemory. Покрывая ячейки с плавающим затвором непрерывным металлическим слоем, Atmel гарантирует, что ультрафиолетовый свет не может достичь узлов хранения заряда, предотвращая стирание программной памяти. Это умный эволюционный шаг, но он не решает проблему конфигурационных предохранителей, управляющих сигналом разрешения чтения. Эти предохранители находятся в отдельной области, и хотя они также погребены под металлом, они не экранированы так же тщательно, как флэш-память. Наш анализ показывает, что массив предохранителей доступен с помощью комбинации фрезеровки сфокусированным ионным пучком (FIB) и лазерной резки, что позволяет нам выборочно устанавливать или сбрасывать отдельные биты блокировки. Это даёт нам возможность разблокировать устройство без изменения содержимого флэш-памяти, тем самым обеспечивая чистое извлечение прошивки.

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

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

На изображении выше расположены конфигурационные предохранители. Отдельные ячейки памяти типа EEPROM, где любая ячейка может быть установлена или сброшена независимо от другой. Atmel расположил их очень упорядоченно, как мы обычно видим. Следует отметить, что эти предохранители погребены под 3 металлическими слоями!
Эти ячейки фактически находились на металлах 1 и 2, но также есть соединения через металл 3.
Упорядоченное расположение ячеек предохранителей является благословением для атакующего, так как позволяет нам легко найти каждую ячейку и сопоставить её с соответствующей функцией безопасности. В технической документации даётся высокоуровневое описание функций предохранителей, но не указываются их физические местоположения. Однако, применяя известные тестовые шаблоны и считывая состояния предохранителей, мы смогли сопоставить физические адреса с логическими ролями. В частности, мы идентифицировали мастер-бит блокировки, который глобально включает или отключает чтение флэш-памяти и SRAM. Установив этот бит в состояние «разблокировано», мы можем выполнить полный дамп памяти без какой-либо дальнейшей аутентификации. Это точно такой же принцип, с которым мы сталкивались в старых устройствах PIC, но здесь реализация гораздо более сложна из-за множества металлических слоёв и меньшего размера элементов.
В нижней части фото были дополнительные силовые плоскости из металлов 4 и 5, которые покрывают эти предохранители, но это не даёт им безопасности, если фактические биты блокировки были погребены там. Лазер может пройти сквозь всё это, оставив шину питания нетронутой с отверстием в ней.
Силовые плоскости на M4 и M5 обеспечивают надёжную сеть распределения питания, но они также действуют как физический барьер, который необходимо пронзить, чтобы достичь слоя предохранителей. Используя импульсный лазер с точной фокусировкой, мы можем удалить небольшое отверстие через эти плоскости, не вызывая короткого замыкания между шинами питания и подложкой. Лазерный луч можно настроить на выборочное удаление металлических слоёв, оставляя нижележащие поликремниевые и диффузионные структуры нетронутыми. После создания переходного отверстия мы можем затем использовать проводящий зонд или второй лазерный импульс, чтобы принудительно установить выход предохранителя в высокое или низкое состояние, фактически переопределяя блокировку. Этот метод, известный как «лазерно-ассистированное программирование предохранителей», хорошо известен в сообществе аппаратных хакеров и является нашим основным методом получения доступа к защищённой памяти. Стоит отметить, что эта атака не требует питания устройства во время лазерной операции, что снижает риск активации проверок безопасности при включении питания.

Наконец, номер детали Atmel на этом кристалле. Заполнительный металл CMP также виден на этом изображении.
Резюмируя, это очень хорошо защищённое устройство. Восстановление прошивки Предохранители, погребённые в 5-слойной металлической конструкции, делают Microchip DSPIC похожими на детскую игрушку по сравнению с ними (они имеют 350-нм 4 металла).
Несмотря на впечатляющие меры безопасности, нашей команде удалось разработать повторяемую процедуру для разблокировки этих устройств и извлечения полного содержимого флэш-памяти. Процесс включает в себя сначала тщательную декапсуляцию для вскрытия кристалла, затем оптический осмотр для определения местоположения массива предохранителей и точек входа для лазера. Далее мы используем сфокусированный ионный пучок (FIB) для фрезеровки верхних металлических слоёв, создавая небольшое окно, открывающее ячейки предохранителей. Наконец, мы применяем управляемый лазерный импульс, чтобы принудительно установить мастер-бит блокировки в состояние «разблокировано», что затем позволяет полностью считать программную память и данные EEPROM. Вся процедура занимает около четырёх часов на устройство, включая этапы визуализации и проверки, что делает её осуществимой для массового извлечения в лабораторных условиях. Способность дублировать прошивку этих микроконтроллеров представляет значительную угрозу для любого продукта, который полагается на серию AT91SAM для конфиденциальности кода.
Однако благодаря упорной работе нашей команды Mikatech, нижеперечисленные серии SAM теперь входят в наш список услуг с июня 2009 года:
AT91SAM9XE512 AT91SAM9XE256 AT91SAM9XE128 AT91SAM7S64B AT91SAM7S32B AT91SAM7SE512 AT91SAM7SE256 AT91SAM7SE32 AT91SAM7XC512 AT91SAM7XC256 AT91SAM7XC128 AT91SAM7X512 AT91SAM7X256 AT91SAM7X128 AT91SAM7S161 AT91SAM7S512 AT91SAM7S256 AT91SAM7S128 AT91SAM7S64 AT91SAM7S321 ...
Приведённый выше список представляет модели, которые мы успешно протестировали, и мы уверены, что та же атака применима к любым представителям семейств SAM7 и SAM9, имеющим одинаковую архитектуру предохранителей безопасности. Атака не зависит от объёма флэш-памяти, так как расположение предохранителей и путь доступа лазера остаются согласованными во всей линейке продуктов. Это критическое открытие для любой организации, которая развернула эти MCU в чувствительных к безопасности приложениях, так как это означает, что одно скомпрометированное устройство может быть использовано для извлечения секретного кода и последующего дублирования в контрафактных продуктах. Последствия для кражи интеллектуальной собственности, клонирования продуктов и несанкционированного восстановления прошивки серьёзны, и мы призываем всех пользователей рассмотреть альтернативные детали с более продвинутыми антивандальными функциями.
Также важно отметить, что, хотя металлические слои обеспечивают хорошую защиту от УФ-света, они не эффективны против решительного злоумышленника с доступом к лазеру и FIB. Стоимость такого оборудования быстро падает, и многие университеты и независимые лаборатории теперь обладают этими возможностями. Аппаратная безопасность исследования направлены на улучшение общей безопасности Следовательно, безопасность серии AT91SAM не может считаться само собой разумеющейся, и любая новая разработка должна включать дополнительные программные уровни защиты, такие как шифрование кода и проверки целостности во время выполнения, чтобы снизить риск физической атаки. Уроки, извлечённые из этого усилия по обратной разработке, ясны: аппаратная безопасность — это многоуровневая проблема, и ни одна отдельная контрмера не является достаточной. Сочетание металлического экранирования, погребённых предохранителей и сложной маршрутизации может замедлить атакующего, но не может остановить его полностью. Как мы показали, при достаточном времени и навыках любая созданная человеком система может быть разобрана.
Кроме того, существование этой уязвимости подчёркивает необходимость независимой оценки безопасности перед выбором микроконтроллера для критического приложения. Обещания из технической документации и маркетинговые материалы не заменяют эмпирического тестирования. Наша команда призывает производителей принять подход «эшелонированной защиты», когда даже если физическая блокировка обойдена, извлечённый код становится бесполезным благодаря сильному шифрованию и обфускации. Кроме того, механизмы безопасной загрузки, проверяющие подлинность прошивки при каждом запуске, могут предотвратить выполнение поддельного кода, даже если исходный двоичный файл раскрыт. Эти меры не являются абсолютными, но они значительно повышают планку и отпугивают всех, кроме самых искушённых злоумышленников.
В контексте извлечения прошивки наш метод обеспечивает полное чтение флэш-памяти, включая любые защищённые области, которые обычно недоступны через стандартный интерфейс программирования. Это означает, что злоумышленник может восстановить весь код приложения, а также любые калибровочные константы, криптографические ключи или конфигурационные данные, хранящиеся во встроенной EEPROM. Восстановленный код затем может быть проанализирован с помощью дизассемблеров и декомпиляторов для понимания его функциональности и выявления дальнейших уязвимостей, которые могут быть использованы в полевых условиях. Это классический пример того, как успешная физическая атака может перерасти в полную компрометацию системы безопасности.
Наконец, мы хотим подчеркнуть, что наша цель в публикации этих результатов — повысить осведомлённость и стимулировать разработку более устойчивого аппаратного обеспечения. Делясь нашими методами и выводами, мы надеемся внести вклад в коллективные знания сообщества безопасности и помочь разработчикам избежать ошибок, которые были допущены в прошлом. Серия AT91SAM — это прекрасное семейство микроконтроллеров, но, как и все сложные системы, у него есть свои слабые места. Мы надеемся, что Atmel примет к сведению наш анализ и улучшит безопасность будущих поколений. Тем временем пользователям рекомендуется исходить из того, что любое устройство в этой серии может быть разблокировано и считано, и планировать свою архитектуру безопасности соответственно.
Почему выбирают Mikatech, пожалуйста, нажмите здесь, чтобы узнать
У разных производителей микросхем разные номера деталей, но внутреннее ядро микросхемы может быть изготовлено по одной и той же технологии, поэтому было бы совершенно невозможно перечислить все номера деталей, к которым применима наша технология, такие как MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.
Кроме того, с развитием технологий мы каждый день получаем всё больше опыта и разрабатываем новые методы обратной разработки для различных типов интегральных схем. Полный список номеров интегральных схем, входящих в нашу компетенцию, постоянно растёт, пожалуйста, свяжитесь с нами, чтобы узнать.
Mikatech Innovative Limited понимает важность конфиденциальности своих клиентов. В момент обращения в Mikatech ваша личная информация попадает под защиту наших управленческих регламентов, разработанных на основе многолетней практики. Mikatech использует эту информацию для настройки своих услуг под вас и никогда не раскрывает её третьим лицам по каким-либо причинам.
По каждому проекту мы удаляем все данные, материалы и коды через 60 дней после передачи файлов — это защищает нас и защищает вашу конфиденциальность.
Да, это абсолютно законно.
Mikatech предоставляет свои услуги по обратной разработке исключительно в образовательных целях. Использование вышеуказанных услуг может быть незаконным в некоторых странах или регионах, пожалуйста, проверьте местные законы.
Mikatech не несёт никакой ответственности в связи с использованием вышеуказанных услуг, которое может считаться незаконным.