HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop
HimeraSearchDB

НОВОСТИ Root-of-Trust для IoT и другие современные тенденции безопасности устройств интернета вещей

Bonnie
Оффлайн
Регистрация
12.04.17
Сообщения
19.095
Реакции
107
Репутация
0
Тема информационной безопасности становится всё более актуальной с каждым годом. Хаб про информационную безопасность находится на первом месте и втором по числу подписчиков. Однако в основном материалы посвящены различным сетевым, веб, облачным и другим технологиям, традиционно рассматриваемым в контексте безопасности. И почти не касаются встраиваемых применений, особенно с ограниченными ресурсами. В то время, как количество последних больше на порядки. В этой статье мы рассмотрим некоторые особенности и тенденции безопасности интернета вещей, берущие своё начало в разработке и модели распространения.

Разработка под встраиваемые применения всегда несла в себе определённые особенности, причём такие, что большинство «обычных» программистов даже не задумываются об этом, а понятие QA и процесс тестирования в многих случаях кардинально отличается от того, что принято понимать в общем случае.

Одна из любимых и периодически обсуждаемых тем в крупном IT-канале в Телеграм — «почему embedded разработчиков никто не понимает и так мало платят? (на фоне «обычных» программистов)» :)

Встраиваемая система — система, которая будет работать, будучи встроенной непосредственно в устройство, которым она управляет. Пара фото для наглядности:

zw2ljt1kp3_jgef4dof4p6aanfi.jpeg
azfi92h2leizojjmhkwbdibqoai.jpeg


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

Как правило компания производитель выпускает законченные устройства, которые включает в себя в первую очередь «железо», а софт, как правило, идёт в комплекте и работает только на этом самом железе. Почти никому не придёт в голову идея покупать «голый» смартфон без ПО, а потом ставить на ОС и необходимые приложения, всё должно работать из коробки. В итоге зачастую разработчики выполняют весь спектр задач по разработке устройств, как программных, так и аппаратных.

Ещё одной особенностью разработки под встраиваемые системы является то, что они практически всегда имеют гораздо меньше ресурсов, как по вычислительной мощности, так и памяти, каналу данных, а также потреблению. Большинство привычных многим технологий запустить на таких системах невозможно, даже ОС есть не везде. Необходимо вписаться в доступные ресурсы и часто значительно экономить. В том числе это сказывается и на безопасности — многие стандарты из «большого мира» не поддерживаются или поддерживаются с ограничениями.

C до сих пор является самым массовым языком разработки встраиваемых систем. У него есть ряд недостатков по работе с памятью, прямо влияющих на безопасность. Для их решения был разработан , он набирает популярность (на первом месте на StackOverflow уже несколько лет, обгоняя даже Python и Kotlin, особо популярные последнее время), но всё равно пока ещё далёк от лидера по применимости в embedded из-за поддерживаемых систем и библиотек. Более высокоуровневые языки являются редкостью для встраиваемых систем и скорее всего таковыми и останутся в ближайшее время.

Важной особенностью разработки встраиваемых системы является ограничение аппаратных возможностей платформой и SDK поставляемого производителем. Многие технологии реализовать своими силами с нуля для отдельного проекта просто невозможно или крайне затратно. Поэтому крайне важно, чтобы производитель чипов поддерживал современные технологии по безопасности. До недавнего времени этому уделяли на так много внимания. Например, если аппаратный AES появился достаточно давно почти у всех, то поддержку TLS/DTLS до сих пор многие не умеют. Встаёт вопрос, каким образом этого достичь. Недавно я писал про новый от Nordic, который решает эту задачу за счёт интеграции с крупным проектом поддерживаемым Linux Foundation. Это один из подходов. Ниже рассмотрим другие.

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

Кроме вопроса разработки важно обратить внимание на условия эксплуатации систем.

Как правило крупные компании, производители облачных сервисов заботятся о безопасности своих сервисов по ряду причин:
  • Они занимаются разработкой и поддержкой функционирования сервиса напрямую
  • У них гораздо ближе контакт между разработчиками и инженерами поддержки
  • Оборудование находится в прямом доступе для инженеров, даже, если в облаках
  • Широкие каналы передачи данных и высокая вычислительная способность оборудования позволяет использовать системы мониторинга и выявления аномальной активности

Устройства же интернета вещей работают в прямо противоположном виде:
  • Как правило они являются собственностью конечного клиента и настройкой и поддержкой занимаются инженеры конечного клиента, компетенции, которых в большинстве случаев уступают по объективным причинам.
  • Ресурсы каждого устройства ограничены, как по производительности, так и по передаче данных. В результате системы мониторинга и выявления аномальной активности практически невозможны в данном случае.

Для наглядности приведу сравнительную таблицу. Сразу оговорюсь, что:
  • есть множество вариантов поставки и поддержки ПО. Приведены лишь общие группы для наглядности отличий
  • Количество устройств интернета вещей сложно оценить точно, так как все понимают под ним что-то своё, а также нет хорошей статистики по ним.


Сервера и облачные решения (SaaS и подобные)

Пользовательские устройства (ПК, смартфоны и т.п.)

Интернет вещей

Кто разрабатывает?

поставщик решения

Компания-разработчик

Компания-разработчик

Кто устанавливает / интегрирует?

поставщик решения

Конечный пользователь или ИТ служба компании

Конечный пользователь или системный интегратор

Кто контролирует /эксплуатирует?

Поставщик решения

Конечный пользователь или ИТ служба компании

Конечный пользователь или ИТ служба компании

Вычислительные мощности

Высокие

Низкие — средние

низкие

Канал связи

ШПД

ШПД

Низкоскоростной, в том числе не постоянный

Энергопотребление

Ограничено массовостью применения (подстанцией)

Не ограничено

Крайне низкое (в том числе батарейное)

Количество устройств по миру

От тысяч до сотен тысяч (Amazon, Google) на сервис

За 2019 год продано: Ноутбуки ~ , Смартфоны ~

Только в РФ количество умных счётчиков в год

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

Наиболее известны взломы встраиваемых систем за последнее время:

  • ботнет Mirai в 2016 году, работающий в основном на видеокамерах. По разным оценкам количество заражённых устройств превышало . Его наследник в 2018 захватил уже 700 тысяч устройств, ориентируясь в первую очередь на майнеры криптовалюты.
  • поразивший в 2017 году WPA2 Wi-Fi (практически все устройства с Wi-Fi за последние 15 лет) и его наследник , с числом более миллиарда устройств в 2019 году.
  • В 2018 году поразил BLE-чипы Texas Instruments. Официально проблеме были подвержены только несколько моделей точек доступа, которые использовали семейства CC26xx, а сама проблема решалась в новой версии стека. Однако, в данном случае не учитывается, что данные чипы используются в гораздо большем числе устройств (второй в мире производитель BLE, 16% от за 2018 год).

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

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

ARM ещё в 2017 года про безопасность встраиваемых систем на основе CryptoCell и Cortex-M33, однако серийные образцы чипов на M33 появились лишь в прошлом году. Представленная технология получила название Platform Security Architecture (PSA).
bdhika6f1yyoha8a_uxu4txuu9w.png


Суть идеи заключалась в том, чтобы разделить критичные части системы (ключи, права, прошивку) от потенциально подверженных взлому компонентов, как аппаратных, так и программных, для систем, где полная реализация TEE невозможна или затруднена. Технология ориентирована в первую очередь на Cortex-M, но совместима со всеми семействами Cortex-A/-R/-M.
dvbkxqeagkyugr3sbfi9ysuc-eu.png


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

klvp-aw9grnb1jgdixtbzbb5zuu.png
Безопасная загрузка (Secure Boot)
• Проверяется, что прошивка является подлинной, не была изменена и не может быть понижена в версии (downgrade).

r0chninoiqr9ey3telnjcv6muxg.png
Безопасное обновление прошивки по воздуху (Secure FOTA)
• могут быть загружены только аутентифицированные и проверенные обновления.
• Будущие угрозы безопасности могут быть устранены (сохранение контроля над обновлением в будущем)

pobbtd7ddtyft5azkk9fe7vkz-e.png
Безопасные физические интерфейсы и API
• Только авторизованные пользователи могут получить отладочный доступ к устройству, и каждое разрешение на доступ уникально.
• Блокирует «разработку» закладок и обеспечивает авторизованное использование API
• Данные аутентифицированы и защищены целостностью в обоих направлениях — внутри и снаружи модуля

gkfjwg_fbo7sr2gjk6l6eul3iu4.png
Безопасный транспортный уровень
• Устройство может аутентифицировать и подписывать или шифровать сообщения с сервером
• Нет атак посредника (MITM) на пути между устройством и сервером

Для защиты устройства предлагается идентифицировать/верифицировать данные поступающие на каждом этапе. В основе концепции лежит идея корня доверия (Root-of-Trust, RoT). Суть заключается в том, что в устройстве зашивается некий идентификатор (ключ) и происходит аппаратная процедура проверки соответствия уникальности ключа текущей платформе и исполняемому коду. В дальнейшем все важные библиотеки используют RoT для собственной работы.

0aksrjmxitkkj2gnd8k7_z3gitk.png

Как правило это происходит в 3 основных этапа:

  1. Предоставление доверия: включение Root-of-Trust на этапе производства в структуру чипа
    Неизменяемый идентификатор чипа и аппаратный корень доверия обеспечивают базовую безопасность и уникальную идентификацию устройства.
  2. Использование доверия: получение доверенных ключей
    Защищенные библиотеки позволяют создавать аппаратные криптографические функции и ключи, которые используются обычными функциями в дальнейшем
  3. Гарантия доверия: ключи используются для защиты любой функции
    Гарантируется подлинность, целостность и конфиденциальность работы любой функции с использованием ключей и функций со 2 этапа.


Наиболее распространённым решением на рынке является TrustZone от ARM. Про его реализацию на Хабре написано достаточно много, так как сама технология была представлена достаточно давно. Наиболее наглядно на мой взгляд резюмировали в одной из последних .

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

Говоря про информационную безопасность стоит напомнить про систему (Common Criteria), принятых как на международном уровне, так и качестве национального стандарта. Она позволяет определить уровень доверия Evaluation Assurance Level (EAL) от 1 до 7 (EAL1 — EAL7), более высокая цифра показывает более высокий уровень безопасности. Для понимания, уровень EAL4 или EAL4+ Windows, LInux/Unix, EAL5 в осном имеют (банковские, транспортные, в том числе бесконтактные), EAL6 позволяет использовать решение в высокорисковых ситуациях, EAL7 в экстремально рисковых ситуациях, например, для (диодов данных).

В апреле этого года Cortex-M33 и M35P по уровню . Это очень высокий уровень, позволяющий применять решения в высокорисковых ситуациях.

ARM TrustZone в новых Cortex-M33/M23 обеспечивает безопасное хранение ключей (в том числе с уникальным аппаратным идентификатором), проверку прошивок, как на этапе загрузки, так и обновления по воздуху, аппаратное ускорение шифрования AES, SHA, ChaCha, ECC, в том числе с DMA (как следствие все данные во Flash и RAM могут быть зашифрованы), генераторы случайных чисел (TRNG, PRNG).
zdccyl5hdgn8dwwahqc-yizyd84.png


Из интересного можно отметить, что CryptoCell позволяет иметь несколько корней доверия для различных задач (например, встраивать дополнительный RoT под заказчика, который хочет интегрировать массовое решение с рынка в свою закрытую IT систему, например, банк, не привязываясь к основному RoT от производителя), а также безопасную отладку (Secure Debug) с авторизацией прав.

300 серия CryptoCell ориентирована как раз на малопотребляющие устройства интернета вещей. Потребление новых M33 примерно на 20-40% ниже, чем M4, учитывая потери в энергопотреблении на работу TrustZone в 20% имеем такой же или более низкий уровень потребления, чем сейчас. Как следствие можно сказать, что аппаратная безопасность пришла в наиболее массовый бюджетный сегмент с Cortex-M33/M23 и в ближайшее время количество продуктов на базе их будет только увеличиваться.

В качестве TrustZone альтернативы можно назвать спонсируемый Google. Однако, он пока не распространён и ориентирован на другие применения, нежели конечные устройства интернета вещей.

Стоит отметить, что аппаратная реализация корня доверия не является панацей и тоже может быть взломана. В качестве примера можно привести недавнюю историю с . Важно упомянуть, что в данном случае была найдена ошибка в ROM и был использован один ключ на все поколения чипсетов, поэтому его можно воспроизвести. И даже такая реализация значительно усложняет взлом.

Рассмотрим 5 этапов эволюции реализации Root-of-Trust в модулях сотовой связи , разработанной в сотрудничестве с . Это интересно с точки зрения поставленной задачи, так как их решения значительно отличаются от подходов других компаний.

5f71wd62tzpvyvj5jclyil1e_ue.png

Как видно на структуре с каждым следующим поколением корень доверия меняет своё положение. Это является ключевым моментом влияющим на безопасность решения в целом.

1 и 3 варианты признаны ненадёжными по мнению uBlox/Kudelski из-за программной реализации RoT и наиболее вероятного взлома. В том числе для случая вынесения корня доверия во внешний eSIM (eUICC), который обеспечивает защиту достаточную для банковских применений начального уровня (ключи в eUICC невозможно прочитать или изменить, чтобы это не стало заметно извне). Однако такой подход несёт с собой недостатки и потенциальные уязвимости, возникающие из-за того, что общение с внешним компонентом можно перехватить и потенциально исказить, сложности взаимодействия на начальных этапах инициализации системы (проверка загрузчика), а также из-за ограниченных ресурсов чипов в UICC. Кроме того внешний модуль можно заменить или удалить из системы (просто поменяв SIM карту) и тем самым оставив всю систему без корня доверия.

Поэтому дальнейший путь развития заключается в интеграцией корня доверия в защищённой области чипа. Этот подход соответствует компепции ARM TrustZone CryptoCell.

Вариант с реализацией Root-of-Trust в защищённой ОС является наиболее распространённым на рынке и обеспечивает достаточный для большинства задач уровень безопасности. Наиболее распространённое решение на рынке — ARM TrustZone (про него выше), но ещё без CryptoCell, хранящего ключи в защищённой области.

Наибольшей же защитой обладает решение с защитой интегрированной внутрь чипсета, к которому практически нет доступа извне. В текущем решении используется встроенный элемент безопасности (Secure Element), сертифицированный по уровню . Это допускает сертификацию Common Criteria для всего устройства в целом, а также позволяет размещать функции SIM-карты и профили мобильного сетевого оператора (MNO) внутри устройства. Это соответствует современному уровню безопасности.

В разработке находится следующее поколение чипсета от uBlox, где Secure Element будет интегрирован в кремний самого модемного чипсета. Это еще больше уменьшает поверхность атаки и повышает безопасность до самого высокого уровня. Это будет реализовано через (Integrated Universal Integrated Circuit Card) — следующее поколение UICC, при котором весь код и SIM идентификатор будут располагаться внутри системы на кристалле, стандарт пока не завершён.

Выводы:

  • Всё больше производителей электронных компонентов разрабатывают и выпускают устройства с учётом требований безопасности, начиная с самых ранних этапов разработки.
  • Компании разработчики конечных устройств получают инструменты управления безопасностью, работающие прямо из коробки. Привлечение экспертов на этапе разработки инструментов позволяет избежать ошибок, а также значительно снизить стоимость решения в целом.
  • Ценник на новые решения зачастую оказывается близок к текущим решениям, но даёт принципиально иной уровень защиты, что также значительно упрощает переход
  • Рост числа устройств обеспечивающий новый уровень безопасности является лишь вопросом времени
  • В новых решениях secure element UICC переносится внутрь кристалла чипа для повышения безопасности и затруднения атаки
  • Современные решения позволяют получить уровни безопасности вплоть до EAL6+, достаточные для использования в высокорисковых ситуациях.
  • В разработке находятся решения уровня EAL7, однако они используют технологии без окончательно утверждённого стандарта, поэтому срок доступности их рынке не определён.
 
Сверху Снизу