Всем привет!
Утечки секретов – очень парадоксальная вещь. Да, про это все знают. Да, никто не спорит, что так делать не надо. Да, репозитории сканируют.
Но секреты всё равно продолжают «утекать». И теперь не только из-за человеческого фактора (допустим, что это банальная «невнимательность»), но и из-за «машинного» фактора – AI тоже могут «слить в сеть» что-то важное.
Небольшой эксперимент провёл Автор статьи. Он проанализировал около 1443 GitHub-репозиториев и нашёл около 4000 подтверждённых секретов.
Из хорошего – после того, как он сообщил об утечке, 95% из них были обновлены в течение двух недель.
Для поиска секретов он использовал несколько подходов. Первый заключался в использовании LLM и простого prompt: «Найди в commit что-то, что может являться секретом» (пример полноценного prompt приведён в статье).
После этого Автор попросил модель предоставить ему шаблоны (patterns), на основании которых модель принимает решение об истинной природе секрета.
Это позволило улучшить результаты. Последним рубежом стало использование
Trufflehog для того, чтобы найти ещё больше.Результаты: статистика, интересные примеры того, что удалось найти, детальное описание подхода – всё это приведено в статье.
P.S. кстати, аналогичное упражнение делали и с GitLab. Про это мы писали вот тут.