Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сканирование без агента в Microsoft Defender для Облака обеспечивает быстрое и масштабируемое покрытие безопасности для всех репозиториев в Azure DevOps и GitHub. Он автоматически сканирует код, зависимости с открытым кодом и инфраструктуру как код (IaC) для выявления уязвимостей и неправильной настройки. Вам не нужно изменять конвейеры сборки или развертывания. Сканирование кода без агентов упрощает настройку и поддержку с помощью одного коннектора Azure DevOps или GitHub и обеспечивает широкое покрытие, непрерывную аналитику и практические данные по безопасности. Она позволяет группам безопасности и разработки сосредоточиться на устранении рисков без прерывания рабочих процессов разработки.
Вы можете настроить сканеры для запуска и точно определить, какие организации, проекты или репозитории следует включить или исключить из сканирования.
Prerequisites
Прежде чем включить проверку кода без агента, убедитесь, что выполнены следующие требования:
Поддерживаемые варианты использования:
Рекомендации по безопасности для определения приоритетов и устранения уязвимостей кода
Запросы Cloud Security Explorer для поиска репозиториев, включая зависимости, полученные из спецификации состава программного обеспечения (SBOM).
Поддерживаемые регионы: Восточная Австралия, Центральная Канада, Центральная Часть США, Восточная Азия, Восточная ЧАСТЬ США, Северная Европа, Центральная Швеция, Южная Великобритания, Западная Европа.
Поддерживаемые среды: соединитель Azure DevOps и соединитель GitHub.
Роли и разрешения:
Чтобы установить и настроить соединитель, выполните следующие действия.
- Администратор коллекции проектов: требуется в Azure DevOps для выполнения начальной настройки.
- Участник подписки (Subscription Contributor): Требуется в подписке Azure для создания и настройки соединителя.
Чтобы просмотреть результаты безопасности:
- Администратор безопасности. Может управлять параметрами безопасности, политиками и оповещениями, но не может изменять соединитель.
- Читатель безопасности: может просматривать рекомендации, оповещения и политики, но не может вносить изменения.
Ключевые преимущества
Сканирование без агента в Microsoft Defender для облака обеспечивает следующие преимущества:
- Упреждающее управление рисками: выявление рисков в начале процесса разработки. Раннее выявление рисков обеспечивает безопасные практики программирования и снижает уязвимости до их появления в производстве.
- Легкое внедрение: Быстрая настройка с минимальной конфигурацией и без необходимости в изменении конвейера.
- Централизованное управление предприятиями. Автоматическое сканирование кода в нескольких репозиториях с помощью одного соединителя. Централизованное управление обеспечивает широкое покрытие для больших окружений.
- Быстрые инсайты для быстрого устранения: Получайте практические данные об уязвимости сразу после адаптации, что позволяет быстро решать решения и сокращает время воздействия.
- Удобный для разработчика и бесшовно интегрированный: функционирует независимо от конвейеров непрерывной интеграции и развертывания (CI/CD) без необходимости внесения изменений или прямого участия разработчиков. Независимая работа от CI/CD конвейеров позволяет непрерывно контролировать безопасность без нарушения продуктивности разработчиков или рабочего процесса.
- Гибкое покрытие и управление: Выберите, какие сканеры запускаются и что сканируется. Вы можете охватывать все по умолчанию или настраивать параметры для включения или исключения определенных организаций, проектов или репозиториев. Эти варианты настройки позволяют подобрать покрытие безопасности под ваш профиль риска и операционные потребности без лишних сложностей.
- Создание программного счета за материалы (SBOM): автоматическое создание SBOM на каждом сканировании дает командам точный, запрашиваемый список зависимостей и версий в их репозиториях без дополнительных изменений рабочего процесса. Это позволяет быстро анализировать влияние, быстрее реагировать на недавно обнаруженные уязвимости и уверенно принимать решения при оценке воздействия на определенные пакеты или версии.
Возможности обнаружения рисков
Сканирование без агента повышает безопасность путем предоставления целевых, практических рекомендаций по коду приложения, шаблонам инфраструктуры как кода (IaC) и сторонним зависимостям. Это дополнительно к рекомендациям по управлению состоянием безопасности облака, предоставляемых через коннектор. К возможностям обнаружения ключей относятся следующие возможности:
- Уязвимости кода: поиск распространенных ошибок программирования, небезопасных методов программирования и известных уязвимостей на нескольких языках программирования.
- Ошибки конфигурации инфраструктуры как кода: выявление ошибок конфигурации безопасности в шаблонах IaC, которые могут стать причиной небезопасных развертываний.
- Уязвимости зависимостей: выявление известных уязвимостей в пакетах с открытым кодом и пакетах ОС, обнаруженных в репозиториях.
- Перечень компонентов программного обеспечения (SBOM): автоматически формируйте полный доступный для запросов перечень зависимостей и их версий для каждого репозитория.
Создание соединителя повышает безопасность, предоставляя базовые рекомендации по управлению безопасностью облака для репозиториев, конвейеров и подключений к службам.
Поддерживаемые инструменты сканирования
Сканирование без агента использует средства с открытым кодом для поиска уязвимостей и неправильной настройки в шаблонах кода и инфраструктуры как кода (IaC):
| Tool | Поддерживаемые IaC/Языки | Лицензия |
|---|---|---|
| Анализатор шаблонов | Шаблоны ARM IaC, шаблоны Bicep IaC | Лицензия Template Analyzer MIT |
| Checkov; | шаблоны IaC Terraform, файлы планов Terraform, шаблоны AWS CloudFormation, файлы манифестов Kubernetes, файлы чартов Helm, Dockerfiles, шаблоны IaC Azure Resource Manager (ARM), шаблоны IaC Azure Bicep, шаблоны AWS SAM (модель бессерверных приложений), файлы Kustomize, шаблоны платформы Serverless, файлы спецификаций OpenAPI | Лицензия Checkov Apache 2.0 |
| Бандит | Python | Лицензия Bandit Apache 2.0 |
| ESLint | JavaScript, TypeScript, JSX, TSX | Лицензия ESLint MIT |
| Триви | Проверка уязвимостей в пакетах зависимостей и пакетах ОС из файлов манифеста и файлов блокировки (режим сканирования файловой системы) | Лицензия Trivy Apache 2.0 |
| Syft | Alpine (apk), Bitnami пакеты, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, двоичные файлы Go), GitHub (рабочие процессы, действия), Haskell (cabal, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Jenkins Plugins (jpi, hpi), архивы ядра Linux (vmlinuz), модули ядра Linux (ko), Nix (выходные данные в /nix/store), PHP (composer, PECL, Pear), Python (wheel, egg, Poetry, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, auditable binary), Swift (cocoapods, swift-package-manager), Wordpress плагины, Terraform providers (.terraform.lock.hcl) | Лицензия Syft Apache 2.0 |
Инструменты сканирования, перечисленные в предыдущей таблице, поддерживают широкий спектр языков и фреймворков infrastructure-as-code (IaC), обеспечивая тщательный анализ безопасности во всей вашей кодовой базе.
Поддерживаемые системы и типы файлов
Системы управления версиями
Сканирование без агента поддерживает следующие системы управления версиями:
Azure DevOps: полная поддержка репозиториев, подключенных через соединитель Azure DevOps.
GitHub: полная поддержка репозиториев, подключенных через соединитель GitHub.
Языки программирования
Сканирование без агента поддерживает следующие языки программирования и экосистемы зависимостей:
Анализ статического кода: Python; JavaScript/TypeScript.
Экосистемы зависимостей (через Trivy): Node.js (npm, yarn), Python (pip, Pipenv, Poetry), Java (Maven, Gradle), .NET (NuGet), Go modules, Ruby (RubyGems), PHP (Composer), Rust (Cargo) и другие поддерживаемые языки и экосистемы пакетов с использованием манифестов и lockfiles.
Платформы и конфигурации инфраструктуры как кода (IaC)
В следующей таблице перечислены платформы и типы файлов IaC, поддерживаемые сканированием без агента:
| Платформа IaC | Поддерживаемые типы файлов | Notes |
|---|---|---|
| Terraform |
.tf, .tfvars |
Поддерживает шаблоны Terraform IaC на языке HCL2, включая файлы переменных в .tfvars. |
| План Terraform | файлы JSON; | Включает JSON-файлы, представляющие запланированные конфигурации, используемые для анализа и сканирования. |
| AWS CloudFormation | JSON, YAML-файлы | Поддерживает шаблоны AWS CloudFormation для определения ресурсов AWS. |
| Kubernetes | YAML, JSON-файлы | Поддерживает файлы манифеста Kubernetes для определения конфигураций в кластерах. |
| Helm | Структура каталогов диаграмм Helm, файлы YAML | Соответствует стандартной структуре диаграммы Helm и поддерживает файлы диаграмм Helm версии 3. |
| Docker | Файлы с именем Dockerfile | Поддерживает Dockerfiles для конфигураций контейнеров. |
| Шаблоны Azure ARM | файлы JSON; | Поддерживает шаблоны IaC Azure Resource Manager (ARM) в формате JSON. |
| Azure Bicep | файлы .bicep |
Поддерживает шаблоны Bicep IaC, язык предметно-ориентированного программирования (DSL) для ARM. |
| AWS SAM | Файлы YAML | Поддерживает шаблоны модели приложений AWS без сервера (SAM) для бессерверных ресурсов. |
| Kustomize | Файлы YAML | Поддерживает файлы конфигурации для настройки Kubernetes (Kustomize). |
| Бессерверная платформа | Файлы YAML | Поддерживает шаблоны для Serverless Framework при разработке бессерверных архитектур. |
| OpenAPI | YAML, JSON-файлы | Поддерживает файлы спецификаций OpenAPI для определения API RESTful. |
Включите сканирование без агента в организациях Azure DevOps и GitHub
Вы можете подключить как организации Azure DevOps, так и GitHub к Defender для облака, чтобы включить сканирование без агента. Чтобы настроить подключение, используйте одно из следующих руководств:
Настройка охвата и области сканера
Для GitHub и Azure DevOps можно управлять запуском сканеров и точно указывать, какие репозитории включены или исключены из проверки без агента.
Выберите сканеры: Включите или отключите каждый сканер кода и инфраструктуры как кода (IaC) в зависимости от ваших потребностей.
Задайте область сканирования: Определите, нужно ли сканировать все репозитории по умолчанию или определить настраиваемую область для включения или исключения определенных организаций, проектов или репозиториев.
- Режим исключения: Сканируйте все, кроме того, что вы перечисляете.
- Режим включения: Сканируйте только указанные вами элементы списка.
Параметры настраиваемой области:
- Для GitHub задайте область по владельцу или репозиторию.
- Для Azure DevOps задайте область по организации, проекту или репозиторию.
Автоматическое обнаружение новых репозиториев: Автоматическое обнаружение новых репозиториев всегда ограничено организациями или проектами, включенными в область соединителя. Он включен по умолчанию при использовании режима исключения и не задан список настраиваемых областей. Вновь созданные репозитории сканируются автоматически.
Функция автообнаружения недоступна в режиме включения, так как сканируются только перечисленные репозитории.
Эти параметры конфигурации области позволяют сопоставлять сканирование с вашими потребностями безопасности, обновлять покрытие по мере роста среды и избегать ненужных проверок или пробелов.
Как работает сканирование кода без агента
Безагентское сканирование кода функционирует независимо от конвейеров CI/CD. Он использует соединитель Azure DevOps или GitHub для автоматического сканирования кода и конфигураций инфраструктуры как кода (IaC). Вам не нужно изменять конвейеры или добавлять расширения. Использование разъёма без модификаций конвейера позволяет проводить широкий и непрерывный анализ безопасности в нескольких репозиториях. Результаты обрабатываются и отображаются непосредственно в Microsoft Defender для облака.
Процесс бесагентного сканирования кода
После включения функции сканирования без агента в соединителе процесс сканирования включает следующие действия:
Обнаружение репозитория. Система автоматически идентифицирует все репозитории, связанные с помощью соединителя Azure DevOps и GitHub сразу после создания соединителя, а затем каждые 8 часов.
Извлечение кода: он безопасно извлекает последний код из ветви по умолчанию (main) каждого репозитория для анализа, первоначально после установки соединителя, а затем ежедневно.
Analysis: Система использует встроенные средства сканирования, которыми управляет и которые обновляет Microsoft Defender для облака. Эти средства находят уязвимости и неправильные конфигурации в шаблонах кода и инфраструктуры как кода (IaC). Система также создает SBOM для поддержки запросов к пакетам.
Обработка результатов: Обработка данных сканирования через бэкэнд платформы безопасности Defender для облака для создания практических рекомендаций по безопасности.
Results delivery: система отображает результаты в Defender для облака в качестве рекомендаций по безопасности. Подробнее о рекомендациях по безопасности DevOps смотрите ссылку на рекомендации по безопасности DevOps.
Частота и длительность сканирования
Сканирование кода без агента выполняется по следующему расписанию:
Частота сканирования:
- Состояние безопасности репозиториев, конвейеров и подключений служб оценивается при создании соединителя, а затем каждые восемь часов.
- Система сканирует код и шаблоны инфраструктуры как код (IaC) на наличие уязвимостей после создания подключения, а затем ежедневно.
Длительность сканирования: сканирование обычно завершается в течение 15–60 минут в зависимости от размера и сложности репозитория.
Просмотр результатов сканирования и управление ими
После завершения сканирования вы можете получить доступ к результатам безопасности в Microsoft Defender для облака.
Просмотр результатов безагентного сканирования кода
Чтобы получить доступ к результатам, выполните приведенные действия.
В Microsoft Defender для облака перейдите на вкладку рекомендаций по безопасности: Open Security recommendations.
Ознакомьтесь с рекомендациями по репозиториям Azure DevOps и GitHub, например:
Репозитории должны иметь разрешенные результаты сканирования кода . Указывает уязвимости, обнаруженные в репозиториях кода.
Репозитории должны иметь инфраструктуру как код с устраненными результатами сканирования - Обнаруживает ошибки безопасности в неправильно настроенных шаблонах IaC.
Репозиториям необходимо устранять уязвимости, выявленные при сканировании зависимостей. Указывает на обнаружение уязвимых пакетов с открытым исходным кодом в репозиториях.
Полный спектр рекомендаций, поддерживаемых для обеих платформ, см. в разделе Azure DevOps и рекомендации по безопасности GitHub.
Рекомендации по безопасности Azure DevOps и GitHub включают такие пункты, как требование одобрения мульти-ревьюера, ограничение секретного доступа и соблюдение лучших практик для сред Azure DevOps и GitHub.
Выберите любую рекомендацию, чтобы просмотреть сведения о затронутых файлах, серьезности и действиях по исправлению.
Разница между сканированием без агента и сканированием в конвейере
Безагентное сканирование vs. сканирование в конвейере
Безагентное сканирование кода и сканирование в конвейере с использованием расширения Microsoft Security DevOps обеспечивают сканирование безопасности в Azure DevOps и GitHub. Они служат разным потребностям и могут дополнять друг друга. В следующей таблице приведены основные различия, позволяющие выбрать вариант, подходящий для вашей среды.
| Aspect | Сканирование программного кода без агента | Сканирование в конвейере |
|---|---|---|
| Соответствие сценарию использования | Предлагает широкий охват с минимальными перебоями для разработчиков | Предоставляет наглядные сканирования, интегрированные в конвейер, с настраиваемыми настройками. |
| Область сканирования и охват | Основное внимание уделяется уязвимостям инфраструктуры как кода (IaC), уязвимостям кода и уязвимостям зависимостей с открытым кодом на запланированной основе (ежедневно) | Предоставляет широкий охват, включая двоичные файлы и образы контейнеров, запускаемые при каждом запуске конвейера. |
| Установка и настройка | Не требуется дополнительная настройка после создания соединителя | Требуется ручная установка и настройка в каждом конвейере CI/CD |
| Интеграция конвейера | Выполняется независимо от конвейеров CI/CD без изменения рабочих процессов | Интегрируется в конвейер CI/CD, требуя конфигурации в каждом конвейере |
| Настройка сканера | Позволяет выбрать, какие сканеры запускаются | Разрешает настройку с помощью определенных сканеров, категорий, языков, уровней конфиденциальности и средств, отличных от Майкрософт |
| Результаты и отзывы | Предоставляет доступ к результатам в Defender для облака | Обеспечивает обратную связь в режиме, близком к реальному времени, в конвейере CI/CD, с результатами, которые также отображаются в Defender для облака |
| Условия прерывания и сбоя | Нельзя ломать сборки | Можно настроить для прекращения сборок на основе уровня выявленных проблем безопасности. |
Влияние масштабируемости и производительности
Сканирование без агента позволяет избежать создания ресурсов в подписке и не требует сканирования во время процесса пайплайна. Он использует REST API Azure DevOps и GitHub для извлечения метаданных и кода. Это означает, что количество вызовов API засчитывается в пределы скорости Azure DevOps и GitHub, но это не влечет за собой прямых затрат на передачу данных. Служба управляет сканированием, чтобы гарантировать, что они остаются в рамках ограничений частоты запросов Azure DevOps и GitHub, не нарушая работу среды разработки. Этот метод обеспечивает эффективную высокопроизводительную проверку между репозиториями, не влияя на рабочие процессы DevOps. Дополнительные сведения см. в статье об ограничениях скорости и использовании Azure DevOps иограничениях скорости для REST API GitHub.
Безопасность данных, соответствие требованиям и управление доступом для сканирования без агента
служба проверки кода без агента Microsoft Defender для облака помогает защитить код с помощью средств управления безопасностью данных и конфиденциальностью:
- Шифрование данных и управление доступом: система шифрует все данные во время передачи с помощью стандартных отраслевых протоколов. Доступ к коду могут получить только авторизованные службы Defender для облака.
- Размещение и хранение данных: проверки выполняются в том же регионе, что и ваши подключения Azure DevOps и GitHub (США или ЕС), для соблюдения требований по защите данных. Система обрабатывает код во время сканирования, а затем безопасно удаляет его. Он не сохраняет долгосрочное хранилище кода.
- Доступ к репозиториям: служба создает защищенный токен доступа для Azure DevOps и GitHub, чтобы запускать сканирования. Этот маркер позволяет службе получать необходимые метаданные и код без создания ресурсов в подписке. Только Defender для облака компоненты могут использовать этот доступ.
- Поддержка соответствия требованиям: служба соответствует нормативным стандартам и стандартам безопасности для обработки данных и конфиденциальности для обеспечения безопасной, региональной обработки кода клиента.
Эти меры обеспечивают безопасный, совместимый и эффективный процесс сканирования кода, сохраняя конфиденциальность и целостность данных.
Ограничения (общедоступная предварительная версия)
На этапе общедоступной предварительной версии применяются следующие ограничения:
- Нет двоичного сканирования: выполняются только средства проверки кода (SAST) и IaC.
- Частота сканирования: сканирование без агента проверяет репозитории при включении функции, а затем один раз в день.
- Размер репозитория: безагентное сканирование кода поддерживает репозитории размером менее 1 ГБ.
-
Покрытие ветви: сканирование охватывает только ветвь по умолчанию (обычно
main). - Настройка средств сканирования: Невозможно настроить инструменты.
В настоящее время Syft (SBOM) имеет следующие ограничения:
Не удается скачать SBOMs. Результаты Syft можно запрашивать, чтобы найти определенные пакеты и репозитории, которые используют их. Инструкции см. в разделе Запрос спецификации программных компонентов.
Для репозитория требуется файл блокировки. В противном случае найдены только прямые зависимости.
Ограничение размера SBOM ограничено 1 МБ. Если идентифицировано множество пакетов, загрузка в Cloud Map завершится ошибкой.
Включение SBOM не настраивается или не загружается. SBOM формируется при каждом безагентном сканировании.
Время ожидания — 15 минут для запуска средства SBOM.
Отключение безагентного сканирования кода не удаляет рекомендации по SBOM.