Расскажи мне свои секреты, не раскрывая мне своих секретов

Brother

Professional
Messages
2,590
Reaction score
481
Points
83
Название этой статьи, вероятно, звучит как подпись к мему. Вместо этого это актуальная проблема, которую инженерам GitGuardian пришлось решать при внедрении механизмов для их нового сервиса HasMySecretLeaked. Они хотели помочь разработчикам выяснить, попали ли их секреты (пароли, ключи API, закрытые ключи, криптографические сертификаты и т.д.) В общедоступные репозитории GitHub. Как они могли бы изучить обширную библиотеку секретов, найденных в общедоступных репозиториях GitHub, и их истории и сравнить их с твоими секретами без того, чтобы тебе пришлось раскрывать конфиденциальную информацию? В этой статье ты узнаешь, как это сделать.

Во-первых, если бы мы установили массу бита равной массе одного электрона, тонна данных составила бы около 121,9 квадриллиона петабайт данных при стандартной земной силе тяжести или 39,2 миллиарда миллиардов долларов США на обновление хранилища MacBook Pro (больше, чем все деньги в мире). Итак, когда в этой статье утверждается, что GitGuardian отсканировал "тонну" данных публичных коммитов GitHub, это образно, а не буквально.

Но да, они отсканировали "тонну" публичных коммитов и gist с GitHub, просматривая истории коммитов, и нашли миллионы секретов: пароли, ключи API, закрытые ключи, криптографические сертификаты и многое другое. И нет, "миллионы" - это не фигуральное выражение. В 2022 году они буквально нашли более 10 миллионов.

Как GitGuardian мог бы дать разработчикам и их работодателям возможность узнать, есть ли их текущие и действительные секреты среди этих 10 с лишним миллионов, без простой публикации миллионов секретов, облегчения поиска и сбора урожая злоумышленникам и выпуска множества джиннов из множества бутылок? Одно слово: снятие отпечатков пальцев.

После некоторой тщательной оценки и тестирования они разработали протокол снятия секретных отпечатков пальцев, который шифрует и хэширует секрет, а затем только частичный хэш передается GitGuardian. С помощью этого они могли бы ограничить количество потенциальных совпадений допустимым числом, не зная достаточного количества хэша, чтобы отменить и расшифровать его. Для дальнейшего обеспечения безопасности они разместили инструментарий для шифрования и хеширования секрета на стороне клиента.

Если вы используете веб-интерфейс HasMySecretLeaked, вы можете скопировать скрипт Python для создания хэша локально и просто поместить выходные данные в браузер. Тебе никогда не придется размещать сам секрет везде, где он может быть передан браузером, и ты можешь легко просмотреть 21 строку кода, чтобы доказать себе, что он ничего не отправляет за пределы терминального сеанса, который ты открыл для запуска скрипта. Если этого недостаточно, откройте F12 developer tools в Chrome или другом браузере и перейдите на панель "Сеть", чтобы отслеживать, какую информацию веб-интерфейс отправляет вверх по потоку.

Если вы используете интерфейс командной строки ggshield с открытым исходным кодом, вы можете просмотреть код командной строки, чтобы увидеть, что происходит при использовании команды hmsl. Хотите еще больше уверенности? Используйте инспектора дорожного движения, такого как Fiddler или Wireshark, чтобы просматривать передаваемые данные.

Инженеры GitGuardian знали, что даже доверяющие им клиенты будут опасаться вставлять ключ API или какой-либо другой секрет в поле на веб-странице. Как для безопасности, так и для душевного спокойствия всех, кто пользуется сервисом, мы решили быть максимально прозрачными и поставить как можно большую часть процесса под контроль клиентов. Это выходит за рамки их маркетинговых материалов и входит в документацию ggshield для команды hsml.

GitGuardian приложил все усилия, чтобы убедиться, что людям, использующим их HasMySecretLeaked checker, не нужно делиться реальными секретами, чтобы узнать, не произошла ли утечка. И это окупилось. За первые несколько недель трансляции было проверено более 9000 секретов.

Если твои секреты уже были публично разглашены, лучше знать, чем нет. Возможно, ими еще не воспользовались, но, скорее всего, это всего лишь вопрос времени. Ты можешь бесплатно проверять до пяти в день с помощью HasMySecretLeaked checker через Интернет и даже больше с помощью интерфейса GitGuardian shield. И даже если вы не хотите узнать, не произошла ли утечка ваших секретов, вам следует ознакомиться с их кодом и методами, которые помогут вдохновить вас на то, чтобы облегчить вашим клиентам обмен конфиденциальной информацией без разглашения самой информации.
 
Top