Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2026-04-09. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

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

Секреты, такие как 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. Включите secret scanning возможность начать выявлять существующие секретные утечки.
  3. Создайте безопасные практики управления учетными данными для ваших команд разработчиков.