- Русские Блоги
- Universal Radio Hacker (URH): инструмент с открытым исходным кодом для обратного анализа и атак на протоколы беспроводной связи
- 1. Введение
- 2. Цели проектирования URH
- 1. Обзор методов реализации URH
- 2. Анализ сигналов
- 3. Анализ сигналов
- 5. Моделирование сигнала
- В-третьих, установка и использование URH
- 1、Windows
- 2、Linux
- Четыре основные функции URH:
- 1. Сканирование спектра
- 2. Запись сигнала
- 3. Анализ сигналов
- 4. Анализ сигналов
- Universal Radio Hacker — легкий способ исследовать цифровые радиопротоколы
- Установка
- Определяем частоту
- Записываем сигнал
- Анализируем сигнал
Русские Блоги
Universal Radio Hacker (URH): инструмент с открытым исходным кодом для обратного анализа и атак на протоколы беспроводной связи
Содержание этой статьи, платы для разработки и аксессуары используются только для научно-исследовательских экспериментов в школах или исследовательских институтах!
В этой статье представлен инструмент с открытым исходным кодом для обратной связи и атаки на протоколы беспроводной связи (проприетарные). Инструмент был разработан Йоханнесом Полем и Андреасом Ноаком. Результаты также были опубликованы на 12-м семинаре USENIX по наступательным технологиям (woot’18). Woot — это семинар, организованный совместно с Usenix Security, конференцией по информационной безопасности высшего уровня. Исходный текст Universal Radio Hacker: A Suite for Analyses and Attacking Stateful Wireless Protocols и его речевой PPT ссылка для скачивания:https://www.usenix.org/conference/woot18/presentation/pohl
Эта статья, основанная на изучении исходного текста и использовании инструментов, знакомит с основным содержанием и использованием URH.
оглавление
1. Введение
Устройства IoT обычно используют собственные проприетарные беспроводные протоколы. Эти частные соглашения часто фокусируются на том, как работать стабильно и надежно, когда ресурсы устройств IoT ограничены. Однако в соглашениях часто игнорируется защита информации. Это также ведет к повышенным рискам безопасности для различных беспроводных интеллектуальных устройств.Например, беспроводные дверные замки или автомобильные беспроводные ключи уязвимы для беспроводного прослушивания, воспроизведения, взлома и других атак. Если сетевые злоумышленники хотят запустить атаки глубокого уровня на эти беспроводные устройства, им необходимо глубоко проанализировать эти проприетарные беспроводные протоколы.
Программное радиоустройство может быть настроено на рабочую полосу частот устройства Интернета вещей для отправки и приема сигналов, что обеспечивает большое удобство для злоумышленников при выполнении обратной работы беспроводного протокола. Тем не менее, похоже, что большинство программных средств радиооборудования подходят для работы с протоколом. Полосы частот часто сосредоточены в высокочастотной полосе (3–30 МГц, например, в полосе частот RFID 13,56 МГц), и эти средства нельзя использовать в полной мере. Чтобы проанализировать логику протокола, он должен взаимодействовать с другими настроенными инструментами или соответствующими данными микросхемы.
Поэтому в этой статье (Universal Radio Hacker: A Suite for Analysis and Attacking Stateful Wireless Protocols) разработан инструмент с открытым исходным кодом Universal Radio Hacker (URH), который может взаимодействовать с обычным программным радиооборудованием для выполнения обратного анализа протоколов беспроводных частных протоколов и реализации Он имеет функции демодуляции сигнала, настраиваемого декодирования, фаззинга протокола и моделирования. В общем, URH делит работу по обратному анализу протокола на следующие этапы: анализ сигнала, анализ сигнала, генерация сигнала и моделирование сигнала. Среди четырех этапов результат предыдущего этапа может быть введен в следующий этап. URH фокусируется на анализе логики протокола, а не только на анализе высокочастотного сигнала и цифрового сигнала.
2. Цели проектирования URH
URH — это инструмент для анализа проприетарных беспроводных протоколов. URH принимает сигналы беспроводной выборки, управляя программным радиооборудованием (например, USRP, HackRF и т. Д.), И преобразует сигналы в 01-битные последовательности. Но функция URH этим не ограничивается. Цель URH — помочь вам в достижении полного процесса атак беспроводной связи на определенные устройства IoT.
В частности, URH преследует три следующие цели проектирования:
(1) Предоставлять интуитивно понятный интерфейс для анализа проприетарного протокола беспроводной связи и не требовать от пользователей глубоких знаний в области радиочастот;
(2) Предоставление пользователям полного обзора всех операций, связанных с атакой на частный беспроводной протокол с отслеживанием состояния;
(3) Этот инструмент должен предоставлять интерфейс для работы с другим программным обеспечением.
3. Метод реализации бетона URH.
1. Обзор методов реализации URH
Для достижения проектных целей URH разделяет обратный анализ беспроводного протокола на следующие три основных этапа:
(1) Анализ сигнала: анализ сигнала включает демодуляцию и декодирование исходного дискретизированного сигнала, и его цель состоит в том, чтобы преобразовать полученный сигнал в цифровые битовые данные.
(2) Анализ сигналов: декодирование битовых данных анализа сигналов в хорошо читаемый текст с целью анализа и обнаружения логики коммуникационного взаимодействия протокола.
(3) Генерация сигналов и моделирование сигналов: для атак на протоколы без сохранения состояния этап генерации сигналов заключается в создании пакетов данных, которые могут обмениваться данными и взаимодействовать с устройствами IoT на основе анализа логики протокола. Для атак на протоколы с отслеживанием состояния необходимо реализовать моделирование протокола, а также фаззинг и обратный анализ определенных полей протокола на этапе моделирования сигнала.
2. Анализ сигналов
Основная цель анализа сигнала — извлечь двоичные битовые данные из принятого сигнала. По этой причине принятый сигнал необходимо правильно демодулировать. Что касается демодуляции, хотя каждый модулированный сигнал может иметь разные методы модуляции по амплитуде, частоте и фазе, URH надеется предоставить метод демодуляции, который будет как можно более универсальным. Следовательно, URH должен выполнить некоторую предварительную обработку модулированного сигнала. URH реализует алгоритмы предварительной обработки для модуляции ASK, PSK и FSK. Независимо от того, какой метод модуляции используется для модулированного сигнала, URH предварительно обрабатывает модулированный сигнал в прямоугольный сигнал, как показано на рисунке ниже.
3. Анализ сигналов
После получения результата анализа сигнала (т. Е. 01 бит) следующая работа анализа — это фактическая работа по анализу логики протокола.
4. Генерация сигнала
После завершения анализа сигналов и анализа сигналов вы освоили формат некоторых протоколов. Затем, чтобы проверить правильность вашего анализа, вы можете проверить его, инкапсулируя некоторые пакеты данных самостоятельно и отправив их на принимающее устройство Интернета вещей. Формирование сигнала является этапом реализации этой операции.
5. Моделирование сигнала
Самым большим ограничением этапа генерации сигнала является то, что для этих протоколов с отслеживанием состояния невозможно реализовать эффективные атаки, поскольку они не могут подделать действительный серийный номер или зашифрованное значение ответа на запрос. Чтобы решить эту проблему, URH предоставляет функцию имитации сигнала. См. Исходную бумагу для получения подробной информации о решении.
В-третьих, установка и использование URH
1、Windows
On Windows, URH can be installed with its Installer. No further dependencies are required.
If you get an error about missing api-ms-win-crt-runtime-l1-1-0.dll , run Windows Update or directly install KB2999226.
2、Linux
Install via Package Manager
URH is included in the repositories of many linux distributions such as Arch Linux, Gentoo, Fedora, openSUSE or NixOS. There is also a package for FreeBSD. If available, simply use your package manager to install URH.
Generic Installation with pip (Ubuntu/Debian)
URH you can also be installed with using python3 -m pip install urh . In case you are running Ubuntu or Debian read on for more specific instructions.
In order to use native device backends, make sure you install the -dev package for your desired SDRs, that is libairspy-dev , libhackrf-dev , librtlsdr-dev , libuhd-dev .
If your device does not have a -dev package, e.g. LimeSDR, you need to manually create a symlink to the .so , like this:
before installing URH, using:
Четыре основные функции URH:
Я протестировал основные функции URH с HackRF и беспроводным дверным звонком. Используемое оборудование включает:
(3) Беспроводной дверной звонок: рабочий диапазон частот 315 МГц.
1. Сканирование спектра
Выберите File—》 Spectrum Analyzer
На рисунке ниже показан спектр сигнала беспроводного дверного звонка, для приема которого я использовал URH.Частота сигнала беспроводного дверного звонка составляет 315 МГц.
В настройках устройства слева вы можете выбрать устройство, установить центральную частоту принимаемого сигнала, частоту дискретизации, полосу пропускания, усиление и т. Д. Если вы хотите изменить частоту принимаемого сигнала, вы можете изменить ее в поле Частота слева или щелкнуть прямо в спектре справа Частота, которую вы хотите принимать, может переключаться автоматически.
2. Запись сигнала
Щелкните Файл —> Записать сигнал.
Сигнал в правом интерфейсе выглядит так, как показано на рисунке ниже после увеличения.
3. Анализ сигналов
Вы можете использовать мышь, чтобы выбрать форму сигнала, и выбранная область будет синей. После выбранной области последовательность 01 ниже также будет выделена серым цветом.
Выберите Spectrogram из выпадающего меню Signal View.
4. Анализ сигналов
Интерфейс анализа, вот последовательность 01 после анализа URH.
Если вы установите флажок «отмечать различия в протоколе», биты, которые различаются в каждой строке, будут отмечены красным цветом для облегчения сравнения аналитиком.
Дополнительные описания функций и некоторые детали реализации, описанные в документе, нуждаются в более глубоком изучении и будут продолжены.
Источник
Universal Radio Hacker — легкий способ исследовать цифровые радиопротоколы
Universal Radio Hacker (URH) — невероятно простой и понятный инструмент для анализа цифровых радиопротоколов. В отличие от монстров вроде GNU Radio, освоить его можно за пять минут, без мучений.
Главные особенности URH:
- Работает на всех платформах — на macOS/Linux/Windows, из коробки! Не нужно часами компилять километры зависимостей.
- Поддерживает популярные SDR — нативная поддержка RTL-SDR, HackRF, LimeSDR, AirSpy и других.
- Все в одном — все нужные инструменты встроены в одну программу: анализатор спектра для поиска частот, запись сигнала, интерпретатор цифрового сигнала для автоматического преобразования записанного сигнала в цифровые данные.
- Поддерживает передачу — для проведения replay-атаки достаточно выделить мышкой нужный отрезок сигнала и нажать Replay. Великолепно!
В статье мы будем анализировать сигнал пульта от шлагбаума, при помощи народного RTL-SDR (радио из дешевого USB ТВ-тюнера) и macOS.
Установка
URH написан на Python 3, со вставками C через Cython. Его можно использовать прямо из репозитория, без установки и компиляции.
Для UNIX-подобный ОС его можно установить через менеджер пакетов pip3:
Библиотеки для работы с SDR в macOS можно установить через brew:
Определяем частоту
Для начала нужно узнать, на какой частоте работает наш брелок. В большинстве случаев, такие устройства работают в нелицензируемом диапазоне 433Mhz. Проверим, так ли это, с помощью анализатора спектра.
File -> Spectrum Analyzer
Этот инструмент только показывает спектр в выбранном диапазоне, и не позволяет как-либо сохранять или обрабатывать сигнал. Единственное его назначение — визуально найти нужный сигнал. В параметрах указываем драйвер устройства (в моем случае это RTL-SDR), и частоту.
На видео показан анализатор спектра, который позволяет установить, на какой частоте работает устройство.
После того, как частота найдена, достаточно кликнуть мышкой по сетке, чтобы установить найденную частоту как центральную.
Записываем сигнал
Теперь можно сохранить сигнал нажатия кнопок для последующего анализа. Важно понимать, что записывается не только выбранная частота, но и все соседние, которые может услышать наш SDR. Это регулируется настройкой Bandwidth. Поэтому файл с дампом увеличивается достаточно быстро, по нескольку мегабайт в секунду. Для нашей задачи можно существенно уменьшить Bandwidth и Sample Rate, это уменьшит объем лишних захватываемых данных, но мы оставим их по умолчанию, чтобы не напрягаться.
File -> Record Signal.
Видео: захват сигнала с брелка
Так как брелок находится близко к приемнику, его сигнал достаточно мощный, и его отчетливо видно на вейвформе. Для того, чтобы понять, используется ли какая-то защита от replay-атаки, нажимаем на кнопку несколько раз. Это позволит нам сравнивать несколько разных сигналов.
Анализируем сигнал
После закрытия окна записи сигнала, сохраненный дамп загружается в интерпретатор, который автоматически определяет параметры сигнала: модуляцию, длину бита, и т.д., и преобразовывает аналоговый сигнал в цифровой. Это очень удобно, ничего подобного я не видел в других похожих программах. Обычно, для того же самого используются консольные утилиты, которым нужно вручную задавать параметры сигнала.
Для удобства, данные можно отобразить в HEX-формате.
Даже беглого взгляда достаточно, чтобы увидеть, что они повторяются. Следовательно, никакой криптографии в нашем пульте не применяется. А это значит, что мы легко можем выполнить replay-атаку. Для этого достаточной мышкой выделить нужный кусок сигнала на спектрограмме и нажать кнопку replay. Но, к сожалению, RTL-SDR не умеет передавать, а только принимает. Поэтому для проведения атаки нам нужно любое устройство из поддерживаемых URH, которое умеет передавать сигнал: это может быть hackrf, limesdr, bladerf или USRP.
Графическое выделение позволяет удобно работать с сырым сигналом и обработанными данными.
Отдельно хочу отметить удобство работы с интерпретатором. При выделении сигнала на вейвформе, выделяются обработанные данные. Это удобно в тех случаях, когда есть сомнения в правильности автоматического парсера, и нужно изучить сигнал вручную.
URH — простой инструмент для работы с разнородными сигналами, который из коробки поддерживает все популярные SDR. Освоить его можно за пять минут, без мучительной компиляции GNU Radio.
Если вам интересна тема SDR, в нашем Хакспейсе Neuron вы сможете пообщаться с разработчиками продвинутого SDR — XTRX, которые в этом году провели успешную компанию на crowdsupply. К сожалению, поддержка XTRX пока не добавлена в Universal Radio Hacker, но вы можете принять в этом участие.
Все новости о жизни Хакспейса в телеграм-канале: @neuron_news
Источник