Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставленные учетные данные в инженерных системах обеспечивают легко эксплуатируемые возможности для злоумышленников. Чтобы защититься от этой угрозы, GitHub Advanced Security для Azure DevOps проверяет учетные данные и другое конфиденциальное содержимое в исходном коде. Защита push также предотвращает утечку учетных данных на начальном этапе. Вам необходима либо расширенная безопасность GitHub для Azure DevOps, либо, если вы используете автономный режим, включена защита секретов GitHub для Azure DevOps.
Сканирование секретов для вашего репозитория проверяет все секреты, которые могут уже существовать в истории вашего исходного кода, а защита при отправке предотвращает раскрытие новых секретов в исходном коде.
GitHub Advanced Security для Azure DevOps работает с Azure Repos. Чтобы использовать GitHub Advanced Security с репозиториями GitHub, см. GitHub Advanced Security.
Предпосылки
| Категория | Требования |
|---|---|
| Разрешения | — Чтобы просмотреть сводку всех оповещений для репозитория, нужны разрешения участника для репозитория. — Чтобы отклонить оповещения в Advanced Security: администратор проекта разрешения. — Для управления разрешениями в Расширенной безопасности: быть членом группы Администраторов коллекции проектов или иметь разрешение Расширенная безопасность: управление параметрами установлено на Разрешить. |
Дополнительные сведения о разрешениях расширенной безопасности см. в разделе Управление разрешениями расширенной безопасности.
Сведения об оповещениях проверки секретов
При включении углубленной безопасности или защиты секретов система сканирует репозитории на предмет секретов, выданных различными поставщиками услуг, и создает оповещения о проверке секретов.
Если для доступа к ресурсу требуются парные учетные записи, сканирование секретов создает оповещение только при обнаружении обеих частей пары в одном файле. Парирование гарантирует, что критически важные утечки не остаются скрытыми позади информации о частичных утечках. Сопоставление пар также помогает уменьшить количество ложных срабатываний, поскольку оба элемента пары должны использоваться совместно для доступа к ресурсу провайдера.
Вкладка "Расширенная безопасность" в Repos>Advanced Security в Azure DevOps — это концентратор для просмотра оповещений системы безопасности. Перейдите на вкладку "Секреты", чтобы просмотреть оповещения проверки секретов . Вы можете фильтровать по состоянию и типу секрета. Дополнительные сведения см. в оповещении, включая рекомендации по исправлению. После включения расширенной безопасности проверка запускается для выбранного репозитория, включая все исторические фиксации. Со временем оповещения начинают отображаться при выполнении сканирования.
Переименование ветвей не влияет на результаты. Однако для отображения нового имени может потребоваться до 24 часов.
Чтобы устранить утечку секретов, аннулируйте скомпрометированные учетные данные и создайте новые на их замену. После этого созданный секрет следует безопасно хранить таким образом, чтобы он не был напрямую отправлен обратно в код. Например, секрет может храниться в Azure Key Vault. Большинство ресурсов имеют как первичные, так и вторичные учетные данные. Метод перекатывания первичных учетных данных идентичен методам для вторичных учетных данных, если не указано иное.
Управляйте оповещениями проверки секретов
Просмотр оповещений для репозитория
Перейдите на вкладку "Секреты" , чтобы просмотреть все оповещения проверки секретов.
Если расширенная безопасность недавно включена для репозитория, может появиться карточка, указывающая, что расширенная безопасность по-прежнему сканирует репозиторий.
После завершения проверки отображаются все результаты. Для каждого обнаруженного уникального учетной записи создается одно оповещение во всех ветвях и истории вашего репозитория. Фильтры ветвей отсутствуют, так как они объединены в одно оповещение.
Непровидные секреты доступны для просмотра, выбрав "Другие" в раскрывающемся списке доверия на вкладке "Сканирование секретов".
Сведения об оповещении
При переходе к оповещению появится подробное представление оповещения, отображающее дополнительные сведения об обнаружении, и предоставляющее конкретные рекомендации по устранению оповещения.
Замечание
Изображение содержит значение, форматированное для того, чтобы напоминать личный токен доступа (PAT). Это значение не является допустимым PAT и используется только для иллюстрирующих целей. GitHub Advanced Security для Azure DevOps выполняет проверки допустимости обнаруженных секретов. Хотя средство может первоначально обнаружить значения, соответствующие ожидаемому формату PAT, он выполняет дополнительную проверку для проверки подлинности. Если маркер не проходит проверку (то есть не является действительным PAT), сканирование секретов распознает его как недействительный и не активирует оповещение об обнаружении. Это помогает уменьшить ложные срабатывания и гарантирует, что только фактические, допустимые секреты создают оповещения.
| Секция | Описание |
|---|---|
| Расположение | В разделе "Расположения" описаны пути, где сканирование секретов обнаружило утекшие учетные данные. В журнале может быть несколько расположений или несколько фиксаций, содержащих утечку учетных данных. Все эти расположения и коммиты отображаются в разделе "Расположения" с прямой ссылкой на фрагмент кода и коммит, в котором они были определены. |
| Рекомендация | В разделе рекомендаций содержатся рекомендации по исправлению или ссылка на рекомендации по исправлению в документации, не принадлежащей Майкрософт, для идентифицированных учетных данных. |
| Закрыть оповещение | Для оповещений о проверке секретов нет автоматического исправления. Все оповещения проверки секретов должны быть вручную подтверждены как исправленные на странице сведений об оповещении. Нажмите кнопку Закрыть, чтобы подтвердить, что секрет отозван. |
| Серьезность | Все оповещения проверки секретов задаются как критически важные. Любые скомпрометированные учетные данные потенциально представляют собой возможность для вредоносного субъекта. |
| Поиск сведений | Тип учетных данных и правила, используемых для поиска учетных данных, перечислены в разделе "Поиск сведений " на боковой панели страницы сведений об оповещении. |
С секретами, не связанными с поставщиками, тег Confidence: other также отображается вместе со значком уровня серьезности в подробностях оповещения.
Исправление оповещений сканирования секретов
Каждый секрет имеет уникальные действия по исправлению, которые помогут вам отменить и повторно создать новый секрет на своем месте. Подробные сведения об оповещении содержат конкретные шаги или документацию по каждому оповещению.
Оповещение о сканировании секретов остается открытым, пока его не закроют. Чтобы проверить, было ли исправлено предупреждение о проверке секретов:
- Перейдите к оповещению, которое вы хотите закрыть, и выберите его.
- Выберите раскрывающийся список "Закрыть оповещение".
- Если этот параметр еще не выбран, нажмите кнопку "Исправлено".
- Нажмите кнопку "Закрыть", чтобы отправить и закрыть оповещение.
Отключение оповещений проверки секретов
Чтобы закрыть оповещение, сделайте следующее:
- Перейдите к оповещению, которое вы хотите закрыть, и выберите его.
- Выберите раскрывающийся список "Закрыть оповещение".
- Если этот параметр еще не выбран, выберите "Риск принят " или "Ложный положительный результат " в качестве причины закрытия.
- Добавьте необязательный комментарий в текстовое поле "Комментарий ".
- Нажмите кнопку "Закрыть", чтобы отправить и закрыть оповещение.
- Состояние оповещения изменяется с Открыто на Закрыто и отображает причину закрытия.
Вы можете вручную открыть любое ранее отклоненное оповещение.
Защита скомпрометированных секретов
После фиксации секрета в репозитории секрет скомпрометирован. Корпорация Майкрософт рекомендует следующие действия для скомпрометированных секретов:
Это важно
Рассмотрите возможность использования более безопасных маркеров Microsoft Entra по сравнению с более высоким уровнем риска персональных маркеров доступа. Дополнительные сведения см. в разделе "Сокращение использования PAT". Просмотрите рекомендации по проверке подлинности , чтобы выбрать правильный механизм проверки подлинности для ваших потребностей.
- Для скомпрометированного маркера личного доступа Azure DevOps удалите скомпрометированный маркер, создайте новый маркер и обновите все службы, использующие старый маркер.
- Для всех остальных секретов сначала убедитесь, что секрет, зафиксированный в Azure Repos, действителен. Если это так, создайте новый секрет, обновите все службы, использующие старый секрет, а затем удалите старый секрет.
- Определите все действия, совершенные скомпрометированным токеном в отношении ресурсов вашего предприятия.
При обновлении секрета сохраните новый секрет безопасно и убедитесь, что он никогда не сохраняется в виде обычного текста. Один из вариантов — использовать Azure Key Vault или другие решения для управления секретами.
Защита от отправки секретов
Push-защита проверяет любой входящий push-запрос на наличие высокодостоверных секретов и предотвращает его проход. В сообщении об ошибке отображаются все идентифицированные секреты, чтобы вы могли их удалить или, при необходимости, продолжить их отправку.
Сведения о оповещениях защиты от push-уведомлений
Оповещения защиты от push — это предупреждения пользователей, которые сообщаются системой push-защиты. Сканирование секретов в качестве защиты при отправке в настоящее время сканирует репозитории на наличие секретов, выданных некоторыми поставщиками услуг.
Если для доступа к ресурсу требуются парные учетные данные, то проверка секретов может создать оповещение только при обнаружении обеих частей пары в одном файле. Сопоставление гарантирует, что самые критичные утечки не скрыты за информацией о частичных утечках. Сопоставление пар также помогает уменьшить количество ложных срабатываний, поскольку оба элемента пары должны использоваться совместно для доступа к ресурсу провайдера.
Защита push-уведомлений может не блокировать более старые версии определенных маркеров, так как эти маркеры могут создавать более высокое количество ложных срабатываний, чем их последняя версия. Защита от push-уведомлений также может не блокировать устаревшие маркеры. Для маркеров, таких как ключи хранилища Azure, Advanced Security поддерживает только недавно созданные маркеры, а не маркеры, соответствующие устаревшим шаблонам.
Включение защиты через командную строку
Защита push-уведомлений встроена изначально в Azure DevOps Git. Если ваши коммиты содержат обнаруженный секрет, будет отображена ошибка, что ваша отправка была отклонена.
Push-защита от веб-интерфейса
Защита от push-уведомлений также работает из веб-интерфейса. Если секрет найден в коммите, отображается следующее сообщение об ошибке, которое останавливает возможность отправки изменений.
Что делать, если ваш пуш был заблокирован
Push-защита блокирует секреты, найденные в обычных текстовых файлах, таких как исходный код или файлы конфигурации JSON, хотя не ограничивается только ими. Эти секреты хранятся в виде открытого текста. Если плохой субъект получает доступ к файлам, и они публикуются в общедоступный репозиторий, секреты доступны всем.
Удалите секрет из помеченного как секретного файла, а затем удалите секрет из истории коммитов.
Если помеченный секрет является заполнителем или примером секрета, обновите поддельный секрет, добавив строку Placeholder перед ним.
Если секрет был добавлен в вашу немедленную предыдущую фиксацию, измените фиксацию и создайте новую фиксацию:
- Удалите секрет из кода.
- Фиксация изменений с помощью
git commit --amend - Снова выполните отправку изменений.
Если секрет добавлен в более ранней истории, отредактируйте коммиты с помощью интерактивного ребейза.
- Используйте
git log, чтобы определить, в каком коммите вы впервые зафиксировали секрет. - Выполните интерактивную перебазу:
git rebase -i [commit ID before credential introduction]~1 - Определите коммит для редактирования, изменив
pickнаeditв первой строке текста, который отображается в редакторе. - Удалите секрет из кода.
- Зафиксируйте изменения с помощью команды
git commit --amend. - Завершите перебазирование, выполнив команду
git rebase --continue.
Отправьте заблокированный секрет
Не обходить помеченные секреты, так как это может поставить под угрозу безопасность вашей компании. Если вы убедитесь, что определенный секрет не является ложным срабатыванием, удалите секрет из всей истории ветви, прежде чем пытаться отправить изменения еще раз.
Если вы считаете, что заблокированный секрет является ложным положительным или безопасным для отправки, вы можете обойти защиту push-уведомлений.
Включите строку skip-secret-scanning:true в сообщение фиксации.
Даже при обходе защиты push-уведомлений в пользовательском интерфейсе оповещения создается оповещение о секрете после отправки секрета.
Сведения о проверках допустимости
Проверки допустимости секретов помогают определять приоритеты оповещений, указывая, доступен ли обнаруженный секрет. Для поддерживаемых типов секретов GitHub Advanced Security для Azure DevOps автоматически запрашивает у издателя, является ли учетные данные активными, после включения проверки секретов не требуется отдельный переключатель функции.
Наличие пакета GitHub Advanced Security для Azure DevOps или защиты секретов автоматически включает проверки действительности.
Что вы получаете
- Автоматическая проверка поддерживаемых типов секретов партнеров (без дополнительной настройки).
- Состояние, показанное в списке предупреждений о сканировании конфиденциальной информации и в области сведений.
- Фильтрация по состоянию проверки, чтобы сосредоточиться на активных секретах.
- При необходимости можно выполнить по запросу проверку действительности секрета в представлении оповещений.
Значения состояния
| Состояние | Meaning | Действие |
|---|---|---|
Active |
Поставщик подтвердил, что секрет по-прежнему доступен для использования. | Откройте оповещение и следуйте его рекомендациям и действиям по исправлению. |
| Неизвестно | Нет окончательного сигнала активности; он может быть неактивен, или проверка завершилась ошибкой из-за проблем со службой, сетью или другими непредвиденными ошибками. | Рассматривайте как потенциально активный; повторите проверку или замену, если чувствительно. |
Типичный рабочий процесс
- Состояние проверки фильтра =
Activeдля отображения оповещений с высоким уровнем риска. - Для каждого активного секрета откройте оповещение и выполните рекомендации и шаги по устранению, указанные в представлении оповещения.
- Используйте проверку по запросу после исправления, чтобы подтвердить изменения состояния.
- Далее укажите неизвестные секреты— повторите проверку по запросу или обработайте ее как активную, если данные конфиденциальны.
- Закройте оповещения в соответствии с вашей политикой после выполнения шагов по устранению проблем в оповещении.
Проверка по запросу
Используйте "Проверить секрет" (в деталях уведомления) после выполнения рекомендаций и устранения или если предыдущая попытка закончилась результатом "Неизвестно". Метка времени обновляется при завершении.