
CQ, сканер безопасности кода
Code Query — универсальный инструмент сканирования кода на предмет безопасности.
CQ сканирует код на наличие уязвимостей безопасности и других элементов, представляющих интерес для специалистов по ревизии кода с фокусом на безопасность. Он выводит текстовые файлы, содержащие ссылки на найденные проблемы, в выходной каталог. Эти выходные файлы затем можно просматривать, фильтровать с помощью инструментов командной строки unix, таких как grep, или использовать как способ «перехода» в кодовую базу по указанной ссылке файл:строка.
Один из популярных способов использования — рассматривать выходные файлы как список «задач» (todo), удаляя ссылки по мере их проверки и признания ложными срабатываниями либо копируя ссылки в файл отчёта для детального анализа или в качестве основы для отчёта об ошибке.
Инструмент чрезвычайно прост, по большей части ручной и предполагает глубокие знания уязвимостей безопасности приложений и ревизии кода. Тем не менее он имеет преимущества: относительно быстрый и надёжный, а также работает даже тогда, когда доступна лишь часть кода.
CQ — это Code Query, или Sécurité, или CQD, или «Seek You».
CQ предназначен для использования в контексте ревизии кода на безопасность экспертами-людьми. Он не предназначен для использования в автоматизированных сценариях, хотя может применяться и в таком контексте.
CQ выводит обычные текстовые файлы, как правило, по одной находке на строку, используя соглашение полный путь:номер строки для обозначения местоположений в кодовой базе. Этот формат используется для удобства обработки стандартными утилитами командной строки unix, такими как grep, wc, sed и подобными, а также построчными возможностями многих редакторов, таких как vi, Sublime Text, Atom и Visual Studio Code.
Сосредоточенность на отчёте обо всех элементах, представляющих интерес, приводит к тому, что инструмент находит множество точек интереса почти в любой кодовой базе, но также сообщает о большом количестве «ложных срабатываний». Эти ложные срабатывания можно удалить из результатов либо при проверке, либо автоматизированным способом благодаря построчному методу отчётов.
Пояснения по проблемам практически не предоставляются; предполагается, что вы осведомлены о контексте, влиянии и характеристиках сообщаемых проблем.