Coder Social home page Coder Social logo

wisoffe / exploits-predict Goto Github PK

View Code? Open in Web Editor NEW
12.0 12.0 4.0 3.65 MB

Predicting the probability of an exploit being released after a CVE is published (by Machine learning algorithm)

License: Apache License 2.0

Python 0.62% Jupyter Notebook 99.38%
exploits machine-learning python vulnerabilities

exploits-predict's People

Contributors

actions-user avatar wisoffe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

exploits-predict's Issues

Организовать репозиторий на основе шаблона Cookiecutter Data Science

  • Загрузить шаблон проекта на основе [https://github.com/drivendata/cookiecutter-data-science]
  • Инициализировать шаблон через wizard и заполнение первичной имнформации
  • Удалить файлы/директории, которые не планирую использовать
  • Итог: коммит структуры проекта в репозиторий

Исследовать Huggingface Spaces на возможность хостинга модели

Наилучшим вариантом будет являться хостинг модели на Huggingface Spaces, но необходимо исследование ограничений/возможностей; по итогу ответь на вопросы, возможно ли в таком режиме будет настроить мониторинг метрик, реализовать дообучения и т.п.

Основные промежуточные вопросы:

  • Возможно будет реализовать мониторинг (доступность, метрики и успешность при ежедневной дозагрузке данных, метрики самой модели, т.е. их динамика т.п., в общем все, что описано в первоначальной интеллект карте требований к системе)?
  • Позволяет ли решение накапливать и хранить на постоянной основе данные (т.е. после перезапуска сервиса, наличия проблем с сервисом и т.п., накопленные данные, например все обновления по CVE, предсказания, метрики и т.п., должны сохраняться и подгружаться с момента остановки сервиса)?
  • смежный с предыдущим вопрос, если хранение данных возможно, какие решения можем использовать (например SQL/NoSQL DB, csv + DVC и т.д.) ?
  • Может ли модель возвращать различные отчеты в формате Excel/CSV, в зависимости от запросов (примеры описаны в интеллект карте требований, например за неделю, за месяц, за кастомный период и т.п.)
  • Возможно ли будет реализовать автоматическое дообучение/переобучение модели?

Итоговые выводы по применимости Huggingface Spaces (сделать выбор одного из варинтов):

  • Не применимо - применение Huggingface Spaces не целесообразно (существенные ограничения перекрывающие плюсы наглядности и достуности сервиса онлайн);
  • Частично применимо - применение Huggingface Spaces возможно/целесообразно только в качестве публичного компонента системы, частичного функционала(перечислить этот функционал)
  • Полностью применимо - весь проект (имея ввиду его функционирование в виде сервиса/сервисов) возможно и целесообразно реализовать на Huggingface Spaces

Определить требования к хранению данных, по итогу определить инструментарий для хранения (SQL/NoSQL БД, файлы и DVC)

(какие данные нам необходимо хранить, для каких целей они нам нужны или потенциально будут нужны)

Временное примечание: Скорей всего помимо распаршеных данных в одном из полей хранить полный сырой JSON

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

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

  • Провести анализ в ноутбуке
  • Первая модель скорей всето на табличном лернере fast.ai
  • Метрики скорей всего Precision/Recall/F1/Accuracy (возможно ROC)

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

  • Источник данных по CVE (исторических и непрерывно пополняемых)
  • Источник данных по Exploits (исторических и непрерывно пополняемых)
  • Чуть более глубоко понять трудоемкость задачи в части получения удовлетворяющего требованиям качества предсказаний
  • Определиться с вопросоми дообновления данных по CVE (т.е. после первичной публикации), что с ними делать, необходимо ли в рамках бейзлайна заморачиваться на сбор исторических данных в том виде, в котором они были изначально опубликованы, либо выбранный первоначальный набор фичей практически стабилен с момента публикации и т.д.
  • Определиться с использованием/не использованием информации из "Каталога известных эксплуатируемых уязвимостей" Known Exploited Vulnerabilities Catalog
  • Определить кол-во последних лет, которые включаем в первичную выборку (предположительно информация более 5 летней давности может не соответсвовать текущим тенденциям/паттернам по выходу эксплоитов)
  • Определить минимальными требованиями к ML бейзлайну (по сути MVP)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.