На приватном 5G NR стенде с USRP B210 исследователи DoSQ показали штуку, от которой становится не по себе: декодирование открытого канала управления PDCCH позволяет деградировать Goodput конкретного абонента на уровне приложения. YouTube Live стриминг жертвы терял качество при sparse hit-rates - интерференция не в каждом слоте, а выборочно, - а соседний UE в той же соте работал без заметных потерь. По сути, это первое эмпирическое доказательство side-channel'а от радиоинтерфейса до прикладного уровня, доступного любому противнику с SDR и пониманием протокола 5G NR. Ни один русскоязычный источник эту атаку пока не разбирал. Закрываю gap.
[Полная библиографическая ссылка DoSQ не верифицирована - venue, авторы и DOI требуют проверки]
Планировщик ресурсов 5G NR: уязвимость в архитектуре
Планировщик ресурсов (scheduler) gNB - центральный компонент 5G NR Radio Access Network. Каждый слот (1 мс при numerology m=0 / SCS 15 кГц, 0.5 мс при m=1 / SCS 30 кГц) scheduler решает, какие time-frequency ресурсы отдать каждому активному UE. Решения транслируются через Physical Downlink Control Channel (PDCCH) в формате Downlink Control Information (DCI).DCI передаётся в открытом виде. Шифрование не предусмотрено стандартом. Любой приёмник в зоне покрытия gNB способен его декодировать. Вот так просто.
Поля DCI, критичные для атаки на 5G NR планировщик ресурсов:
- C-RNTI - 16-битный идентификатор UE на MAC-уровне. XOR-маскирует младшие 16 бит 24-битного CRC PDCCH (per 3GPP TS 38.212 §7.3.2). Атакующий перебирает кандидатов C-RNTI при CRC-проверке декодированного DCI; успешная проверка - владелец аллокации найден.
- PRB allocation - конкретные Physical Resource Blocks в частотно-временной сетке, назначенные этому UE. Показывают, где gNB передаёт данные для абонента в текущем слоте.
- MCS index - Modulation and Coding Scheme. Высокий MCS (256QAM, высокий code rate) = хороший канал и высокий throughput. Падение MCS - индикатор деградации.
- HARQ process ID и NDI - параметры Hybrid ARQ: новая передача или ретрансмиссия. Частые ретрансмиссии сигнализируют о потерях.
- Redundancy version - версия кодирования при повторных передачах.
DCI-поток становится зеркалом состояния радиоканала каждого UE. А через радиоканал - косвенным индикатором Goodput приложения. ABR-контроллер видеостриминга реагирует на throughput: при падении снижает разрешение, при длительной деградации останавливает воспроизведение. Scheduler видит деградацию первым и транслирует её обратно в DCI. Атакующий, наблюдая DCI, видит реакцию scheduler'а на собственные действия. Замкнутый контур.
По данным DoSQ, cross-layer сигнализация между приложениями и радиоуровнем в развёрнутых стеках практически отсутствует. Приложение не может проверить, предсказать или адаптироваться к интерференции внутри протокольного стека. Эта уязвимость планировщика ресурсов 5G NR неустранима на стороне приложения - и в этом вся соль.
Модель угроз: атака на радиоинтерфейс 5G с commodity SDR
DoSQ предполагает атакующего со следующим профилем:
Оборудование: USRP B210 (или X310) от Ettus Research. В исследовании использовался именно B210 - commodity-железо, которое можно заказать с доставкой.
Расположение: в зоне покрытия целевой gNB. Не нужен физический доступ к инфраструктуре оператора, не нужна rogue base station, не нужен перехват трафика на транспортном уровне.
Знания: публичные параметры 5G NR - номер полосы (band), SCS, PCI целевой соты. Извлекаются из SSB в пассивном режиме за миллисекунды.
Два режима работы: пассивный (приём и декодирование DCI - чистое наблюдение, сбор данных) и активный (декодирование DCI + передача интерференции на PRB жертвы в том же слоте).
В терминах MITRE ATT&CK пассивная фаза - Network Sniffing (T1040, тактики Discovery и Credential Access): перехват широковещательной информации scheduler'а. Активная фаза - Network Denial of Service (T1498, тактика Impact), конкретнее Direct Network Flood (T1498.001), но с принципиальным отличием: flood таргетирован на PRB конкретного UE, а не на весь спектр.
Сравнение DoSQ с широкополосным jamming'ом - разница парадигм:
| Характеристика | Широкополосный jammer | DoSQ |
|---|---|---|
| Спектральный отпечаток | Высокий - занимает всю полосу | Низкий - только PRB жертвы |
| Детектируемость | Тривиальная | Сложно отличить от естественных помех |
| Энергия передачи | Высокая | Минимальная (sparse воздействие) |
| Селективность | Все UE в соте | Одно конкретное UE |
| Обратная связь | Отсутствует | Через DCI (closed-loop) |
| Кросс-уровневый эффект | Побочный | Целенаправленный |
Wideband jammers, разрушающие коммерческие 5G сети с commodity SDR, не используют структуру протокола и создают жирный footprint для спектрального мониторинга. DoSQ эксплуатирует знание протокола для минимизации следа и максимизации воздействия на конкретную цель. Хирургия вместо ковровой бомбардировки.
Цепочка атаки: от PDCCH side-channel к деградации сервиса 5G
Полная цепочка от разведки до импакта - пять этапов:
- Reconnaissance: пассивный захват SSB, извлечение PCI, SCS, номера полосы. Синхронизация с фреймовой структурой gNB.
- Discovery (T1040): декодирование PDCCH, извлечение DCI для всех активных UE. Построение карты аллокаций.
- Target Identification: связывание C-RNTI с конкретным UE-жертвой через корреляцию DCI-активности с наблюдаемым поведением.
- Side-Channel Analysis: ML-классификатор на DCI-фичах оценивает Goodput-state жертвы и тренд.
- Impact (T1498.001): таргетированная интерференция на PRB жертвы -> деградация PDSCH -> HARQ NACK -> снижение MCS -> падение throughput -> ABR downshift -> DoS на уровне качества сервиса.
[Применимо: 5G NR SA/NSA, sub-6 GHz (FR1), SDR в зоне покрытия gNB. Существенно затруднено: mmWave (FR2) - узкие directional beams резко сокращают геометрию атаки (атакующий должен находиться в пределах DL beam жертвы), при развёрнутом SSB-hopping.]
Синхронизация и декодирование DCI в реальном времени
Захват SSB - первый шаг. SSB содержит PSS и SSS, дающие timing и PCI. Из MIB (Master Information Block), передаваемого в BCH на SSB, атакующий извлекает SFN и конфигурацию CORESET#0 - стартовую точку для поиска PDCCH.Декодирование DCI из PDCCH требует blind search: gNB размещает DCI в различных Aggregation Levels (AL 1, 2, 4, 8, 16), и для каждого AL - в нескольких кандидатных позициях внутри CORESET. Атакующий перебирает все позиции, декодирует polar code и проверяет CRC с маскированием по C-RNTI. Совпало - валидный DCI для этого UE.
Критическое ограничение: весь pipeline "приём OFDM-символов PDCCH -> FFT -> демаппинг -> polar decode -> идентификация PRB жертвы -> генерация интерференционного сигнала -> TX" должен уложиться в один слот. При m=0 (SCS 15 кГц) символ ~ 71.4 мкс, слот = 1 мс (14 символов). При m=1 (SCS 30 кГц) символ ~ 35.7 мкс, слот = 0.5 мс. В типовой конфигурации CORESET занимает 1-3 первых OFDM-символа слота, PDSCH начинается после; но в 5G NR возможны FDM-расположения CORESET и non-slot-based scheduling. При m=1 окно на весь pipeline сужается до ~250-400 мкс (бюджет: слот 500 мкс − CORESET до 3 символов ~107 мкс − processing latency ~50-100 мкс на polar decode и PRB extraction − TX guard).
На USRP B210 с USB 3.0 часть этого окна съедается на трансфер IQ-samples между FPGA и хостом. Каждая микросекунда, потраченная на IPC, синтез waveform или USB latency, сокращает jammable window. При m=1 слот = 0.5 мс - pipeline должен работать вдвое быстрее. Это архитектурное ограничение определяет минимальные требования к hardware, и B210 здесь на грани.
Таргетированная интерференция: DoSQ атака на качество сервиса 5G
C-RNTI жертвы определяется и непрерывно отслеживается. Scheduler gNB ротирует аллокации slot-by-slot - каждый пропущенный decode = пропущенная возможность таргетирования. Методы идентификации C-RNTI: timing-корреляция DCI-активности с инициированием сессии жертвы, анализ паттернов аллокации, характерных для конкретного типа трафика.После идентификации C-RNTI атакующий извлекает из каждого валидного DCI конкретные PRB, назначенные жертве, и генерирует интерференционный сигнал только на этих resource blocks. Спектральный след минимален - кратковременные всплески шума на отдельных PRB сложно отличить от естественных помех в dense urban-сценарии.
На стороне жертвы: PDSCH повреждён -> UE не декодирует transport block -> HARQ NACK -> gNB инициирует ретрансмиссию с пониженным MCS и/или меньшим числом PRB -> throughput падает. Устойчивая интерференция заставляет ABR-контроллер приложения реагировать downshift'ом битрейта.
По данным исследования, при тестировании на YouTube Live Goodput жертвы существенно снижался даже при sparse hit-rates, а co-located UE оставался практически не затронут. YouTube Live выбран намеренно как "сильнейший противник на стороне приложения" - проприетарный ABR-контроллер и live-mode buffer cap делают его более устойчивым, чем open-source стриминговые клиенты. Если DoSQ деградирует такой сервис, то URLLC-слайс (телехирургия, V2X, промышленное управление), не располагающий буфером воспроизведения, подвержен ещё сильнее. И вот тут уже не про видео.
PDCCH side-channel уязвимость: кросс-уровневый вывод Goodput
Самый интересный вклад DoSQ - доказательство того, что PDCCH работает как количественный кросс-уровневый side-channel. ML-классификатор, обученный исключительно на DCI-фичах, оценивает Goodput-state жертвы без доступа к зашифрованному трафику - "без наблюдения единого зашифрованного байта", по формулировке авторов.Фичи классификатора извлекаются из DCI-потока конкретного C-RNTI: количество выделенных PRB за окно наблюдения, средний MCS index, частота и паттерн HARQ-ретрансмиссий, scheduling frequency (как часто UE получает аллокацию).
Модель решает две задачи:
- State estimation - текущее состояние Goodput (высокий / средний / низкий).
- Trend estimation - направление изменения (растёт / стабилен / падает).
Классификатор, по данным авторов DoSQ, показал высокую precision в режиме "attack-now confidence" - корректно определяя моменты, когда интерференция наиболее эффективна (конкретные метрики accuracy/F1 в доступных материалах не приведены). Принципиальное отличие от blind jamming: атакующий управляет деградацией сервиса 5G с обратной связью.
Python:
# Концептуальный pipeline: DCI -> features -> Goodput inference
# Сильно упрощённый псевдокод: опущены rate matching, polar deinterleaving,
# DCI format disambiguation, multi-RNTI blind search. Требует адаптации под srsRAN
for slot in iq_stream.iter_slots():
coreset = slot.extract_coreset(coreset_config)
for al in [1, 2, 4, 8, 16]:
for cand in coreset.search_space(al):
# Blind search: polar decode -> rate-match recovery -> CRC descramble
# CRC XOR с candidate RNTI; совпадение = валидный DCI для этого UE
# Фаза мониторинга (post-identification): target_rnti уже известен.
# Для фазы discovery - перебор candidate_rntis (0x0001–0xFFEF)
dci, crc_ok = cand.polar_decode_and_check(target_rnti)
if crc_ok:
feat = {
'prb_count': dci.freq_domain_assignment,
'mcs': dci.mcs_index,
'ndi': dci.new_data_indicator,
'rv': dci.redundancy_version
}
state, trend = classifier.predict(feat)
# state: high/medium/low goodput
# trend: rising/stable/falling
Воспроизведение DoSQ на стенде с srsRAN и USRP B210
Требования к окружению
- SDR: USRP B210 (2 TX/RX, 56 MHz BW, USB 3.0) - минимум один для passive-mode, два для full active+passive pipeline. USRP X310 с 10 GbE существенно надёжнее для active-mode.
- Хост: Ubuntu 22.04 LTS, RAM минимум 16 ГБ (32 ГБ рекомендуется для real-time IQ-обработки), CPU с AVX2 (i7-10xxx / Xeon, минимум 4 ядра при m=0, 8 ядер при μ=1).
- 5G NR стенд: srsRAN Project (gNB + UE), Open5GS (5GC - AMF, SMF, UPF). srsRAN - open-source реализация 5G RAN на C++, активно поддерживается. Open5GS - open-source 5G Core.
- Конфигурация RF: Band n78 (3.5 GHz) или n41 (2.5 GHz), SCS 30 кГц (m=1), bandwidth 20-40 MHz.
- RF-среда: экранированная камера или attenuated setup с кабельным подключением gNB ↔ UE через аттенюаторы и сплиттеры. Работа в открытом эфире без лицензии - нарушение закона.
- UHD driver: версия 4.4+ для корректной работы с B210.
- Верификация: Wireshark с MAC-NR декодером (dissector nr-rrc) для проверки DCI-содержимого и корреляции с аллокациями.
Этапы развёртывания
Стенд разворачивается в три шага. Первый - запуск Open5GS: конфигурация AMF, SMF, UPF, регистрация SIM-профиля тестового UE (IMSI, Ki, OPc). Второй - запуск srsRAN gNB с конфигурацией CORESET, search space, scheduling policy (round-robin или proportional fair - от этого зависит паттерн DCI). Третий - подключение UE: srsUE или коммерческий модуль (Quectel RM500Q и подобные) через srsUE-wrapper.Для пассивного захвата DCI - второй SDR на той же полосе. IQ-поток захватывается через
uhd_rx_cfile или GNU Radio flowgraph с USRP Source. Декодирование PDCCH реализуется через модифицированный srsRAN-decoder - srsRAN предоставляет библиотеку PHY-функций, включая polar decoder и PDCCH processing. Альтернатива - инструменты на базе gr-nr для GNU Radio, но их зрелость пока ниже.Для active-mode нужен tight timing: decode DCI на одном SDR -> определить PRB жертвы -> сформировать OFDM-символы интерференции -> передать через второй TX-канал (или второй SDR) в оставшемся окне слота. На B210 с USB 3.0 это пограничный сценарий - X310 с 10 GbE существенно надёжнее. Я бы для серьёзного воспроизведения брал X310 без раздумий.
Smart jamming 5G: почему DoSQ - принципиально новый класс атак
Литература по PHY-layer security 5G NR, включая обзор Harvanek et al. (2024) [точный venue и DOI не верифицированы], выделяет несколько семейств jammers:- Wideband jammers - максимальная мощность на всю полосу. Тривиальная детекция, максимальный collateral damage, никакой селективности. Кувалда.
- Cell-search / initial-access jammers - атака на PSS/SSS/PBCH (см. обзор Harvanek et al., 2024; venue и DOI не верифицированы). Блокируют подключение новых UE, не влияют на установленные сессии.
- Protocol-aware reactive jammers - декодируют служебную информацию и таргетируют конкретные каналы или UE. DoSQ принадлежит к этому классу.
Для контекста: исследование SNI5GECT, описанное Kaspersky на базе работы SUTD (Singapore University of Technology and Design), атакует этап initial access - до установления зашифрованного сеанса - и, по имеющимся данным, требует близкого расположения к жертве. DoSQ работает на уже установленном соединении, радиус ограничен зоной покрытия gNB (сотни метров до километров в sub-6 GHz), воздействие продолжается всё время сессии. Другая поверхность атаки, другая цель, другой масштаб.
Исследования paging-протоколов (ToRPEDO, NDSS 2019, Hussain et al., Purdue University и University of Iowa) показали side-channel'ы в механизме пейджинга 4G/5G для отслеживания абонентов. DoSQ дополняет картину: если paging side-channel раскрывает присутствие UE, то PDCCH side-channel раскрывает активность приложения и позволяет атаковать конкретный сервис.
Контрмеры: SSB-hopping и деградация сервиса 5G NR
Исследователи DoSQ предложили контрмеру: SSB frequency-time hopping - рандомизация позиции Synchronization Signal Block в частотно-временной сетке. Логика прямолинейная: без синхронизации по SSB атакующий не декодирует PDCCH, не извлекает DCI, не получает данных для таргетирования.В штатном режиме SSB передаётся на фиксированных позициях. Синхронизация занимает миллисекунды. С SSB-hopping ресинхронизация требует на порядки больше времени (конкретная величина требует верификации по первоисточнику).
SSB-hopping - не бесплатное удовольствие:
- Обратная совместимость: все UE в соте должны поддерживать hopping-паттерн. Для развёрнутых сетей - обновление прошивок модемов. Удачи с парком устройств.
- Initial access latency: для легитимных UE увеличивается время cell search и, соответственно, задержка handover и initial attach.
- Multi-operator deployment: в shared RAN hopping-конфигурация должна быть согласована между операторами.
PDCCH encryption - фундаментальное решение. Шифрование DCI устранило бы side-channel полностью, но требует изменений в стандарте 3GPP и существенных вычислительных затрат на стороне UE. PDCCH blind search и так ресурсоёмкая операция; добавление криптографии увеличит энергопотребление и latency декодирования. Правильно, но больно.
Аномальная детекция на стороне gNB - мониторинг паттернов HARQ NACK и MCS degradation для выявления таргетированной интерференции. Если конкретное UE стабильно получает NACK на определённых PRB, а соседние UE на тех же частотах - нет, это индикатор targeted jamming. Подход соответствует NIST CSF DE.AE-01 - установление baseline и обнаружение отклонений.
Рандомизация scheduling policy - если scheduler варьирует паттерн PRB-аллокации менее предсказуемо (не round-robin, не static), атакующему сложнее предсказать позицию данных жертвы в следующем слоте. Но DCI для текущего слота всё равно транслируется в открытом виде - рандомизация усложняет predictive jamming, но не reactive. Полумера.
Ограничения DoSQ и контекст применимости
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Когда я впервые воспроизвёл пассивную фазу DoSQ на стенде - декодирование DCI, визуализация MCS-тренда для конкретного C-RNTI - стало очевидно, насколько фундаментальна проблема. Планировщик ресурсов 5G NR работает строго по стандарту: адаптируется к каналу и транслирует решения открыто. Но именно эта штатная работа создаёт side-channel, от которого нельзя защититься на стороне приложения. ABR-контроллер YouTube не знает, что происходит на PHY, не может отличить реальную деградацию канала от целенаправленной интерференции - и по дизайну стека не получает этой информации.
Основная масса обсуждений безопасности 5G крутится вокруг core network: network slicing, SEPP, NRF, проблемы безопасности network slicing (AdaptiveMobile Security, 2021). Это важные поверхности атаки, но они требуют доступа к инфраструктуре оператора или компрометации сетевой функции. DoSQ требует SDR в зоне покрытия - порог входа ниже на порядок. Ущерб масштабируется: от деградации стриминга до потенциального воздействия на URLLC-сервисы, где отсутствие буфера делает PHY-деградацию мгновенно заметной на уровне управления физическими процессами.
SSB-hopping концептуально верна как контрмера - значительный рост стоимости ресинхронизации серьёзно осложняет атаку. Но без изменения стандарта 3GPP это вендор-специфичное расширение с проблемами обратной совместимости. Настоящее решение - шифрование PDCCH или рандомизация привязки C-RNTI к физическим ресурсам на уровне, непредсказуемом для пассивного наблюдателя. До тех пор DCI остаётся открытой книгой, и любой исследователь с USRP B210 и пониманием NR frame structure может её прочитать. Формула на бумаге понятна, но cross-layer inference по-настоящему ощущается только когда сам прогоняешь DCI-поток через классификатор и видишь, как MCS-тренд отражает buffering events YouTube в реальном времени. Теория перестаёт быть абстракцией - и становится вектором атаки.
Последнее редактирование модератором: