Безопасность №5, февраль 2017

Умные и опасные? (Вопросы безопасности IoT)

Фото аватара
Андрей Робачевский

Вместе с ростом числа и типа устройств, подключённых к Интернету, растут и риски, связанные с безопасностью и защитой частной жизни. Это особенно справедливо для IoT – окружающие нас вещи могут быть использованы не по назначению и в преступных целях, их функциональность может быть изменена вплоть до отказа работы. В то время как умные объекты все теснее вплетаются в нашу жизнь, делая нас все более зависимыми от них, вопросы обеспечения защищённости систем IoT, персональных данных становятся как никогда актуальными и составляют важный элемент нашей собственной безопасности и защищённости частной жизни.
Недавние массированные атаки на сайт KrebsOnSecuirty и компанию Dyn вызвали шквал публикаций в прессе и опять привлекли внимание к IoT, на сей раз – к проблеме безопасности, связанной с использованием этих устройств. Эти распределённые атаки отказа в обслуживании (DDoS) сгенерировали трафик в несколько сотен гигабит в секунду (на сайт KrebsOnSecuirty был направлен поток в 660 Гбит/с) и включали около 1,5 миллионов устройств, в большинстве своём DVR и IP-камеры. Этот ботнет был рекрутирован и управлялся вредоносом под именем Mirai.
Хотя это далеко не первый случай такого рода, он позволяет увидеть новые тенденции и особенности новой стратегии массированных DDoS. В частности:

  • В ботнет были рекрутированы не компьютеры, а специализированные устройства, такие как домашние маршрутизаторы, ресиверы цифрового телевидения, IP-камеры. Существенным преимуществом их использования для атакующих является режим постоянной работы, недостаточно зрелое программное обеспечение и отсутствие цикла его обновления.
  • Существенный масштаб внедрения однотипных устройств. Это означает, что найденная уязвимость может сразу поразить миллионы объектов. До недавнего времени рекорды атакующего трафика ставились так называемым рефлекторными атаками с усилением. Упомянутые же атаки не использовали ни рефлекторов, ни усилителей и не нуждались в возможности спуфинга. Несколько миллионов устройств просто посылали трафик в одно и то же место.

Учитывая, что IoT является областью бурной инновации, когда функциональность и время выхода на рынок являются абсолютными приоритетами, можно предположить, что число уязвимостей «умных объектов» будет только расти. А принимая во внимание все растущий масштаб внедрения контроллеров, сенсоров и других автономных устройств, имеющих связь с Интернетом, поверхность атаки становится угрожающе обширной.
В чем же решение? Как предотвратить развитие негативной тенденции, когда объекты представляют опасность не только для их обладателя, но и для окружающей среды?
Не претендуя на знание ответов на эти вопросы, давайте начнем с того, что попробуем взглянуть на суть этих вещей. Начнем с вопроса – что такое IoT?
Что такое IoT?
Несмотря на то, что сегодня термин «интернет вещей» или IoT (Internet of Things) материализовался в коммерческих устройствах и системах и используется повсеместно, не существует общепринятого определения.
Например, некоторые определяют IoT как систему связанных между собой и подключенных к Интернету физических объектов с помощью миниатюрных встроенных сенсоров и проводных и беспроводных технологий для создания экосистемы всепроникающего компьютинга. Другие делают упор на встроенный интеллект в материальных объектах, позволяющий регистрировать и соответствующим образом реагировать на изменение их состояния и состояния окружающей среды.
Во многом это объясняется тем, что эта область нова и изменчива; отчасти же тем, что эта тема затрагивает социальные аспекты и имеет во многом как технический, так и философский характер. Иногда под IoT понимают любое специализированное компьютерное устройство, как, например, домашний маршрутизатор или камеру наблюдения.
Однако можно попробовать выделить несколько существенных элементов, общих для IoT.

Сенсоры и контроллеры. Звук, движение, наблюдаемые и окружающие объекты, освещенность, температура – эти и другие параметры определяют состояние «вещи» и ее взаимодействие с окружающей средой. Если от «вещи» предполагается действие – она также содержит контроллер – регулятор или управляющее устройство. Так, например, дверь может распознать визитера по биометрическим параметрам и открыть замок, если они соответствуют хозяину жилища.
Отсутствующий пользовательский интерфейс. Большинство «вещей» получают информацию от сенсоров и управляющих серверов. Взаимодействие с пользователем часто происходит опосредованно, через управляющие серверы с интерфейсом порталов, или используя приложения, с помощью которых пользователь может получить информацию о статусе объектов и задать определенные установки. Умная лампочка осветительной системы Hue компании Philips управляется не привычным диммером или выключателем, а с помощью приложения, установленного на вашем смартфоне или планшете.
Программируемый интеллект. По существу, «вещь», подключенная к Интернету, – это материализованное приложение. И как для обычного приложения, ее функциональность может быть улучшена и расширена. Например, для осветительной система Hue существует более сотни различных приложений, позволяющих управлять освещением в доме с учетом времени дня, года, музыкой, текущей телевизионной программой и т.п. Подключив термостат Nest к Интернету вы получите доступ к дополнительной функциональности, например, определение оптимального режима в зависимости от прогноза погоды. Проще говоря – границами возможностей является ваше воображение.
Связность. Использование Интернета для обеспечения связности «вещей» позволяет им не только обмениваться информацией друг с другом или центральной системой. Интернет обеспечивает доступность вещей вне зависимости от вашего расположения. Вы можете управлять отопительной системой вашего дома из салона автомобиля, а климатической системой автомобиля – перед выходом из дома. Открытая коммуникационная инфраструктура Интернета позволяет таким системам обмениваться информацией с другими системами и информационными источниками. Так, система отопления может использовать данные прогноза погоды для выбора оптимального режима.
Автоматизация. Индустриальные сенсорные управляющие системы появились задолго до «интернета вещей». Уникальность сегодняшнего явления заключается в том, что оно принесло автоматизацию в массы, позволяя автоматизировать повседневные бытовые задачи. С другой стороны, благодаря открытой коммуникационной инфраструктуре, с помощью этих систем путем автоматизации могут быть решены широкомасштабные задачи – от интеллектуальной транспортной системы до интеллектуального городского освещения.
Умные системы: автомобиль, производство, дом
Для того, чтобы лучше увидеть типичные уязвимые места систем IoT и таким образом предложить общие рекомендации по безопасности, давайте рассмотрим несколько различных классов систем: системы автоматизации автомобилей, индустриальные системы и, наконец, системы домашней автоматизации.

Системы автоматизации автомобиля
Компьютеризация современного автомобиля происходит стремительными темпами. Цифровые контроллеры позволяют реализовать гораздо более широкий спектр функциональности, с большей эффективностью и гибкостью, чем механические системы. Однако интеграция новых технологий с многообещающими возможностями с коммуникационной архитектурой прошлого века представляет серьезные проблемы безопасности.
Дело в том, что взаимодействие между различными компонентами в автомобиле происходит с помощью так называемой шины CAN (Controller Area Network). Эта архитектура была разработана в 1990 году и заменила километры проводов. К сожалению, архитектура шины не обеспечивает достаточной безопасности, в частности, сегментации и изоляции между подключенными к ней устройствами. Это означает, что переключатель фар потенциально имеет доступ к контроллеру тормозов, а развлекательная система – к топливной системе. С точки зрения безопасности, устройства развлекательных систем и систем поддержки не должны иметь возможность напрямую обмениваться данными с устройствами, обеспечивающими критические функции автомобиля.
Другим уязвимым местом CAN является отсутствие аутентификации подключенных устройств. Учитывая, что CAN является широковещательной средой, неавторизованное устройство, подключенное к шине, сможет передавать данные, которые могут быть восприняты другими устройствами. Например, модуль управления двигателем регулярно посылает в шину показания скорости вращения коленвала. Эти данные «слышат» все устройства CAN, но только тахометр реально их обрабатывает, обновляя показания. Тем не менее, шина не помешает другому устройству послать модифицированные данные скорости вращения, тем самым искажая показания тахометра.
Наконец, шина не поддерживает шифрования – все данные передаются открыто. Хотя протокол CAN и является проприетарным, это вряд ли является убедительным аргументом в пользу безопасности.
Очевидно, что сегодняшний анализ рисков фундаментально отличается от видения 80-х годов прошлого века. Тридцать лет назад для использования перечисленных уязвимых мест атакующему требовалось бы физически подключиться к шине и потратить некоторое время на декодирование проприетарного протокола обмена данными между устройствами. Сегодня ситуация фундаментально отличается. Появление телематических устройств, поддерживающих протоколы Wi-Fi, Bluetooth, 3G/4G и широко используемых в современных развлекательных и навигационных системах, ключей зажигания с удаленным управлением, различных устройств, отслеживающих окружающую среду (например, парковочный ассистент, адаптивный круиз-контроль), существенно увеличивают поверхность атаки. Насколько «открыта» система управления современного автомобиля, показано на рис. 1.
Рис. 1. Цифровые каналы ввода-вывода в современном автомобиле. (Источник: Checkoway, S., McCoy, D., Kantor, B., Anderson, D., Shacham, H., Savage, S. et al. (2011). Comprehensive Experimental Analyses of Automotive Attack Surfaces, http://www.autosec.org/pubs/carsusenixsec2011.pdf)

Сегодня атакующему достаточно обнаружить уязвимое место в одном из перечисленных устройств, чтобы получить неограниченный доступ к CAN со всеми вытекающими отсюда возможностями. Например, группа исследователей CAESS (Center for Automotive Embedded Systems Security) убедительно показала, что получив доступ к CAN, атакующий сможет отключить тормоза, включить тормоза на отдельных колесах, выключить двигатель, фальсифицировать показания спидометра и т.п. (см. http://www.autosec.org/pubs/cars-oakland2010.pdf).
Насколько реальны эти угрозы, свидетельствуют случаи атак на серийные автомобили, например, удаленная атака на Jeep Cherokee, продемонстрированная исследователями Miller и Valasek (см. http://illmatics.com/Remote Car Hacking.pdf) и широко освещенная в печати (https://www.wired.com/2015/07/jeep-hack-chrysler-recalls-1-4m-vehicles-bug-fix/). Кстати, этот случай является иллюстрацией еще одной особенности рождающегося IoT. Зачастую устройства IoT не имеют возможности автоматического обновления программного обеспечения с целью закрытия уязвимых мест. Учитывая продолжительный срок жизни многих устройств, отсутствие такой функциональности представляет существенный риск. Компания Fiat Chrysler вынуждена была отозвать 1,4 миллиона машин для обновления программного обеспечения. Учитывая неудобства такой операции для владельцев, можно предположить, что для значительной части автомобилей уязвимость осталась незакрытой.
Индустриальные системы
Эволюция автоматизированных систем управления (АСУ) прошла путь от закрытых систем с проприетарными устройствами и протоколами к многоуровневой архитектуре со все большим использованием стандартных IT-компонентов и, наконец, к новой растущей тенденции внедрения технологий IoT.
Стоимость и расширенная функциональность являлись основными побудительными причинами перехода к более стандартной IT-архитектуре и компонентам. Этот переход имел последствия для безопасности – система уже не могла рассматриваться как полностью изолированная, уязвимые места стандартных компонентов были более явными. Однако для АСУ этого поколения было возможно обеспечить достаточную изоляцию от окружающей среды, включая физическую защиту. Количество компонентов было относительно ограниченным, а связь с внешней коммуникационной инфраструктурой, в частности, с Интернетом, не являлась требованием и либо хорошо контролировалась, либо полностью отсутствовала.
Возможность внедрения миниатюрных датчиков и контроллеров практически во все компоненты физического производственного процесса таит в себе выгоды, от которых трудно отказаться. В первую очередь – это существенное усиление надежности системы и обеспечение превентивного обслуживания. Сбор показателей состояния различных компонентов системы в реальном времени, сравнение данных от идентичных устройств, пороговые индикаторы износа – все это позволяет удешевить производственный процесс и значительно повысить его качество.

Однако применение IoT в АСУ часто несет в себе серьезные проблемы безопасности. Во-первых, вся система становится более открытой. Требования производительности и объема трафика зачастую превышают возможности корпоративной VPN, для раскрытия полного потенциала во многих случаях необходимо обеспечить связь со внешними службами и т.п. Во-вторых, эти проблемы усугубляются тем, что традиционные компоненты АСУ не защищены по определению, будучи разработаны для предполагаемой полностью закрытой и контролируемой среды.
Домашняя автоматизация
Появление IoT в домашней сети началось собственно с момента появления самой домашней сети. Домашний маршрутизатор можно считать первой домашней вещью, следуя наиболее общему определению: устройство, автономно выполняющее свои функции и подключенное к Интернету. И именно домашние маршрутизаторы сразу стали (и до сих пор являются) легкой добычей для рекрутёров ботнетов.
Однако истинный IoT многие связывают с компьютеризацией существующих окружающих вещей, таких как осветительные приборы, термостаты, дверные замки и т.п. Эта область развивается стремительно и довольно хаотично. В отличие от систем автомобильной автоматизации и АСУ, где имеет большее место отраслевое регулирование и стандартизация, область домашней автоматизации – это поистине «дикий запад”. Неуклонно уменьшающаяся цена и размеры сенсорных и исполнительных устройств позволяют компьютеризировать и подсоединить практически любую вещь. Естественно, инновационный потенциал в этой среде огромен. За умными термостатами и лампочками следуют дверные замки, сенсоры движения и детекторы дыма. Однако для раскрытия возможностей домашних IoT необходимо, чтобы устройства не только могли общаться с «удаленным мозгом» – облачными услугами и управляющим приложением, – но и между собой, образуя скоординированную систему умного дома. Такой совместимости у умных вещей пока нет.
В то же время, наряду с появлением единичных умных устройств, можно наблюдать формирование «экосистем», интегрирующих операционные системы устройств, коммуникационные протоколы и облачные услуги приложений. Большинство этих экосистем центрированы вокруг ведущих производителей или консорциумов. Например, Google продвигает операционную систему для умных объектов Brillo и коммуникационную платформу Weave (https://developers.google.com/weave/), Apple занята разработкой платформы HomeKit (http://www.apple.com/ios/home/), Qualcomm – Alljoyn (https://allseenalliance.org/framework), а Samsung рекламирует платформу SmartThings (https://www.smartthings.com/).
Эти платформы являются своего рода виртуальными операционными системами для умных объектов, позволяя централизовать предоставление в том числе функций безопасности (таких, как аутентификация, контроль доступа, изоляция и т.п.). В отсутствие таких платформ производителям умных объектов приходится самостоятельно обеспечивать требуемую защищенность устройств и реализовывать облачные приложения. К сожалению, чаще всего эти вопросы не решаются на должном уровне, уступая место требованиям функциональности и стоимости.
В среде домашней автоматизации несколько факторов усугубляют проблему безопасности:

  • «Умный дом» является открытой системой. Более того, несмотря на развитие упомянутых платформ, внедрение IoT в домашнем хозяйстве как правило производится неспециалистами, без долгосрочного планирования, приводя к созданию эклектичной системы с компонентами и архитектурой различных производителей и отсутствием единой политики безопасности.
  • Основной упор делается на функциональность устройств и системы в целом. Учитывая желание минимизировать стоимость устройств, это зачастую приводит к недостаточному вниманию к вопросам безопасности. Рядовой потребитель просто не может оценить степень защищенности устройств и связанные с его использованием риски и вынужден закрыть на эти аспекты глаза для получения желаемого функционального результата.
  • Все больше окружающих нас вещей используют Интернет для расширения своей функциональности. Становиться все сложнее приобрести «вещь», которая бы не подключалась к Интернету.
  • Масштаб внедряемых устройств IoT существенен. Более того, однотипность этих устройств значительно усиливает эффект обнаружения уязвимости в одном из них.
  • Многие сенсоры производят сбор весьма конфиденциальных данных, предоставляющих информацию о наших привычках, поведении, нахождении, могут прослушивать наши разговоры и делать видеозаписи. Например, телевизор SmartTV компании Samsung имеет возможность управляться голосовыми командами. Проблема заключается в том, что для этого телевизор пересылает услышанную речь в Sasmung для анализа на предмет возможных команд (http://www.cnet.com/news/samsungs-warning-our-smart-tvs-record-your-living-room-chatter/). Разумеется, эти данные зачастую содержат не только команды, но и просто подслушанный разговор. Насколько хорошо защищены эти данные и кто имеет к ним доступ?

Модель угроз
Чтобы понять риски, связанные с IoT, давайте рассмотрим архитектуру такой системы. В качестве примера возьмем наиболее общий вариант домашней автоматизации. Уязвимые места системы показаны на рис. 2 красными кругами.
Рис. 2. Уязвимые места экосистемы домашней автоматизации IoT.
Умные и опасные? (Вопросы безопасности IoT)
Рассмотрим каждый из компонентов системы в отдельности.

  • «Умное» устройство. Устройства IoT значительно различаются как по своей функциональности, так и по доступным ресурсам – от специализированного компьютера до миниатюрного сенсора или контроллера. Первая категория устройств является наиболее привлекательной для рекрутёров ботнетов благодаря следующим свойствам: широкая функциональность и значительные вычислительные возможности, непосредственное подключение к домашней сети и Интернету с широкой полосой пропускания, работа в режиме постоянного включения и отсутствие взаимодействия с пользователем. Для этой категории наиболее часто используются операционные системы общего назначения – преимущественно Linux – с известными и постоянно обнаруживающимися новыми уязвимыми местами. Широко известны случаи использования “умных” холодильников для рассылки спама или медиаресиверов для создания мощной атаки отказа в обслуживании. Для второй категории используются специализированные ОС (RIOT OS, Tizen, Windows 10 for IoT, Mbed OS). Скомпрометированные устройства этой категории могут использоваться для атаки на самого владельца – сбор данных, изменение функциональности, а также для атаки на другие устройства сети.

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

  • Коммуникационные протоколы. Устройства IoT по определению непосредственно или опосредованно (например, через шлюзы) подключены к Интернету. При этом имеет смысл выделить беспроводную связь в качестве отдельного компонента.
    • Беспроводная связь. Радиосвязь может являться уязвимым местом, когда атакующий находится на небольшом расстоянии от устройств. Это может быть и атака отказа в обслуживании путем глушения сигнала или атака посредника (Man-in-the-middle, MITM), если атакующему удается подключиться к беспроводной сети.
    • Протоколы верхних уровней (транспорт и приложение). Недостаточная защита на этом уровне, например, отсутствие надежной аутентификации и защиты данных, может быть использована для атаки MITM, со всеми вытекающими последствиями.

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

  • Шлюз или хаб. Шлюз обеспечивает обмен данными между устройствами, использующими различные протоколы, например, ZigBee и Bluetooth. Также шлюз обычно обеспечивает опосредованное подключение этих устройств к Интернету и доступ к облачным услугам. Проблемы, которые я перечислил относительно устройств с достаточными ресурсами, существуют и для шлюзов.

В некоторых архитектурных решениях, как, например, HomeKit, шлюз берет на себя также расширенные функции, обычно предоставляемые облачными услугами – сбор, анализ и хранение данных, программы автоматизации, а также обеспечивает удаленный доступ к функциям домашнего IoT. Также шлюз зачастую обеспечивает защиту подключенных к нему устройств, поэтому обеспечение безопасности для этого элемента чрезвычайно важно.

  • Облачные услуги. Поскольку возможности большинства «умных» объектов ограничены, вычислительные ресурсы для поддержки процессов автоматизации и управления устройствами, сбора и хранения данных, а также предоставление удаленного доступа обеспечиваются удаленными серверами, наиболее типично размещенными в облаке. Такой подход позволяет также управлять не изолированными устройствами, а их ансамблем – например, координируя работу осветительной и отопительной системы, системы безопасности, датчиков движения и т.п.
    • Программное обеспечение платформы. Облачная платформа обеспечивает создание (регистрацию) и управление устройствами IoT. После регистрации устройства платформа создает виртуальный образ физического объекта IoT, обеспечивая вычислительные ресурсы и память, необходимые для его работы и автоматизации. Облачная платформа является своего рода виртуальной операционной системой для приложений IoT. Она обеспечивает необходимый уровень абстракции, предоставляя стандартный API взаимодействия с устройствами, независимо от их физической реализации и производителя. Разумеется, физические объекты или шлюзы должны поддерживать протоколы платформы.

Платформа играет критическую роль в обеспечении безопасности, так же, как мобильная ОС определяет уровень безопасности смартфона. Регистрация устройства и приложения, контроль доступа к различным функциям устройства – от реализации этих функций зависит защищенность всей системы. Если приложение может получить большие привилегии, чем было задекларировано, например, к дополнительным функциям или другим устройствам системы (см., например, «Security Analysis of Emerging Smart Home Applications» Earlence Fernandes, Jaeyeon Jung, and Atul Prakash, https://iotsecurity.eecs.umich.edu/), это может иметь существенные последствия для безопасности самих владельцев IoT-систем.

  • Пользовательские облачные приложения. Так же, как и в мире смартфонов, пользователь имеет возможность установить приложения различных разработчиков для управления своими «умными» устройствами. Как и в случае со смартфонами, существует риск установки вредоносных приложений. Аутентификация программного обеспечения от разработчиков с репутацией, а также возможное сканирование на предмет вредоносных функций могут помочь в уменьшении этих рисков.
  • Приложения удаленного доступа. Эти приложения предоставляют пользовательский интерфейс взаимодействия с облачными пользовательскими приложениями для управления объектами IoT. Наиболее типичным является использование веб-API. При этом клиентом является приложение, установленное на смартфоне или планшете (или даже на компьютере), а сервисная часть обслуживается облачным приложением. Использование незащищенных протоколов, например, HTTP вместо HTTPS, и недостаточно прочная система аутентификации являются наиболее уязвимыми элементами этого компонента

В поисках решений
Как хорошо видно из анализа угроз системы IoT, проблема безопасности требует комплексного решения. Не существует магической технологии или практики, которые бы надежно защитили всю систему. Чем открытее система, тем больше игроков должны быть вовлечены в решение проблемы – от производителей оборудования IoT, разработчиков программного обеспечения до провайдеров облачных структур и самих владельцев «умных» устройств. Более того, недостаточная защищенность хотя бы одного из элементов может существенно ослабить безопасность системы в целом.
Принимая во внимание анализ угроз и уязвимости системы, показанные на рис. 1, можно сформулировать ряд комплексных мер, направленных на усиление защищенности системы в целом.
Защищенность устройств IoT
Начнем с собственно устройств IoT – с умных замков, термостатов, лампочек, видеокамер и т.п. Хотя, как я уже отмечал, возможности таких систем сильно различаются, все же можно сформулировать несколько общих рекомендаций:

  1. Надежная система доступа и аутентификации, основанная на криптографии.

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

  1. Криптографическая защищенность программного обеспечения (ПО).

Хорошей практикой является использование системы PKI для подписания кода и проверки его аутентичности. Эта функциональность также является основой для защищенного обновления ПО.

  1. Обновление ПО на протяжении всего жизненного цикла устройств.

Как известно, практически не существует ПО без ошибок. Это значит, что рано или поздно в устройстве могут быть обнаружены новые уязвимые места. Единственным способом уменьшения этого риска является возможность обновления ПО версией с закрытыми найденными уязвимыми местами. Разумеется, при условии, что разработчик ПО реагирует на найденные уязвимости созданием необходимых заплаток и своевременно выпускает обновленную версию ПО. Чрезвычайно важно, чтобы обновление могло осуществляться автоматически, без участия владельца устройств. Критическим является защищенность всего процесса.
Этот вопрос является непростым, а его решение таит множество подводных камней. Более подробное обсуждение проблем и дополнительных рекомендаций в этой области можно найти в отчете семинара Internet of Things (IoT) Software Update (IoTSU) (https://tools.ietf.org/html/draft-farrell-iotsu-workshop), организованного IAB.
Защита передаваемых данных и коммуникационной инфраструктуры

  1. Криптографическая защита данных.

Эта мера является общепринятым способом решения проблемы защиты данных. Она является критической для исключения прослушивания и спуфинга другими скомпрометированными устройствами, а также атак проигрывания (replay attack). Особенно для беспроводных сетей важно обеспечение шифрования также и на канальном уровне.

  1. Отсутствие критических зависимостей от связности.

Защиту коммуникационной инфраструктуры зачастую трудно обеспечить. Например, связь в беспроводной сети может быть прервана с использованием радиоглушения. Важным здесь является сохранение системой критической функциональности даже при отсутствии связи. Например, владелец должен иметь возможность открыть дверь, а термостат должен продолжать выполнять базовую температурную программу.
Защита системы
Как обсуждалось выше, в общем случае объекты IoT формируют своего рода “ансамбль” и являются частью сложной системы с внешними компонентами. Хотя наиболее простые формы, как например, фитнес-гаджет – смартфон, будут продолжать существовать, автоматизация окружающей среды – дома, офиса, города или производственного процесса – подразумевает все более тесную интеграцию отдельных компонентов и умных объектов.
В «системном» аспекте можно выделить две основных области, играющие существенную роль в обеспечении безопасности, – локальная сеть IoT и облачная платформа. Замечу, что в ряде случаев услуги приложений предоставляет локальный хаб. В этом случае рекомендации для платформы относятся к нему.
Защита локальной сети
Фундаментальный принцип сквозной связности (end-to-end principle) в Интернете предполагает, что интеллект сосредоточен на оконечных устройствах, а основной функцией сетей является пересылка пакетов от источника к получателю, невзирая на их природу, тип адресатов и т.п. Нарушение этого принципа вводит невидимые зависимости, разъедающие совместимость и прозрачное взаимодействие сетей, тем самым уменьшая инновационный потенциал Интернета в целом.
Однако в случае IoT мы вряд ли можем продолжать рассматривать локальную сеть в качестве прозрачной нейтральной среды. Принцип сквозной связности по-прежнему применим, но сегодня это скорее действует между локальной сетью и облаком. Появление облачных услуг и IoT существенно меняет наше представление об оконечном устройстве в контексте этого принципа.
В отношении локальной сети, помимо перечисленных рекомендаций по защищенности коммуникационной инфраструктуры, главным вопросом является возможность определения политики безопасности и обеспечение ее соблюдения. Проблемой является то, что обычный пользователь вряд ли может и хочет самостоятельно определить эту политику, поэтому эта задача должна по возможности быть решена без его участия.
Сегодня типичной политикой безопасности в домашней сети является блокирование входящих соединений и пакетов с подложными адресами. Последнее обычно является положительным последствием использования NAT, а не сознательным использованием практики BCP38 (https://datatracker.ietf.org/doc/rfc2827/), и известны случаи, когда ПО NAT позволяет отдельные случаи спуфинга.
Однако устройства, подключаемые к домашней сети, должны иметь возможность общения со внешним миром, что зачастую требует разрешения определенных внешних соединений и открытия соответствующих портов на домашнем маршрутизаторе. Для автоматизации этой задачи широко используется технология UPnP (https://ru.wikipedia.org/wiki/UPnP). К сожалению, протокол UPnP не обладает необходимыми функциями безопасности, и позволяет вредоносному ПО открыть порты на домашнем маршрутизаторе для входящего трафика. Протокол UPnP не обеспечивает, в частности, аутентификацию устройств и предоставляет ограниченные возможности спецификации трафика устройства.
Одним из возможных решений данной проблемы является создание дополнительной спецификации устройства, детально описывающей требуемую политику безопасности для конкретного устройства – перенаправление портов, допустимые источники трафика и его характеристики. Эта спецификация может быть использована для реализации этой политики на устройствах безопасности или домашних маршрутизаторах. Проект этого решения под названием Manufacturer Usage Description (Спецификация использования от производителя) или MUD (https://tools.ietf.org/html/draft-ietf-opsawg-mud) в настоящее время обсуждается в IETF.
Суть его заключается в следующем. В процессе инициализации устройство передает URL, где расположен соответствующий файл MUD. Контроллер MUD, который может являться частью домашнего маршрутизатора или экрана безопасности, скачивает файл с сервера и соответствующим образом конфигурирует списки доступа и т.п. Предполагается, что файл MUD предоставляется производителем устройства и защищен электронной подписью, позволяющей контроллеру проверить подлинность спецификации. Принцип работы этого подхода схематично показан на рис. 3.

Рис. 3. Архитектура MUD (Источник: «Manufacturer Usage Description Specification”, https://tools.ietf.org/html/draft-ietf-opsawg-mud).

Безопасность облачной платформы
Облачная платформа является виртуальной операционной системой системы IoT. Она обеспечивает программный интерфейс доступа и управления “умными” объектами, создавая и обслуживая их виртуальные копии. Поэтому от того, насколько защищены эти функции, зависит безопасность системы в целом. В этой области можно выделить несколько важных моментов.

  1. Контроль доступа к ресурсам устройств.

Подобно мобильным приложениям для смартфонов, приложение объявляет набор ресурсов, к которым оно хотело бы получить доступ. Платформа же предоставляет список устройств с этими ресурсами. Соответственно, пользователь получает возможность выбрать, к каким устройствам и их возможностям данное приложение может иметь доступ, тем самым авторизуя приложение. Однако зачастую система доступа, обеспечиваемая платформой, недостаточно детальна. Например, исследователи Мичиганского университета и Miscrosoft Research обнаружили, что в платформе SmartThings, когда пользователь авторизует приложение для доступа к устройству, он тем самым предоставляет доступ ко всем возможностям этого устройства (https://iotsecurity.eecs.umich.edu/). Для иллюстрации уязвимости такого подхода они использовали приложение для мониторинга статуса зарядки батареи для автономных устройств, в частности, замка входной двери. Авторизуя это, с виду невинное и полезное приложение, пользователь открывает ему доступ также к другим возможностям, как, например, открытие и закрытие замка. Злоумышленники могут использовать эту возможность для маскировки вредоносного ПО под видом безобидных утилит. Однако, как отмечают исследователи, создание более детальной системы может сделать пользование системой более сложной, требуя от пользователя дополнительных операций по авторизации. Как известно, желание поскорее установить понравившееся приложение зачастую пересиливает требования безопасности, и пользователь игнорирует все предосторожности. Здесь важно найти правильный баланс.

  1. Надежная идентификация приложений, защищенная система распределения событий.

Использование системы событий довольно распространённый подход во многих платформах. Во многом здесь применима аналогия шины CAN, используемой в автомобильной индустрии. Аутентификация приложений для избегания спуфинга и изоляция событий для предотвращения доступа неавторизованными приложениями – два необходимых элемента защищенности платформы.

  1. Верификация приложений «магазинами приложений» (app stores).

Так же, как и в экосистеме мобильных приложений, возможность предварительной проверки приложений на предмет наличия вредоносного кода, как, например, атак внедрения кода (code injection), превышения привилегий и т.п., позволит создать более защищенную экосистему.
Заключение
Значительный рост рисков, связанных с проблемами безопасности и защиты частной жизни, связан не с IoT как таковым, а с тем, что цифровой мир и Интернет все плотнее вплетается в нашу жизнь. Все больше персональных и конфиденциальных данных хранятся в “облаках”, все более зависимы мы от умных полезных устройств, приложений, Интернета. IoT безусловно делает рассмотренные выше проблемы более значительными.
Защищенность системы – не бинарное состояние. Степень безопасности представляет собой широкий спектр. Насколько хорошо защищена система, также зависит от характера угроз. Все эти факторы меняются во времени. Будем надеяться, что по мере того, как отрасль становится более зрелой, безопасность IoT будет обеспечиваться на адекватном уровне.