23 июня 2017
Интернет вещей и безопасность: проблемы и решения
Константин Иванов
По материалам androidauthority.com
Ни для кого из нас уже давно не является экзотикой понятие «Интернет вещей» (Internet of Things, IoT). Тема неизменно вызывает большое количество дискуссий. Кто-то даже называет интернет вещей следующей революцией после мобильной, а кто-то, напротив, говорит, что шума тут больше, чем реальной пользы. Истина, как обычно, где-то посредине. Но одно справедливо точно: количество устройств, подключенных к интернету, растет, и растет быстро. Раньше это были только компьютеры – настольные машины, серверы и ноутбуки – но сейчас почти каждое устройство по крайней мере обладает потенциальной возможностью выходить в сеть. Целый спектр, от машин до сенсоров дверей – трудно перечислить все, что в наши дни способно подключиться к интернету.
Согласно исследованиям, к концу 2016 было уже свыше 6 млрд устройств в сети, а к 2020 оно достигнет 20 млрд. Для чего их подключают к интернету? Для того, чтобы они могли отправлять в облако информацию, которая затем может быть обработана и использована в разных целях. Хотите управлять чайником с телефона? Проще простого. Хотите оснастить дом камерами слежения в целях безопасности в ваше отсутствие? Да как пожелаете!
Впрочем, со всеми этими подключениями есть одна проблема. Связь осуществляется в обоих направлениях. И если устройство может посылать данные в облако, то и с ним можно связываться из облака. Вот где лежат корни проблемы безопасности. Если хакер сможет получить контроль над устройствами, неизбежно возникнет хаос. Не это ли ключевой недостаток интернета вещей?
Нечто подобное мы видели недавно, когда кибер-преступники устроили DDoS атаку на Dyn, DNS провайдера Twitter, SoundCloud, Spotify, Reddit и других. Смысл DDoS атаки – нарушить функционирование интернет-сервисов, чтобы пользователи не могли получить к ним доступ. Это вызывает негатив у пользователей и несет потенциальные финансовые потери для веб-сайтов. Такие атаки становятся возможны потому, что они используют многочисленные (тысячи, даже десятки тысяч) компьютеры по всему миру, которые координируются для выполнения одного действия. Обычно это настольные ПК, работающие на Windows, которые были заражены вирусом. В определенное время вирус активируется, и компьютер присоединяется к ботнету – сети, объединяющей удаленные компьютеры, которые осуществляют атаку.
DDoS атаки – не новость, и описанный механизм знаком даже людям, далеким от тонкостей компьютерного мира. Однако в атаке на Dyn было нечто совершенно особенное. Она была организована не посредством ПК, а при помощи подключенных устройств, таких как камеры наблюдения или имеющие выход в сеть устройства для хранения данных. По словам эксперта по безопасности Брайана Кребса, недавно был разработан новый вирус, который сканирует сеть на предмет устройств, являющихся частью интернета вещей, и пытается к ним подключаться. Если доступ к ним прост – например, используется простой заводской логин и пароль – вирус подключается и загружает вредоносное ПО.
Вот мы и добрались до корня проблемы. Слишком много подключенных устройств (миллионы!) используют дефолтные логины и пароли для доступа в интернет. Все эти бесконечные admin/admin или root/root. Причина этого в настоящее время – простое, неподходящее ПО. Одно из важных условий для развития рынка интернета вещей – дешевизна, доступность устройств для пользователей. Возможность выхода в интернет – это характеристика, продающая устройства, возможно, воспринимающаяся «свистелкой», но являющаяся одновременно уникальным предложением. Вот только добавление этой функциональности не должно сводиться к запуску на процессоре Linux (или RTOS) и последующему добавлению веб-сервисов. Правильным будет сделать эти устройства безопасными. Сейчас заморочиться с безопасностью не составляет труда, но это означает дополнительные затраты. Глупость недальновидного подхода в том, что пренебрегая безопасностью, можно сделать продукт дешевле – но во многих ситуациях он может обойтись дороже.
Возьмем пример Jeep Cherokee. Чарли Миллер и Крис Валасек осуществили знаменитую хакерскую атаку на Jeep Cherokee, используя уязвимость в дистанционном управлении некоторыми функциями. Они обратили внимание компании на существующие проблемы, но в Jeep их попросту проигнорировали. Что на самом деле думали в Jeep об исследовании Миллера и Валасека, остается тайной, но никаких последовательных действий предпринято не было. И когда детали атаки были обнародованы, компания была вынуждена отозвать более миллиона автомобилей для устранения уязвимости в ПО, что стоило ей миллиарды долларов. Если бы ПО усовершенствовали с самого начала, это обошлось бы гораздо дешевле.
А если мы вернемся к устройствам для интернета вещей, которые использовались для атаки на Dyn, в этом случае цена ошибок в области безопасности складывается из убытков не производителей, а таких компаний, как Dyn, Twitter и других.
Безопасность в интернете вещей – необходимый список
В свете описанных атак и принимая во внимание нынешнее плачевное состояние безопасности в первом поколении устройств для интернета вещей, важно, чтобы разработчики таких устройств принимали во внимание следующие важные моменты:
- Авторизация – ни в коем случае нельзя создавать продукт с дефолтным паролем, одинаковым для всех устройств. Каждое устройство должно иметь сложный случайным образом созданный пароль, который оно получает на стадии производства.
- Отладка – никогда не следует оставлять никакого доступа для отладки на устройстве, запущенном в производство. Даже если возникнет искушение оставить доступ через нестандартный порт с использованием сложного, жестко прописанного, случайным образом сгенерированного пароля, в конце концов пароль подберут.
- Шифрование – любое взаимодействие между устройством для интернета вещей и облаком должно быть зашифровано. Везде, где возможно, используйте SSL/TLS.
- Приватность – непременно следует удостовериться, что никакой личной информации (включая, к примеру, пароли Wi-Fi) не достанется хакеру, который получит доступ к устройству. Для хранения данных должно использоваться шифрование, а также Salt.
- Веб-интерфейс – любой веб-интерфейс должен быть защищен от стандартных хакерских приемов, таких как внедрение SQL кода и межсайтовый скриптинг.
- Обновление прошивки – баги являются частью суровой реальности, и зачастую они просто неприятны, не более того. Но баги в безопасности – это очень плохо и даже опасно. Поэтому все устройства для интернета вещей должны поддерживать обновления по воздуху. И эти обновления должны проверяться перед тем, как рассылаться на устройства.
Можно подумать, что этот список касается исключительно разработчиков устройств для интернета вещей, но это не так. Покупатели тоже могут играть свою роль – отказываться от покупки продуктов, которые не предлагают высокого уровня безопасности. Иными словами, не стоит воспринимать безопасность в интернете вещей как нечто само собой разумеющееся.
Решения есть
Первой реакцией со стороны ряда разработчиков устройств для интернета вещей (и, возможно, их менеджеров) будет закономерное мнение, что вся эта безопасность повлечет за собой дополнительные расходы. Да, это так, но, как уже говорилось выше, в противном случае все может быть намного хуже.
Есть три способа создать продукт для интернета вещей, основанный на популярном микропроцессоре или микроконтроллере, как, например, из линейки ARM Cortex-M или ARM Cortex-A. Безопасность можно включить в код сборки. Ничто не мешает вам выбрать именно это решение. Но, возможно, более эффективным будет использовать язык более высокого уровня, например, C. Итак, второй путь – применить C к чистому «железу», что будет означать, что вы контролируете абсолютно все с того момента, как загружается процессор. Вам придется иметь дело со всеми прерываниями, операциями ввода-вывода, сетевыми подключениями и т.д. Это возможно, хотя и потребует значительных усилий.
Третий путь – это использовать операционную систему реального времени (Real Time Operating System, RTOS) и поддерживающую ее экосистему. Здесь есть несколько вариантов на выбор, включая FreeRTOS и mbed OS. Первое – это популярная сторонняя ОС, которая поддерживает широкий спектр процессоров и материнских плат, а второе – платформа с ARM архитектурой, которая предлагает больше, чем просто ОС, и включает в себя решения для множества самых разных аспектов интернета вещей. Оба варианта относятся к open source.
Преимущество ARM решения в том, что экосистемы включают в себя не только ПО для разработчиков интернета вещей, но также решения для внедрения устройств, обновления прошивок, зашифрованной связи и даже серверного ПО для облака. Есть также такие технологии, как uVisor, автономный программный гипервизор, который создает независимые безопасные домены на микроконтроллерах на ARM Cortex-M3 и M4. uVisor повышает устойчивость к вредоносному ПО и защищает от утечек даже из одной части приложения в другую часть того же самого приложения.
Заключение
Ключ к безопасности в интернете вещей лежит в двух областях: требуется изменить установки в сознании разработчиков и одновременно информировать потребителей о том, насколько опасно покупать незащищенные устройства. Технологии безопасности уже существуют, и нет никаких преград для того, чтобы их использовать. К примеру, в 2015 году ARM купила компанию-разработчика популярной библиотеки шифрования PolarSSL, просто для того, чтобы сделать ее бесплатной в mbed OS. Теперь безопасные коммуникации стали частью mbed OS и доступны бесплатно любому разработчику. Чего еще можно пожелать?
В мире, где миллиарды устройств будут подключены к интернету, а значит, определенным образом связаны с нами, мы должны быть уверены, что в будущем устройства для интернета вещей станут безопасными.
Понятие «Интернет вещей» экзотикой действительно не является. А вот вещи, из этого понятия, еще как. Поэтому таким статьям время еще не пришло. Да и бесполезно это. На компах и роутерах, описанные проблемы давно известны. И распространены более чем. В каждой квартире. Думаете хоть кто-то пошевелился?