Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A verificação de código sem agente no Microsoft Defender for Cloud oferece cobertura de segurança rápida e escalável para todos os repositórios no Azure DevOps e no GitHub. A verificação de código sem agente verifica automaticamente o código, as dependências de código aberto e a infraestrutura como código (IaC) para identificar vulnerabilidades e configurações incorretas sem exigir alterações nos pipelines de compilação ou implantação. Essa abordagem simplifica a configuração e a manutenção com um único conector do Azure DevOps ou GitHub e fornece ampla cobertura, insights contínuos e descobertas de segurança acionáveis. Ele permite que as equipes de segurança e desenvolvimento se concentrem na correção de riscos sem problemas, sem interromper os fluxos de trabalho de desenvolvimento.
Você pode personalizar quais scanners executar e definir exatamente quais organizações, projetos ou repositórios devem ser incluídos ou excluídos da verificação.
Pré-requisitos
Casos de uso suportados:
Recomendações de segurança para priorizar e corrigir vulnerabilidades de código
O Cloud Security Explorer consulta para localizar repositórios, incluindo dependências resultantes de um SBOM.
Regiões suportadas: Leste da Austrália, Canadá Central, Centro dos EUA, Leste Asiático, Leste dos EUA, Norte da Europa, Suécia Central, Sul do Reino Unido, Europa Ocidental.
Ambientes suportados: conector do Azure DevOps e conector GitHub.
Funções e permissões:
Para instalar e configurar o conector:
- Project Collection Admin: Necessário no Azure DevOps para executar a configuração inicial.
- Colaborador da Assinatura: Necessário na assinatura do Azure para criar e configurar o conector.
Para visualizar os resultados de segurança:
- Administrador de segurança: pode gerenciar configurações de segurança, políticas e alertas, mas não pode modificar o conector.
- Leitor de segurança: pode exibir recomendações, alertas e políticas, mas não pode fazer alterações.
Principais benefícios
Alguns dos principais benefícios da verificação de código sem agente no Microsoft Defender for Cloud são:
- Gestão proativa de riscos: Identificar riscos no início do processo de desenvolvimento. Isso permite práticas de codificação seguras e reduz as vulnerabilidades antes que elas cheguem à produção.
- Integração sem esforço: configure rapidamente com configuração mínima e sem alterações no pipeline.
- Gerenciamento centralizado em escala empresarial: digitalize automaticamente o código em vários repositórios usando um único conector. Isso oferece ampla cobertura para grandes ambientes.
- Insights rápidos para correção rápida: receba informações acionáveis sobre vulnerabilidades logo após a integração. Isso permite correções rápidas e reduz o tempo de exposição.
- Fácil de desenvolver e sem descontinuidades: opere independentemente dos pipelines de integração contínua e implementação contínua (CI/CD), sem necessidade de alterações ou envolvimento direto do programador. Isso permite o monitoramento contínuo da segurança sem interromper a produtividade ou os fluxos de trabalho do desenvolvedor.
- Cobertura e controlo flexíveis: Escolha quais scanners são acionados e o que é digitalizado. Você pode cobrir tudo por padrão ou personalizar configurações para incluir ou excluir organizações, projetos ou repositórios específicos. Isto permite-lhe adequar a cobertura de segurança ao seu perfil de risco e necessidades operacionais, sem complexidade adicional.
- Criação de Cartas de Materiais de Software (SBOM): Gerar automaticamente um SBOM em cada varrimento dá às equipas um inventário preciso e consultável de dependências e versões nos seus repositórios, sem alterações adicionais no fluxo de trabalho. Isto permite uma análise rápida de impacto, uma resposta mais rápida a vulnerabilidades recém-reveladas e uma tomada de decisão confiante ao avaliar a exposição a pacotes ou versões específicas.
Capacidades de deteção de riscos
A varredura de código sem agente melhora a segurança ao fornecer recomendações direcionadas e acionáveis através do código da aplicação, modelos de infraestrutura como código (IaC) e dependências de terceiros. Isto é adicional às recomendações de gestão da postura de segurança na cloud fornecidas pelo conector. Os principais recursos de deteção incluem:
- Vulnerabilidades de código: encontre erros de codificação comuns, práticas de codificação inseguras e vulnerabilidades conhecidas em várias linguagens de programação.
- Configurações incorretas de infraestrutura como código: detete configurações incorretas de segurança em modelos de IAC que podem levar a implantações inseguras.
- Vulnerabilidades de dependência: identifique vulnerabilidades conhecidas em pacotes de código aberto e pacotes de SO descobertos em repositórios.
- Lista de Materiais de Software (SBOM): Gera automaticamente um inventário abrangente e consultável das dependências e das suas versões para cada repositório,
A criação do conector aumenta a segurança fornecendo recomendações básicas de gerenciamento de postura de segurança na nuvem para repositórios, pipelines e conexões de serviço.
Ferramentas de digitalização
A verificação de código sem agente usa várias ferramentas de código aberto para encontrar vulnerabilidades e configurações incorretas em modelos de código e infraestrutura como código (IaC):
| Ferramenta | IaC/idiomas suportados | Licença |
|---|---|---|
| Analisador de modelos | Modelos ARM IaC, modelos Bicep IaC | MIT |
| Checkov | Modelos Terraform IaC, arquivos de plano Terraform, modelos do AWS CloudFormation, arquivos de manifesto do Kubernetes, arquivos de gráfico Helm, Dockerfiles, modelos IaC do Azure Azure Resource Manager (ARM), modelos do Azure Bicep IaC, modelos do AWS SAM (modelo de aplicativo sem servidor), arquivos Kustomize, modelos de estrutura sem servidor, arquivos de especificação OpenAPI | Apache 2.0 |
| Bandido | Python | Apache 2.0 |
| ESLint | JavaScript, TypeScript, JSX, TSX | MIT |
| Trivy | Varredura de vulnerabilidades de dependências e pacotes de sistema operativo de manifestos de repositório e ficheiros de bloqueio (modo de sistema de ficheiros) | Apache 2.0 |
| Syft | Alpine (apk), pacotes Bitnami, C (conan), C++ (conan), Dart (publicações), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, binários Go), GitHub (fluxos de trabalho, ações), Haskell (cabal, stack), Java (jar, ear, war, par, sar, nar, rar, imagem nativa), JavaScript (npm, yarn), Plugins Jenkins (jpi, hpi), arquivos do kernel Linux (vmlinuz), módulos do kernel Linux (ko), Nix (saídas em /nix/store), PHP (composer, PECL, Pear), Python (wheel, egg, poetry, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, binário auditável), Swift (cocoapods, swift-package-manager), plugins WordPress, fornecedores Terraform (.terraform.lock.hcl) | Apache 2.0 |
Essas ferramentas suportam uma ampla gama de linguagens e estruturas de infraestrutura como código (IaC), garantindo uma análise de segurança completa em toda a sua base de código.
Sistemas e tipos de ficheiros suportados
Sistemas de controlo de versão
Azure DevOps: Suporte completo para repositórios conectados por meio do conector do Azure DevOps.
GitHub: Suporte completo para repositórios conectados através do conector GitHub.
Linguagens de programação
Análise estática de código: Python; JavaScript/TypeScript.
Ecossistemas de dependência (via Trivy): Node.js (npm, yarn), Python (pip, Pipenv, Poetry), Java (Maven, Gradle), .NET (NuGet), módulos Go, Ruby (RubyGems), PHP (Composer), Rust (Cargo) e outras linguagens suportadas e ecossistemas de pacotes via manifestos e lockfiles.
Plataformas e configurações de infraestrutura como código (IaC)
| Plataforma IaC | Tipos de ficheiros suportados | Notas |
|---|---|---|
| Terraforma |
.tf, .tfvars |
Suporta modelos Terraform IaC na linguagem HCL2, incluindo arquivos variáveis no .tfvars. |
| Plano Terraform | Ficheiros JSON | Inclui arquivos JSON que representam configurações planejadas, usados para análise e digitalização. |
| AWS CloudFormation | JSON, arquivos YAML | Oferece suporte a modelos do AWS CloudFormation para definir recursos da AWS. |
| Kubernetes | YAML, arquivos JSON | Suporta arquivos de manifesto do Kubernetes para definir configurações em clusters. |
| Helm | Helm chart directory structure, arquivos YAML | Segue a estrutura padrão do gráfico de Helm; suporta arquivos de gráficos Helm v3. |
| Docker | Arquivos chamados Dockerfile | Suporta Dockerfiles para configurações de contêiner. |
| Modelos ARM do Azure | Ficheiros JSON | Suporta modelos IaC do Azure Resource Manager (ARM) no formato JSON. |
| Azure Bicep |
.bicep arquivos |
Suporta modelos Bicep IaC, uma linguagem específica de domínio (DSL) para ARM. |
| AWS SAM | Ficheiros YAML | Suporta modelos AWS Serverless Application Model (SAM) para recursos sem servidor. |
| Kustomize | Ficheiros YAML | Suporta arquivos de configuração para personalização do Kubernetes (Kustomize). |
| Estrutura sem servidor | Ficheiros YAML | Suporta modelos para a estrutura Serverless na definição de arquiteturas sem servidor. |
| OpenAPI | YAML, arquivos JSON | Suporta arquivos de especificação OpenAPI para definir APIs RESTful. |
Habilite a verificação de código sem agente em suas organizações do Azure DevOps e GitHub
Você pode conectar organizações do Azure DevOps e do GitHub ao Defender for Cloud para habilitar a verificação de código sem agente. Siga as etapas em Conectar suas organizações de DevOps do Azure ou Conectar suas organizações do GitHub para começar.
Personalizar a cobertura e o escopo do scanner
Para o GitHub e o Azure DevOps, você pode controlar quais scanners são executados e especificar exatamente quais repositórios são incluídos ou excluídos da verificação sem agente.
Selecionar scanners: Ativar ou desativar cada scanner de código e infraestrutura-como-código (IaC) com base nas suas necessidades.
Definir o escopo da varredura: Decida se deseja verificar todos os repositórios por padrão ou definir um escopo personalizado para incluir ou excluir organizações, projetos ou repositórios específicos.
- Modo de exclusão: Analise tudo, exceto o que você lista.
- Modo de inclusão: Analise apenas o que está listado.
Opções de escopo personalizadas:
- Para o GitHub, defina o escopo por proprietário ou repositório.
- Para o Azure DevOps, defina o escopo por organização, projeto ou repositório.
Descubra automaticamente novos repositórios: A descoberta automática de novos repositórios é sempre limitada às organizações ou projetos incluídos no escopo do conector. Ele é ativado por padrão ao usar o modo de exclusão e nenhuma lista de escopo personalizada é definida. Os repositórios recém-criados são verificados automaticamente.
A descoberta automática não está disponível no modo de inclusão, porque apenas os repositórios listados são verificados.
Isto permite que se alinhe a verificação com as suas necessidades de segurança, assegure a cobertura atualizada à medida que o seu ambiente cresce e evite verificações desnecessárias ou áreas não verificadas.
Como funciona a verificação de código sem agente
A verificação de código sem agente funciona independentemente dos pipelines de CI/CD. Ele usa o conector Azure DevOps ou GitHub para verificar automaticamente o código e as configurações de infraestrutura como código (IaC). Não é necessário modificar pipelines ou adicionar extensões. Essa configuração permite uma análise de segurança ampla e contínua em vários repositórios. Os resultados são processados e mostrados diretamente no Microsoft Defender for Cloud.
Processo de digitalização
Depois de ativar o recurso de varredura de código sem agente em um conector, o processo de verificação inclui estas etapas:
Descoberta de repositório: o sistema identifica automaticamente todos os repositórios vinculados por meio do conector Azure DevOps e GitHub imediatamente após a criação do conector e, em seguida, a cada 8 horas.
Recuperação de código: Ele recupera com segurança o código mais recente da ramificação padrão (principal) de cada repositório para análise, inicialmente após a configuração do conector e, em seguida, diariamente.
Análise: O sistema usa um conjunto de ferramentas de verificação integradas gerenciadas e atualizadas no Microsoft Defender for Cloud para encontrar vulnerabilidades e configurações incorretas em modelos de código e infraestrutura como código (IaC). Também cria um SBOM (Lista de Materiais de Software) para permitir uma gestão de pacotes que seja consultável.
Processamento de descobertas: processa as descobertas de verificação por meio do back-end do Defender for Cloud para criar recomendações de segurança acionáveis.
Entrega de resultados: o sistema mostra as descobertas como recomendações de segurança no Defender for Cloud, permitindo que as equipes de segurança analisem e resolvam problemas.
Frequência e duração do exame
Frequência de varredura:
- A postura de segurança de repositórios, pipelines e conexões de serviço é avaliada quando você cria o conector e, em seguida, a cada oito horas.
- O sistema verifica o código e os modelos de infraestrutura como código (IaC) em busca de vulnerabilidades depois de criar o conector e, em seguida, diariamente.
Duração da varredura: as varreduras geralmente terminam dentro de 15 a 60 minutos, dependendo do tamanho e da complexidade do repositório.
Visualizar e gerenciar resultados de varredura
Após a conclusão das verificações, você poderá acessar as descobertas de segurança no Microsoft Defender for Cloud.
Aceda às conclusões
Navegue até a guia Recomendações de segurança no Microsoft Defender for Cloud.
Analise as recomendações para repositórios do Azure DevOps e do GitHub, como:
Os repositórios devem ter as descobertas de varredura de código resolvidas - Indica vulnerabilidades encontradas em repositórios de código.
Os repositórios devem ter infraestrutura conforme as descobertas de varredura de código resolvidas - Sinaliza configurações incorretas de segurança em modelos IaC.
Os repositórios devem ter as descobertas de verificação de vulnerabilidade de dependência resolvidas - Indica pacotes de código aberto vulneráveis detetados em repositórios.
Para obter a gama completa de recomendações suportadas para ambas as plataformas, consulte: Recomendações de segurança do Azure DevOps e do GitHub.
As recomendações incluem itens como exigir aprovações de vários revisores, restringir o acesso secreto e aplicar práticas recomendadas para ambientes Azure DevOps e GitHub.
Selecione qualquer recomendação para exibir detalhes sobre os arquivos afetados, a gravidade e as etapas de correção.
Diferença entre a varredura de código sem agente e a varredura no pipeline
A verificação de código sem agente e a verificação em pipeline usando a extensão Microsoft Security DevOps oferecem verificação de segurança no Azure DevOps e no GitHub. Servem necessidades diferentes, mas complementam-se mutuamente. A tabela a seguir destaca as principais diferenças para ajudá-lo a escolher a opção que melhor se adapta às suas necessidades de segurança e desenvolvimento.
| Aspeto | Verificação de código sem agente | Varredura no pipeline |
|---|---|---|
| Ajuste de caso de uso | Oferece ampla cobertura com o mínimo de interrupções para os desenvolvedores | Fornece varreduras detalhadas e integradas ao pipeline com controles personalizáveis |
| Escopo e cobertura da varredura | Concentra-se na infraestrutura como código (IaC), vulnerabilidades de código e vulnerabilidades de dependência de código aberto em uma base programada (diariamente) | Oferece ampla cobertura, incluindo binários e imagens de contêiner, acionados em cada execução de pipeline |
| Instalação e configuração | Não requer mais configuração após a criação do conector | Requer instalação e configuração manual em cada pipeline de CI/CD |
| Integração de pipeline | É executado independentemente de pipelines (CI/CD) sem modificar fluxos de trabalho | Integra-se no pipeline de CI/CD, exigindo configuração em cada pipeline |
| Personalização do scanner | Permite selecionar quais scanners devem ser executados | Permite a personalização com scanners específicos, categorias, idiomas, níveis de sensibilidade e ferramentas que não são da Microsoft |
| Resultados e feedback | Fornece acesso a descobertas no Defender for Cloud | Oferece feedback quase em tempo real dentro do pipeline de CI/CD, com resultados também visíveis no Defender for Cloud |
| Critérios de quebra e reprovação | Não é possível quebrar compilações | Pode ser configurado para interromper compilações com base na gravidade das descobertas de segurança |
Impacto na escalabilidade e no desempenho
A verificação de código sem agente evita a criação de recursos na assinatura e não requer a verificação durante o processo de pipeline. Ele usa o Azure DevOps e a API REST do GitHub para extrair metadados e código. Isso significa que as chamadas de API contam para os limites de taxa do Azure DevOps e do GitHub, mas você não incorre em custos diretos de transferência de dados. O serviço gerencia verificações para garantir que elas permaneçam dentro dos limites de taxa do Azure DevOps e do GitHub sem interromper o ambiente de desenvolvimento. Esse método fornece varredura eficiente e de alto desempenho entre repositórios sem afetar os fluxos de trabalho de DevOps. Para obter mais informações, consulte Limites de taxa e uso do Azure DevOps e Limites de taxa para a API REST do GitHub.
Segurança de dados, conformidade e controle de acesso para varredura de código sem agente
O serviço de verificação de código sem agente do Microsoft Defender for Cloud garante o tratamento seguro e compatível do seu código, implementando medidas rigorosas de privacidade e segurança de dados:
- Criptografia de dados e controle de acesso: O sistema criptografa todos os dados em trânsito usando protocolos padrão do setor. Apenas os serviços autorizados do Defender for Cloud podem aceder ao seu código.
- Residência e retenção de dados: as verificações ocorrem na mesma região geográfica que os conectores do Azure DevOps e GitHub (EUA ou UE) para cumprir as leis de proteção de dados. O sistema processa o código apenas durante a digitalização e o exclui com segurança depois, sem armazenamento de longo prazo.
- Acesso a repositórios: o serviço gera um token de acesso seguro para o Azure DevOps e o GitHub executarem verificações. Esse token permite a recuperação de metadados e códigos necessários sem criar recursos em sua assinatura. Apenas os componentes do Defender for Cloud têm acesso, protegendo a integridade dos dados.
- Suporte de conformidade: O serviço está alinhado com os padrões regulatórios e de segurança para tratamento de dados e privacidade, garantindo o processamento seguro e a verificação do código do cliente em conformidade com os requisitos regionais de proteção de dados.
Essas medidas garantem um processo de varredura de código seguro, compatível e eficiente, mantendo a privacidade e a integridade de seus dados.
Limitações (pré-visualização pública)
Durante a fase de pré-visualização pública, aplicam-se as seguintes limitações:
- Sem varredura binária: Somente as ferramentas de varredura de código (SAST) e IaC são executadas.
- Frequência de varredura: Ele verifica os repositórios após a ativação e, em seguida, diariamente.
- Tamanho do repositório: limita a verificação a repositórios com menos de 1 GB.
-
Cobertura de ramificação: As varreduras cobrem apenas a ramificação padrão (geralmente
main). - Personalização de ferramentas: não é possível personalizar as ferramentas de digitalização.
Atualmente, o SBOM apresenta as seguintes limitações:
- O repositório precisa de um ficheiro de bloqueio, caso contrário só serão encontradas dependências diretas
- A limitação de tamanho do SBOM é limitada a 1MB. Se forem identificados muitos pacotes, a nossa ingestão no Cloud Map falhará.
- A habilitação do SBOM não é configurável. Um SBOM será gerado em cada varredura sem utilização de agente.
- O timeout está definido para 15 minutos para a ferramenta SBOM funcionar.
- Desativar o Agentless não elimina as recomendações do SBOM.