wisoffe / exploits-predict

Predicting the probability of an exploit being released after a CVE is published (by Machine learning algorithm)
Apache License 2.0
12 stars 4 forks source link

Провести первичный EDA анализ данных, набросать простую модель (например fast.ai), оценить грубо качество модели (на основе метрик), определиться с основными источниками информации по CVE/Exploits #2

Closed wisoffe closed 2 years ago

wisoffe commented 2 years ago

Основные моменты/примечания:

По итогу, определиться с:

wisoffe commented 2 years ago

Краткие итоги (в разрезе доступности фичей по версиям CVSS):

wisoffe commented 2 years ago

Краткие итоги (в разрезе анализа уязвимостей с 2016 года):

wisoffe commented 2 years ago

Краткие итоги (по факту построения первичной модели от fast.ai):

wisoffe commented 2 years ago

Источник данных по 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)")

wisoffe commented 2 years ago

Определить минимальными требованиями к ML бейзлайну (по сути MVP)