Что такое защита от нежелательных уведомлений?
Защита от push — это функция, secret scanning разработанная для предотвращения попадания жёстко закодированных учетных данных, таких как секреты или токены, в ваш репозиторий. Вместо того чтобы предупреждать вас о утечках учетных данных потом, отправляйте защитные блоки с секретами ещё до того, как они попадут в ваш репозиторий.
Как работает защита push-уведомлений
Когда push-защита обнаруживает потенциальный секрет во время попытки push, она блокирует пуш и предоставляет подробное сообщение с объяснением причины блокировки. Вам потребуется просмотреть заданный код, удалить конфиденциальную информацию и повторно выполнить отправку.
Защита push-уведомлений может блокировать следующие типы секретов.
Шаблоны партнеров
GitHub блокирует отправки, содержащие учетные данные, относящиеся к поставщику, где защита от push-уведомлений поддерживается для этого секрета в рамках партнерской secret scanningпрограммы. См. поддерживаемые шаблоны поставщика.
Общие паттерны
GitHub блоки отправляют, содержащие структурированные секреты, которые не привязаны к конкретному поставщику, например закрытые ключи и строки подключения к базе данных. Сканирование универсальных шаблонов и защиты от отправки должно быть включено в параметрах безопасности репозитория или конфигурации безопасности для работы. Соответствующие шаблоны также должны быть включены в конфигурации шаблона принудительной защиты организации или предприятия. См. статью "Указание шаблонов" для включения в защиту push-уведомлений.
Пользовательские шаблоны
GitHub блоки отправляют, содержащие пользовательские шаблоны, которые являются регулярными выражениями, которые определяются для обнаружения секретов, характерных для репозитория, организации или предприятия. При определении пользовательского шаблона вы можете включить защиту от принудительной отправки. См . раздел AUTOTITLE.
Универсальные секреты, найденные с помощью ИИ
Примечание.
Защита Секреты, обнаруженные ИИ от принудительной отправки выполняется Публичный предварительный просмотр и подлежит изменению.
GitHub блокирует отправку, содержащую неструктурированные секреты, такие как пароли, обнаруженные с помощью ИИ на основе контекста кода. Сведения о выставлении счетов за эту функцию см. в разделе GitHub Advanced Security Выставление счетов за лицензии. Чтобы включить эту функцию, см. раздел Включение защиты push-уведомлений для обнаруженных ИИ секретов.
Поддерживаемые поверхности push-уведомлений
В следующей таблице показано, какие типы секретов блокируются на каждой области отправки.
| Область отправки | Шаблоны партнеров | Общие паттерны | Пользовательские шаблоны | Универсальные секреты, найденные с помощью ИИ |
|---|---|---|---|---|
| Push из командной строки | ||||
| Коммиты, созданные в GitHub интерфейсе | ||||
| Загрузка файлов в репозиторий на GitHub | ||||
| Запросы к API REST | ||||
| Взаимодействие с GitHub MCP-сервером (только публичные репозитории) |
Виды защиты от толчка
Существует два типа защиты от толчка:
Защита от push для репозиториев.
Вы можете включить защиту от push для репозиториев на уровне репозитория, организации или предприятия. Этот вид защиты от толчка:
- Требуется GitHub Secret Protection включение
- По умолчанию отключён и может быть активирован администратором репозитория, владельцем организации, менеджером безопасности или владельцем предприятия
- Блоки блокируют доступ к определённым защищённым хранилищам
- Генерирует оповещения о прохождении защиты push во Security and quality вкладке репозитория, организации и предприятия
Совет
Независимо от статуса поддержки защиты от push, организации могут GitHub TeamGitHub Enterprise запускать бесплатный отчёт для сканирования кода на наличие утечок секретов. В отчете также показано, сколько секретных утечек можно было бы предотвратить с помощью защиты от давления. См . раздел AUTOTITLE.
Защита от push-уведомлений для пользователей
Защита от push для пользователей доступна только на GitHub.com, и она специфична для вашего GitHub аккаунта. Этот вид защиты от толчка:
- Включено по умолчанию
- Это не даёт вам распространять секреты в публичные хранилища GitHub
- Не генерирует оповещения при обходе защиты от пуша, если только защита от пуша не включена на уровне репозитория
Обход защиты от толкания и оповещения
Для защиты от push для репозиториев, по умолчанию любой, кто имеет доступ к записи в репозиторий, может обойти защиту от push, указав причину обхода. Когда участник обходит блок защиты от пуша, GitHub:
- Создаёт оповещение во Security and quality вкладке репозитория, организации и предприятия
- Добавляет событие обхода в журнал аудита
- Отправляет уведомление по электронной почте владельцам личных аккаунтов, организаций и предприятий, менеджерам по безопасности и администраторам репозиториев, которые следят за репозиторием, с ссылкой на секрет и причиной его разрешения
В этой таблице показано поведение оповещений по каждой причине обхода, которую пользователь может указать.
| Обход причины | Поведение оповещений |
|---|---|
| Он используется в тестах | |
| GitHub создаёт закрытое оповещение, которое разрешается как «используется в тестах» | |
| Это ложное срабатывание | |
| GitHub создаёт закрытое оповещение, которое разрешается как «ложноположительный» | |
| Я исправлю его позже | |
| GitHub создаёт открытое предупреждение |
Если вы хотите больше контроля над тем, кто может обойти защиту от пуша, а какие пушы содержат секреты, можно настроить делегированный обход для защиты от пуша. С помощью делегированного обхода вы можете предоставить актёрам:
- Привилегии обхода, позволяя им самостоятельно обходить защиту от пуша, а также проверять и одобрять запросы на обход от других участников
- Освобождение от защиты от push, позволяющее им отправлять коммиты без активации защиты
Преимущества защиты от толчка
- Профилактическая защита: Защита от пуша действует как передовой защитный механизм, сканируя код на предмет жёстко закодированных секретов в момент продвижения. Такой профилактический подход помогает предотвратить утечку данных до того, как они закрепятся в истории репозитория, что облегчает устранение и устранение угроз.
- Немедленная обратная связь: разработчики получают мгновенные отзывы, если во время попытки отправки обнаружен потенциальный секрет. Это немедленное уведомление позволяет быстро исправляться, уменьшая вероятность предоставления конфиденциальной информации.
- Снижение риска утечек учётных данных: Блокируя коммиты с жёстко закодированными учетными данными, защита от push значительно снижает риск случайных утечек и распространения секретных данных. Это помогает защитить от возможных утечек и сохранить целостность кодовой базы.
- Эффективное управление секретами: вместо ретроспективной работы с открытыми секретами разработчики могут решать проблемы в источнике. Это делает управление секретами более эффективным и менее трудоемким.
- Функция обхода для гибкости: В случаях ложных срабатываний или необходимости определённых паттернов можно обойти защиту от push для пользователей, а назначенные пользователи могут использовать функцию делегированного обхода для обхода пуш-защиты репозиториев. Кроме того, вы можете полностью освободить доверенных и корпоративном уровнях от защиты от push. Это обеспечивает гибкость без ущерба общей безопасности.
- Возможность обнаруживать пользовательские шаблоны (для репозиториев в организациях): Организации могут определять индивидуальные паттерны для обнаружения секретов, уникальных для их среды. Эта настройка гарантирует, что защита от отправки может эффективно определять и блокировать даже нестандартные секреты.
- Покрытие за пределами известных шаблонов: ИИ обнаруживает неструктурированные секреты, такие как пароли, что регулярное выражение не может надежно соответствовать.
Customization
После включения защиты от пуш-репозиториев вы можете настроить её следующим образом:
- Определение пользовательских паттернов для блок-пушей, содержащих уникальные секретные паттерны
- Назначение участников, которые могут обойти защиту от push и одобрить запросы на обход для других участников или полностью освобождены от защиты push
- Настройка, какие секретные паттерны включены в защиту от push на уровне предприятия или организации