Zigbee — это популярный беспроводной протокол для умного дома, который по умолчанию шифрует сетевой трафик. Шифрование защищает содержимое пакетов, но не метаданные: длину пакетов, межпакетные интервалы, периодичность служебных отчётов и шаблоны событий. Каждое устройство имеет уникальные fingerprints, заданные производителем для экономии батареи. Пассивный перехват радиосигнала позволяет злоумышленнику по этим признакам определить тип устройства, производителя, время активности в доме и даже события без расшифровки — точность идентификации по данным реальных стендов достигает 94–99% для известных моделей.
Как это выглядит на практике?
В лабораторных условиях собраны два разных набора устройств: Xiaomi и Sonoff÷, и проанализирован их трафик. Предполагается сеть Zigbee, аналогичная представленной на Рисунке, в которой интеллектуальный концентратор ZC соединен с несколькими популярными устройствами Zigbee ZR и ZED. Концентратор подключен к IP‑шлюзу для обновления состояний устройств в облаке и интеллектуальном приложении пользователя.

Жильцы умного дома выполняют повседневные дела и могут управлять устройствами через приложение практически из любого места. Пассивный злоумышленник c помощью USB‑сниффера Zigbee, например, TI CC2531, представленном на Рисунке, может перехватывать трафик работы вашего умного дома.

Злоумышленник может пассивно анализировать Zigbee‑трафик, распознавая события и устройства по логике команд или шаблонам отчетов — без ключей. В начале строится карта Zigbee‑сети. Чтобы сэкономить место в кадрах, Zigbee использует логические адреса для маршрутизации вместо MAC‑адресов назначения. Это значит, что для точной идентификации устройств нужно сопоставлять логические адреса с их MAC‑адресами и типами узлов. Координатор всегда имеет адрес 0×0000, а дальше всё просто: устройства с батарейками (ZED) периодически отправляют запросы данных IEEE 802.15.4, а маршрутизаторы (ZR) их не отправляют, но становятся получателями таких запросов (кроме самого координатора). Кстати, ZR легко узнать по другим признакам: он обрабатывает кадры с метаданными маршрутизации и сам генерирует команды NWK вроде статуса соединения или отчётов о сети. По этим паттернам можно точно определить роль каждого устройства, даже если трафик зашифрован. Когда в сети происходит событие, например, открылась дверь, хакер ловит специфичные APL‑команды и понимает и тип события, и что за устройство сработало. Производителя можно вычислить по MAC‑адресу, а тип устройства определяется по логике его работы и особенностям метаданных. Эти особенности возникают из‑за встроенных в Zigbee алгоритмов экономии энергии. Ещё злоумышленник ловит ритм устройств: по шаблонам и интервалам отчётов создаёт уникальные «цифровые отпечатки». Сверяет эти отпечатки с трафиком в целевой сети. Если таких шаблонов нет — ждёт любого события. Впервые такая идея появилась в статье Zleaks: Passive inference attacks on Zigbee based smarts.
Как работать с событиями?
Умные устройства ведут себя предсказуемо: все лампочки используют одни и те же APL‑команды для включения или смены цвета. Производители следуют стандартным Zigbee для совместимости. Однако в зашифрованном трафике команды с одинаковой длиной полезной нагрузки могут выглядеть одинаково, так как в Zigbee больше сотни APL‑команд. Для разработки правила для команды с конкретной функциональностью используются форматы кадров, чтобы сначала идентифицировать все команды, которые имеют перекрывающуюся длину полезной нагрузки и направление пакета с целевой командой и ее ответной командой, например, запрос на запирание/разблокировку двери и ответ. Далее запускается тестовое событие и перекрывающиеся команды различаются на основе типа логического устройства и вариаций метаданных.

Например, команда APL с длиной полезной нагрузки 11 байт, отправленная от ZC к ZED, имеет вид «Заблокировать/разблокировать», если размер ответного пакета от ZED до ZC составляет 12 или 21 байт. Поскольку одни и те же функциональные устройства используют одни и те же команды, специфичные для функциональности, правила, созданные для определенного устройства, также справедливы и для устройств других производителей. Для статуса зоны наблюдались поведенческие закономерности, которые позволили различать различные типы датчиков. Для открытия двери статус зоны появляется только один раз, а для датчиков движения один и тот же набор пакетов повторяется через определенные интервалы времени секунд

Для полного анализа трафика берётся весь трафик от одного узла, например, 0 xabcd и вычленяются из него все APL‑команды — всё остальное отбрасываем. Главное правило: команда, которая реально отвечает за функцию устройства, всегда идёт первой в событии. Так что ловим первый пакет после события — и уже понимаем, что именно произошло.
Как работать со служебными пакетами?
В отличие от пакетов событий, пакеты отчетов не имеют команды APL, специфичной для функциональности, и не раскрывают напрямую тип устройства. Как показано на рисунке, чтобы разработать fingerprint периодических отчетов устройства, устройство переводится в состояние ожидания и фильтруются все команды APL, которыми обмениваются устройство и ZC. После отбрасывания лишних пакетов мы анализируем трафик, для определения как минимум трех пакетов с одинаковым шаблоном отчетов и интервалом времени.

Таким образом, fingerprint представляет собой последовательность кадров APL определенных с использованием источника, назначения, длины полезной нагрузки и интервала отчетов. Для идентификации устройств сначала фильтруются команды APL из трафика и отбрасываются лишние пакеты и пакеты с любой командой функциональности. Далее находим два похожих повторения и сопоставляем наблюдаемую закономерность и интервал с доступным набором подписей для идентификации устройства. Если для устройства отсутствуют подписи, то сначала ожидается событие, чтобы идентифицировать устройство, используя метод команд.
Результаты на реальном стенде
Чтобы провести верификацию подхода и подтверждения его эффективности в условиях, приближенных к реальной эксплуатации, был развернут физический испытательный стенд. В его состав вошли беспроводные устройства двух наиболее распространенных на потребительском рынке вендоров: Xiaomi и Sonoff. Выбор именно этих производителей обусловлен их доминирующим положением в сегменте «умного дома». Сбор трафика осуществлялся поканально с помощью утилиты командной строки whsniff. Для каждого из используемых Zigbee‑каналов выполнялась команда:
sudo whsniff -c ZIGBEE_CHANNEL_NUMBER | ( gzip -c > "zigbee_sniff_$(date +"%FT%H%M%S").pcap".gz & )
Это обеспечило захват радиопакетов на уровне MAC и сетевого уровня стека Zigbee. В процессе записи мы искусственно инициировали срабатывания датчиков в строго фиксированные моменты времени, чтобы затем верифицировать корректность выделения событий. Итогом каждого сеанса стали файлы формата.pcap, содержащие полные дампы эфирной активности. Полученные дампы были поданы на вход доработанного нами программного анализатора. При его доработке мы учли все ключевые особенности протокола Zigbee, описанные в теоретической части. На Рисунках отображены результаты работы анализатора для записанного трафика датчиков xiaomi и sonoff соответственно.


Анализатор выводит устройства, которые он смог выделить из трафика, и логический тип этих устройств. Затем выводятся логи событий, которые были выделены в трафике, например, сработки датчика движения или сработка датчика открытия закрытия. Сравнение полученного лога с заранее известным расписанием инициированных срабатываний показало, что точность идентификации и классификации устройств достигает 94–98%. При этом система не требует вычислительно мощных аппаратных ресурсов или глубоких экспертных знаний от конечного пользователя — все этапы от захвата трафика до построения логической карты сети полностью автоматизированы.
Комментарии (30)

tklim
22.10.2026 04:53Весь прикол, что это работает только да лабораторных условиях. Чтоб подслушать zed (у них обычно и мощность и антенны минимальные) нужно находится в комнате или через стенку. В крайнем случае, кулхацкер должен у меня под окном в машине сидеть. Но в таком случае и визуально можно смотреть когда двери открываются или свет включается.

WaldemarsonTheForester
22.10.2026 04:53Я как-то за четыре тысячи километров от сниффера сидел, и ничего, все, что нужно, видел :-) Скорее, непонятно, нафиг нужно решать озвученные вами проблемы, а не как решать.

WaldemarsonTheForester
22.10.2026 04:53Судя по тому, что на скриншоте видно файл, у которого в имени фигурирует 2024-й год, сами вы это не пробовали. По тексту, без обид, тоже видно.

boorble Автор
22.10.2026 04:53не знаю почему вам о чем-то говорит дата на скрине, ну вот ждала эта статья своего часа 2 года, вот вам скрин свеженького трафика от вчера


WaldemarsonTheForester
22.10.2026 04:53Той командной строкой, которая у вас в статье указана, вообще не получить файл с таким именем, что на скриншоте в статье. Но ладно, ждала, так ждала. А файл переименовали потом.

WaldemarsonTheForester
22.10.2026 04:53Ну а на свежем ни одного MAC-адреса не видно. Как определили, что координатор от TI, а устройство от Sonoff - неочевидно.

boorble Автор
22.10.2026 04:53Мак есть, но он замазан (не потому что мы вредные)

WaldemarsonTheForester
22.10.2026 04:53Из соображений секретности? :-) Так взяли бы те же устройства, что два года назад, их MAC-и вы все равно уже засветили :-)
Ладно, чего там. Не везет у нас исследованиям Zigbee. То Kaspersky какую-то вызывающую изумление статейку выдаст, то еще кто-нибудь...
f_mike
22.10.2026 04:53Вполне логично предположить, что тех устройств уже нет, а на несправедливые обвинения в том, что "мы сами это не пробовали", уж очень хотелось ответить :)

WaldemarsonTheForester
22.10.2026 04:53Тут вообще многое можно предположить :-) С координатором ладно, но засекречивание MAC-адреса сенсора дает простор для полета конспирологической фантазии :-)

WaldemarsonTheForester
22.10.2026 04:53устройства с батарейками (ZED) периодически отправляют запросы данных IEEE 802.15.4,
Zigbee вообще поверх пятнадцать-четыре, тут не поспоришь :-)
а маршрутизаторы (ZR) их не отправляют, но становятся получателями таких запросов (кроме самого координатора).
Посмотрите на картинки, которые у вас в статье. В обоих случаях у вас по одному ZC и по два ZED, ни одного ZR нет. Означает ли это, что датчикам некого поллить?
boorble Автор
22.10.2026 04:53Про пункт 802.15.4 не очень поняла, data request и правда на этом уровне работают

Про ZR - это один из вариантов, датчики могут работать как с ZR, так и с координатором, там в скобках написано, что кроме самого координатора, имелось в виду, что они могут получить и координатор может получать, у нас в схеме не было ZR, датчики отправляли сразу все координатору.

WaldemarsonTheForester
22.10.2026 04:53Улыбнуло, что вы название команды перевели. Необычно.
В оригинале тоже кривовато, имя команды во множественном числе (но, хотя бы, оба слова с большой буквы): We observed that for IEEE 802.15.4 Data Requests specifically, the source node is ZED and the destination node (other than 0x0000) is ZR.
И что тут можно observe - х.з., это в спеке написано. Ребята observed, что устройства работают по спеке? Чудо! :-)
Но, все-таки, "маршрутизаторы (ZR) их не отправляют, но становятся получателями таких запросов (кроме самого координатора)" совсем не то же самое, что "the destination node (other than 0x0000) is ZR.".

pred8or
22.10.2026 04:53... был развернут физический испытательный стенд. В его состав вошли беспроводные устройства трех наиболее распространенных на потребительском рынке вендоров: Xiaomi и Sonoff.
Ну а третий кто?
Скрытый текст


boorble Автор
22.10.2026 04:53Поправили, спасибо

WaldemarsonTheForester
22.10.2026 04:53В лабораторных условиях собраны три разных набора устройств: Xiaomi и Sonoff÷, и проанализирован их трафик.
Не везде.

boorble Автор
22.10.2026 04:53иишка бы с первого раза все поправила
а я просто человек)

WaldemarsonTheForester
22.10.2026 04:53"Что ж не помолившись,
И не накатив,
Вы несетесь, Анна,
Под локомотив?"

WaldemarsonTheForester
22.10.2026 04:53Как по MAC определили производителя Zigbee-модуля - понятно. Как потом производитель модуля превратился в производителя устройства - непонятно, С учетом того, что тип устройства определить не удалось, в обоих случаях то ли датчик открытия, то ли датчик движения указан.
Короткий адрес, кстати, по ходу дела может меняться. Для ZED так это вообще обычная история. И что в этом случае покажет ваш программный анализатор?
boorble Автор
22.10.2026 04:53для этого превращения воспользовались поведенческим анализом, но, как вы справедливо заметили, этот анализ срабатывает не для всех устройств
а короткий адрес нам никак не мешает, ведь мак адрес остается

WaldemarsonTheForester
22.10.2026 04:53Практически никогда он не работает за пределами лаборатории. Сняв трафик с однотипных устройств производителя A и производителя B, вы можете научиться отличать одно от другого. А можете и не научиться. А потом появится устройство производителя C. Или новая прошивка от A или B.
У вас инструмент печатает в одной строке короткий адрес и MAC. Что будет, если в процессе короткий адрес менялся? Две строки? Напечатает только первый? Только последний?

Kichiro72
22.10.2026 04:53Поэтому у меня даже дома все раскидано по виланам. iot тусуется в отдельном, изолированном vlan. сегодня просто перехват и инициация срабатывания, а завтра доступ в локалку.
alferiusgmailcom
В статье показывается как определить устройство и понять событие происходящее на нём. Возникает несколько вопросов:
Можно ли сформировать левый пакет с командой, чтобы НА подумал, что это сигнал устройства?
Можно ли сформировать левый пакет с командой, чтобы устройство подумало, что это команда от НА?
Какой смысл этих перехватов, даже если можно формировать ложные команды? Что можно сделать кроме мелких пакостей?
Критически важные процессы типа отопления или водоснабжения либо вай-фай либо по шнуру, остаётся только со светом баловаться.
udvnl
Первое что приходит на ум, возможность контроля и управления умным замком.
TIGER535
Насколько я знаю поэтому их и не делают на обычном ZigBee, только с появлением matter начали появляться и замки.
WaldemarsonTheForester
Просто люди ленивые по своей природе. Matter принуждает делать то, что в Zigbee можно сделать, а можно и не сделать, и что никто не делает, потому что лень, "будет неудобно пользователям", и т.п.
Ну и про замки это скорее Aliro, чем Matter сам по себе.
WaldemarsonTheForester
Полно у нас в стране электросчетчиков с реле управления нагрузкой и Zigbee. Можно так со светом побаловаться, что мало не покажется. Но там свои дыры, не те, что в статье.
boorble Автор
пакет сформировать определенный можно для деструктивного воздействия, да и не только пакет)
но в том смысле, в котором указано тут (1 и 2) - нужен ключик NWK