🧠 NER в кибераналитике: как данные путают модели
Новое исследование поставило под сомнение ключевую гипотезу: что больше данных — это всегда лучше. Спойлер: нет.
📌 В чём суть?
Модели для распознавания сущностей (NER), обученные на кибербезопасных датасетах, резко теряют точность, если объединить разные наборы данных. Потери достигают -27% по F1-score. Причина — противоречия в аннотациях: в одном датасете Google — это компания, в другом — система.
⚔️ Суть проблемы
Исследователи объединили 4 популярных датасета из кибердомена:
- APTNER — отчёты по APT-группам, 260K токенов, 21 тип сущности
- CYNER — отчёты threat intelligence, 107K токенов, 5 сущностей
- DNRTI — данные из GitHub и госструктур, 175K токенов, 13 сущностей
- ATTACKER — блоги исследователей, 79K токенов, 18 сущностей
После унификации все сущности были сведены к 4 основным классам:
🟩 Organization
🟧 System
🟥 Vulnerability
🟦 Malware
Но… оказалось, что одни и те же слова аннотированы по-разному:
• Linux в одном случае — System, в другом — вообще не сущность
• Dridex — то Malware, то System
• Google — одновременно Organization и System (зависит от контекста)
• sample — где-то файл, где-то вредонос
Итог: при обучении на одном датасете и тестировании на другом — модели начинают «сходить с ума», делая лавину ошибок.
📉 Что показал эксперимент?
Модель, обученная на DNRTI, показывает F1 = 0.41 на нём же,
но при тестировании на CYNER падает до 0.07.
Самая болезненная потеря: обучение на ATTACKER, тест на APTNER → F1 = 0.01!
Даже самые продвинутые модели не справляются: мультиголовые и графовые подходы дают мизерный прирост точности.
🔍 Почему это происходит?
➖ Аннотационный сдвиг
В разных датасетах используются разные правила выделения сущностей (напр., включать ли скобки в SolarWinds (USA)).
➖ Потеря контекста при унификации
Специфичные теги (THREAT_ACTOR) превращаются в обобщённые (Organization), теряя смысл.
➖ Дистрибутивные расхождения
Распределения токенов и частот меток между датасетами сильно различаются — это измеряется JS-дивергенцией до 0.24.
➖ Перекос в метке "O"
После объединения данные становятся более "разреженными", и модель чаще классифицирует всё как не-сущности → рост ложных отрицаний на 15%.
🧠 Тестируемые подходы
Мультиголовая архитектура:
Отдельные выходы на каждый датасет + общая база. Давала лучшие результаты (например, F1 = 0.52 на DNRTI), но всё равно недостаточные.
LST-NER (графовая модель):
Использует схожесть сущностей между датасетами через метрику Gromov-Wasserstein. Увы, почти не превосходит BERT base.
🛡 Практические советы для аналитиков и ML-инженеров:
✅ Не объединяйте кибердатасеты вслепую — всегда проводите кросс-валидацию
✅ Формализуйте гайдлайны для аннотаторов:
Что такое System, где кончается Organization
Как оформлять spans и что исключать
✅ Валидируйте на чужих данных — если вы делаете модель под отчёты Mandiant, тестируйте на GitHub или CISA
✅ Лучше взять BERT и дообучить, чем писать кастомную архитектуру с нуля — он устойчивее ко сдвигам в разметке
🚀 Что дальше?
✍️ Нужны индустриальные стандарты по аннотациям (вроде MITRE ATT&CK для NER)
🧠 Полуавтоматическая разметка с проверкой экспертом
🔬 Использование доменно-специфичных эмбеддингов (например, на основе ThreatCrowd, VirusTotal)
📌 Итог:
📎 Ресурсы:
Исследование
Код и данные
#CyberNER #SecureTechTalks #ThreatIntel #DataLabeling #MachineLearning #SOCtools #DataDrift
Новое исследование поставило под сомнение ключевую гипотезу: что больше данных — это всегда лучше. Спойлер: нет.
📌 В чём суть?
Модели для распознавания сущностей (NER), обученные на кибербезопасных датасетах, резко теряют точность, если объединить разные наборы данных. Потери достигают -27% по F1-score. Причина — противоречия в аннотациях: в одном датасете Google — это компания, в другом — система.
⚔️ Суть проблемы
Исследователи объединили 4 популярных датасета из кибердомена:
- APTNER — отчёты по APT-группам, 260K токенов, 21 тип сущности
- CYNER — отчёты threat intelligence, 107K токенов, 5 сущностей
- DNRTI — данные из GitHub и госструктур, 175K токенов, 13 сущностей
- ATTACKER — блоги исследователей, 79K токенов, 18 сущностей
После унификации все сущности были сведены к 4 основным классам:
🟩 Organization
🟧 System
🟥 Vulnerability
🟦 Malware
Но… оказалось, что одни и те же слова аннотированы по-разному:
• Linux в одном случае — System, в другом — вообще не сущность
• Dridex — то Malware, то System
• Google — одновременно Organization и System (зависит от контекста)
• sample — где-то файл, где-то вредонос
Итог: при обучении на одном датасете и тестировании на другом — модели начинают «сходить с ума», делая лавину ошибок.
📉 Что показал эксперимент?
Модель, обученная на DNRTI, показывает F1 = 0.41 на нём же,
но при тестировании на CYNER падает до 0.07.
Самая болезненная потеря: обучение на ATTACKER, тест на APTNER → F1 = 0.01!
Даже самые продвинутые модели не справляются: мультиголовые и графовые подходы дают мизерный прирост точности.
🔍 Почему это происходит?
В разных датасетах используются разные правила выделения сущностей (напр., включать ли скобки в SolarWinds (USA)).
Специфичные теги (THREAT_ACTOR) превращаются в обобщённые (Organization), теряя смысл.
Распределения токенов и частот меток между датасетами сильно различаются — это измеряется JS-дивергенцией до 0.24.
После объединения данные становятся более "разреженными", и модель чаще классифицирует всё как не-сущности → рост ложных отрицаний на 15%.
🧠 Тестируемые подходы
Мультиголовая архитектура:
Отдельные выходы на каждый датасет + общая база. Давала лучшие результаты (например, F1 = 0.52 на DNRTI), но всё равно недостаточные.
LST-NER (графовая модель):
Использует схожесть сущностей между датасетами через метрику Gromov-Wasserstein. Увы, почти не превосходит BERT base.
🛡 Практические советы для аналитиков и ML-инженеров:
✅ Не объединяйте кибердатасеты вслепую — всегда проводите кросс-валидацию
✅ Формализуйте гайдлайны для аннотаторов:
Что такое System, где кончается Organization
Как оформлять spans и что исключать
✅ Валидируйте на чужих данных — если вы делаете модель под отчёты Mandiant, тестируйте на GitHub или CISA
✅ Лучше взять BERT и дообучить, чем писать кастомную архитектуру с нуля — он устойчивее ко сдвигам в разметке
🚀 Что дальше?
✍️ Нужны индустриальные стандарты по аннотациям (вроде MITRE ATT&CK для NER)
🧠 Полуавтоматическая разметка с проверкой экспертом
🔬 Использование доменно-специфичных эмбеддингов (например, на основе ThreatCrowd, VirusTotal)
📌 Итог:
Объединение данных ≠ усиление модели. В кибердомене — наоборот: различия в аннотациях могут убить всю обобщающую способность.
📎 Ресурсы:
Исследование
Код и данные
#CyberNER #SecureTechTalks #ThreatIntel #DataLabeling #MachineLearning #SOCtools #DataDrift
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1