Автор оригинала: iam_maker_leo
В наше время существует огромное количество проектов, связанных с Интернетом Вещей. Но многие девайсы подвержены атакам из сети, например DDOS. Соответственно, многие эксперты предупреждают о возможных проблемах в безопасности IoT. (Пример такой статьи)
Я хочу предложить один метод как обезопасить IoT девайс и покажу, почему считаю, что IoT девайс будет неприступен для сетевых атак.
Однажды я прочитал одну статью, которая и подтолкнула меня к моей идее.
Преимущества TCP Offload
Традиционно TCP / IP реализуется программно и выполняется на процессоре. С появлением сетей с более высокой пропускной способностью это стало основным bottleneck в передаче данных, поскольку процессор должен тратить больше времени на обработку входящих данных, а не на выполнение пользовательских алгоритмов. Это снижение производительности отрицательно сказывается на эффективности сети и несовместимо с приложениями реального времени. Более того, по мере того как для повышения производительности используются все более мощные процессоры, увеличивается стоимость спецификации, равно как и физический размер хост-карты или модуля. Чтобы решить эту проблему, все больше функций переносится в специализированное оборудование. Например, большинство сетевых карт будут выполнять разгрузку контрольной суммы (задача, для которой процессор особенно не подходит). Путем выборочной разгрузки частей TCP / IP стека на оборудование может быть достигнуто значительное улучшение полосы пропускания передачи. Разгрузив эти части стека TCP на выделенное оборудование, такое как TCP/IP Off-Load Engine (TOE), можно минимизировать задержку между приемом и подтверждением данных.
В данной статье сравниваются software TCP/IP Stack и Hardware. (прим.: к сожалению, автор не оставил ссылку на оригинал статьи)
Так мне пришла идея - использовать Hardware TCP/IP Stack для создания неприступного девайса. Я решил провести несколько тестов с ардуино и двумя видами ethernet шилдов (hardware и software).
Итак, давайте посмотрим, как hardware TCP/IP stack может стать решением проблемы с безопасностью от сетевых атак.
В данной статье мы будем измерять пропускную способность ардуино. Чтобы узнать больше о способах измерениях, пройдите по ссылке с моим прошлым постом.
Шаг 1. Используемые устройства для тестирования пропускной способности IoT девайса на ардуино.
ПК с Windows 10, который будет использоваться в качестве Iperf клиента, а также устроит DDoS атаку.
3COM Gigabit Свитч
Используемое ПО:
Шаг 2. Подговка к тестированию.
На картинке выше показана схема, как мы будем проводить наши тесты.
Ардуино с ethernet шилдом будет Iperf сервером.
ПК будет Iperf клиентом и будет атаковать сервер.
Сервер и клиент будут подсоединены используя свитч.
Для определения подверженности IoT девайса DDOS-атакам, я буду использовать результаты пропускной способности, измеренной с помощью Iperf. DDoS атака будет сгенерирована утилитой LOIC. Я проведу тесты, используя TCP/IP Ethernet модуль (WIZ550io) и Software TCP/IP Ethernet модуль(ENC28J60).
В итоге мы получим 4 результата:
1. Hardware TCP/IP Ethernet module / no DDOS network attack
2. Hardware TCP/IP Ethernet module / DDOS network attack
3. Software TCP/IP Ethernet module / no DDOS network attack
4. Software TCP/IP Ethernet module / DDOS network attack
Шаг 3. Устанавливаем ардуино библиотеки для WIZ550io и ENC28J60.
WIZ550io
Для установки WIZ550io библиотеки следуйте инструкции тут.ENC28J60
Для начала установим библиотеку ENC28J60.
Код для использования ардуино в качестве Iperf сервера можно скачать здесь. При написании использовался пример из библиотеки ENC28J60. Программа будет считывать пакеты и отправлять ack.
Шаг 4. Настраиваем утилиту для DDoS атаки.
LOIC - бесплатная утилита для осуществления DDoS атак. Как пользоваться утилитой показано на картинке выше.
Внимание!
1. Не используйте данную утилиту в других целях.
2. Возможно необходимо отключить антивирус перед запуском утилиты.
Шаг 5. Проводим измерения пропускной способности
Всего будет 4 видео с тестами, которые упоминались выше. В видео показана пропускная способность каждого из тестов.
Video 1 : Arduino & Software TCP/IP Ethernet (ENC28J60) and no DDOS attack
Video 2 : Arduino & Software TCP/IP Ethernet (ENC28J60) and DDOS attack
Video 3 : Arduino & Hardware TCP/IP Ethernet (WIZ550io) and no DDOS attack
Video 4 : Arduino & Hardware TCP/IP Ethernet (WIZ550io) and DDOS attack
Шаг 6. Анализируем результаты.
На картинке выше показаны результаты измерений из видео выше.
Очевидно, что когда используется Hardware TCP/IP stack, DDOS атака на ардуино была неэффективной.
P.S.
Пропускная способность не является главным в этих тестах. Можно добиться увеличения пропускной способности, переписав программу. Я хотел проверить как будет меняться пропускная способность во время DDoS атаки.
Перемены пропускной способности Hardware TCP/IP стека возможно являются ошибками измерений утилиты.
На видео видно, что после того как я нажал кнопку DDOS Attack, не было пропускной способности. Поэтому в таблице я указал 0.