Skip to main content

Работа с защитой push-уведомлений

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

Кто может использовать эту функцию?

Защита от принудительной отправки для репозиториев и организаций доступна для , принадлежащих пользователю public repositories бесплатно. Организации, использующие GitHub Enterprise Cloud с лицензией на GitHub Advanced Security также могут включить защиту push-уведомлений в частных и внутренних репозиториях.

Сведения о работе с защитой push-уведомлений

Защита от отправки предотвращает случайное фиксацию секретов в репозитории путем блокировки push-уведомлений, содержащих поддерживаемые секреты.

Вы можете работать с принудительной защитой из командной строки или из веб-интерфейса.

Дополнительные сведения о работе с защитой push-уведомлений, включая обход блока при необходимости, см. в разделе "Использование принудительной защиты из командной строки" и "Использование принудительной защиты от веб-интерфейса" в этой статье.

Использование принудительной защиты из командной строки

При попытке отправить поддерживаемый секрет в репозиторий, защищенный защитой push-уведомлений, GitHub блокирует отправку. Вы можете удалить секрет из ветви или следовать предоставленному URL-адресу , чтобы узнать, какие параметры доступны для вас для разрешения отправки.

В командной строке будет отображаться до пяти обнаруженных секретов. Если определенный секрет уже обнаружен в репозитории и оповещение уже существует, GitHub не заблокирует этот секрет.

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

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

Примечания:

  • Если конфигурация Git поддерживает отправку в несколько ветвей, а не только в текущую ветвь, отправка может быть заблокирована из-за дополнительных и непреднамеренных ссылок. Дополнительные сведения см. в разделе Параметры push.default в документации Git.
  • Если истечет время ожидания secret scanning при отправке, GitHub все равно выполнит проверку фиксаций на наличие секретов после отправки.

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

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

Кроме того, для отправки секрета может потребоваться отправить запрос на "обход привилегий". Сведения о том, как запросить разрешение на обход защиты от push-уведомлений и отправить заблокированный секрет, см. в статье "Запрос привилегий обхода при работе с командной строкой".

Обход принудительной защиты при работе с командной строкой

Если GitHub блокирует секрет, который вы считаете безопасным для отправки, то может обойти блок, указав причину для отправки секрета.

При отправке секрета на вкладке "Безопасность **" создается **оповещение. GitHub закрывает оповещение и не отправляет уведомление, если указать, что секрет является ложным срабатыванием или используется только в тестах. Если указать, что секрет является реальным и что вы исправите это позже, GitHub оставит оповещение системы безопасности открытым и отправит уведомления автору фиксации, а также администраторам репозитория. Дополнительные сведения см. в разделе Управление оповещениями о проверке секретов.

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

Если вы не видите возможность обойти блок, администратор репозитория или владелец организации настроил более жесткие элементы управления вокруг защиты push-уведомлений. Вместо этого необходимо удалить секрет из фиксации или отправить запрос на "обход привилегий" для отправки заблокированного секрета. Дополнительные сведения см. в разделе "Запрос привилегий обхода при работе с командной строкой".

  1. Посетите URL-адрес, возвращенный GitHub при блокировке отправки. 1. Выберите вариант ответа, который наиболее точно описывает, почему у вас должна быть возможность отправлять секрет.

    • Если секрет используется только в тестах и не представляет угрозы, нажмите Используется в тестах.
    • Если обнаруженная строка не является секретом, нажмите Ложноположительный результат.
    • Если секрет реальный, но вы планируете исправить его позднее, нажмите Исправлю позже.

    Примечание. Необходимо указать причину обхода принудительной защиты, ес��и в репозитории включена проверка секретов.

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

    При защите от push-уведомлений для пользователей GitHub автоматически блокирует отправки в общедоступные репозитории, если эти push-уведомления содержат поддерживаемые секреты, но вам не нужно указать причину разрешения секрета, и GitHub не создаст оповещение. Дополнительные сведения см. в разделе Защита от push-уведомлений для пользователей.

  2. Щелкните Разрешить мне отправить этот секрет.

  3. Повторите попытку отправки с помощью командной строки в течение трех часов. Если вы не выполнили отправку в течение трех часов, необходимо повторить этот процесс.

Запрос привилегий обхода при работе с командной строкой

Note

Делегированный обход для защиты push-уведомлений в настоящее время находится в бета-версии и подлежит изменению.

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

Срок действия запросов истекает через 7 дней.

  1. Посетите URL-адрес, возвращенный GitHub при блокировке отправки. 1. В разделе "Или обход привилегий обхода запросов" добавьте комментарий. Например, можно объяснить, почему вы считаете, что секрет безопасн для отправки, или укажите контекст о запросе для обхода блока.
  2. Нажмите кнопку "Отправить запрос".
  3. Проверьте Уведомления по электронной почте ответа на запрос.

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

Если запрос утвержден, вы можете отправить фиксацию (или фиксации), содержащую секрет в репозиторий, а также любые будущие фиксации, содержащие тот же секрет.

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

Использование принудительной защиты от веб-интерфейса

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

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

Для заблокированной фиксации можно удалить секрет из файла с помощью веб-интерфейса. После удаления секрета вы сможете зафиксировать изменения.

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

Note

Защита от отправки файлов в веб-интерфейсе в настоящее время находится в бета-версии и подлежит изменению.

GitHub будет отображать только один обнаруженный секрет в веб-интерфейсе. Если определенный секрет уже обнаружен в репозитории и оповещение уже существует, GitHub не заблокирует этот секрет.

Владельцы организации могут предостав��ть пользовательскую ссылку, которая будет отображаться при блокировке принудительной отправки. Эта ссылка может содержать ресурсы и рекомендации, относящиеся к вашей организации. Например, настраиваемая ссылка может указывать на файл сведений о хранилище секретов организации, контактные лица или команды для эскалирования вопросов или утвержденную политику организации по работе с секретами и перезаписи журнала фиксаций.

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

Обход принудительной защиты при работе с веб-интерфейсом

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

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

Если GitHub блокирует секрет, который вы считаете безопасным для фиксации, то может обойти блок, указав причину для разрешения секрета.

При отправке секрета на вкладке "Безопасность **" создается **оповещение. GitHub закрывает оповещение и не отправляет уведомление, если указать, что секрет является ложным срабатыванием или используется только в тестах. Если указать, что секрет является реальным и что вы исправите это позже, GitHub оставит оповещение системы безопасности открытым и отправит уведомления автору фиксации, а также администраторам репозитория. Дополнительные сведения см. в разделе Управление оповещениями о проверке секретов.

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

  1. В диалоговом окне, которое появилось, когда GitHub заблокировало фиксацию, просмотрите имя и расположение секрета.

  2. Выберите вариант ответа, который наиболее точно описывает, почему у вас должна быть возможность отправлять секрет.

    • Если секрет используется только в тестах и не представляет угрозы, нажмите Используется в тестах.
    • Если обнаруженная строка не является секретом, нажмите Ложноположительный результат.
    • Если секрет реальный, но вы планируете исправить его позднее, нажмите Исправлю позже.

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

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

    При защите от push-уведомлений для пользователей GitHub автоматически блокирует отправки в общедоступные репозитории, если эти push-уведомления содержат поддерживаемые секреты, но вам не нужно указать причину разрешения секрета, и GitHub не создаст оповещение. Дополнительные сведения см. в разделе Защита от push-уведомлений для пользователей.

  3. Щелкните Разрешить секрет.

Дополнительные материалы