Интернет вещей (IoT) плотно вошел в нашу жизнь и миллиардов людей по всему миру. Однако рост количества подключенных устройств ведет к увеличению рисков безопасности: от причинения физического вреда людям до простоев и повреждения оборудования — это могут быть даже трубопроводы, доменные печи и установки для выработки электроэнергии. Поскольку ряд таких объектов и систем IoT уже подвергались нападению и был причинен внушительный ущерб, обеспечение их защиты выходит на первый план.
- Введение
- Из чего состоит защита IoT
- Эволюция парадигмы
- Безопасность связи. Усиленная модель доверия для IoT
- Защита устройств. Защита программного кода IoT
- Защита устройств. Эффективная хостовая защита для IoT
- Выводы
Введение
В быту, когда разговор идет про IoT, как правило, имеют в виду лампочки, обогреватели, холодильники и прочую технику для дома, которой можно управлять через интернет. На самом деле, тема IoT намного шире. Под интернетом вещей мы в первую очередь понимаем подключенные к вычислительной сети автомобили, телевизоры, камеры наблюдения, роботизированное производство, умное медицинское оборудование, сеть электроснабжения и бесчисленные промышленные системы управления (турбины, клапаны, сервоприводы и т. д.).
К счастью, безопасность интернета вещей можно построить на фундаменте из четырех краеугольных камней: безопасность связи, защита устройств, контроль устройств и контроль взаимодействий в сети.
На этом фундаменте можно создать мощную и простую в развертывании систему безопасности, которая способна ослабить негативное воздействие большинства угроз безопасности для интернета вещей, включая целенаправленные атаки. В этой статье мы описываем четыре фундаментальных направления, их назначение и стратегии простой эффективной реализации. Конечно, невозможно разобрать все детали в обзоре, но мы попытаемся предоставить базовые рекомендации, применимые ко всем областям, включая автомобильную промышленность, энергетику, производство, здравоохранение, финансовые услуги, государственный сектор, розничную торговлю, логистику, авиацию, товары широкого потребления и другие направления, рассмотрим некоторые примеры. Что представляют собой эти четыре краеугольных камня?
Из чего состоит защита IoT
Безопасность связи
Канал связи должен быть защищен, для этого применяются технологии шифрования и проверки подлинности, чтобы устройства знали, могут ли они доверять удаленной системе. Здорово, что новые криптографические технологии, такие как ECC (Elliptic Curve Cryptography), работают в десять раз лучше предшественников в слабомощных чипах IoT 8-bit 8MHz. Не менее важной задачей здесь является управление ключами для проверки подлинности данных и достоверности каналов их получения. Ведущие центры сертификации (CA) уже встроили «сертификаты устройств» в более чем миллиард устройств IoT, предоставив возможность выполнять проверку подлинности широкого спектра устройств, включая сотовые базовые станции, телевизоры и многое другое.
Защита устройств
Защита устройств — это в первую очередь обеспечение безопасности и целостности программного кода. Тема безопасности кода выходит за рамки этой статьи, заострим внимание на целостности. Подписание кода требуется для подтверждения правомерности его запуска, также необходима защита во время выполнения кода, чтобы атакующие не перезаписали его во время загрузки. Подписание кода криптографически гарантирует, что он не был взломан после подписания и безопасен для устройства. Это может быть реализовано на уровнях application и firmware и даже на устройствах с монолитным образом прошивки. Все критически важные устройства, будь то датчики, контроллеры или что-то еще, должны быть настроены на запуск только подписанного кода.
Устройства должны быть защищены и на последующих этапах, уже после запуска кода. Здесь поможет защита на основе хоста, которая обеспечивает харденинг, разграничение доступа к системным ресурсам и файлам, контроль подключений, песочницу, защиту от вторжений, защиту на основе поведения и репутации. Также в этот длинный список возможностей хостовой защиты входят блокирование, протоколирование и оповещение для различных операционных систем IoT. В последнее время многие средства хостовой защиты были адаптированы для IoT и теперь хорошо проработаны и отлажены, не требуют доступа к облаку и бережно расходуют вычислительные ресурсы IoT-устройств.
Контроль устройств
Печально, но уязвимости в устройствах IoT все равно будут, их нужно будет патчить, и это может происходить в течение длительного времени после передачи оборудования потребителю. Даже код с применением обфускации в критичных системах в конце концов реконструируется, и злоумышленники находят в нем уязвимости. Никто не хочет, а зачастую и не может отправлять своих сотрудников для очного визита к каждому устройству IoT для обновления прошивки, особенно, если речь идет, например, о парке грузовиков или о сети датчиков контроля, распределенных на сотни километров. По этой причине «управляемость по воздуху» (over-the air, OTA), должна быть встроена в устройства до того, как они попадут к покупателям.
Контроль взаимодействий в сети
Некоторые угрозы смогут преодолеть любые предпринятые меры, независимо от того, насколько хорошо все защищено. Поэтому крайне важно иметь возможности аналитики безопасности в IoT. Системы для аналитики безопасности помогут вам лучше понять вашу сеть, заметить подозрительные, опасные или злонамеренные аномалии.
Эволюция парадигмы
Большинство устройств IoT представляют из себя «закрытые системы». Покупатели не смогут добавлять программное обеспечение безопасности после того, как устройства покинут завод. Такое вмешательство аннулирует гарантию, а зачастую попросту не представляется возможным. По этой причине, защитные функции должны быть изначально встроены в устройства IoT, чтобы они были безопасными по своей архитектуре. Для большей части индустрии ИБ такая «безопасность внутри», то есть встроенная при изготовлении устройства на заводе — это новый способ обеспечения защиты, это касается и классических технологий безопасности, таких как шифрование, проверка подлинности, проверка целостности, предотвращение вторжений и возможности безопасного обновления. Учитывая тесную связь аппаратного и программного обеспечения в модели IoT, иногда проще, чтобы программы для защиты использовали расширение функций аппаратной части и создавали «внешние» уровни безопасности. Здорово, что многие производители чипов уже встроили функции безопасности в оборудование. Но аппаратный уровень — это всего лишь первый слой, необходимый для комплексной защиты связи и устройств. Комплексная защита требует интеграции функций управления ключами, защиты на основе хоста, инфраструктуры OTA и аналитики безопасности, о чем мы упоминали прежде. Отсутствие даже одного из краеугольных камней в фундаменте безопасности оставит широкий простор действиям злоумышленников.
Поскольку промышленный интернет и IoT привносят сетевой интеллект в физические вещи вокруг нас, мы должны внимательно относиться к вопросам их безопасности. Наша жизнь зависит от самолетов, поездов и автомобилей, которые перевозят нас, от инфраструктуры здравоохранения и гражданской инфраструктуры, которая позволяет нам жить и работать. Нетрудно представить, как незаконное манипулирование светофорами, медицинским оборудованием или бесчисленными другими устройствами может привести к плачевным последствиям. Также ясно, что простые граждане и покупатели IoT не хотят, чтобы незнакомые люди взламывали их дома или машины, чтобы кто-то причинял им вред, устраивая сбои на автоматизированных промышленных объектах. В этой ситуации мы попытаемся предложить такие рекомендации, которые сформируют целостную безопасность для IoT, одновременно сделав ее эффективной и простой в реализации.
Безопасность связи. Усиленная модель доверия для IoT
Шифрование, проверка подлинности и управляемость неизменно являются основой устойчивой безопасности. Есть отличные библиотеки с открытым исходным кодом, которые выполняют шифрование даже в устройствах IoT с ограниченными вычислительными ресурсами. Но, к сожалению, большинство компаний по-прежнему подвергаются опасным рискам, допуская ошибки при управлении ключами для IoT.
Транзакции на 4 млрд долларов в день электронной торговли защищены простой и надежной моделью доверия, обслуживающей миллиарды пользователей и более миллиона компаний по всему миру. Эта модель доверия помогает системам безопасно проводить проверку подлинности систем других компаний и взаимодействовать с ними по зашифрованным каналам связи. Модель доверия сегодня является критичным фактором безопасного взаимодействия в компьютерных средах и основывается на очень кратком списке надежных центров сертификации (CA). Эти же CA устанавливают сертификаты в миллиарды устройств каждый год. Сертификаты устройств позволяют, например, проверять подлинность мобильных телефонов для безопасного подключения к базовым станциям, проверять подлинность интеллектуальных счетчиков для электроэнергетики, а также приставок в индустрии кабельного телевидения. Надежные CA позволяют легко и безопасно генерировать, выдавать, регистрировать, контролировать и отзывать сертификаты, ключи и учетные данные, которые имеют решающее значение для надежной проверки подлинности. Учитывая реализуемые объемы сертификатов безопасности для IoT, большинство сертификатов устройств продаются большими партиями за весьма скромную сумму денег за единицу (в долларовом выражении речь идет о десятках центов за сертификат).
Почему проверка подлинности имеет значение? Опасно принимать данные от непроверенных устройств или непроверенных сервисов. Такие данные могут повредить или скомпрометировать систему, передать контроль над оборудованием злоумышленникам. Использование надежной проверки подлинности для ограничения нежелательных подключений помогает уберечь системы IoT от подобных опасностей и сохранить контроль над вашими устройствами и сервисами. Независимо от того, соединяется ли устройство с каким-то другим устройством или происходит обмен данными с удаленным сервисом, например, облачным, связь всегда должна быть защищена. Все взаимодействия требуют надежной проверки подлинности и взаимного доверия. Исходя из этих соображений, экономия на сертификатах устройств представляется спорной.
К счастью, множество стандартов было разработано для упрощения нам с вами развертывания надежной проверки подлинности всех звеньев цепи обмена данными. Стандарты существуют для форматов сертификатов, и надежные центры сертификации поддерживают как стандартные, так и кастомные форматы. В большинстве случаев сертификатами можно легко управлять удаленно (OTA) с помощью стандартных протоколов, таких как Simple Certificate Enrollment Protocol (SCEP), Enrollment over Secure Transport (EST) и Online Certificate Status Protocol (OCSP). Благодаря надежному центру сертификации, который предоставляет возможность обрабатывать сертификаты, ключи и учетные данные, фактическую проверку подлинности можно делать с помощью мощных стандартов Transport Layer Security (TLS) и Datagram TLS (DTLS) — родственных SSL. Взаимная проверка подлинности, когда обе конечные точки проверяют друг друга, имеет решающее значение для качественной защиты систем IoT. В качестве дополнительного бонуса, однажды выполнив проверку подлинности по TLS или DTLS, две конечные точки могут обмениваться ключами шифрования или получать их для обмена данными, которые невозможно расшифровать подслушивающими устройствами. Для многих приложений IoT требуется абсолютная конфиденциальность данных, это требование легко выполняется использованием сертификатов и протоколов TLS/DTLS. Однако когда конфиденциальность не является обязательным требованием, подлинность передаваемых данных может проверяться любой стороной, если они были подписаны во время их появления на датчике — такой подход не отягощает канал шифрованием, что предпочтительно в архитектурах multi-hop.
Часто возникают вопросы касательно стоимости и производительности чипов IoT для криптографических операций. Здесь нужно принять во внимание, что Elliptic Curve Cryptography (ECC) в 10 раз быстрее и эффективнее, чем традиционное шифрование даже в ограниченных вычислительными ресурсами устройствах. Такая скорость и эффективность достигаются без снижения уровня безопасности. ECC даже продемонстрировал уровень защиты industry best practice, эквивалентный RSA 2048, в том числе на чрезвычайно ограниченных в ресурсах чипах — на 8-bit 1-MHz процессорах и 32-bit 1-KHz процессорах, при потреблении лишь микроватт энергии. DTLS, вариант TLS был разработан специально для маломощных устройств, которые периодически работают между циклами сна. И наконец, цена таких 32-разрядных чипов составляет всего несколько десятков центов (при расчете в долларах), поэтому цену или мощность чипов не получится использовать в качестве аргумента для снижения требований по защите ниже разумных пороговых значений, когда безопасность имеет значение. В силу описанных факторов предлагаются следующие рекомендации по длине ключа для проверки подлинности устройства IoT, где безопасность имеет значение:
- минимум 224-bit ECC для сертификатов конечных объектов с предпочтением 256-bit и 384-bit;
- минимум 256-bit ECC для корневых сертификатов с предпочтением 384-bit.
Сегодня мы не можем представить себе такое неудобство, как ручную установку сертификатов в наши браузеры для каждого веб-сервера, в то же время, мы не можем представить себе, какой будет ущерб, если слепо верить любому сертификату. Вот почему каждый браузер имеет несколько корней доверия, по которым верифицируются все сертификаты. Встраивание этих корней в браузеры дало возможность масштабировать защиту на миллионы серверов в Интернете. Поскольку миллиарды устройств становятся онлайн ежегодно, в равной степени важно, чтобы в устройства встраивались и корни доверия, и сертификат устройства.
Данные, связанные с IoT, должны храниться в безопасности все время. Наша жизнь зачастую зависит от правильности, целостности и надлежащего функционирования этих систем больше, чем от конфиденциальности данных. Проверка подлинности информации, устройств и происхождения информации могут иметь решающее значение. Данные зачастую хранятся, кэшируются и обрабатываются несколькими узлами, а не просто передаются из точки А в точку Б. По этим причинам данные всегда должны быть подписаны в тот момент, когда они были впервые зафиксированы и сохранены. Это помогает снизить риски любого вмешательства в информацию. Подписание объектов данных, как только они были зафиксированы, и ретрансляция подписи с данными даже после их дешифрации является все более распространенной и успешной практикой.
Защита устройств. Защита программного кода IoT
При включении каждое устройство загружается и запускает определенный исполняемый код. Нам крайне важно быть уверенными в том, что устройства будут делать только то, на что мы их запрограммировали, а посторонние не смогут перепрограммировать на злонамеренное поведение. То есть первым шагом в защите устройств является защита кода, чтобы гарантированно загружался и запускался только нужный нам код. К счастью, многие производители уже встроили возможности безопасной загрузки в свои чипы. Похожим образом дела обстоят и с высокоуровневым кодом — различные проверенные временем клиентские библиотеки с открытым исходным кодом, вроде OpenSSL, могут использоваться для проверки подписи и разрешения кода только из авторизованного источника. Вследствие этого все большее распространение получают подписанные прошивки, загрузочные образы и более высокоуровневый встроенный код, в том числе подписанные базовые программные компоненты, куда входят любые операционные системы. Все чаще встречаются не просто подписанные прикладные программы, а вообще весь код на устройстве. Такой подход гарантирует, что все критичные компоненты систем IoT: датчики, механизмы, контроллеры и реле сконфигурированы правильно — на запуск только подписанного кода и никогда не запустят неподписанный код.
Хорошей манерой было бы придерживаться принципа «никогда не доверять неподписанному коду». Логичным продолжением было бы «никогда не доверять неподписанным данным и, тем более, неподписанным конфигурационным данным». Использование современных средств проверки подписи и распространение аппаратной реализации безопасной загрузки, ставят серьезную задачу перед многими компаниями — управление ключами и контроль доступа к ключам для подписи кода и защиты встроенного программного обеспечения. К счастью, некоторые центры сертификации предлагают облачные сервисы, которые делают проще, безопаснее и надежнее администрирование программ для подписывания кода и гарантируют строгий контроль, кто может подписывать код, отзывать подписи, и как ключи для подписания и отзыва защищены.
Возникают ситуации, когда программное обеспечение нужно обновить, например, в целях безопасности, но при этом необходимо учесть влияние обновлений на заряд батареи. Операции перезаписи данных увеличивают потребление энергии и сокращают период автономной работы устройства.
Появляется необходимость подписать и обновить отдельные блоки или фрагменты таких обновлений, а не монолитные образы целиком или бинарные файлы. Тогда программное обеспечение, подписанное на уровне блоков или фрагментов, можно обновлять с гораздо более тонкой детализацией, не жертвуя безопасностью или зарядом батареи. Для этого не нужна обязательно аппаратная поддержка, такую гибкость можно достичь от предзагрузочной среды, которая может работать на множестве embedded-устройств.
Если время автономной работы настолько важно, почему бы просто не сконфигурировать устройство с неизменяемой прошивкой, которую никто не может изменить или обновить? К сожалению, мы вынуждены предположить, что устройства в полевых условиях подвержены реверс-инжинирингу для вредоносных целей. После его проведения обнаруживаются и эксплуатируются уязвимости, которые необходимо патчить как можно скорее. Обфускация и шифрование кода могут существенно замедлить процесс реверс-инжиниринга и отбить охоту продолжать атаковать у большинства злоумышленников. Но враждебные спецслужбы или межнациональные деструктивные организации все-таки способны это сделать даже для программ, защищенных с помощью обфускации и шифрования, прежде всего потому, код должен быть дешифрован для запуска. Такие организации найдут и воспользуются уязвимостями, которые не были своевременно пропатчены. В связи с этим возможности удаленного обновления (OTA) имеют решающее значение и должны быть встроены в устройства до того, как они покинут завод. OTA-обновления software и firmware очень важны для поддержания высокого уровня защищенности устройства. Подробнее этот момент мы с вами еще рассмотрим в разделе «Контроль устройств». Тем не менее, обфускация, сегментированное подписание кода и OTA-обновления в конечном счете должны быть плотно объединены между собой для эффективной работы.
Кстати, и сегментированное, и монолитное подписание кода используют модель доверия на основе сертификатов, описанную в предыдущем разделе «Безопасность связи», а использование ECC при подписании кода может обеспечить те же самые преимущества высокого уровня безопасности в сочетании с высокой производительностью и низким энергопотреблением. В этой ситуации предлагаются следующие рекомендации по длине ключа для подписи кода IoT, где безопасность имеет значение:
- минимум 224-bit ECC для сертификатов конечных объектов с предпочтительным 256-bit и 384-bit;
- минимум 521-bit ECC для корневых сертификатов, поскольку, как правило, ожидается, что подписанный код будет использоваться годами или даже десятилетиями после подписания, а подписи должны быть достаточно сильными, чтобы оставаться надежными в течение столь длительного времени.
Защита устройств. Эффективная хостовая защита для IoT
В предыдущей главе мы рассмотрели первый аспект защиты устройств, который определяет основные принципы управления ключами, проверки подлинности для IoT, подписание кода и конфигурации для защиты целостности устройства, основы OTA-управления таким кодом и конфигурацией. Однако, после защиты связи и реализации безопасной загрузки хорошо управляемого устройства, необходима защита на этапе эксплуатации. Хостовая защита решает эту задачу.
IoT-устройства сталкиваются со многими угрозами, в том числе вредоносным кодом, который может распространяться через проверенные соединения, воспользовавшись уязвимостями или ошибками в конфигурации. В таких атаках часто эксплуатируются несколько слабых мест, включая, но не ограничиваясь:
- неиспользование проверки подписи кода и безопасную загрузку;
- плохо реализованные модели проверки, которые можно обойти.
Атакующие часто используют эти недостатки для установки бэкдоров, снифферов, программного обеспечения для сбора данных, возможности передачи файлов для извлечения конфиденциальной информации из системы, а иногда даже для инфраструктуры command & control (C&C) для манипулирования поведением системы. Особо тревожит способность некоторых злоумышленников эксплуатировать уязвимости для установки вредоносных программ прямо в память уже работающих систем IoT. Причем иногда выбирается такой способ заражения, при котором вредоносная программа исчезает после перезагрузки устройства, но успевает наносить огромный ущерб. Это работает, потому что некоторые системы IoT и многие промышленные системы почти никогда не перезагружаются. Для отдела безопасности в этом случае затрудняется возможность обнаружения использованной уязвимости в системе и расследование происхождения атаки. Иногда такие атаки происходят через IT-сеть, подключенную к промышленной сети или к сети IoT, в других случаях атака происходит через интернет или через прямой физический доступ к устройству. Как вы понимаете, не важно, какой был исходный вектор инфекции, но если он не обнаружен, то первое скомпрометированное устройство по-прежнему остается доверенным и становится проводником для заражения остальной сети, будь то автомобильная сеть транспортного средства или целая производственная сеть завода. Таким образом, безопасность IoT должна быть комплексной. Закрывая окна, оставлять дверь открытой – неприемлемо. Все векторы угроз должны подавляться.
К счастью, в сочетании с надежной подписью кода и моделью проверки, хостовая защита может помочь защитить устройство от множества опасностей. В хостовой защите используется ряд технологий защиты, в том числе харденинг, разграничение доступа к системным ресурсам, песочница, защита на основе репутации и поведения, защита от вредоносных программ и, наконец, шифрование. В зависимости от потребностей конкретной системы IoT комбинация этих технологий может обеспечить наивысший уровень защиты для каждого устройства.
Харденинг, разграничение доступа к ресурсам и песочница защитят все «двери» в систему. Они ограничивают сетевые подключения к приложениям и регламентируют входящий и исходящий поток трафика, защищают от различных эксплойтов, переполнения буфера, целенаправленных атак, регулируют поведение приложений, при этом позволяют сохранить контроль над устройством. Такие решения еще могут использоваться для предотвращения несанкционированного использования съемных носителей, блокировки конфигурации и настроек устройства и даже для деэскалации пользовательских привилегий, если нужно. Хостовая защита обладает возможностями аудита и оповещения, помогая отслеживать журналы и события безопасности. Технологии на основе политик могут работать даже в средах без подключения к информационной сети или при ограниченной вычислительной мощности, необходимой для использования традиционных технологий.
Технология защиты на основе репутации может использоваться для определения сущности файлов по их возрасту, распространенности, местоположению и прочему для выявления опасностей, не обнаруживаемых иными средствами, а также давать представление о том, следует ли доверять новому устройству даже при успешной проверке подлинности. Таким способом можно идентифицировать угрозы, которые используют мутирующий код или адаптируют свою схему шифрования, просто отделяя файлы с высоким риском от безопасных, быстро и точно обнаруживая вредоносные программы, несмотря на все их ухищрения.
Разумеется, сочетание применяемых технологий будет зависеть от конкретной ситуации, но приведенные выше средства могут объединяться для защиты устройств, даже в средах с ограниченными вычислительными ресурсами.
Выводы
Как можно защитить IoT? Системы IoT бывают очень сложными, им требуются комплексные меры защиты, покрывающие уровни облаков и подключений, также необходима поддержка устройств IoT с ограниченными вычислительными ресурсами, которых недостаточно для поддержки традиционных решений безопасности. Простого универсального решения не существует, и для обеспечения безопасности недостаточно запереть двери, оставив окна открытыми. Безопасность должна быть всесторонней, иначе атакующие просто воспользуются самым слабым звеном. Конечно, традиционные IT-системы как правило передают и обрабатывают данные из систем IoT, но сами системы IoT обладают своими уникальными потребностями в защите.
В первой части статьи мы обозначили четыре базовых и самых важным принципа защиты IoT и подробно рассмотрели два из них: безопасность связи и защиту устройств. Продолжение статьи читайте в следующей части.
Ссылка на вторую часть статьи: Эталонная архитектура безопасности интернета вещей (IoT). Часть 2