tgoop.com/devsecops_weekly/1331
Last Update:
От 2500 до 20 Warning с использованием CodeQL
Всем привет!
В рамках аудита OpenVPN2 команда Trail of Bits столкнулась с нюансом: компилятор выдавал порядка 2500 сработок (warnings) о неявных преобразованиях типа.
Это достаточно большой объем для «ручной разметки» и надо было что-то делать. Не все из указанных сработок явно влияли на информационную безопасность и были вполне себе «доброкачественными».
Поэтому ребята решили написать собственную CodeQL Query, которая могла бы сократить количество данных для анализа.
Именно этому и посвящена статья! После небольшой вводной об ИБ-проблематике неявного преобразования типов Авторы описывают алгоритм, который позволил им сократить итоговую выборку до 20 штук.
Он состоит из шагов:
🍭 Анализ существующих CodeQL Query. Ни одна не подошла ввиду повышенной «шумности»
🍭 Найти все «проблемные» преобразования типов
🍭 Оптимизация результатов, полученных на предыдущем шаге
🍭 Использование taint tracking для того, чтобы сфокусироваться на данных, на которые может повлиять пользователь
На всех этапах описана CodeQL Query и как она видоизменялась, представлены комментарии Авторов почему они решили сделать именно так.
Полученная Query общедоступна и располагается вот тут на случай, если вы хотите ее использовать для анализа своего проекта.
Помимо этого, есть еще Case Study (~ 37 страниц), в котором Авторы более детально описывают реализованный ими подход к анализу.
BY DevSecOps Talks

Share with your friend now:
tgoop.com/devsecops_weekly/1331