Configurar a verificação de código sem agente (versão prévia)

A verificação de código sem agente no Microsoft Defender para Nuvem oferece cobertura de segurança rápida e escalonável para todos os repositórios no Azure DevOps e no GitHub. Ele verifica automaticamente o código, as dependências de software livre e a IaC (infraestrutura como código) para identificar vulnerabilidades e configurações incorretas. Você não precisa alterar pipelines de build ou implantação. Essa abordagem simplifica a instalação e a manutenção com um único conector 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 interromper os fluxos de trabalho de desenvolvimento.

Você pode personalizar quais scanners executar e definir exatamente quais organizações, projetos ou repositórios incluir ou excluir da verificação.

Pré-requisitos

Antes de habilitar a verificação de código sem agente, verifique se você atende aos seguintes requisitos:

Funções e permissões:

  • Para instalar e configurar o conector:

    • Administrador da Coleção de Projetos: necessária no Azure DevOps para executar a configuração inicial.
    • Colaborador de Assinatura: necessária na assinatura do Azure para criar e configurar o conector.
  • Para exibir 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 nenhuma alteração.

Principais benefícios

A verificação de código sem agente em Microsoft Defender para Nuvem oferece os seguintes benefícios:

  • Gerenciamento de riscos proativo: identifique riscos no início do processo de desenvolvimento. Isso permite práticas de codificação seguras e reduz vulnerabilidades antes que elas cheguem à produção. 
  • Integração sem esforço: configure rapidamente com configuração mínima e sem alterações de 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 ambientes grandes. 
  • Insights rápidos para correção rápida: receba insights de vulnerabilidade acionáveis logo após a integração. Isso permite correções rápidas e reduz o tempo de exposição. 
  • Intuitiva para o desenvolvedor e totalmente integrada: opere independentemente de pipelines de CI/CD (integração contínua e implantação contínua), sem nenhuma alteração nem envolvimento direto do desenvolvedor. Isso permite o monitoramento contínuo de segurança sem interromper a produtividade ou os fluxos de trabalho do desenvolvedor.
  • Cobertura e controle flexíveis: escolha quais scanners são executados e o que é verificado. Você pode cobrir tudo por padrão ou personalizar configurações para incluir ou excluir organizações, projetos ou repositórios específicos. Isso permite que você alinhe a cobertura de segurança ao seu perfil de risco e necessidades operacionais, sem qualquer complexidade adicional.
  • Criação do SBOM (Software Bill of Materials): gerar automaticamente um SBOM em cada verificação fornece às equipes um inventário preciso e consultável de dependências e versões em seus repositórios, sem alterações adicionais no fluxo de trabalho. Isso permite análise de impacto rápido, resposta mais rápida a vulnerabilidades recentemente divulgadas e tomada de decisão confiante ao avaliar a exposição a pacotes ou versões específicas.

Recursos de detecção de risco

A verificação de código sem agente melhora a segurança fornecendo recomendações direcionadas e acionáveis no código do aplicativo, modelos de IaC (infraestrutura como código) e dependências de terceiros. Isso é adicional às recomendações de gerenciamento de postura de segurança na nuvem oferecidas por meio do conector. Os principais recursos de detecção incluem:

  • Vulnerabilidades de código: encontre erros comuns de codificação, práticas de codificação não seguras e vulnerabilidades conhecidas em várias linguagens de programação.
  • Configurações incorretas de infraestrutura como código: detecte configurações incorretas de segurança em modelos de IaC que possam levar a implantações inseguras.
  • Vulnerabilidades de dependência: identifique vulnerabilidades conhecidas em pacotes de software livre e pacotes do sistema operacional descobertos em repositórios.
  • SBOM (Software Bill of Materials): gera automaticamente um inventário abrangente e consultável de dependências e suas versões para cada repositório.

A criação do conector aprimora a segurança ao fornecer recomendações fundamentais para o gerenciamento da postura de segurança da nuvem, aplicáveis a repositórios, pipelines e conexões de serviço.

Ferramentas de digitalização

A verificação de código sem agente usa ferramentas de software livre para encontrar vulnerabilidades e configurações incorretas em modelos de Código e IaC (infraestrutura como código):

Ferramenta IaC/linguagens com suporte Licença
Analisador de Modelos Modelos de IaC do ARM, modelos de IaC do Bicep MIT
Checkov Modelos de IaC do Terraform, arquivos de plano do Terraform, modelos do AWS CloudFormation, arquivos de manifesto do Kubernetes, arquivos de gráfico do Helm, Dockerfiles, modelos de IaC do ARM (Azure Resource Manager), modelos de IaC do Azure Bicep, modelos do AWS SAM (Modelo de Aplicativo sem Servidor), arquivos do Kustomize, modelos do Serverless Framework, arquivos de especificação do OpenAPI Apache 2.0
Bandido Python Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Trivy Varredura de vulnerabilidades de dependências e pacotes do sistema operacional a partir de manifestos de repositório e arquivos de bloqueio (modo de sistema de arquivos) Apache 2.0
Syft Alpine (apk), pacotes Bitnami, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, Go binários), GitHub (fluxos de trabalho, ações), Haskell (cabal, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Jenkins Plugins (jpi, hpi), arquivos kernel do Linux (vmlinuz), módulos de 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), plug-ins do Wordpress, provedores Terraform (.terraform.lock.hcl) Apache 2.0

Essas ferramentas dão suporte a uma ampla gama de linguagens e estruturas de IaC (infraestrutura como código), garantindo uma análise completa de segurança em sua base de código.

Sistemas e tipos de arquivo com suporte

Sistemas de controle de versão

A verificação de código sem agente dá suporte aos seguintes sistemas de controle de versão:

  • Azure DevOps: suporte completo para repositórios conectados por meio do conector do Azure DevOps.

  • GitHub: suporte total para repositórios conectados por meio do conector do GitHub.

Linguagens de programação

A verificação de código sem agente dá suporte às seguintes linguagens de programação e ecossistemas de dependência:

  • Análise de código estático: 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 e ecossistemas de pacotes suportados por meio de manifestos e arquivos de bloqueio.

Plataformas e configurações de IaC (infraestrutura como código)

A tabela a seguir lista as plataformas IaC e os tipos de arquivo compatíveis com a verificação de código sem agente:

Plataforma de IaC Tipos de arquivo com suporte Observações
Terraform .tf, .tfvars Dá suporte a modelos de IaC do Terraform na linguagem HCL2, incluindo arquivos de variáveis em .tfvars.
Plano do Terraform Arquivos JSON Inclui arquivos JSON que representam configurações planejadas, usados para análise e verificação.
AWS CloudFormation Arquivos JSON, YAML Dá suporte a modelos do AWS CloudFormation para definir recursos da AWS.
Kubernetes YAML, arquivos JSON Dá suporte a arquivos de manifesto do Kubernetes para definir configurações em clusters.
Helm Estrutura do diretório do gráfico do Helm, arquivos YAML Segue a estrutura de gráfico padrão do Helm e dá suporte a arquivos de gráfico do Helm v3.
Docker Arquivos chamados Dockerfile Dá suporte a Dockerfiles para configurações de contêiner.
Modelos do ARM do Azure Arquivos JSON Dá suporte a modelos de IaC do ARM (Azure Resource Manager) no formato JSON.
Bicep do Azure Arquivos .bicep Dá suporte a modelos de IaC do Bicep, uma DSL (linguagem específica de domínio) para ARM.
AWS SAM Arquivos YAML Dá suporte a modelos do AWS SAM (Serverless Application Model) para recursos sem servidor.
Kustomize Arquivos YAML Dá suporte a arquivos de configuração para a personalização do Kubernetes (Kustomize).
Estrutura sem servidor Arquivos YAML Dá suporte a modelos para a estrutura sem servidor na definição de arquiteturas sem servidor.
OpenAPI YAML, arquivos JSON Dá suporte a arquivos de especificação OpenAPI para definir APIs RESTful.

Habilitar a verificação de código sem agente em suas organizações do Azure DevOps e do GitHub

Você pode conectar as organizações do Azure DevOps e do GitHub ao Defender para Nuvem para habilitar a verificação de código sem agente. Para configurar a conexão, use um destes guias:

Diagrama mostrando um passo a passo animado da configuração do conector Defender para Nuvem que permite a verificação de código sem agente para Azure DevOps e GitHub.

Personalizar a cobertura e o escopo do verificador

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.

Captura de tela das configurações de verificação de código sem agente que mostram alternâncias de scanner e opções de escopo personalizadas para organizações, projetos e repositórios.

  • Selecione scanners: ative ou desative cada scanner IaC (código e infraestrutura como código) com base em suas necessidades.

  • Definir escopo de verificação: Decida se deseja verificar todos os repositórios por padrão ou defina um escopo personalizado para incluir ou excluir organizações, projetos ou repositórios específicos.

    • Modo de exclusão: Examine tudo, exceto o que você lista.
    • Modo de inclusão: examine apenas o que você lista.
  • Opções de escopo personalizado:

    • 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.
  • Descobrir novos repositórios automaticamente: A descoberta automática de novos repositórios é sempre limitada às organizações ou projetos incluídos no escopo do conector. Ele é habilitado 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, pois somente os repositórios listados são verificados.

    Essas opções de configuração de escopo permitem que você alinhe a verificação às suas necessidades de segurança, mantenha a cobertura atualizada à medida que seu ambiente cresce e evite verificações desnecessárias ou lacunas.

Como a digitalização de código sem agente funciona

A digitalização de código sem agente funciona independentemente de pipelines de CI/CD. Ele usa o conector do Azure DevOps ou do GitHub para escanear automaticamente o código e as configurações de infraestrutura como código (IaC). Você não precisa modificar pipelines nem 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 para Nuvem.

Diagrama mostrando a arquitetura da digitalização de código sem agente.

Processo de digitalização

Depois de habilitar o recurso de verificação de código sem agente em um conector, o processo de verificação inclui estas etapas:

  1. Descoberta de repositório: o sistema identifica automaticamente todos os repositórios vinculados por meio do conector do Azure DevOps e do GitHub imediatamente após a criação do conector e, em seguida, a cada 8 horas.

  2. Recuperação de código: recupera com segurança o código mais recente do branch padrão (principal) de cada repositório para análise, inicialmente após a instalação do conector e, em seguida, diariamente.

  3. Analysis: o sistema usa ferramentas de verificação internas que Microsoft Defender para Nuvem gerencia e atualiza. Essas ferramentas encontram vulnerabilidades e configurações incorretas em modelos de IaC (código e infraestrutura como código). O sistema também cria um SBOM para dar suporte a consultas de pacote.

  4. Processamento de descobertas: ele processa descobertas da digitalização por meio do back-end do Defender para Nuvem para criar recomendações de segurança acionáveis.

  5. Results delivery: o sistema mostra as descobertas em Defender para Nuvem como recomendações de segurança. Para obter detalhes, consulte a referência de recomendações de segurança do DevOps.

Frequência e duração da verificação

A verificação de código sem agente usa o seguinte agendamento:

  • Frequência de verificação:

    • 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 IaC (infraestrutura como código) em busca de vulnerabilidades depois que você cria o conector e, em seguida, diariamente.
  • Duração da verificação: as verificações normalmente terminam em 15 a 60 minutos, dependendo do tamanho e da complexidade do repositório.

Ver e gerenciar os resultados da verificação

Após a conclusão das verificações, você pode acessar as descobertas de segurança no Microsoft Defender para Nuvem.

Acessar conclusões

Para acessar as descobertas:

  1. Em Microsoft Defender para Nuvem, vá para a guia Recomendações de segurança: Abrir recomendações de segurança.

  2. Examine as recomendações para repositórios do Azure DevOps e do GitHub, como:

  3. Para obter toda a gama de recomendações com suporte para ambas as plataformas, consulte Azure DevOps e GitHub recomendações de segurança.

    As recomendações incluem itens como exigir aprovações de vários revisor, restringir o acesso secreto e impor práticas recomendadas para ambientes do Azure DevOps e do GitHub.

    Selecione qualquer recomendação para exibir detalhes sobre os arquivos afetados, a gravidade e as etapas de correção.

Diferença entre a digitalização de código sem agente e a digitalização no pipeline

Verificação sem agente vs. verificação no pipeline

A verificação de código sem agente e a verificação no pipeline com a extensão Segurança da Microsoft DevOps fornecem verificação de segurança em Azure DevOps e GitHub. Eles atendem a necessidades diferentes e podem se complementar. A tabela a seguir resume as principais diferenças para que você possa escolher a opção que melhor se ajusta ao seu ambiente.

Aspecto Digitalização de código sem agente Digitalização no pipeline
Adequação ao caso de uso Oferece ampla cobertura com interrupção mínima para desenvolvedores Fornece verificações detalhadas e integradas ao pipeline com controles personalizáveis
Escopo e cobertura da verificação Concentra-se em IaC (Infraestrutura como Código), vulnerabilidades de código e vulnerabilidades de dependência de software livre em uma base agendada (diariamente) Oferece ampla cobertura, incluindo binários e imagens de contêiner, disparadas em cada execução de pipeline
Instalação e configuração Não requer nenhuma configuração adicional após a criação do conector Exige instalação e configuração manuais em cada pipeline de CI/CD
Integração de pipeline É executado independentemente de pipelines de CI/CD sem modificar fluxos de trabalho Integra-se ao pipeline de CI/CD, exigindo a configuração em cada pipeline
Personalização do verificador Permite que você selecione quais scanners são executados Permite a personalização com verificadores, categorias, linguagens, níveis de confidencialidade específicos e ferramentas que não sejam da Microsoft
Resultados e feedback Fornece acesso às descobertas no Defender para Nuvem Oferece feedback quase em tempo real no pipeline de CI/CD, com resultados também visíveis no Defender para Nuvem
Critérios de interrupção e falha Não pode interromper builds Pode ser configurada para interromper builds com base na severidade das descobertas de segurança

Impacto na escalabilidade e no desempenho

A digitalização de código sem agente evita a criação de recursos na assinatura e não requer verificação durante o processo de pipeline. Ele usa o Azure DevOps e a API REST do GitHub para efetuar pull de metadados e código. Isso significa que as chamadas à 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 as 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 verificação eficiente e de alto desempenho em repositórios sem afetar os fluxos de trabalho do DevOps. Para obter mais informações, consulte os 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 digitalização de código sem agente

O serviço de verificação de código sem agente do Microsoft Defender para Nuvem ajuda a proteger seu código com controles 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. Somente serviços do Defender para Nuvem podem acessar seu código.
  • Residência e retenção de dados: As verificações são executadas na mesma região geográfica que seus conectores do Azure DevOps e do GitHub (EUA ou UE) para atender aos requisitos de proteção de dados. O sistema processa o código durante a verificação e o exclui com segurança. Ele não mantém o armazenamento de código de longo prazo.
  • Access para repositórios: o serviço gera um token de acesso seguro para Azure DevOps e GitHub executar verificações. Esse token permite que o serviço recupere os metadados e o código necessários sem criar recursos em sua assinatura. Somente Defender para Nuvem componentes podem usar esse acesso.
  • Suporte à conformidade: o serviço se alinha aos padrões regulatórios e de segurança para tratamento e privacidade de dados para dar suporte ao processamento seguro e regional do código do cliente.

Essas medidas garantem um processo de digitalização de código seguro, em conformidade e eficiente, mantendo a privacidade e a integridade dos dados.

Limitações (visualização pública)

Durante a fase de visualização pública, aplicam-se as seguintes limitações:

  • Nenhuma verificação binária: somente as ferramentas de verificação SAST (código) e IaC são executadas.
  • Frequência de verificação: a verificação de código sem agente verifica repositórios quando você habilita o recurso e, em seguida, uma vez por dia.
  • Tamanho do repositório: a verificação de código sem agente dá suporte a repositórios com menos de 1 GB.
  • Cobertura do branch: as verificações abrangem apenas o branch padrão (geralmente main).
  • Personalização da ferramenta: você não pode personalizar as ferramentas de verificação.

Atualmente, o Syft (SBOM) tem as seguintes limitações:

  • Os SBOMs não podem ser baixados. Você pode consultar os resultados do Syft para encontrar pacotes específicos e os repositórios que os usam. Para obter orientações, consulte Consultar lista de materiais de software.

  • Um repositório precisa de um arquivo de bloqueio. Caso contrário, somente dependências diretas serão encontradas.

  • A limitação de tamanho do SBOM é restrita a 1 MB. Se houver muitos pacotes identificados, nossa ingestão no Mapa de Nuvem falhará.

  • A habilitação do SBOM não é configurável ou para download. Um SBOM é gerado em cada verificação sem agente.

  • O tempo limite é definido como 15 minutos para a ferramenta SBOM ser executada.

  • Desabilitar a verificação de código sem agente não exclui as recomendações do SBOM.

Próximas Etapas