"Automation of rule construction for Approof" Efremov D. V.
Approof is a static code analyzer for testing web applications for vulnerable components. The analyzer is based on rules that store signatures of components it searches. The report examines the basic structure of rules for Approof and automation of their development.
PHDays VII, PDUG section, Moscow, May 24 2017.
"Автоматизация построения правил для Approof" Ефремов Д.В.
Approof — статический анализатор кода для проверки веб-приложений на наличие уязвимых компонентов. В своей работе анализатор основывается на правилах, хранящих сигнатуры искомых компонентов. В докладе рассматривается базовая структура правила для Approof и процесс автоматизации его создания.
Доклад представлен на конференции PHDays VII (2017) 24 мая в секции PDUG.
2. Заголовок
• Статический анализатор
• Младший брат Application Inspector
• Свободно доступен для использования «Без регистрации и смс»
• https://approof.ptsecurity.ru/
• Движок FingerPrint – поиск известных версий библиотек с
уязвимостями
3. Заголовок
• Метаинформация
• Имя, версия, описание угрозы, уровень угрозы …
• Паттерны
• Строки, регулярные выражения
• Условия сопоставления паттернов
• Логическое условие на основе существующих паттернов и правил
• http://yara.readthedocs.io/en/v3.6.0/
• Правила добавляются через меню "Add Yara rules”
• Либо "%LOCALAPPDATA%ApproofYaraRules"
Правила Yara для Approof (1)
16. Заголовок
• Perl
• Нет проблем, всё шикарно
• Python
• setup.py не устанавливается
• __init.py__ может ничего не содержать
• __version__, __title__, __build__, __author__ ещё надо найти
• Модуль может не содержать идентификаторов версий
• Модуль может не содержать имя модуля в явном виде в файлах
• Pyc, Pyo файлы
• JavaScript
• Когда есть package.json всё шикарно
• …
Проблемы при автоматизации
22. Заголовок
•Сопоставление по пути файла
•Python (__init__.py и остальные файлы)
• setup.py не устанавливается
• Файлы пакета могут не содержать идентификатора
имени пакета
•JavaScript (package.json)
•Сопоставления по нескольким файлам
•Идентификаторы пакета и версий находятся в
разных файлах
Каких возможностей недостаёт?