TGViewer
Технологический Болт Генона Технологический Болт Генона @tech_b0lt_genona · 9.74K subscribers
Post #6999 2.65K
Фаззинг телекома с генетическим алгоритмом: как тестировать продукт на безопасность, если обычных методов недостаточно
https://habr.com/ru/companies/yadro/articles/981842/

Меня зовут Арина Волошина, я AppSec-инженер в YADRO и занимаюсь тестированием безопасности телеком-продуктов: базовой станции, контроллера базовых станций и системой управления элементами сети. Мы внедрили много разных видов тестирования в эти продукты, но этого оказалось недостаточно. В своих научных исследованиях я занималась генетическими алгоритмами, поэтому решила применить академические знания на практике и реализовать генетику в фаззинге.
...
Применять фаззинг в любой большой системе, как и в телекоме, можно к разным ее компонентам: веб-интерфейсам, конфигурациям и настройкам сети, точечно к коду, разным обвязкам над функциями обработки сигналов и так далее.

Мы выбрали более продуктовый, реалистичный, но сложный подход — фаззинг по сети. В этом сценарии мы поднимаем приложение или эмуляторы, запускаем фаззинг сообщений, которыми общаются устройства, построенные по различным телеком-протоколам, и проверяем, как система реагирует.
...
Особенности реализации

- Для реализации фаззинга мы выбрали язык C как наиболее удобный, потому что большинство инструментов фаззинга написано как раз под него.

- AFLNet используется в качестве основы для поддержания сессии общения между устройствами и отправки сообщений.

- Чтобы минимизировать ручной разбор спецификаций и не тратить лишнее время на детали, мы применяем автоматический протокольный парсинг, для которого в AFLnet была встроена функция поддержки.

- Проект собирается под компилятор afl-gcc, что позволяет считать тестовое покрытие.

- Наконец, нужна аутентификация, чтобы контроллер не отбросил нас на первом же шаге, а воспринял как реальную базовую станцию. Это позволяет полностью воспроизвести корректный сценарий установления связи.


Пост большой, далее в нём идёт конкретика реализации самого фаззинга, поэтому всем кто хочет приобщиться к подробностям рекомендую сходить по ссылке.

Сложности с инфраструктурой и обучаемостью

Все проблемы, которые мы выявили, можно разделить на две части. Первая связана с инфраструктурой — думаю, многие, кто занимался тестированием или фаззингом, с этим сталкивались. Вторая часть касается непосредственно генетического алгоритма.

Инфраструктура

Проблемы с инфраструктурой связаны с тем, что у нас большое приложение со множеством зависимостей. Запуск даже его части оказывается затратным, и постоянный перезапуск приложения для сбора покрытия кода сильно замедляет процесс. Кроме того, нужно поддерживать сессию.

Обучаемость

Обучаемость — вторая часть сложностей. Обратная связь часто оказывается плохо интерпретируемой, и возникает вопрос, как заставить алгоритм корректно понимать наши ожидания. Хорошее решение — максимально усложнить фитнес-функцию: учитывать не только сигнатуры, но и поведенческие признаки, добавлять дополнительные факторы и расширять набор критериев, которые входят в оценку.
  • 🔥 19
  • ❤ 4
  • 👍 1
More from @tech_b0lt_genona
  1. Sep 21, 2026Зульфат - Очпочмак с горячим чаем
  2. Sep 21, 2026TL;DR. Мы выкатили Татарнетес — национальную обёртку над Kubernetes, где команды, сообщени…
  3. Sep 19, 2026Напоминаю, что я каждый раз в ахуе от того что ИИ-помойкам дают полный доступ ко всему что…
  4. Sep 18, 2026Я не хотел писать про "хайповое" исследование Макс, но видимо придётся, так как личку зава…
  5. Sep 18, 2026Папищики продолжают делать мемы, а я и не против Предыдущий тематический тут https://t.me/…
  6. Sep 17, 2026Наша команда R&D обнаружила критическую уязвимость в NeuVector — CVE-2026-78424. Проблема…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →