Approof — статический анализатор кода для проверки веб-приложений на наличие уязвимых компонентов. В своей работе анализатор основывается на правилах, хранящих сигнатуры искомых компонентов. В докладе рассматривается базовая структура правила для Approof и процесс автоматизации его создания.
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)
•Сопоставления по нескольким файлам
•Идентификаторы пакета и версий находятся в
разных файлах
Каких возможностей недостаёт?