{"meta":{"title":"Секретные риски утечек","intro":"Секреты, такие как API-ключи, пароли и токены, зафиксированные в репозиториях, могут быть использованы неавторизованными пользователями, создавая безопасность, соответствие требованиям и финансовый риск для вашей организации.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/concepts","title":"Concepts"},{"href":"/ru/code-security/concepts/secret-security","title":"Секретная охрана"},{"href":"/ru/code-security/concepts/secret-security/secret-leakage-risks","title":"Секретные риски утечек"}],"documentType":"article"},"body":"# Секретные риски утечек\n\nСекреты, такие как API-ключи, пароли и токены, зафиксированные в репозиториях, могут быть использованы неавторизованными пользователями, создавая безопасность, соответствие требованиям и финансовый риск для вашей организации.\n\n## Что такое секреты?\n\nСекреты — это удостоверения, предоставляющие доступ к чувствительным системам и данным. Распространенные примеры:\n\n* Ключи и токены API, используемые для аутентификации с внешними сервисами\n* Пароли базы данных и строки подключения\n* Учетные данные облачных провайдеров и токены сервисных аккаунтов\n* Сертификаты и ключи шифрования\n\nКогда секреты сохраняются в репозиториях, они становятся **жёстко закодированными учетными данными** , встроенными непосредственно в исходный код или конфигурационные файлы. Эти закодированные секреты становятся частью вашей истории Git и остаются доступными даже после удаления из последнего коммита. Это означает, что устранение утечки учетных данных требует большего, чем просто удаление файла; Также необходимо отозвать и заменить учетные данные, чтобы предотвратить несанкционированный доступ.\n\n## Как тайны раскрываются\n\n**Секретное распространение** происходит, когда учетные данные распространяются по репозиториям, командам и системам без централизованного управления или видимости. Это затрудняет отслеживание, какие секреты существуют, где они используются и были ли они раскрыты. Секреты обычно попадают в хранилища через несколько распространённых шаблонов.\n\n### Рабочие процессы разработки\n\n* Жёстко закодированные учетные данные, добавленные во время локального тестирования и случайно зафиксированные\n* Секреты в конфигурационных файлах, таких как `.env` файлы или шаблоны инфраструктуры как код\n* Примеры учетных данных с реальными API-ключами или токенами в документации, вики или README-файлах\n\n### Управление репозиторием\n\n* Наследственные репозитории с забытыми, но всё ещё активными учетными данными\n* Секреты, которыми делятся в GitHub выпусках, комментариях к pull request, обсуждениях или сути\n* Аккредитации, представленные внешними участниками или подрядчиками\n\n### Распространение контроля версий\n\n* Секреты сохраняются в истории Git даже после удаления из текущего кода.\n* Учетные данные распространяются в форкированные репозитории, системы резервного копирования и логи CI/CD.\n* Публичные хранилища с раскрытыми секретами индексируются поисковыми системами и специализированными сервисами сканирования.\n\n## Угрозы безопасности\n\nРаскрытые секреты могут привести к нескольким типам инцидентов с безопасностью.\n\n### Неавторизованный доступ\n\nУтечки учетных данных дают неавторизованным пользователям прямой доступ к вашим системам. После раскрытия жёстко заданные секреты могут быть использованы для:\n\n* Предоставление инфраструктуры или услуг на вашем аккаунте с использованием утекших учетных данных облачного провайдера\n* Доступ к чувствительным данным клиентов или организаций через скомпрометированные учетные данные базы данных\n* Доступ к производственным системам через доступные сервисные токены\n\n### Утечки данных\n\nУтечки учетных данных дают несанкционированным пользователям прямой доступ к вашим системам, что приводит к утечкам данных. После того как злоумышленники получают доступ с помощью раскрытых учетных данных, они могут извлекать конфиденциальные данные, изменять или удалять критически важную информацию и подрывать доверие клиентов. Утечки данных требуют немедленного реагирования на инциденты, включая отзыв документов, устранение системы и оценку масштаба и последствий утечки.\n\n### Атаки цепочки поставок\n\nОбнаруженные токены реестра пакетов могут использоваться для публикации вредоносных версий вашего программного обеспечения, затрагивая пользователей и организации, зависящие от ваших пакетов.\n\n## Финансовые последствия\n\nРаскрытые секреты могут обойтись вашей компании во многих отношениях.\n\n* **Неожиданные облачные счета**: утечка API позволяет злоумышленникам использовать ваши облачные ресурсы. Они могут запускать вычислительные инстанции, хранить данные или майнить криптовалюту на вашем аккаунте, генерируя крупные счета.\n* **Реагирование на инциденты**: расследование утечек, ротация удостоверений и аудит систем требует значительных инженерных затрат и ресурсов.\n* **Юридические расходы**: Утечки данных могут привести к штрафам, юридическим расходам и уведомлениям.\n* **Долгосрочный ущерб**: потерянные клиенты, выросшие страховые расходы и упущенные бизнес-возможности после того, как инциденты с безопасностью стали достоянием общественности.\n\n## Секретная безопасность с GitHub\n\nGitHub предоставляет инструменты, помогающие вам предотвратить, выявить и устранить секретные утечки:\n\n### 1. Не допускать новых секретов\n\nВключите **защиту Push** для сканирования кода во `git push` время операций и блокировки коммитов с обнаруженными секретами до их появления в вашем репозитории. Это предотвращает добавление жестких учетных данных в базу кода и предоставляет отзывы разработчиков в режиме реального времени в точке риска, охватывая оба шаблона поставщика известных служб и универсальные шаблоны, такие как закрытые ключи и универсальные ключи API. Обратите внимание, что не все типы секретов защищены по умолчанию и должны быть настроены вашей организацией на основе допустимости рисков и шума.\n\nПоощряйте отдельных разработчиков включать защиту от push для своих личных аккаунтов, чтобы защитить все свои push-файлы GitHub, независимо от политики организации. Это помогает предотвратить тайное распространение, фиксируя утечку учетных данных до того, как они попадут в ваши хранилища.\n\n### 2. Обнаружить существующие секреты\n\nИспользуйте **secret scanning** для постоянного мониторинга ваших репозиториев на предмет жёстко закодированных секретов и генерации оповещений при обнаружении учетных данных, что позволяет быстро отзывать и помещать скомпрометированные учетные данные. Помимо обнаружения шаблонов поставщиков по умолчанию, можно развернуть сканирование в универсальные шаблоны и определить пользовательские шаблоны для секретов для конкретной организации. Это поможет вам получить видимость в секретном разрастании по всей организации."}