Closed wisoffe closed 2 years ago
Краткие итоги (в разрезе доступности фичей по версиям CVSS):
Краткие итоги (в разрезе анализа уязвимостей с 2016 года):
Краткие итоги (по факту построения первичной модели от fast.ai):
наблюдается удивительно слабая корреляция между CVSS exploitabilityScore/impactScore/baseScore и реальным фактом выхода эксплоитов, более того, между соответсвующими параметрами V2 и V3, так же наблюдаются очень существенные различия -> как следсвие, необходимо обязательно расширять целевой набор фичей, первичным видится: эмбеддинги description (полученные например бертом), информация по наименованию продукта и вендора;
т.к. значимой разницы между предсказаниями в течение 2 мес. и 3 мес. не наблюдается, выбираем целевой диапазон для бейзлайна - 2 мес.
самые первичные метрики (по сути только на основе векторов CVSS V3, абсолютно без тюнинга): | epoch | train_loss | valid_loss | accuracy | f1_score | precision_score | recall_score | roc_auc_score | time | | 2 | 0.271347 | 0.186833 | 0.950684 | 0.661818 | 0.791304 | 0.568750 | 0.872929 | 00:07 |
целевое отсечение нам нужно сместить в сторону увеличения recall (т.е. в нашем случае лучше чуть "перебдеть", чем "недобдеть", но precision так же должен оставаться на приемлимом уровне)
Источник данных по CVE (исторических и непрерывно пополняемых): В качестве источника информации по уязвимостям выбран ресурс https://nvd.nist.gov/ как наиболее официальный (прямое сотрудничество с cve.mitre.org). Конкретно используем JSON Feeds https://nvd.nist.gov/vuln/data-feeds#JSON_FEED
Источник данных по Exploits (исторических и непрерывно пополняемых): В качестве источника по эксплоитам выбран ресурс vulners.com, который агрегирует информацию по вышедшим эксплоитам (и уязвимостям), в единую NoSQL базу (Elastic), по итогу предоставляет информацию из этой базы на основе платных подписок. У них есть свой API и т.д. Кроме платной подписки, есть возможность воспользоваться триал подпиской (по которой удобно выкачать первоначальную базу), а так же бесплатный доступ к API (достаточно регистрации), в рамках которого наложены существенные ограничения по количеству ежедневных запросов, НО для нашего случая, а именно, периодической дозагрузки данных только по новым эксплоитам, мы укладываемся в лимиты бесплатной подписки. Если бы не укладовались, можно было бы рассмотерть вариант поручения исследовательской подписки, для этого нужно обратиться к авторам ресурса (коллеги русскоговорящие).
Чуть более глубоко понять трудоемкость задачи в части получения удовлетворяющего требованиям качества предсказаний: Выполнено, подробности в комментариях выше (в особенности в "Краткие итоги (по факту построения первичной модели от fast.ai)")
Определиться с вопросоми дообновления данных по CVE (т.е. после первичной публикации), что с ними делать, необходимо ли в рамках бейзлайна заморачиваться на сбор исторических данных в том виде, в котором они были изначально опубликованы, либо выбранный первоначальный набор фичей практически стабилен с момента публикации и т.д.: В рамках бейзлайна используем набор данных, которые в абсолютном большинстве случаев неизменны. Для CVE, у которых на момент публикации отсутствует информация по векторам CVSS V3, не берем их в расчет (т.е. не загоняем в модель), до появления данной информации.
Определиться с использованием/не использованием информации из "Каталога известных эксплуатируемых уязвимостей" Known Exploited Vulnerabilities Catalog: В рамках бейзлайна не используем данную информацию. Основные причины:
Определить кол-во последних лет, которые включаем в первичную выборку (предположительно информация более 5 летней давности может не соответсвовать текущим тенденциям/паттернам по выходу эксплоитов): С марта 2016 года (подробности в комментарии выше "Краткие итоги (в разрезе доступности фичей по версиям CVSS)")
Определить минимальными требованиями к ML бейзлайну (по сути MVP)
Основные моменты/примечания:
По итогу, определиться с: