Новый и супер-быстрый инструмент для поиска секретов в коде

Чтобы оценить инструменты поиска секретов исследователи подготовили специальный датасет SecretBench и провели на его основе сравнение популярных проектов. Лидером среди opensource стал gitleaks: у него 46% точности и 88% полноты. А еще авторы сделали ключевой вывод:

На данный момент нет ни одного инструмента, который обладал бы одновременно высокими показателями точности и полноты.

Недавно команда mongodb опубликовала инструмент Kingfisher, который обладает рядом преимуществ относительно других опенсорс-проектов:

💡 написан на Rust, а значит, есть преимущества перед Golang-тулами за счет ускорения потока обработки. Это дает ощутимый выигрыш в производительности при сканировании больших объемов кода, например, монорепозиториев или всей истории коммитов.

💡 использует Hyperscan - быстрый движок для поиска по регулярным выражениям, который может одновременно обрабатывать тысячи шаблонов за один прогон. Regex matching занимает до 90% от всего времени сканирования, поэтому наличие этого движка позволяет отбросить gitleaks, который использует стандартные regex-средства в Go.

💡 кроме regex-движка еще использует инструмент для синтаксического анализа кода - Tree-Sitter. Строит AST-дерево, чтобы понимать, где в коде находятся строки, комментарии, переменные и проводить поиск только в нужных местах. Это помогает лучше понимать контекст, в котором находится секрет и точнее его интерпретировать. Но эту функцию также лучше применять для больших файлов.

Результаты внутренних тестов Kingfisher от авторов показывают кратное преимущество в скорости. Интересно, как инструмент ведет себя в точности и скорости для небольших проектов. 🧐

Новый и супер-быстрый инструмент для поиска секретов в коде | Сетка — социальная сеть от hh.ru