Иннополис 30 ноября 2018

Артур Гайнуллин, UNITS: производители часто забивают на обновления, что оставляет устройства уязвимыми

Далее

Проблема информационной безопасности активно проникает в каждый дом вместе с технологией «интернет вещей». Доверие между потребителями и производителями постепенно сужается, потому что пользователи уже не верят в безопасность IoT-устройств. Производители признаются, что сделать устройство полностью безопасным дорого, а потому экономят на этом, выпуская уязвимые устройства. Артур Гайнуллин, руководитель компании UNITS, рассказал в рамках конференции PartyHack в Иннополисе, как устроен мир IoT, почему не нужно быть хакером, чтобы взломать их, и о существующих проблемах в нем.

Проблемы мира IoT

Мое знакомство с миром IoT началось с лампочки, которую я купил. Мне стало интересно, как она устроена. Я посмотрел и разочаровался. А может, и очаровался, не знаю. Дело в том, что в этой лампочке была странная штука. В её мобильном приложении,в качестве логина она использовала свой MAC-адрес, а в качестве пароля — код, который, как выяснилось потом, был одинаковым для всех устройств данной модели. Можно было подобрать MAC-адрес и спокойно управлять другими лампочками, где бы они не находились. Самое интересное, что пароль было очень сложно поменять — нужно было перепрошить лампочку вручную. Сложность смены пароля по умолчанию – известный случай в IoT мире. Так большинство IP-камер, которые настраивались нами не предлагали поменять исходные авторизационные данные, то есть стандартные логин и пароль. При том, что их IP «светился» в интернете. Я подумал, что рано или поздно это может быть использовано далеко не с благими намерениями, но тогда большого значения этому я не придал. А вскоре появился человек, который обратил на это внимание, — Парас Джа, разработчик Mirai, крупнейшего ботнета в истории.


Парас Джа — один из авторов опаснейшего ботнета Mirai. В 2016 году Джа вместе с двумя друзьями-студентами Далтоном Норманом и Джозая Уайтом вывели из строя множество крупных сайтов. Поначалу студенты хотели подзаработать на онлайн-игре Minecraft, однако позднее осознали всю мощь их самодельного ботнета. Кроме того, следствие установило, что в ноябре 2014 года Джа неоднократно устраивал атаки на серверы своего университета, выводя их из строя как минимум четыре раза. При DDoS-атаках Джа не преследовал финансовые цели: в одном случае он хотел отложить регистрацию специалистов для продвинутого курса информатики, в другом — перенести важный экзамен на другую дату.

Авторы Mirai избежали тюремного заключения. Создатели ботнета получили по пять лет испытательного срока и 2,5 тыс. часов общественных работ. Кроме того, студентов заставили выплатить $127 тыс. и отказаться от крупных сумм в криптовалюте. Джа получил дополнительный приговор за запуск DDoS-атак, согласно которому он обязан провести шесть месяцев под домашним арестом и заплатить $8,6 млн.


Ботнет — это связь большого количества устройств в единую сеть, которая может быть использована для совершения DDoS-атак. Mirai, который бушевал в 2016 году, включал в себя 250 тыс. устройств. В основном это были IP-камеры, благодаря которым были устроены несколько целевых атак. Самая крупнейшая из них — на европейский провайдер OVH, использовавшая 152 тыс. устройств. Мощность атаки составила порядка 1 ТБ/с, конечно же, их сервера не выдержали такой нагрузки и упали. Этого парня начали искать и когда он осознал, что его могут раскрыть, залил в сеть все исходники Mirai, чтобы сбить с толку следствие. Пользователи форума могли скачать код и на его базе создавать собственные ботнеты. Но его все равно поймали. Ему дали условный срок, а недавно появилась довольно забавная новость о том, что он начал сотрудничать с ФБР. Такая судьба часто ждет хакеров, и это грустно.

Linkedin Парас Джа

Прошлое и настоящее IoT-вредоносов

Первый известный роутер-malware, появившийся в далеком 2008 году, — это ботнет Hydra. Первый прототип IoT-вредоноса работал примерно по такому же принципу, что и Mirai. Он использовал уязвимости, связанные с определенным классом устройств, делал брутфорс, подбирал стандартные логин и пароль, и таким образом набирал в себя ботнет из устройств. Как только это начало развиваться, его разработчики опубликовали исходные коды в открытый доступ. И все дальнейшие IoT-вредоносы, найденные в дикой природе, более или менее основаны на Hydra.


После появился ряд более масштабных ботнетов, использующих примерно схожую архитектуру.

  • 2009 год –– Psyb0t, 80 000 устройств. Первое в своем роде бинарное вредоносное ПО, заражающее сетевые устройства.
  • 2010 год –– Tsunami. Кроссплатформенный IRC-backdoor.
  • 2014 год –– BASHLITE. Кроссплатформенный IRC-backdoor с функцией сканирования диапазонов IP-адресов в поисках уязвимостей.
  • 2015 год –– Linux.PNScan. Троян под Linux атаковал устройства с архитектурами ARM, MIPS и PowerPC путем установки бэкдоров.
  • 2016 год –– Mirai, включавший 250 тыс. устройств.

Среди всего этого многообразия выделяется — BrickerBot. Его главной целью было не ддосить, не майнить, а, как следует из названия, превращать устройство в «кирпич». Перезаписывал части прошивки устройства и после этого оно становилось нерабочим. Когда его создателя стали спрашивать ради чего он это делает, разработчик написал анонимно на одном из форумов, что его цель очень проста — показать, что IoT небезопасно. Я не очень поддерживаю такой способ информирования о проблемах, но, с другой стороны, это вызвало нужный ажиотаж и сообщество прислушалось и приняло требуемые меры.


Брутфорс, Brute force — так называется метод взлома различных учетных записей, путем подбора логина и пароля.

Устойчивость к брутфорс-атаке определяет используемый в криптосистеме ключ шифрования. С увеличением длины ключа сложность взлома этим методом возрастает экспоненциально. В простейшем случае шифр длиной в N битов взламывается, в наихудшем случае — за время, пропорциональное 2N. Среднее время взлома в этом случае в два раза меньше и составляет 2N-1. Существуют способы повышения устойчивости шифра к брутфорсу, например, запутывание шифруемых данных, что делает нетривиальным отличие зашифрованных данных от незашифрованных.


После этого ботнеты пошли дальше и появился VPN-фильтр. Его почему-то связывают с украинским следом. Потому что он сосредоточивался на территории бывшего СНГ, включал около 500 тыс. устройств. И мне очень нравится то, как он архитектурно был продуман. Ботнет-вирус, который был сделан очень круто. Он не выживал после перезагрузки, а каким-то образом добавлял себя в крон, прописывал, и можно было после перезагрузки запустить заново, он не пропадал. Например, тот же самый Mirai, если он был установлен на роутере или IP-камере, после перезагрузки камеры переставал работать, потому что оседал в оперативной памяти. Когда ботнет заражает устройство, это маленький файл и устройство, которые не могут нанести существенного вреда. Поэтому разработчики придумали следующую схему — они загружали фотографии на сток Photobucker и вшивали туда метаданные. Эти метки были не случайными, их сгенерили таким образом, чтобы потом можно было разобрать и из них составить IP-адрес головного сервера. Если это не срабатывало, то он использовал примерно ту же схему на другом стоке и использовал backup-варианты и дополнительные плагины на устройства, которые позволяли не расходовать весь трафик и сохранять какие-то исходные данные. Потом они либо передавали на головной сервер, так или иначе хранили и обменивались этими данными. Один из главных плагинов, позволяющих так делать, это сниффер.

Следующим витком развития IoT-угроз стало появление нового класса ботнетов. Если раньше, чтобы избавиться от угрозы достаточно было просто перезагрузить устройство, то теперь вирус поселялся в постоянной, а не во временной, памяти и был способен это пережить. С точки зрения архитектурной реализации нужно отметить ботнет VPNFilter. Это одна из самых комплексных IoT-угроз, с какими приходилось сталкиваться человечеству. Он не просто выживал после перезагрузки, но и был способен апгрейдить себя, скачивая обновления. Разумеется, подгрузка осуществлялась каждый раз с нового IP-адреса во избежание деанонимизации авторов.

Для этого ботнет использовал известный фотосток photobucket.com. Вредоносная программа загружала первое изображение из галереи, на которую ссылался URL, а затем переходила к извлечению IP-адреса сервера загрузки. IP-адрес извлекался из шести целочисленных значений для широты и долготы GPS в информации EXIF (EXIF от англ. Exchangeable Image File Format — стандарт, позволяющий добавлять к изображениям и прочим медиафайлам дополнительную информацию (метаданные), комментирующую этот файл, описывающий условия и способы его получения, авторство и т. п. — «Хайтек»).

Если не удавалось подключиться, загрузить изображение или успешно получить IP-адрес через изображение из Photobucket, вредоносное ПО обращалось к резервному домену toknowal.com, чтобы загрузить изображение и попробовать тот же процесс.

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


EXIT-метаданные (шесть целочисленных значений для широты и долготы GPS) картинки, загруженной на Photobucket или Toknowall, используются для определения и вызова нужного IP.

  • Backup 1. Tocknowall.com используется для загрузки картинки, если загрузка на Photobucket не удалась.
  • Backup 2. Если загрузка на Tocknowall также не удалась, то запускается listener, который ожидает получение нужного пакета для прямого подключения.
  • Плагины TOR, P.S, Others.

Почему IoT-устройства уязвимы

Цель компаний, которые производят в большом количестве IoT-устройства, заработать много денег. Естественно, для того, чтобы заработать больше денег, нужно выпускать больше устройств и меньше тратить на какие-то дополнительные работы, в частности, связанные с информационной безопасностью. Во многом поэтому у нас такое большое количество устройств, которые уязвимы к атакам.


Рынок интернета вещей — большой и настоящий мир, который оценивается в миллиарды долларов. Количество устройств растет — на сегодняшний день их уже больше 23 млрд устройств, а к 2030-му теоретически будет где-то 125 млрд. Я верю в эти цифры, потому что каждый год появляются новые изобретения, технологии и способы использования подключаемых устройств. При этом угрозы растут пропорционально. Например, только от Mirai пострадало больше 250 тыс. устройств, а ущерб оценивается в $110 млн.

Угрозы интернета вещей:

  • 45% организаций подвергались атакам на IoT только за июль 2018.
  • Каждые две минуты IoT-устройства подвергаются атакам.
  • 70% IoT-устройств уязвимы для атак.

Взломы и как это происходит

Случай с Medtronic — этакий киберпанк, тебя взломали и убили через кардиостимулятор. Специалисты по безопасности выяснили такую вещь, что обновление софта происходит без сертификата и шифрования, а сами обновления никак не подписаны. По сути, есть возможность загрузить любую прошивку, изменить частоту сердцебиения, что не очень скажется на человеке, наверное. Меня больше всего расстраивает реакция производителей, когда им два года назад об этом написали, они ответили, что этот кейс такой и его сложно будет воспроизвести, и его не закрыли. Тысячи людей пользуются этими кардиостимуляторами, и они по-прежнему уязвимы.


Что нужно? Найти устройство, определить местоположение, а после обезвредить, потому что уязвимости понятны и известны, их можно так или иначе эксплуатировать.

  • Найти MAC-адрес, IP.
  • Идентифицировать. Устройство, производитель, операционная система.
  • Обезвредить. Эксплуатирование уязвимостей, подбор паролей, DNS rebinding, ICMP-флудинг.

Есть категория запросов, называется Google Dorks, которая позволяет по запросу найти очень интересные вещи. Вбиваешь в поисковик filetype:xls inurl:password, и по этому запросу тебе выдает огромное количество файлов, где написаны логины и пароли. Можно спокойно зайти, посмотреть и эксплуатировать это как-то интересно. То же самое можно делать и с IoT-устройством –– определенное расширение inurl:”img/main.cgi?next_file” вбиваешь в поисковик и можешь найти все камеры, которые видны в интернете и их можно посмотреть.

Есть Shodan — это своего рода Google для IoT-устройств. Он индексирует по IP-адресам. Ежедневно ходит по интернету, отправляет тысячу запросов на столько же адресов, все это кэширует и индексирует, позволяя дальше делать выдачу. А сколько там IP-камер, просто заходишь и смотришь.


С помощью Shodan находили:

  • Гидроэлектростанцию.
  • 10 358 АСУ технологическим предприятием.
  • Систему управления движением.
  • Холодильные установки для катка.
  • Бойлеры, автоматические ворота, миллионы камер и другое.

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

Почему не рекомендую менять пароль

Часто на камеры или устройства ставят логин и пароль по умолчанию специально. Либо компании статистику собирают, либо госслужбы, которые ловят нерадивых хакеров. Прежде чем искать уязвимости в чужих устройствах, зайдите на этот сайт и посмотрите, не является ли эта камера honeypot. И помните о всех возможных, в том числе уголовных, последствиях.

Часто в том же самом Shodan возвращается не только IP, но и MAC-адрес. Благодаря ему мы можем понять, что это за устройство и какой у него вендор. Можно зайти на www.macvendors.com, посмотреть, кто это делал, и уже дальше от этого исходить. Нельзя забывать про старый добрый NMap, где ты задаешь IP-адрес и получаешь по нему очень много информации. Какие у него порты открыты, возвращается версия операционной системы. Потом можно посмотреть тип устройства, погуглить и найти у него конкретные уязвимости и дальше их эксплуатировать. Ну или не эксплуатировать.


Есть сайты, на которых описаны уязвимости:

Стоит обратить пристальное внимание на следующие вещи:

  • Уязвимости, обнаруженные после прекращения поддержки устройства (исправлений нет и не будет).
  • Уязвимости, обнаруженные совсем недавно (исправлений еще нет, но успели обновить).
  • Уязвимости, общие для нескольких устройств (уязвимость протокола, сервера).

15% IoT-устройств используют дефолтный пароль — admin admin. Они все лежат в открытом доступе, можно зайти на любую камеру, найти любой ее вид, ввести логин и пароль и использовать. Не только камеру, но и много других устройств.


Прочие «слабости»:

  • Проблемы с получением и установкой обновлений.
  • Редкое любое «топорное» шифрование.
  • Отсутствие проверок на право доступа.
  • Отсутствие фильтрации по IP.
  • Отсутствие проверки количества неверных авторизаций.
  • Простое переполнение буфера.
  • Открытые порты.

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

Есть хороший сайт owasp.org, на котором описаны все уязвимости всех классов IoT-устройств. В топ-10 уязвимостей подробно рассказано о проблемах которые есть, и показано, как их решать. Если вы разработчик в IoT или просто интересуетесь, то зайдите и посмотрите, как можно себе помочь. Если бы все разработчики использовали эти десять рекомендаций, то у нашего мира проблем с информационной безопасностью стало бы на порядок меньше.

Несмотря на все описанные проблемы, некоторые действия в сторону их решения начали приниматься, в том числе и на государственном уровне. Но пока только в США. Закон SB-327 об информационной безопасности устройств, подключенных к интернету, принят в Калифорнии и вступит в силу в 2020 году. Он обязывает разработчиков смарт-систем создавать для них уникальные логины и пароли, с целью обеспечить общую безопасность в интернете. С 1 января 2020 в Калифорнии, если ты этого не сделаешь, то будешь оштрафован. Сложно предположить, насколько это будет эффективно, но думаю, что это позитивная тенденция, чтобы сделать мир IoT немного безопаснее.