SlideShare a Scribd company logo
1 of 24
Заголовок
Заголовок
• Статический анализатор
• Младший брат Application Inspector
• Свободно доступен для использования «Без регистрации и смс»
• https://approof.ptsecurity.ru/
• Движок FingerPrint – поиск известных версий библиотек с
уязвимостями
Заголовок
• Метаинформация
• Имя, версия, описание угрозы, уровень угрозы …
• Паттерны
• Строки, регулярные выражения
• Условия сопоставления паттернов
• Логическое условие на основе существующих паттернов и правил
• http://yara.readthedocs.io/en/v3.6.0/
• Правила добавляются через меню "Add Yara rules”
• Либо "%LOCALAPPDATA%ApproofYaraRules"
Правила Yara для Approof (1)
ЗаголовокПравила Yara для Approof (2)
ЗаголовокПравила Yara для Approof (2)
ЗаголовокПравила Yara для Approof (2)
ЗаголовокПравила Yara для Approof (2)
ЗаголовокПравила Yara для Approof (3)
ЗаголовокПравила Yara для Approof (4)
ЗаголовокПравила Yara для Approof (5)
ЗаголовокПравила Yara для Approof (5)
ЗаголовокПравила Yara для Approof (5)
Заголовок
•Описание уязвимости
•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) (Метаинформация)
Заголовок
•Имя пакета
•package HTML::Scrubber;
•"name": "dns-sync"
•__title__ = ”requests"
•Версия пакета
•our $VERSION = '0.10';
•"version": "0.1.0"
•__version__ = "1.0.0"
Автоматизация (2) (Паттерны в исходных кодах)
ЗаголовокАвтоматизация (3) (Синтез)
Определение
версий пакетов
Загрузка и
обрабока
Поиск
идентификаторов
Преобразование
в шаблон
Заголовок
• Perl
• Нет проблем, всё шикарно
• Python
• setup.py не устанавливается
• __init.py__ может ничего не содержать
• __version__, __title__, __build__, __author__ ещё надо найти
• Модуль может не содержать идентификаторов версий
• Модуль может не содержать имя модуля в явном виде в файлах
• Pyc, Pyo файлы
• JavaScript
• Когда есть package.json всё шикарно
• …
Проблемы при автоматизации
Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (1)
Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (2)
Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (3)
Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (3)
Заголовокyargen --module HTML::Scrubber --cve CVE-2015-5667 (3)
Заголовок
•Сопоставление по пути файла
•Python (__init__.py и остальные файлы)
• setup.py не устанавливается
• Файлы пакета могут не содержать идентификатора
имени пакета
•JavaScript (package.json)
•Сопоставления по нескольким файлам
•Идентификаторы пакета и версий находятся в
разных файлах
Каких возможностей недостаёт?
Заголовок
•Публичный репозиторий правил
•https://github.com/PositiveTechnologies/FP-
community-rules
•Репозиторий программы генерации
правил
•https://github.com/evdenis/yargen
Дополнительная информация
Заголовок
ptsecurity.com
Спасибо!
Спасибо!

More Related Content

More from Denis Efremov

Formal verification of operating system kernels
Formal verification of operating system kernelsFormal verification of operating system kernels
Formal verification of operating system kernelsDenis Efremov
 
Инструменты тестирования ядра Linux
Инструменты тестирования ядра LinuxИнструменты тестирования ядра Linux
Инструменты тестирования ядра LinuxDenis Efremov
 
Deductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functionsDeductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functionsDenis Efremov
 
Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)Denis Efremov
 
Formal Verification of a Linux Security Module
Formal Verification of a Linux Security ModuleFormal Verification of a Linux Security Module
Formal Verification of a Linux Security ModuleDenis Efremov
 
Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...Denis Efremov
 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C codeDenis Efremov
 
How to prove programs
How to prove programsHow to prove programs
How to prove programsDenis Efremov
 

More from Denis Efremov (9)

Formal verification of operating system kernels
Formal verification of operating system kernelsFormal verification of operating system kernels
Formal verification of operating system kernels
 
Инструменты тестирования ядра Linux
Инструменты тестирования ядра LinuxИнструменты тестирования ядра Linux
Инструменты тестирования ядра Linux
 
CVEhound
CVEhoundCVEhound
CVEhound
 
Deductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functionsDeductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functions
 
Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)
 
Formal Verification of a Linux Security Module
Formal Verification of a Linux Security ModuleFormal Verification of a Linux Security Module
Formal Verification of a Linux Security Module
 
Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...
 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C code
 
How to prove programs
How to prove programsHow to prove programs
How to prove programs
 

Automation of rule construction for Approof