Комплексное практическое задание

Применение технологий искусственного интеллекта и машинного обучения для поиска угроз информационной безопасности

ML
AI
R
Threat Hunt
Cyber Threat Intelligence
Author

i2z1@ddslab.ru

Published

February 3, 2025

2-4 часа в неделю, 8 семестр

Требования к выполнению

  1. Работа над проектом должны быть организована в репозитории Github.
  2. Проект должен включать в себя:
    1. Модуль загрузки данных (ETL)
    2. Модуль обработки данных и ML
    3. Модуль визуализации данных
    4. Документацию
  3. Модули проекта должны быть реализованы на языке программирования R. Допускается использование любых пакетов R.
  4. Допускается использование дополнительных необходимых модулей (микросервисы, СУБД, LLM и т.д.) при условии включения сценариев их развертывании и настройки в Проект, а также их описания в документации Проекта.

Команда

  1. Команда может состоять из 3-5 человек
  2. Формирование команд завершается до этапа №1
  3. В каждой команде участники выбирают капитана команды
  4. По окончанию формирования команды и выбора задачи, капитан команды создает группу в Телеграм, добавляет участников группы, высылает ссылку преподавателю для обсуждения хода работы над заданием и консультаций по техническим вопросам.
  5. Каждый член команды должен внести не менее 25% вклада в работу над проектом для команд из 3 человек,
    • 20% для команд из 4 человек
    • 15% для команд из 5 человек
  6. Вклад каждого члена команды оценивается по коду/документации (LoC) в репозитории Проекта
  7. Работа над проектом в репозитории для каждого члена команды должны начаться до этапа №2
  8. Каждый член команды должен представить Проект хотя бы 1 раз в ходе демо на этапе или модуль Проекта на нескольких презентациях этапов (при помодульном разделении ответственности внутри команды).

Тайминг

  1. Этап 1: Демонстрация концепции проекта и программной архитектуры – 2 занятие
  2. Этап 2: Демонстрация Модуля ETL – 4 занятие
  3. Этап 3: Пререлиз чекап – 6 занятие
  4. Этап 4: Демонстрация проекта – 7-8 занятия

Темы задания

Построение системы обнаружения вторжений

Обнаружение аномалий в сетевом трафике:

  • сбор данных о сетевом трафике (zeek, NetFlow)
  • очистка и нормализация данных, удаление несущественных данных
  • обогащение контекстной информацией, такой как геолокация или известная репутация IP-адресов.
  • Используйте статистический анализ для идентификации базовых показателей активности в зависимости от времени суток или ролей пользователей.
  • Применяйте модели машинного обучения (например, кластеризация, аномалий-детектирование) для обнаружения отклонений от нормы.
  • Создайте дашборды (shiny, shinydashoard, flexdashboard, Quarto dashboard), демонстрирующие нормальные и аномальные патерны сетевого трафика со временем.
  • Подчеркните конкретные аномалии на картах потоков данных и в сводных докладах о предупреждениях.

Классификация вредоносного программного обеспечения

Атрибуция неизвестных образцов ВПО по их схожести с известными образцами

  • Соберите образцы вредоносного программного обеспечения из публичных репозиториев (например, VirusTotal, MalwareBazaar).
  • Извлеките признаки, такие как файловые подписи, вызовы API и бинарное содержимое (с помощью существующих инструментов).
  • Метками обозначьте известные семейства малвари.

Выполните исследовательский анализ данных для понимания распределений признаков. Обучайте модель классификации (например, Random Forest, SVM) для классификации неизвестных образцов.

Создайте матрицы ошибок классификации и ROC-кривые для оценки производительности модели. Визуализируйте наиболее репрезентативные показатели в пространстве признаков.

Анализ Git репозиториев

Создание поведенческого профиля разработчика, анализ аномалий

  • Извлеките информацию о комитах.
  • Очистка и нормализация данных.
  • Постройте хронологически последовательную историю изменений файлов репозитория.
  • Проанализируйте характер вносимых изменений (код, комментарии, конфигурация, документация…).
  • Создайте профиль разработчика (предпочитаемый язык, статистические характеристики LoC на коммит, размер комментариев к комиту, рабочие часы… )
  • Покажите возможные аномалии в поведенческом патерне разработчиков
  • Покажите профиль разработчиков (тепловые карты, радар-карты…), оцените проект(репозиторий) в целом.

Исследование глобальной маршрутизации Интернета

Построение карты маршрутов между автономными системами (AS) Интернета

  • Используйте открытые данные из таких ресурсов, как Route Views, CAIDA, DBIP
  • Извлеките информацию об AS
  • соберите/сравните данные о маршрутах с использованием traceroute
  • Очистка и нормализация данных.
  • Реализуйте алгоритмы для извлечения информации о наиболее распространенных путях передачи трафика
  • Создайте интерактивные карты, которые показывают связи между различными AS. Используйте визуальные инструменты для отображения изменений в топологии сети со временем.
  • Разработайте графы, которые демонстрируют основные и альтернативные маршруты для данных.

Экспресс-анализ бинарных файлов с использованием Radare2

Классификация бинарных файлов вредоносного программного обеспечения для экспресс анализа в ходе расследования инфцидентов информационной безопасности

  • Создайте набор тестовых бинарных файлов с различными типами содержимого (полезные программы, потенциально зловредные исходники - например, VirusTotal, MalwareBazaar)
  • Составьте базу данных известных зловредных доменов и IP-адресов, используя различные источники обмена информацией о киберугрозах
  • Используйте Radare2 для разбора и анализа выбранных бинарных файлов
  • Очистка и нормализация данных.
  • Автоматизируйте поиск строк доменных имен или IP адресов в бинарном коде
  • Используйте статические анализаторы для выявления популярных видов уязвимостей
  • Разработайте дашборды, которые отображают найденные IoC, уязвимости и оценку их опасности.

Суммаризация сообщений с помощью LLM групп Telegram

Анализ тональности сообщений, активности участников группы за опеределенный период. Представление информации в виде RSS потока

  • Используйте Telegram Bot API для получения истории сообщений из определенных групп за заданный период.
  • Настройте автономное собирание данных регулярно, чтобы постоянно обновлять базу для анализа.
  • Извлеките важную информацию (например, имя пользователя, время отправки) из каждого сообщения для дальнейшего анализа.
  • Очистка (HTML, эмодзи…) и нормализация данных.
  • Примените модели генеративного обучения (например, Llama, Qwen) для создания кратких сводок из длинных чата.
  • Используйте модели анализа тональности для определения настроений (положительного, отрицательного или нейтрального) каждого сообщения.
  • Разработайте сервис для генерации RSS-потоков сводок групп Telegram, основанными на анализе и суммаризации данных.
  • Создайте интерактивный интерфейс, позволяющий пользователям просматривать анализируемую информацию: суммаризации сообщений, активности и тональности.
  • Включите графики для визуализации изменений тональности и активности со временем.