Skip to main content

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

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

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

Защита от отправки доступна для репозиториев, принадлежащих организации, в GitHub Enterprise Server если у вашей организации есть лицензия на GitHub Advanced Security.

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

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

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

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

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

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

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

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

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

Примечания:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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