Следующая новость
Предыдущая новость

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

30.09.2019 13:32
Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Содержание статьи

  • Почему ZigBee?
  • Основные понятия
  • PHY
  • MAC
  • NWK layer
  • Адресация в сетях ZigBee
  • APL layer
  • Безопасность ZigBee
  • Распределенная модель
  • Централизованная модель
  • Ключи шифрования в ZigBee
  • Работаем с ZigBee в Wireshark
  • Уязвимости ZigBee
  • Софт для работы с ZigBee
  • Железо для работы с ZigBee
  • Digi XBee ZigBee Mesh Kit
  • Texas Instruments CC2531
  • Texas Instruments CC1352

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

INFO

Мои коллеги из GS Labs занимаются разработками, связанными с умным домом, что позволило мне вблизи познакомиться с безопасностью ZigBee. На этот опыт я и буду опираться, когда речь зайдет о практике.

Почему ZigBee?

Конечно, этот протокол не нов — стандарт появился еще в 2003 году. Сегодня есть более современные аналоги вроде LoRaWAN и RPMA, но ZigBee продолжает быть популярным. Почему? Взгляни на картинку.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Помимо дальности и скорости здесь учтена стоимость. И сразу видно, что ZigBee отлично сбалансирован и при невысокой цене дает приемлемые дальность действия и скорость передачи данных. Вряд ли тебе понадобится стримить видео в 4K на выключатель, а чтобы что-то сделать издалека, обычно используется подключенный к интернету хаб. Вот и получается, что ZigBee не сильно бьет по карману при создании умного дома и покрывает основные нужды.

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

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

WWW

Об опыте использования LoRaWAN можешь прочесть в статье на «Хабрахабре».

Основные понятия

Топология сети может быть одной из следующих:

  • звезда;
  • кластерное дерево;
  • стильный-модный-молодежный вариант — mesh.
Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Координатор (он же FFD) — это самый главный узел. Он создает сеть, выбирает, на каком канале общаться, может выступать как «центр доверия» (trust center). Роутеры — устройства уже чуть попроще. Они служат зачастую ретрансляторами сообщений от конечных устройств. Конечные устройства (end device) — то, что мы объединяем в сеть, то есть выключатели, лампочки, датчики движения и прочие гаджеты.

Вот сводная таблица функциональности каждого из устройств.

Координатор Роутер Конечное устройство
Создание сети ZigBee x
Выдача разрешений на присоединение к сети другим устройствам x x
Назначение 16-разрядного сетевого адреса x x
Обнаружение и запись путей для эффективной доставки сообщений x x
Обнаружение и хранение списка соседей, доступных в один хоп x x
Маршрутизация сетевых пакетов x x x
Присоединение и выход из сети x x x
Режим сна x

А теперь открываем официальную спецификацию ZigBee. Там нас почти сразу встречает вот такая интересная картинка.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них
ZigBee Stack Architecture

Но пусть она тебя не пугает, потому что к концу статьи ты поймешь, что в реальности все немного проще! 🙂

PHY

Итак, начнем изучение с PHY, физического уровня, и будем подниматься вверх по слоям.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

INFO

Мы будем говорить о ZigBee, но ZigBee базируется на IEEE 802.15.4. Причем этот же стандарт взят за основу для WirelessHART и для ISA100.11a.

ZigBee, а точнее, IEEE 802.15.4 может работать в трех частотных диапазонах.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

И, как ты можешь заметить, если выбрать для него частоту 2,4 ГГц, то Wi-Fi и ZigBee могут начать мешать друг другу. Для уменьшения перекрестных помех между Wi-Fi и ZigBee лучше выбирать следующие каналы.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Что не может не радовать, в стандарте есть такое понятие, как ED — Energy Detection. Эта фича используется в координаторе умного дома, чтобы он выбирал канал, где меньше всего помех.

Общий вид посылки для PHY имеет следующий вид.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Если у тебя дома завалялся SDR и ты желаешь контролировать каждый-прекаждый битик в модуляции OQPSK, то тебе поможет вот эта схема.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Этот вид модуляции как раз и применяется на частоте 2,4 ГГц. А мы тем временем идем дальше выше по стеку протоколов, и нас ждет уровень MAC.

MAC

Общий вид MAC-фреймов представлен ниже.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Как видишь, Frame Control отвечает за тип пакета данных (Beacon, Ack, Cmd, Data), тип адресации, а также наличие шифрования.

Теперь поговорим о каждом фрейме данных чуть подробнее.

Data Frame — один из самых простых фреймов. В нем передаются данные протоколов, которые работают поверх IEEE 802.15.4. Получается, что ты можешь взять за основу IEEE 802.15.4 и разработать протокол для своих нужд.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

ACK Frame — фрейм подтверждения. Увы, мы живем в неидеальном мире, где бывает много помех, а при передаче по радиоканалу тем более. Поэтому необходимо подтверждать принятые данные.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Здесь Sequence Number указывает на то, какой фрейм из пришедших ранее мы подтверждаем.

MAC Cmd frame в той или иной степени отвечает за «организацию сети» на уровне 802.15.4.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Ниже представлены команды, которые могут тебе встретиться.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

FFD — Full-function Device — это координатор сети, та самая главная «железка», которая организовывает сеть ZigBee.

RFD — Reduced-function Device — не столь важное устройство, как координатор, выполняет функции роутера при пересылке пакетов.

Beacon frame — об этом фрейме стоит поговорить подробнее.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Так как мы передаем данные по радиоканалу и у нас есть несколько устройств, эти устройства должны как-то определять, в какой момент можно передавать данные, а когда занята несущая и стоит подождать. Поэтому в сетях ZigBee/IEEE 802.15.4 есть два способа передачи данных: режимы Beacon и NonBeacon.

Для передачи данных в режиме NonBeacon используется так называемый unslotted CSMA-CA channel access mechanism. По моему опыту, он используется редко.

Наиболее частый случай — использование режима Beacon. В этом случае координатор отправляет так называемые маячки (beacons), на основе которых остальные устройства синхронизируются и передают данные.

Общий вид передачи данных в этом режиме представлен ниже.

Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них

Во фрейме Beacon указывается, сколько будет slotted CSMA-CA, будет ли доступ без конкуренции и последует ли Inactive portion — время, когда конечные устройства смогут со спокойной совестью уйти в спячку для продления работы от батарейки.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

1 год

5380 р.

1 месяц

720 р.

Я уже участник «Xakep.ru»

Источник

Последние новости