Рекомендации по безопасности ресурсов DevOps
В этой статье перечислены рекомендации, которые могут отображаться в Microsoft Defender для облака при подключении среды Azure DevOps, GitHub или GitLab с помощью страницы параметров среды. Рекомендации, которые отображаются в вашей среде, основаны на ресурсах, которые вы защищаете, и на настраиваемой конфигурации.
Дополнительные сведения о действиях, которые можно предпринять в ответ на эти рекомендации, см. в разделе "Исправление рекомендаций" в Defender для облака.
Дополнительные сведения о преимуществах и функциях безопасности DevOps.
Рекомендации DevOps не влияют на оценку безопасности. Чтобы решить, какие рекомендации необходимо сначала устранить, ознакомьтесь с серьезностью каждой рекомендации и ее потенциальным воздействием на оценку безопасности.
Рекомендации По Azure DevOps
Репозитории Azure DevOps должны иметь включенную расширенную безопасность GitHub для Azure DevOps (GHAzDO)
Описание. Безопасность DevOps в Defender для облака использует центральную консоль для обеспечения возможностей команд безопасности с возможностью защиты приложений и ресурсов от кода в облаке в Azure DevOps. Благодаря включению репозиториев GitHub Advanced Security для Azure DevOps (GHAzDO), включая расширенную безопасность GitHub для Azure DevOps, вы получите результаты о секретах, зависимостях и уязвимостях кода в репозиториях Azure DevOps, обнаруженных в Microsoft Defender для облака.
Серьезность: высокий уровень
Репозитории Azure DevOps должны иметь разрешение на проверку секретов
Описание. Секреты найдены в репозиториях кода. Исправьте немедленно, чтобы предотвратить нарушение безопасности. Секреты, найденные в репозиториях, могут утечь или обнаруживать злоумышленниками, что приводит к компрометации приложения или службы. Средство проверки учетных данных Microsoft Security DevOps проверяет только сборки, на которых она настроена для запуска. Поэтому результаты могут не отражать полное состояние секретов в репозиториях.
Серьезность: высокий уровень
Репозитории Azure DevOps должны иметь разрешенные результаты сканирования кода
Описание: уязвимости были найдены в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости.
Серьезность: средний
Репозитории Azure DevOps должны иметь разрешенные результаты проверки уязвимостей зависимостей
Описание: уязвимости зависимостей, обнаруженные в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости.
Серьезность: средний
Репозитории Azure DevOps должны иметь инфраструктуру в качестве разрешенных результатов сканирования кода
Описание. Проблемы конфигурации безопасности кода инфраструктуры в качестве кода, обнаруженные в репозиториях. Проблемы обнаружены в файлах шаблонов. Чтобы повысить уровень безопасности связанных облачных ресурсов, настоятельно рекомендуется исправить эти уязвимости.
Серьезность: средний
Конвейеры Azure DevOps не должны иметь секреты, доступные для сборок вилок
Описание. В общедоступных репозиториях возможно, что пользователи за пределами организации создают вилки и выполняют сборки в вилку репозитория. В таком случае, если этот параметр включен, аутсайдеры могут получить доступ к секретам конвейера сборки, которые должны были быть внутренними.
Серьезность: высокий уровень
Подключения к службе Azure DevOps не должны предоставлять доступ ко всем конвейерам
Описание. Подключения служб используются для создания подключений из Azure Pipelines к внешним и удаленным службам для выполнения задач в задании. Разрешения конвейера определяют, какие конвейеры разрешены для использования подключения к службе. Чтобы обеспечить безопасность операций конвейера, подключения к службам не должны предоставляться доступ ко всем конвейерам YAML. Это помогает поддерживать принцип наименьшей привилегии, так как уязвимость в компонентах, используемых одним конвейером, может использоваться злоумышленником для атаки на другие конвейеры с доступом к критически важным ресурсам.
Серьезность: высокий уровень
Защищенные файлы Azure DevOps не должны предоставлять доступ ко всем конвейерам
Описание. Безопасные файлы предоставляют разработчикам способ хранения файлов, которые можно совместно использовать в конвейерах. Эти файлы обычно используются для хранения секретов, таких как сертификаты подписи и ключи SSH. Если защищенный файл предоставляется доступ ко всем конвейерам YAML, несанкционированный пользователь может украсть информацию из защищенных файлов, создав конвейер YAML и доступ к защищенному файлу.
Серьезность: высокий уровень
Группы переменных Azure DevOps с секретными переменными не должны предоставлять доступ ко всем конвейерам
Описание. Группы переменных хранят значения и секреты, которые может потребоваться передать в конвейер YAML или сделать доступными для нескольких конвейеров. В одном проекте можно совместно использовать группы переменных и использовать их в нескольких конвейерах. Если группа переменных, содержащая секреты, помечена как доступная для всех конвейеров YAML, злоумышленник может использовать ресурсы, связанные с секретными переменными, создав новый конвейер.
Серьезность: высокий уровень
Подключения к службе Azure DevOps классической версии Azure не должны использоваться для доступа к подписке
Описание. Используйте тип подключений службы Azure Resource Manager (ARM) вместо подключений классической службы Azure для подключения к подпискам Azure. Модель ARM предлагает несколько улучшений безопасности, включая более строгий контроль доступа, улучшенный аудит, развертывание и управление на основе ARM, доступ к управляемым удостоверениям и хранилищу ключей для секретов, проверку подлинности на основе разрешений Записи, а также поддержку тегов и групп ресурсов для упрощенного управления.
Серьезность: средний
(предварительная версия) Репозитории Azure DevOps должны иметь разрешенные результаты тестирования безопасности API
Описание: уязвимости безопасности API, обнаруженные в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости.
Серьезность: средний
(предварительная версия) Репозитории Azure DevOps должны требовать минимального утверждения двух рецензентов для отправки кода.
Описание. Чтобы предотвратить прямое фиксацию непреднамеренных или вредоносных изменений, важно реализовать политики защиты для ветвь по умолчанию в репозиториях Azure DevOps. Рекомендуется утвердить запросы на вытягивание по крайней мере двумя рецензентами кода, прежде чем код будет объединен с ветвь по умолчанию. Требуя утверждения от минимального числа двух рецензентов, можно снизить риск несанкционированных изменений, что может привести к нестабильности системы или уязвимостям безопасности.
Эта рекомендация предоставляется в Defender для облака базовой безопасности, если вы подключили Azure DevOps к Defender для облака.
Серьезность: высокий уровень
(предварительная версия) Репозитории Azure DevOps не должны разрешать запрашивателям утверждать собственные запросы на вытягивание
Описание. Чтобы предотвратить прямое фиксацию непреднамеренных или вредоносных изменений, важно реализовать политики защиты для ветвь по умолчанию в репозиториях Azure DevOps. Мы рекомендуем запретить создателям запросов на вытягивание утвердить свои собственные отправки, чтобы убедиться, что каждое изменение проходит целевую проверку кем-то, кроме автора. Благодаря этому можно снизить риск несанкционированных изменений, что может привести к нестабильности системы или уязвимостям безопасности.
Эта рекомендация предоставляется в Defender для облака базовой безопасности, если вы подключили Azure DevOps к Defender для облака.
Серьезность: высокий уровень
(предварительная версия) Проекты Azure DevOps должны иметь создание классических конвейеров, отключенных
Описание. Отключение создания классических конвейеров сборки и выпуска предотвращает проблемы безопасности, связанные с YAML и классическими конвейерами, совместно использующие одни и те же ресурсы, например подключения к службам. Потенциальные злоумышленники могут использовать классические конвейеры для создания процессов, которые не создают типичные механизмы защиты, настроенные вокруг современных конвейеров YAML.
Серьезность: высокий уровень
Рекомендации GitHub
Организации GitHub не должны делать секреты действий доступными для всех репозиториев
Описание. Для секретов, используемых в рабочих процессах GitHub Action, хранящихся на уровне организации GitHub, можно использовать политики доступа для управления тем, какие репозитории могут использовать секреты организации. Секреты уровня организации позволяют совместно использовать секреты между несколькими репозиториями. Это сокращает потребность в создании повторяющихся секретов. Однако после того, как секрет становится доступным для репозитория, любой пользователь с доступом на запись в репозитории может получить доступ к секрету из любой ветви в рабочем процессе. Чтобы уменьшить область атаки, убедитесь, что секрет доступен только из выбранных репозиториев.
Эта рекомендация предоставляется в Defender для облака базовой безопасности, если вы подключили Azure DevOps к Defender для облака.
Серьезность: высокий уровень
Репозитории GitHub должны иметь включенную проверку секретов
Описание: GitHub сканирует репозитории известных типов секретов, чтобы предотвратить мошеннические использование секретов, которые были случайно зафиксированы в репозиториях. Сканирование секретов будет охватывать весь журнал на наличие секретов GIT во всех ветвях, присутствующих в репозитории GitHub. Примерами секретов являются маркеры и закрытые ключи, которые поставщик услуг может выдать для проверки подлинности. Если секрет зарегистрирован в репозитории, любой, у кого есть доступ на чтение в репозитории, сможет использовать этот секрет для доступа к внешней службе с теми привилегиями. Секреты должны храниться в выделенном безопасном расположении за пределами репозитория проекта.
Серьезность: высокий уровень
Репозитории GitHub должны иметь включенную проверку кода
Описание: GitHub использует сканирование кода для анализа кода для поиска уязвимостей безопасности и ошибок в коде. Сканирование кода можно использовать для поиска, рассмотрения и определения приоритетов исправлений существующих проблем в коде. Сканирование кода также может защитить от внедрения новых проблем разработчиками. Сканирования могут планироваться на определенные дни и время или активироваться при возникновении определенного события в репозитории, например при отправке. Если при сканировании кода обнаружена потенциальная уязвимость или ошибка в коде, GitHub отображает оповещение в репозитории. Уязвимость — это проблема в коде проекта, которую можно использовать для нарушения конфиденциальности, целостности или доступности проекта.
Серьезность: средний
В репозиториях GitHub должно быть включено сканирование Dependabot
Описание: GitHub отправляет оповещения Dependabot при обнаружении уязвимостей в зависимостях кода, влияющих на репозитории. Уязвимость — это недостаток в коде проекта, который может привести к нарушению конфиденциальности, целостности или доступности проекта или других проектов, использующих его код. Уязвимости зависят от типа, серьезности и метода атаки. Если ваш код зависит от пакета, содержащего уязвимость в системе безопасности, эта уязвимая зависимость может вызвать ряд проблем.
Серьезность: средний
Репозитории GitHub должны иметь разрешение на проверку секретов
Описание: секреты, найденные в репозиториях кода. Это необходимо исправить немедленно, чтобы предотвратить брешь в системе безопасности. Секреты, найденные в репозиториях, могут быть раскрыты или обнаружены злоумышленниками, что может привести к компрометации приложения или службы.
Серьезность: высокий уровень
Репозитории GitHub должны иметь разрешенные результаты сканирования кода
Описание: уязвимости, обнаруженные в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости.
Серьезность: средний
Репозитории GitHub должны иметь разрешенные результаты проверки уязвимостей зависимостей
Описание: репозитории GitHub должны иметь разрешенные результаты проверки уязвимостей зависимостей.
Серьезность: средний
Репозитории GitHub должны иметь инфраструктуру в качестве разрешенных результатов сканирования кода
Описание. Проблемы с конфигурацией безопасности кода инфраструктуры были найдены в репозиториях. Проблемы обнаружены в файлах шаблонов. Чтобы повысить уровень безопасности связанных облачных ресурсов, настоятельно рекомендуется исправить эти уязвимости.
Серьезность: средний
Репозитории GitHub должны иметь политики защиты для ветвь по умолчанию включено
Описание. Ветвь по умолчанию репозитория следует защитить с помощью политик защиты ветви, чтобы предотвратить непосредственное фиксацию непреднамеренных или вредоносных изменений в репозитории.
Серьезность: высокий уровень
Репозитории GitHub должны иметь принудительная отправка, чтобы ветвь по умолчанию отключены
Описание. Как правило, ветвь по умолчанию используется для развертывания и других привилегированных действий, любые изменения в нем должны рассматриваться с осторожностью. Включение принудительная отправка может привести к непреднамеренным или вредоносным изменениям в ветвь по умолчанию.
Серьезность: средний
У организаций GitHub должна быть включена защита от принудительной проверки секретов
Описание: push-защита блокирует фиксации, содержащие секреты, таким образом, предотвращая случайное раскрытие секретов. Чтобы избежать риска раскрытия учетных данных, защита push-уведомлений должна быть включена автоматически для каждого репозитория с поддержкой проверки секретов.
Серьезность: высокий уровень
Репозитории GitHub не должны использовать локальные модули выполнения
Описание. Локальные runners на GitHub не гарантируют операции в временных чистых виртуальных машинах и могут быть постоянно скомпрометированы ненадежным кодом в рабочем процессе. Таким образом, для рабочих процессов действий не следует использовать локальные runners.
Серьезность: высокий уровень
Организации GitHub должны иметь разрешения рабочего процесса действий, заданные только для чтения
Описание. По умолчанию рабочие процессы действий должны предоставляться только для чтения разрешения, чтобы запретить злоумышленникам использовать избыточные рабочие процессы для доступа и изменения ресурсов.
Серьезность: высокий уровень
Организации GitHub должны иметь несколько пользователей с разрешениями администратора
Описание. Наличие по крайней мере двух администраторов снижает риск потери доступа администратора. Это полезно в случае сценариев учетной записи с разрывом.
Серьезность: высокий уровень
Организации GitHub должны иметь базовые разрешения, не имеющие разрешений или чтения
Описание. Базовые разрешения должны иметь значение none или прочитать для организации, чтобы следовать принципу наименьших привилегий и предотвратить ненужный доступ.
Серьезность: высокий уровень
(предварительная версия) Репозитории GitHub должны иметь разрешенные результаты тестирования безопасности API
Описание: уязвимости безопасности API были найдены в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости.
Серьезность: средний
(предварительная версия) Организации GitHub не должны делать секреты действий доступными для всех репозиториев
Описание. Для секретов, используемых в рабочих процессах GitHub Action, хранящихся на уровне организации GitHub, можно использовать политики доступа для управления тем, какие репозитории могут использовать секреты организации. Секреты уровня организации позволяют совместно использовать секреты между несколькими репозиториями, уменьшая необходимость создания повторяющихся секретов. Однако, когда секрет становится доступным для репозитория, любой пользователь с доступом на запись в репозитории может получить доступ к секрету из любой ветви в рабочем процессе. Чтобы уменьшить область атаки, убедитесь, что секрет доступен только из выбранных репозиториев.
Серьезность: высокий уровень
(предварительная версия) Организации GitHub должны блокировать предложения Copilot, соответствующие общедоступному коду.
Описание. Включение фильтра GitHub Copilot для блокировки предложений кода, соответствующих общедоступному коду на GitHub, повышает безопасность и соответствие юридическим требованиям. Он предотвращает непреднамеренное включение общедоступного или открытого исходного кода, снижение риска юридических вопросов и обеспечение соблюдения условий лицензирования. Кроме того, это помогает избежать внедрения потенциальных уязвимостей из общедоступного кода в проекты организации, тем самым обеспечивая более высокое качество кода и безопасность. Если фильтр включен, GitHub Copilot проверяет предложения кода со своим окружающим кодом около 150 символов в общедоступном коде на сайте GitHub. Если совпадение или близкое совпадение, предложение не будет отображаться.
Серьезность: высокий уровень
(предварительная версия) Организации GitHub должны применять многофакторную проверку подлинности для внешний участник совместной работы
Описание. Применение многофакторной проверки подлинности для внешний участник совместной работы в организации GitHub — это мера безопасности, которая требует от сотрудников использовать дополнительную форму идентификации, помимо пароля для доступа к репозиториям и ресурсам организации. Это повышает безопасность путем защиты от несанкционированного доступа, даже если пароль скомпрометирован и помогает обеспечить соответствие отраслевым стандартам. Он включает в себя информирование сотрудников о требовании и предоставление поддержки для перехода, в конечном счете снижение риска нарушений данных.
Серьезность: высокий уровень
(предварительная версия) Репозитории GitHub должны требовать минимального утверждения двух рецензентов для отправки кода.
Описание. Чтобы предотвратить прямое фиксацию непреднамеренных или вредоносных изменений, важно реализовать политики защиты для ветвь по умолчанию в репозиториях GitHub. Рекомендуется утвердить запросы на вытягивание по крайней мере двумя рецензентами кода, прежде чем код будет объединен с ветвь по умолчанию. Требуя утверждения от минимального числа двух рецензентов, можно снизить риск несанкционированных изменений, что может привести к нестабильности системы или уязвимостям безопасности.
Серьезность: высокий уровень
Рекомендации GitLab
Проекты GitLab должны иметь разрешение на проверку секретов
Описание. Секреты найдены в репозиториях кода. Это необходимо исправить немедленно, чтобы предотвратить брешь в системе безопасности. Секреты, найденные в репозиториях, могут быть раскрыты или обнаружены злоумышленниками, что может привести к компрометации приложения или службы.
Серьезность: высокий уровень
Проекты GitLab должны иметь разрешенные результаты сканирования кода
Описание: уязвимости были найдены в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости.
Серьезность: средний
У проектов GitLab должна быть устранена уязвимость проверки зависимостей.
Описание: репозитории GitHub должны иметь разрешенные результаты проверки уязвимостей зависимостей.
Серьезность: средний
Проекты GitLab должны иметь инфраструктуру в качестве средства сканирования кода, разрешенные результаты
Описание. Проблемы с конфигурацией безопасности кода инфраструктуры были найдены в репозиториях. Обнаруженные проблемы были обнаружены в файлах шаблонов. Чтобы повысить уровень безопасности связанных облачных ресурсов, настоятельно рекомендуется исправить эти уязвимости.
Серьезность: средний
Нерекомендуемые рекомендации по безопасности DevOps
В репозиториях кода должны быть устранены результаты сканирования кода
Описание. Безопасность DevOps в Defender для облака обнаружила уязвимости в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости. (Связанная политика отсутствует)
Серьезность: средний
В репозиториях кода должны быть исправлены результаты секретного сканирования
Описание. Безопасность DevOps в Defender для облака обнаружила секрет в репозиториях кода. Это необходимо исправить немедленно, чтобы предотвратить брешь в системе безопасности. Секреты, найденные в репозиториях, могут быть раскрыты или обнаружены злоумышленниками, что может привести к компрометации приложения или службы. Для Azure DevOps средство Microsoft Security DevOps CredScan проверяет только сборки, на которых был настроен запуск средства. Поэтому результаты могут не отражать полное состояние секретов в репозиториях. (Связанная политика отсутствует)
Серьезность: высокий уровень
В репозиториях кода должны быть устранены ошибки в результате сканирования Dependabot
Описание. Безопасность DevOps в Defender для облака обнаружила уязвимости в репозиториях кода. Чтобы повысить уровень безопасности репозиториев, настоятельно рекомендуется устранить эти уязвимости. (Связанная политика отсутствует)
Серьезность: средний
В репозиториях кода должны быть устранены результаты сканирования инфраструктуры как кода
Описание. Безопасность DevOps в Defender для облака обнаружила инфраструктуру в качестве проблем с конфигурацией безопасности кода в репозиториях. Обнаруженные проблемы были обнаружены в файлах шаблонов. Чтобы повысить уровень безопасности связанных облачных ресурсов, настоятельно рекомендуется исправить эти уязвимости. (Связанная политика отсутствует)
Серьезность: средний
Репозитории GitHub должны иметь включенную проверку кода
Описание: GitHub использует сканирование кода для анализа кода для поиска уязвимостей безопасности и ошибок в коде. Сканирование кода можно использовать для поиска, рассмотрения и определения приоритетов исправлений существующих проблем в коде. Сканирование кода также может защитить от внедрения новых проблем разработчиками. Сканирования могут планироваться на определенные дни и время или активироваться при возникновении определенного события в репозитории, например при отправке. Если при сканировании кода обнаружена потенциальная уязвимость или ошибка в коде, GitHub отображает оповещение в репозитории. Уязвимость — это проблема в коде проекта, которую можно использовать для нарушения конфиденциальности, целостности или доступности проекта. (Связанная политика отсутствует)
Серьезность: средний
Репозитории GitHub должны иметь включенную проверку секретов
Описание: GitHub сканирует репозитории известных типов секретов, чтобы предотвратить мошеннические использование секретов, которые были случайно зафиксированы в репозиториях. Сканирование секретов будет охватывать весь журнал на наличие секретов GIT во всех ветвях, присутствующих в репозитории GitHub. Примерами секретов являются маркеры и закрытые ключи, которые поставщик услуг может выдать для проверки подлинности. Если секрет зарегистрирован в репозитории, любой, у кого есть доступ на чтение в репозитории, сможет использовать этот секрет для доступа к внешней службе с теми привилегиями. Секреты должны храниться в выделенном безопасном расположении за пределами репозитория проекта. (Связанная политика отсутствует)
Серьезность: высокий уровень
В репозиториях GitHub должно быть включено сканирование Dependabot
Описание: GitHub отправляет оповещения Dependabot при обнаружении уязвимостей в зависимостях кода, влияющих на репозитории. Уязвимость — это недостаток в коде проекта, который может привести к нарушению конфиденциальности, целостности или доступности проекта или других проектов, использующих его код. Уязвимости зависят от типа, серьезности и метода атаки. Если ваш код зависит от пакета, содержащего уязвимость в системе безопасности, эта уязвимая зависимость может вызвать ряд проблем. (Связанная политика отсутствует)
Серьезность: средний