
Сканер на основе регулярных выражений для обнаружения жёстко закодированных учётных данных в кодовых базах, предназначенный для интеграции в CI/CD с поддержкой комментариев подавления и низкой частотой ложных срабатываний.
Этот скрипт предназначен для сканирования большой и разнообразной кодовой базы на предмет жёстко закодированных учётных данных или учётных данных, присутствующих в конфигурационных файлах. Они представляют собой серьёзную угрозу безопасности и могут быть чрезвычайно сложны для обнаружения и управления.
Основная цель этого скрипта — создать инструмент, который может напрямую использоваться командами разработчиков в CI/CD-конвейере для управления процессом устранения этой проблемы, предупреждая команду о наличии учётных данных в коде, чтобы команда могла немедленно исправлять возникающие проблемы.
Инструмент можно применять как точечный сканер для этой проблемы, но — поскольку учётные данные, скорее всего, со временем снова попадут в кодовую базу — мы настоятельно рекомендуем интегрировать скрипт в CI/CD-процесс, автоматизированную систему сборки или любой другой регулярно выполняемый автоматический процесс сканирования, который осуществляет команда.
Скрипт написан со следующими целями:
Скрипт пытается обеспечить некоторую совместимость с другими популярными SAST-инструментами.
Текст в начале файла или рядом с ним '# noqa file' будет подавлять сообщение о любых дальнейших проблемах в этом файле, как и текст 'flake8: noqa'.
Текст '# noqa' на отдельной строке будет подавлять сообщение о проблемах на этой строке. Многие другие стандартные комментарии подавления также будут работать; текущий список:
# noinspection
# noqa
#noqa
@SuppressWarnings
DevSkim
NOLINT
NOSONAR
checkmarx
coverity
fortify
noinspection
nosec
safesql
veracode
Мы также рекомендуем использовать комментарий '# noqa cred', чтобы чётко указать членам команды, что именно наличие учётных данных является причиной ложного срабатывания. Многие из перечисленных здесь инструментов (например, DevSkim) используют определённые коды ошибок, относящиеся к инструментарию, актуальному для используемого языка или платформы, которые служат той же цели. Одна и та же строка кода может содержать несколько ошибок разных типов.
Предупреждаем, что крайне плохой практикой является подавление предупреждения от SAST-инструмента, которое является истинным срабатыванием. Рекомендуется периодически пересматривать комментарии подавления SAST/линтера в кодовой базе, чтобы убедиться, что не были подавлены «истинные срабатывания».
Флаг командной строки '-nosuppress' заставляет скрипт игнорировать все комментарии подавления.