В одной из предыдущих статей я уже затрагивал тему IoT. В этой статье речь тоже пойдёт об этой концепции. При этом топик опять же затрагивает вопросы безопасности, но в более широком смысле.
В общем «интернет вещей» можно представить в виде гетерогенной сети физических устройств, связанных между собой посредством сети передачи данных общего пользования, однако название этой концепции не совсем верно, поскольку устройства необязательно должны быть подключены к глобальной сети.
Многие устройства IoT также являются частью концепции домашней автоматизации и, соответственно, в той или иной мере обладают схожими преимуществами и недостатками. Пожалуй, главной «ахиллесовой пятой» обеих концепций являются вопросы обеспечения безопасности, и если ранее до массового распространения этих технологий на безопасность как большинству пользователей, так и производителей было плевать с высокой колокольни, то сегодня эта проблема носит достаточно острый характер. В 2021 году количество устройств IoT превысило 13,8 миллиарда, и ожидается, что к 2025 году их число как минимум удвоится. Такое количество разнородных подключённых устройств и объём данных, которыми они обмениваются, заставляют нервничать многих специалистов по безопасности. Этот вопрос становится ещё более существенным, когда понимаешь, что более 90% всего трафика между устройствами IoT не зашифровано.
В результате хорошо известные угрозы и атаки, такие как распределённый отказ в обслуживании (DDoS) и «человек посередине» (Man-in-the-Middle, MitM), достаточно легко и непринуждённо применяются для компрометации систем IoT. Хотя DDoS является самой популярной атакой на системы вообще, в сфере IoT MitM может её затмить. Если первая метафорически сравнима с ударом дубиной по голове, то вторая — это укол шпагой. Атаки MitM обычно более сложны, чем другие, и их трудно идентифицировать. Обычно они включают в себя широкий спектр мероприятий, в которых злоумышленник располагается в центре коммуникации, перехватывая контроль над каналами связи.
Несмотря на более чем двадцатилетнюю историю развития концепции IoT, не существует общепринятого отраслевого стандарта безопасности. Конечно, имеются адаптации традиционных стандартов и некоторые специализированные разработки, типа OWASP, IoT SMM и программы безопасности NIST.
Из-за неоднородности устройств и протоколов, а также широкого разнообразия вариантов использования, которые могут поддерживать системы IoT, эта ситуация представляет собой серьёзную проблему для обеспечения безопасности и конфиденциальности. Между незащищенными гетерогенными устройствами может передаваться большой объём конфиденциальных данных. Кроме того, во многих случаях MitM, по сути, считается APT-атакой из-за сложности обнаружения. В результате многие широко используемые системы обнаружения вторжений даже не могут правильно дифференцировать и идентифицировать такие атаки, из-за чего их можно назвать одними из самых неприятных угроз в телекоммуникационных и компьютерных сетях, влияющих как на безопасность, так и на конфиденциальность систем.
Немного об архитектуре
Широко распространённой моделью, используемой в IoT, является модель, реализованная в протоколе MQTT (Message Queuing Telemetry Transport). «Издатели» (например, датчики, камеры и т. д.) генерируют и отправляют данные на другие устройства, а «подписчики» получают данные от «издателей» и могут быть различными исполнительными устройствами. Такая модель обеспечивает эффективный обмен данными и связь между устройствами в приложениях IoT, в результате чего выделяются четыре основных типа устройств:
Датчики: устройства, предназначенные для сбора и передачи данных из физического мира, обеспечивая мониторинг, управление, автоматизацию, услуги и приложения. Передача данных осуществляется в основном по беспроводной сети (Wi-Fi, Bluetooth, GSM, Zigbee).
Исполнительные механизмы: устройства, преобразующие цифровые команды в физические действия, позволяя IoT-модулям взаимодействовать с физическим миром.
Брокер: служит посредником между устройствами и облачными сервисами, обеспечивая фильтрацию, интерпретацию, безопасность и хранение данных. Отвечают за локальную обработку и анализ данных.
Пользовательские устройства: пользователи взаимодействуют с системой IoT для доступа и управления её услугами или приложениями через различные интерфейсы, также обеспечивая обратную связь.
Ещё одна важная тема IoT — методы связи. Устройства взаимодействуют друг с другом, используя сетевые протоколы на разных уровнях. Некоторые товарищи пытаются множить сущности и придумывают какую-то свою архитектуру IoT, но мы так поступать не будем и воспользуемся старой доброй ЭМВОС. На основе стека протоколов TCP/IP и ЭМВОС протоколы IoT можно разделить на четыре логических уровня.
Прикладной уровень |
MQTT, AMQP, CoAP, HTTP |
Транспортный и сетевой уровни |
UDP, TCP, IPv6, DTLS |
Физический и канальный уровни |
Wi-fi, Bluetooth, Zigbee |
Уровень представлений |
Датчики и исполнительные устройства |
Кратко описав типы устройств и уровни протоколов в IoT, я не определил один важный аспект. С точки зрения безопасности важно понимать ключевые различия между традиционными сетями и IoT. Ограничения и атрибуты, присущие только сетям IoT, напрямую определяют возможности разработки безопасных решений.
Атрибут |
Традиционный интернет |
IoT |
Данные |
Как обычные, так и большие |
Большие |
Формат данных и устройств |
В основном однородный |
В основном разнородный |
Аппаратные ресурсы |
Мощные |
Ограниченные |
Связь |
В основном быстрые и безопасные |
В основном медленные и небезопасные |
Создатель данных |
Пользователи |
Устройства |
Обмен данными |
По запросу |
По мере появления |
Первые три строки таблицы особенно важны в контексте обеспечения безопасности. Во-первых, большой объём транзакций данных затрудняет обнаружение аномалий среди безопасных пакетов и соединений, здесь как раз уместна та самая аналогия с поиском иголки в стоге сена. Во-вторых, неоднородность устройств и зоопарк протоколов, демонстрирующих уникальные поведенческие паттерны, затрудняющие стандартизацию. В-третьих, аппаратные ограничения устройств не позволяют использовать относительно надёжные и проверенные временем решения.
Немного о видовых особенностях «чебуреков» посередине
Man-in-the-Middle представляет собой серьёзную угрозу с точки зрения кибербезопасности. Прежде чем углубляться в детали конкретных атак этого типа, важно понять аспекты, затрагиваемые этой угрозой. Классической моделью для измерения аспектов угрозы является триада CIA (конфиденциальность, целостность и доступность). От неё, конечно, давно попахивает нафталином, однако в нашем случае она вполне уместна. Согласно этой парадигме, последствия угроз подразделяются на три отдельные области. Например, как упоминалось ранее, DDoS-атаки влияют на доступность системы. Однако атаки MitM напрямую затрагивают все три стороны триады. Косвенно ещё затрагивается и приватность, включающая не только конфиденциальность, но и аутентификацию и авторизацию.
Проблемы безопасности можно классифицировать и по объекту их приложения: пользователь, данные и инфраструктура. Последствия атак различны. Что касается MitM, то эта атака оказывает прямое влияние на пользователя, начиная от конфиденциальности и заканчивая физическим и психическим здоровьем. Атака напрямую влияет как на текущие, так и на хранимые данные, а также может нарушать работу системы вплоть до разрушения сетевой инфраструктуры.
В целом любые MitM-атаки можно разделить на две отдельные категории: пассивные и активные атаки.
Пассивная атака характеризуется неизменностью связей и данных. В целом это банальная «прослушка» (eavesdropping) и сбор конфиденциальных данных.
Активная атака характеризуется перехватом и намеренным изменением связи между двумя объектами. Impersonation, спуфинг-атаки, подделка данных и угон сессии (session hijacking) являются наиболее распространёнными типами активных атак MitM. Здесь следует отметить, что MitM представляет собой многоуровневую угрозу, касающуюся всех уровней архитектуры IoT. Например, при спуфинге отравление кэша DNS влияет на уровень приложений, подмена IP — на сетевой уровень, а ARP действует на канальном уровне. Кроме того, для перехвата сети на физическом уровне нередко используют «левые» точки доступа (rogue access point). Помимо уже описанных типов атак, для реализации MitM могут использоваться и другие методы.
Sniffing подразумевает перехват и анализ сетевого трафика между двумя устройствами для получения конфиденциальной информации. Когда дело доходит до IoT, в котором многие данные передаются в незашифрованном виде, эта атака играет новыми красками. Обычно в качестве инструмента используют анализаторы трафика, например Wireshark, но это вкусовщина (когда-то был популярен Cain and Abel, но он где-то потерялся).
Внедрение пакетов (packet injection) позволяет манипулировать сетевым трафиком, добавляя в сеть вредоносные пакеты. Мне нравится Scapy. Был ещё MITMf, но он больше не обновляется.
Угон сеанса (session hijacking) я уже упоминал. Метод, при котором злоумышленник крадёт информацию о сеансе пользователя, позволяя ему выдавать себя за пользователя и получать доступ к данным. Пожалуй, лучше Bettercap я ничего не знаю, очень мощный инструмент.
Удаление SSL (SSL stripping) преобразует зашифрованное SSL-соединение в незашифрованное. Стандартом считается SSLStrip, хорошо зарекомендовавший себя инструмент.
Вообще весь набор для молодого растущего пентестера есть в Kali.
Об особенностях «чебуреков» посередине в IoT
Обычно существует три основных этапа реализации MitM-атак в IoT. На первом этапе злоумышленник проводит рекогносцировку. Второй этап предполагает использование потенциальных уязвимостей для перехвата целей, а последний — изменение данных. Рассмотрим подробней.
1) Сканирование и таргетинг сети. Для атаки злоумышленнику необходимо сначала обнаружить IP-адрес целевого устройства путём сканирования сети. Это можно сделать с помощью таких инструментов, как Nmap или Shodan (статья на Хабре), которые могут находить различные подключенные к сети устройства.
2) Перехват и анализ трафика. Как только целевое устройство обнаружено, злоумышленник может использовать различные анализаторы сетевого трафика, о которых я писал выше, для перехвата связи между устройствами. После этого трафик проверяется с помощью анализаторов пакетов (Wireshark, Tcpdump), чтобы выявить слабые места в протоколе связи (незашифрованные данные, слабое шифрование или другие уязвимости). Тем более в IoT часто используются лёгкие брокеры с открытым исходным кодом, типа Mosquitto Broker, которые несложно использовать для атак MitM, позволяя злоумышленнику перехватывать и изменять сообщения MQTT перед отправкой их в пункт назначения.
3) Модификация данных и эксплуатация уязвимостей. При обнаружении любых уязвимостей злоумышленник может изменить передаваемые данные, например, с помощью Mallory, для внедрения своего кода или кражи конфиденциальных данных. В случае эффективной подделки данных, уязвимости используются для получения несанкционированного доступа к устройству или кражи данных (адекватной альтернативы Metasploit, пожалуй, нет).
Вот, в общем-то и все этапы атаки.
Реальные «чебуреки» посередине в сетях IoT
Анализ недавних атак даёт полное представление о проблеме. Например, в конце 2022 года потребительский бренд Eufy подвергся публичной критике за серьёзные уязвимости в безопасности своих камер и ложь о локальном хранении видео. Устройства позволяли перехватывать видеопоток и получать привилегированный доступ, используя переполнение буфера или MitM.
В марте 2021 года на системы камер видеонаблюдения Verkada была осуществлена успешная MitM-атака. Группе товарищей из APT-69420, удалось заполучить учётные данные, что позволило им проникнуть в камеры клиентов. Разбомбило, будь здоров.
В 2017 году лопухнулось американское бюро кредитной истории Equifax. Компания не обновила открытый ключ, используемый в системах безопасности, что в конечном итоге привело к серьёзным последствиям, увековеченным на отдельной странице в англоязычной Википедии.
Уязвимости в IoT
Устройства IoT несут в себе разные типы уязвимостей на каждом уровне их архитектуры, описанной выше. Уровень приложений подвержен проблемам безопасности доступа к данным и аутентификации, сетевой уровень уязвим к проблемам совместимости и конфиденциальности, а канальный, физический и уровень представлений склонны к любым атакам, связанным с узлами, такими как вардрайвинг, захват узла, поддельный узел, массовая аутентификация и т. д. Перечислим некоторые атаки по уровням.
На прикладном уровне используются атаки с подменой DNS (DNS spoofing) и перехват сеанса (session hijacking).
На транспортном и сетевом уровне — IP-спуфинг, атака затопления (hello flood), «червоточина» (wormhole attack), обход (detour attack), воронка (sinkhole attack), «чёрная дыра» (blackhole attack), выборочная пересылка (grayhole attack), удаление SSL (SSL stripping) и др.
Канальный, физический и уровень восприятия могут похвастаться: ARP-спуфингом, атакой истощения (exhaustion attack) и аппаратными имплантами (hardware implants).
Спуфинг считается наиболее распространенной из MitM-атак.
Для предотвращения успешных атак на устройства IoT используется множество методов — от протоколов до машинного обучения. Во-первых, уже существует некоторое количество стандартизованных протоколов, обеспечивающих базовые меры безопасности при внедрении IoT, об этом я писал в прошлой статье — это сверхлегкий протокол ограниченных приложений (Constrained Application Protocol, CoAP), используемый в сетях с низким энергопотреблением и низкой пропускной способностью.
Протокол датаграмм безопасности транспортного уровня (Datagram Transport Layer Security, DTLS) используется на транспортном уровне в ситуациях, требующих быстрой передачи данных с коротким временем отклика. Этот протокол защищает связь между клиентами и серверами, используя методы аутентификации на основе сертификации.
IPv6 является основным протоколом ключей Интернета для устройств IoT и считается основным стандартом Интернета с 2017 года. Он лежит в фундаменте любой связи на сетевом уровне между устройствами IoT.
IEEE 802.15.4 — это протокол, используемый в Bluetooth, Wi-Fi или WLAN, являющимися обычными физическими сетями.
Тем не менее протоколы являются просто руководствами, определяющими функционирование связи через сети. Их следует соблюдать, чтобы избежать перехвата злоумышленниками, однако сам факт их применения ещё ни о чём не говорит и ничего не гарантирует.
Специализированные методы предотвращения также делятся по уровням применения.
На прикладном уровне неплохо себя зарекомендовало расширение безопасности системы доменных имен (DNSSEC). Оно повышает безопасность DNS с помощью цифровых подписей, проверяя целостность и подлинность данных для предотвращения атак с подменой DNS и внедрения вредоносных данных в кэш DNS. Также помимо этого возможно обеспечение безопасного управления сеансами с помощью уникальных идентификаторов сеансов. Ну и совершенно не стоит забывать о регулярной смене паролей, которая может предотвратить атаки перехвата сеансов, да и вообще лишний раз никогда и никому не мешала.
На транспортном и сетевом уровнях используют TLS и HTTP Strict Transport Security (HSTS), который представляет собой функцию безопасности, позволяющую принудительно активировать защищённое соединение HTTPS. Также я встречал рекомендации по внедрению контроля доступа на основе ролей (RBAC) для ограничения прав, однако, на мой взгляд, для IoT это уже перебор. Учитывая особенности RBAC и масштаб IoT, управление моделью станет не просто сложной, а практически невыполнимой задачей.
Для предотвращения атак с подменой IP в современных сетевых устройствах могут использоваться метод пересылки по обратному пути (Reverse Path Forwarding, RPF) и пересылка по обратному пути одноадресной рассылки (Unicast Reverse Path Forwarding, uRPF), являющаяся развитием первичной концепции.
На канальном, физическом и уровне представлений для предотвращения атак истощения используют таймеры и ограничение скорости количества запросов, отправленных на устройство IoT. От ARP-спуфинга помогает фильтрация по MAC-адресам, предотвращая подключение неавторизованных устройств.
Наконец, машинное и глубокое обучение также используются для противодействия некоторым угрозам безопасности путём создания моделей, предсказывающих угрозы. Само собой, ML может давать как ложноположительные, так и ложноотрицательные результаты, тем не менее, глубокое обучение можно использовать для определения точности каждого прогноза, что делает ML и DL вместе отличными добавками к общей системе обнаружения вредоносных атак.
Итак, что в конечном итоге?
При нынешнем состоянии отрасли MitM-атаки — это практически криптонит IoT устройств. Слабое железо, слабое или отсутствующее вовсе шифрование, отсутствие всеобъемлющих отраслевых стандартов, кривое проприетарное программное обеспечение и иногда раздолбайство производителей (очень часто раздолбайство пользователей), помноженные на огромное количество устройств, создают уникальные возможности для любителей половить рыбу в мутной воде.
Однако не всё так плохо. Стандарты и протоколы безопасности разрабатываются (в прошлой статье я писал о протоколе обмена ключами EDHOC). Проводятся исследования по изучению применения ML и DL к обеспечению безопасности систем, в том числе в системах обнаружения вторжений, используемых в IoT. С точки зрения будущих исследований интересно изучить оптимизацию сетевой архитектуры или стандартизацию гибридной маршрутизации, чтобы попытаться адаптировать эту технику к сетям большого размера. Также я нашёл несколько исследований, предлагающих использовать блокчейн в качестве неизменяемой децентрализованной платформы для IoT, правда, никуда не денутся проблемы конвергенции IoT и блокчейна из-за различных требований к производительности. В общем, интересных вопросов для исследования и работы много, а что ещё нужно пытливому уму?
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
Indemsys
Мне вот буквально вчера пришёл анонс на STM32H573I-DK.
И там как бы утверждается что проблемы описанные в статье уже достаточно давно решены.
И выглядит убедительно - Secure manager embedded software for STM32Cube
Там и надёжное хранилище секретов, и нечитаемые и неклонируемые физически ключи, и корневой сертификат, и криптоускоритель, и изоляция прикладного софта от секретного уровня, и защищённый загрузчик и т.д. и т.п. Все подтверждено сертификатом PSA аж третьего уровня.
Т.е. если уж писать о современных взломах, то надо писать о взломах мер сертифицированных PSA.