Skip to content

Разработка продукта для аналитиков в сфере ИБ - базы знаний, аггрегирующей источники данных с анализом угроз компьютерной безопасности, справочники с терминами, взаимосвязи между сущностями предметной области.

License

Notifications You must be signed in to change notification settings

korney3/ARES_RVision_Hack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

R-Vision Phystech Genesis Hack 21

ARES TEAM

MVP - http://vispstudio.ru/hack/ares/genesis/v4.html

Project Organization

├── LICENSE
├── README.md          <- The top-level README for developers using this project.
├── data
│   ├── interim        <- Intermediate data that has been transformed with additional statistic.
│   ├── processed      <- The final, canonical data sets for modeling.
│   └── raw            <- The original, immutable data dump.
│
│
├── models             <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks          <- Jupyter notebooks with data analysis and model training.
│
│
├── requirements.txt   <- The requirements file for reproducing the analysis environment, e.g.
│                         generated with `pip freeze > requirements.txt`
│
├── images             <- images with data analysis
└── src                <- Source code for use in this project.
    │
    ├── regular_app
    └── app            <- Scripts to parse files, share data with frontend, parse texts, get stats
        ├── app.py
        ├── bert.py
        └── w2vRF.py

Установка

  1. git clone https://github.com/korney3/ARES_RVision_Hack
  2. conda create --name PhGen21 python=3.8
  3. conda activate cPhGen21
  4. pip install -r requirements.txt
  5. Претренированные модели можно скачать здесь

Описание проекта

Разработка продукта для аналитиков в сфере ИБ - базы знаний, аггрегирующей источники данных с анализом угроз компьютерной безопасности, справочники с терминами, взаимосвязи между сущностями предметной области.

Задачи

  1. Создание системы фильтрации источников аналитики по ключевым словам
  2. Аннотация новых отчетов для выделения терминов, имеющих отношение к ИБ аналитике и добавления документа в базу знаний
  3. Подключение справочных систем (MITR и MISP)
  4. Визуализация взаимосвязей между сущностями предметной области ИБ

Технические особенности

Проблема №0 (Контраст) - Маленькое количество размеченных данных/Большое число сырых данных и справочной информации

Имеющиеся размеченные данные - маленькие по объему, шумные, классы для аннотирования несбалансированы

alt-текст

3_baseline_oneHot.ipynb

Решение: Использование не только моделей глубоко обучения для разметки, но так же и регулярных выражений на основе справочной информации MISP

EDA данных Конвертация данных в IOB формат для построения предсказательных моделей

Предсказательные модели

  1. Baseline BERT

В качестве бейзлайна использовалaсь предобученная на корпусе текстов естественного языка модель BERT.

  • Модель хорошо улавливает тэги, присущие естественному языку - timestamp, org, country, city
  • В присущих узкой области группах терминов модель путается, очень тяжелая для хранение и медленная для предсказаний

Эти выводы хорошо иллюстрирует confusion matrix.

alt-текст

Fine-Tuning модели BERT

Размеченные данные в IOB формате лежат в файле IOB_dataset_format.csv

  1. Word2Vec+RandomForest
  • Быстрая, легкая модель
  • Точность значительно уменьшается в сравнении с более продвинутым BERT

При этом на одной из самых интересующих сущностей (treat-actor) модель демонстрирует сравнительно неплохие метрики.

alt-текст

Обучение модели W2Vec и RF

Сравнение метрик качества моделей:

Для валидации была отложена 0.2 часть выборки.

Model F1 weighted F1 macro
BERT 0.96 0.59
Word2Vec+RF 0.90 0.24
  1. Регулярные выражения и кластеры MISP

Для разметки текстов регулярными выражениями мы воспользовались кластерами MISP, относящимися к treat_actor, malware, techniques, собрав всевозможные синонимы для угроз, чтобы максимизировать точность поиска таких ключевых слов по аналитическим отчетам.

При помощи регулярных выражений в 0.64 сырых статей можно найти treat_actor, а в 0.9 - malware, 'techniques.

Кроме того кластеры MISP связаны с дополнительным источником информации MITR, куда можно напрямую обращаться за информацией по потенциальным уязвимостям или подверженным конкретной атаке ОС.

Поиск связей между сущностями

  1. Справочные данные

Кластеры MISP содержут набор синонимов различных терминов из сферы ИБ, позволяя объединять различные названия одного и того же процесса и облегчая поиск отчетов по схожей тематике.

  1. Размеченный датасет

Считая наиболее часто встречающуюся сущность за тему документа, можно выделить ее особенные признаки - из других ключевых слов. часто появляющихся рядом. Сущности-темы документов (скажем, виды атак) затем можно сравнивать, находя пересечения техник, способов захвата или уязвимостей.

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

alt-текст

  1. Word2Vec

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

Полноценное облако точек можно увидеть здесь (время загрузки 10-15 минут).

Выводы

  1. Построен MVP продукта для помощи аналитикам в сфере ИБ

  2. Для решения задачи аннотации текстов были применены 3 различные модели, демонстрирующие разную метрику качества на разных категориях сущностей

  3. Для расширения базы знаний были задействованы внешние справочные истоники - MISP и MITR, в том числе для обнаружения синонимов

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

Контакты

Egor Yusupov - Front-end, Design - @EgorYusupov

Alexandr Sarachakov - Data Scientist - @asarachakov

Alisa Alenicheva - Data Scientist - @korney3

About

Разработка продукта для аналитиков в сфере ИБ - базы знаний, аггрегирующей источники данных с анализом угроз компьютерной безопасности, справочники с терминами, взаимосвязи между сущностями предметной области.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published