Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставленные учетные данные в инженерных системах обеспечивают легко эксплуатируемые возможности для злоумышленников. Чтобы защититься от этой угрозы, GitHub Advanced Security для Azure DevOps проверяет учетные данные и другое конфиденциальное содержимое в исходном коде. Защита от отправки также предотвращает утечку учетных данных в первую очередь. Вам необходима либо расширенная безопасность 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. Большинство ресурсов имеют как первичные, так и вторичные учетные данные. Метод для переката первичных учетных данных по сравнению с вторичными учетными данными идентичны, если иное не указано.
Управление оповещениями проверки секретов
Просмотр оповещений для репозитория
Перейдите на вкладку "Секреты" , чтобы просмотреть все оповещения проверки секретов.
Если расширенная безопасность недавно включена для репозитория, может появиться карточка, указывающая, что расширенная безопасность по-прежнему сканирует репозиторий.
После завершения проверки отображаются все результаты. Одно оповещение создается для каждого обнаруженного уникального учетных данных во всех ветвях и журнале репозитория. Фильтры ветвей отсутствуют, так как они свернуты в одно оповещение.
Непровидные секреты доступны для просмотра, выбрав "Другие" в раскрывающемся списке доверия на вкладке "Сканирование секретов".
Сведения об оповещении
При переходе к оповещению отображается подробное представление оповещений и отображает дополнительные сведения о поиске и предоставлении конкретных рекомендаций по исправлению для разрешения оповещения.
Секция | Описание |
---|---|
Расположение | В разделе "Расположения" описаны пути, где сканирование секретов обнаружило утекшие учетные данные. В журнале может быть несколько расположений или несколько фиксаций, содержащих утечку учетных данных. Все эти расположения и фиксации отображаются в разделе "Расположения " с прямой ссылкой на фрагмент кода и фиксируются в нем. |
Рекомендация | В разделе рекомендаций содержатся рекомендации по исправлению или ссылка на рекомендации по исправлению в документации, не принадлежащей Майкрософт, для идентифицированных учетных данных. |
Закрыть оповещение | Для оповещений о проверке секретов нет автоматического исправления. Все оповещения проверки секретов должны быть проверены вручную, как исправлены на странице сведений об оповещении. Нажмите кнопку "Закрыть", чтобы убедиться, что секрет отозван. |
Важность | Все оповещения проверки секретов задаются как критически важные. Любые предоставленные учетные данные потенциально являются возможностью для вредоносного субъекта. |
Поиск сведений | Тип учетных данных и правила, используемых для поиска учетных данных, перечислены в разделе "Поиск сведений " на боковой панели страницы сведений об оповещении. |
С секретами, не связанными с поставщиками, тег Confidence: other также отображается вместе со значком уровня серьезности в подробностях оповещения.
Исправление оповещений сканирования секретов
Каждый секрет имеет уникальные действия по исправлению, которые помогут вам отменить и повторно создать новый секрет на своем месте. Подробные сведения об оповещении содержат конкретные шаги или документацию по каждому оповещению.
Оповещение о сканировании секретов остается открытым до закрытия. Чтобы проверить, исправлена ли оповещение о проверке секретов:
- Перейдите к оповещению, которое вы хотите закрыть, и выберите оповещение.
- Выберите раскрывающийся список "Закрыть оповещение".
- Если этот параметр еще не выбран, нажмите кнопку "Исправлено".
- Нажмите кнопку "Закрыть", чтобы отправить и закрыть оповещение.
Отключение оповещений проверки секретов
Чтобы закрыть оповещение, сделайте следующее:
- Перейдите к оповещению, которое вы хотите закрыть, и выберите оповещение.
- Выберите раскрывающийся список "Закрыть оповещение".
- Если этот параметр еще не выбран, выберите "Риск принят " или "Ложный положительный результат " в качестве причины закрытия.
- Добавьте необязательный комментарий в текстовое поле "Комментарий ".
- Нажмите кнопку "Закрыть", чтобы отправить и закрыть оповещение.
- Состояние генерации оповещений изменяется с open to Closed и отображает причину увольнения.
Вы можете вручную открыть любое ранее отклоненное оповещение.
Защита скомпрометированных секретов
После фиксации секрета в репозитории секрет скомпрометирован. Корпорация Майкрософт рекомендует следующие действия для скомпрометированных секретов:
Это важно
Мы рекомендуем более безопасные маркеры Microsoft Entra по сравнению с более высоким уровнем риска персональных маркеров доступа. Узнайте больше о наших усилиях по сокращению использования PAT. Ознакомьтесь с нашим руководством по проверке подлинности , чтобы выбрать правильный механизм проверки подлинности для ваших потребностей.
- Для скомпрометированного маркера личного доступа Azure DevOps удалите скомпрометированный маркер, создайте новый маркер и обновите все службы, использующие старый маркер.
- Для всех остальных секретов сначала убедитесь, что секрет, зафиксированный в Azure Repos, действителен. Если это так, создайте новый секрет, обновите все службы, использующие старый секрет, а затем удалите старый секрет.
- Определите все действия, совершенные скомпрометированным токеном в отношении ресурсов вашего предприятия.
При обновлении секрета сохраните новый секрет безопасно и убедитесь, что он никогда не сохраняется в виде обычного текста. Один из вариантов — использовать Azure Key Vault или другие решения для управления секретами.
Защита от отправки секретов
Push-защита проверяет все входящие push-запросы для секретов высокой достоверности и предотвращает передачу. В сообщении об ошибке отображаются все идентифицированные секреты, которые необходимо удалить или продолжить отправку секретов.
Сведения о оповещениях защиты от push-уведомлений
Оповещения о защите push-уведомлений — это оповещения пользователей, сообщаемые с помощью push-защиты. Сканирование секретов в качестве защиты от отправки в настоящее время сканирует репозитории для секретов, выданных некоторыми поставщиками услуг.
Если для доступа к ресурсу требуются парные учетные данные, то проверка секретов может создать оповещение только при обнаружении обеих частей пары в одном файле. Связывание гарантирует, что наиболее критически важные утечки не скрыты за информацией о частичных утечках. Сопоставление пар также помогает уменьшить ложные срабатывания, так как оба элемента пары должны использоваться вместе для доступа к ресурсу поставщика.
Защита push-уведомлений может не блокировать более старые версии определенных маркеров, так как эти маркеры могут создавать более высокое количество ложных срабатываний, чем их последняя версия. Защита от push-уведомлений также может не блокировать устаревшие маркеры. Для маркеров, таких как ключи служба хранилища Azure, расширенная безопасность поддерживает только недавно созданные маркеры, а не маркеры, соответствующие устаревшим шаблонам.
Отправка защиты из командной строки
Защита push-уведомлений встроена изначально в Azure DevOps Git. Если ваши коммиты содержат обнаруженный секрет, будет отображена ошибка, что ваша отправка была отклонена.
Push-защита от веб-интерфейса
Защита от 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-уведомлений в пользовательском интерфейсе оповещения создается оповещение о секрете после отправки секрета.