Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Автоматизация построения правил для Approof

850 views

Published on

Approof — статический анализатор кода для проверки веб-приложений на наличие уязвимых компонентов. В своей работе анализатор основывается на правилах, хранящих сигнатуры искомых компонентов. В докладе рассматривается базовая структура правила для Approof и процесс автоматизации его создания.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Автоматизация построения правил для Approof

  1. 1. Заголовок ptsecurity.com Автоматизация построения правил для Approof м.н.с. Ефремов Д.В. ИСП РАН efremov@ispras.ru
  2. 2. Заголовок • Статический анализатор • Младший брат Application Inspector • Свободно доступен для использования «Без регистрации и смс» • https://approof.ptsecurity.ru/ • Движок FingerPrint – поиск известных версий библиотек с уязвимостями
  3. 3. Заголовок • Метаинформация • Имя, версия, описание угрозы, уровень угрозы … • Паттерны • Строки, регулярные выражения • Условия сопоставления паттернов • Логическое условие на основе существующих паттернов и правил • http://yara.readthedocs.io/en/v3.6.0/ • Правила добавляются через меню "Add Yara rules” • Либо "%LOCALAPPDATA%ApproofYaraRules" Правила Yara для Approof (1)
  4. 4. ЗаголовокПравила Yara для Approof (2)
  5. 5. ЗаголовокПравила Yara для Approof (2)
  6. 6. ЗаголовокПравила Yara для Approof (2)
  7. 7. ЗаголовокПравила Yara для Approof (2)
  8. 8. ЗаголовокПравила Yara для Approof (3)
  9. 9. ЗаголовокПравила Yara для Approof (4)
  10. 10. ЗаголовокПравила Yara для Approof (5)
  11. 11. ЗаголовокПравила Yara для Approof (5)
  12. 12. ЗаголовокПравила Yara для Approof (5)
  13. 13. Заголовок •Описание уязвимости •http://cve.mitre.org/, http://vuldb.com, https://vulners.com/, … •Исходный код разных версий пакетов •https://api.metacpan.org/source •https://registry.npmjs.org/ •https://pypi.python.org/pypi/ •… Автоматизация (1) (Метаинформация)
  14. 14. Заголовок •Имя пакета •package HTML::Scrubber; •"name": "dns-sync" •__title__ = ”requests" •Версия пакета •our $VERSION = '0.10'; •"version": "0.1.0" •__version__ = "1.0.0" Автоматизация (2) (Паттерны в исходных кодах)
  15. 15. ЗаголовокАвтоматизация (3) (Синтез) Определение версий пакетов Загрузка и обрабока Поиск идентификаторов Преобразование в шаблон
  16. 16. Заголовок • Perl • Нет проблем, всё шикарно • Python • setup.py не устанавливается • __init.py__ может ничего не содержать • __version__, __title__, __build__, __author__ ещё надо найти • Модуль может не содержать идентификаторов версий • Модуль может не содержать имя модуля в явном виде в файлах • Pyc, Pyo файлы • JavaScript • Когда есть package.json всё шикарно • … Проблемы при автоматизации
  17. 17. Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (1)
  18. 18. Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (2)
  19. 19. Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (3)
  20. 20. Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (3)
  21. 21. Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (3)
  22. 22. Заголовок •Сопоставление по пути файла •Python (__init__.py и остальные файлы) • setup.py не устанавливается • Файлы пакета могут не содержать идентификатора имени пакета •JavaScript (package.json) •Сопоставления по нескольким файлам •Идентификаторы пакета и версий находятся в разных файлах Каких возможностей недостаёт?
  23. 23. Заголовок •Публичный репозиторий правил •https://github.com/PositiveTechnologies/FP- community-rules •Репозиторий программы генерации правил •https://github.com/evdenis/yargen Дополнительная информация
  24. 24. Заголовок ptsecurity.com Спасибо! Спасибо!

×