Как стать автором
Обновить

Как создать неприступный Arduino IoT девайс?

Время на прочтение3 мин
Количество просмотров5.5K
Автор оригинала: iam_maker_leo

Автор оригинала: 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 девайса на ардуино.

Arduino Uno
Arduino Uno
WIZ550io - модуль с Hardware TCP/IP стеком
WIZ550io - модуль с Hardware TCP/IP стеком
ENC28J60
ENC28J60
  • ПК с Windows 10, который будет использоваться в качестве Iperf клиента, а также устроит DDoS атаку.

  • 3COM Gigabit Свитч

Используемое ПО:

  • Утилита для DDOS атаки : LOIC (Freeware)

  • Утилита для измерения пропускной способности: Iperf

Шаг 2. Подговка к тестированию.

На картинке выше показана схема, как мы будем проводить наши тесты.

  1. Ардуино с ethernet шилдом будет Iperf сервером.

  2. ПК будет Iperf клиентом и будет атаковать сервер.

  3. Сервер и клиент будут подсоединены используя свитч.

Для определения подверженности 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.

  1. WIZ550io
    Для установки WIZ550io библиотеки следуйте инструкции тут.

  2. 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.

  1. Пропускная способность не является главным в этих тестах. Можно добиться увеличения пропускной способности, переписав программу. Я хотел проверить как будет меняться пропускная способность во время DDoS атаки.

  2. Перемены пропускной способности Hardware TCP/IP стека возможно являются ошибками измерений утилиты.

  3. На видео видно, что после того как я нажал кнопку DDOS Attack, не было пропускной способности. Поэтому в таблице я указал 0.

Теги:
Хабы:
Всего голосов 3: ↑3 и ↓0+3
Комментарии5

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань