Skip to main content

Секретные риски утечек

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

Что такое секреты?

Секреты — это удостоверения, предоставляющие доступ к чувствительным системам и данным. Распространенные примеры:

  • Ключи и токены API, используемые для аутентификации с внешними сервисами
  • Пароли базы данных и строки подключения
  • Учетные данные облачных провайдеров и токены сервисных аккаунтов
  • Сертификаты и ключи шифрования

Когда секреты сохраняются в репозиториях, они становятся жёстко закодированными учетными данными , встроенными непосредственно в исходный код или конфигурационные файлы. Эти закодированные секреты становятся частью вашей истории Git и остаются доступными даже после удаления из последнего коммита. Это означает, что устранение утечки учетных данных требует большего, чем просто удаление файла; Также необходимо отозвать и заменить учетные данные, чтобы предотвратить несанкционированный доступ.

Как тайны раскрываются

          **Секретное распространение** происходит, когда учетные данные распространяются по репозиториям, командам и системам без централизованного управления или видимости. Это затрудняет отслеживание, какие секреты существуют, где они используются и были ли они раскрыты. Секреты обычно попадают в хранилища через несколько распространённых шаблонов.

Рабочие процессы разработки

  • Жёстко закодированные учетные данные, добавленные во время локального тестирования и случайно зафиксированные
  • Секреты в конфигурационных файлах, таких как .env файлы или шаблоны инфраструктуры как код
  • Примеры учетных данных с реальными API-ключами или токенами в документации, вики или README-файлах

Управление репозиторием

  • Наследственные репозитории с забытыми, но всё ещё активными учетными данными
  • Секреты, которыми делятся в GitHub выпусках, комментариях к pull request, обсуждениях или сути
  • Аккредитации, представленные внешними участниками или подрядчиками

Распространение контроля версий

  • Секреты сохраняются в истории Git даже после удаления из текущего кода.
  • Учетные данные распространяются в форкированные репозитории, системы резервного копирования и логи CI/CD.
  • Публичные хранилища с раскрытыми секретами индексируются поисковыми системами и специализированными сервисами сканирования.

Угрозы безопасности

Раскрытые секреты могут привести к нескольким типам инцидентов с безопасностью.

Неавторизованный доступ

Утечки учетных данных дают неавторизованным пользователям прямой доступ к вашим системам. После раскрытия жёстко заданные секреты могут быть использованы для:

  • Предоставление инфраструктуры или услуг на вашем аккаунте с использованием утекших учетных данных облачного провайдера
  • Доступ к чувствительным данным клиентов или организаций через скомпрометированные учетные данные базы данных
  • Доступ к производственным системам через доступные сервисные токены

Утечки данных

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

Атаки цепочки поставок

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

Финансовые последствия

Раскрытые секреты могут обойтись вашей компании во многих отношениях.

  • Неожиданные облачные счета: утечка API позволяет злоумышленникам использовать ваши облачные ресурсы. Они могут запускать вычислительные инстанции, хранить данные или майнить криптовалюту на вашем аккаунте, генерируя крупные счета.
  • Реагирование на инциденты: расследование утечек, ротация удостоверений и аудит систем требует значительных инженерных затрат и ресурсов.
  • Юридические расходы: Утечки данных могут привести к штрафам, юридическим расходам и уведомлениям.
  • Долгосрочный ущерб: потерянные клиенты, выросшие страховые расходы и упущенные бизнес-возможности после того, как инциденты с безопасностью стали достоянием общественности.

Секретная безопасность с GitHub

          GitHub предоставляет инструменты, помогающие вам предотвратить, выявить и устранить секретные утечки:

1. Не допускать новых секретов

Включите защиту Push для сканирования кода во git push время операций и блокировки коммитов с обнаруженными секретами до их появления в вашем репозитории. Это предотвращает добавление жёстко заданных учетных данных в вашу кодовую базу и обеспечивает обратную связь разработчикам в реальном времени в момент риска, охватывая как шаблоны провайдеров для известных сервисов, так и не-провайдерские шаблоны, такие как приватные ключи и универсальные API-ключи.

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

2. Обнаружить существующие секреты

Используйте secret scanning для постоянного мониторинга ваших репозиториев на предмет жёстко закодированных секретов и генерации оповещений при обнаружении учетных данных, что позволяет быстро отзывать и помещать скомпрометированные учетные данные. Помимо стандартного обнаружения шаблонов поставщиков, вы можете расширить сканирование на паттерны без провайдеров и определить пользовательские шаблоны для специфических для организаций секретов. Это поможет вам получить видимость в секретном разрастании по всей организации.

Дальнейшие действия

Чтобы защитить вашу организацию от секретных утечек:

  1. Проведите бесплатную секретную оценку рисков, чтобы понять текущий риск. Проведите оценку рисков безопасности

  2. Включите защиту от пуша, чтобы предотвратить появление новых секретов.

  3. Включите secret scanning возможность начать выявлять существующие секретные утечки.

  4. Создайте безопасные практики управления учетными данными для ваших команд разработчиков.

Для обзора GitHubсекретных функций безопасности см. О секретной безопасности с GitHub.