
Семантически расширенный обучаемый детектор уязвимостей
SEVulDet — это семантически улучшенный фреймворк на основе глубокого обучения, который может точно выявлять уязвимости, извлекая, сохраняя и изучая больше семантики.
Электронная почта для связи: [email protected]
В последние годы повышенное внимание уделяется фреймворкам обнаружения уязвимостей на основе глубокого обучения, которые используют нейронные сети для выявления уязвимостей. Было предпринято значительное количество усилий; тем не менее существующие подходы на практике менее точны. Предыдущие работы не могут полностью извлечь семантику из исходного кода или применяют неподходящую архитектуру нейронных сетей.
В этой статье представлен SEVulDet — семантически улучшенный фреймворк на основе глубокого обучения, который может точно выявлять уязвимости, извлекая, сохраняя и изучая больше семантики. Во-первых, SEVulDet использует подход разрезания кода с учётом путей для извлечения достаточного количества семантики путей в гаджеты кода. Во-вторых, на основе свёрточной нейронной сети с уровнем пространственной пирамиды SEVulDet может сохранять семантику, потерянную из-за операций отбрасывания или дополнения при работе с кодом переменной длины. Наконец, мы применяем многоуровневый механизм внимания для улучшения обучения семантике. Экспериментальные результаты показывают, что SEVulDet значительно превосходит классические статические подходы и превосходит современные решения на основе глубокого обучения со средним F1-показателем до 94,5%. Примечательно, что продуманная архитектура SEVulDet помогла нам выявить уязвимость, о которой не сообщалось в существующих методиках.

Мы сравниваем SEVULDET с инструментами статического анализа с открытым исходным кодом Flawfinder, Rough Auditing Tool for Security (RATS), коммерческим инструментом детектирования Checkmarx и фреймворком на основе сходства VUDDY. Мы обнаружили, что наш фреймворк SEVULDET значительно превосходит современные классические статические методы обнаружения уязвимостей.

SEVULDET превосходит современные решения на основе глубокого обучения со средним F1-показателем до 94,5%.

Мы подаём гаджет кода CVE-2016-9776 в предварительно обученный SEVulDet и визуализируем десять токенов, представляющих наибольший интерес для механизма внимания. Несколько из этих токенов находятся на строках 463, 465, 466 и 467, которые являются местами, где была сформирована уязвимость.