Открытый инструмент для мониторинга сети с IoT-устройствами +13


Рассказываем, что такое IoT Inspector и как он работает.


/ фото PxHere PD

О безопасности интернета вещей


В консалтинговой фирме Bain & Company (PDF, стр.1) говорят, что c 2017 по 2021 год объем IoT-рынка увеличится в два раза: с 235 до 520 млрд долларов. На долю гаджетов для умного дома придется 47 млрд долларов. У экспертов по ИБ такие темпы роста вызывают опасения.

По данным Avast, в 40% случаев хотя бы одно умное устройство имеет критическую уязвимость, подвергающую опасности всю домашнюю сеть. В Лаборатории Касперского установили, что за первый квартал прошлого года на умные гаджеты обрушилось в три раза больше атак, чем за весь 2017 год.

Чтобы защитить умные устройства, сотрудники ИТ-компаний и вузов разрабатывают новые программные инструменты. Команда инженеров из Принстонского университета создала открытую платформу Princeton IoT Inspector. Это десктопное приложение, которое мониторит поведение и работу IoT-устройств в реальном времени.

Как работает система


IoT Inspector отслеживает активность IoT-девайсов в сети с помощью техники ARP-spoofing. Её можно использовать для анализа трафика устройств. Система собирает анонимную информацию о сетевом трафике для выявления подозрительной активности. При этом такие данные, как IP- и MAC-адреса не учитываются.

При отправке ARP-пакетов используется следующий код:

class ArpScan(object):

    def __init__(self, host_state):

        assert isinstance(host_state, HostState)

        self._lock = threading.Lock()
        self._active = True

        self._thread = threading.Thread(target=self._arp_scan_thread)
        self._thread.daemon = True

    def start(self):

        with self._lock:
            self._active = True

        utils.log('[ARP Scanning] Starting.')
        self._thread.start()

    def _arp_scan_thread(self):

        utils.restart_upon_crash(self._arp_scan_thread_helper)

    def _arp_scan_thread_helper(self):

        while True:

            for ip in utils.get_network_ip_range():

                time.sleep(0.05)

                arp_pkt = sc.Ether(dst="ff:ff:ff:ff:ff:ff") /                     sc.ARP(pdst=ip, hwdst="ff:ff:ff:ff:ff:ff")
                sc.sendp(arp_pkt, verbose=0)

                with self._lock:
                    if not self._active:
                        return

    def stop(self):

        utils.log('[ARP Scanning] Stopping.')

        with self._lock:
            self._active = False

        self._thread.join()

        utils.log('[ARP Scanning] Stopped.')

Проанализировав сеть, сервер IoT Inspector устанавливает, с какими сайтами IoT-гаджеты обменивается данными, как частно они это делают и в каких объёмах передают и получают пакеты. В результате система помогает выявить подозрительные ресурсы, на которые могут отсылаться ПД без ведома пользователя.

Пока приложение работает только под macOS. Скачать zip-архив можно на сайте проекта. Для установки понадобится macOS High Sierra или Mojave, браузер Firefox или Chrome. В Safari приложение не работает. Руководство по установке и настройке есть на YouTube.

В этом году разработчики обещали добавить версию для Linux, а в мае — приложение под Windows. Исходный код проекта есть на GitHub.

Потенциал и недостатки


Разработчики говорят, что система поможет ИТ-компаниям искать уязвимости в программном обеспечении IoT-девайсов и создавать более защищенные умные устройства. Уже сейчас инструмент может обнаружить уязвимости, связанные с безопасностью и производительностью.

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

У IoT Inspector пока есть недостатки. Поскольку приложение экспериментальное, его еще не протестировали на всех IoT-устройствах с разными конфигурациями. Поэтому сам инструмент может оказывать негативное влияние на производительность умных гаджетов. По этой причине авторы не рекомендуют подключать приложение к медицинским гаджетам.

Сейчас разработчики сфокусировались на устранении багов, но в дальнейшем команда Принстонского университета планирует расширить функциональность своего приложения и внедрить в него алгоритмы машинного обучения. Они помогут увеличить вероятность обнаружения DDoS-атак до 99%. Ознакомиться со всеми идеями исследователей можно в этом PDF-отчете.

Другие проекты в сфере IoT


Группа американских разработчиков, которая сотрудничает с Дэнни Гудманом (Danny Goodman), автором книг по JavaScript и HTML, создает инструмент для мониторинга экосистемы интернета вещей — The Thing System.

Цель проекта — объединить IoT-гаджеты умного дома в единую сеть и централизовать управление. Разработчики говорят, что устройства разных производителей часто не могут взаимодействовать друг с другом и работают разрозненно. Чтобы решить проблему, авторы инициативы создали ПО, которое может работать с разными сетевыми протоколами, гаджетами и клиентскими приложениями.

Список поддерживаемых девайсов есть на сайте проекта. Там же можно найти исходный код и руководство для быстрого старта.

Другой открытый проект — PrivateEyePi. Авторы инициативы делятся программными решениями и исходным кодом для создания персонализированной IoT-сети на базе Raspberry Pi. На сайте есть большое количество руководств, с помощью которых можно построить беспроводную сеть из датчиков температуры, влажности, а также настроить систему безопасности для дома.


/ фото PxHere PD

Будущее подобных решений


На IoT-рынке все чаще появляются опенсорсные проекты, библиотеки и фреймворки. В Linux Foundation, который также работает в сфере IoT (они создали операционную систему Zephyr), говорят, что инструменты с открытым исходным кодом считаются более защищенными. Такое мнение связано с тем, что в их разработке участвует «коллективный разум» сообщества экспертов по ИБ. Из всего этого можно сделать вывод, что проекты вроде IoT Inspector будут появляться все чаще и помогут сделать этот сегмент устройств более защищенным.



Посты из Первого блога о корпоративном IaaS:




К сожалению, не доступен сервер mySQL