Всем привет!
Задача поиска секретов – крайне важная задача при обеспечении безопасности разрабатываемого ПО.
Существует множество различных сканеров и подходов, которые позволяют это сделать.
Но эти сканеры не лишены недостатков: они могут генерировать большое количество false positive
Поэтому разработчики средств анализа секретов используют разные методы для получения более релевантных результатов: от объединения подходов (RegEx и энтропия) до анализа используемости и/или валидности секрета.
Однако, это «закручивание гаек» может дать «побочный эффект» - false positive сменятся на false negative и сканер не найдет «обычный секрет».
Что с этим можно сделать? Возможный ответ есть в статье от Semgrep.
В ней Авторы описывают:
🍭 Общие принципы работы средств анализа секретов
🍭 Техники, которые они используют для сокращения false positive
🍭 Результаты эксперимента команды по анализу репозиториев GitHub с целью поиска секретов
🍭 Рекомендации о том, как улучшить показатели работы сканеров
Много наглядных примеров и пояснений, которые позволяют лучше погрузиться в проблематику и возможные способы ее решения.
Кроме этого, в статье описаны трудности, с которыми можно столкнуться при оптимизации правил. Например, отсутствие уникальности в префиксах токенов (
sk_live_, sk, gsk_ -весьма похожи, но используются разными сервисами).Рекомендуем!