Configurar a verificação de código sem agente (Visualização)

A verificação de código sem agente no Microsoft Defender para a Cloud oferece cobertura de segurança rápida e escalável para todos os repositórios no Azure DevOps e no GitHub. Escaneia automaticamente código, dependências de código aberto e infraestrutura como código (IaC) para identificar vulnerabilidades e configurações incorretas. Não precisas de mudar os pipelines de compilação ou implementação. Esta abordagem simplifica a configuração e manutenção com um único conector Azure DevOps ou GitHub e fornece uma cobertura ampla, insights contínuos e conclusões de segurança acionáveis. Permite que as equipas 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 devem ser incluídos ou excluídos da verificação.

Pré-requisitos

Antes de ativar a digitalização de código sem agente, certifique-se de que cumpre os seguintes requisitos:

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 de Subscrição: Necessário na subscrição 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

A digitalização de código sem agente no Microsoft Defender para a Cloud oferece os seguintes benefícios:

  • 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 rápida correção: receba informações acionáveis sobre vulnerabilidades logo após a integração inicial. 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 risco

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 varredura de código sem agentes utiliza ferramentas de código aberto para encontrar vulnerabilidades e configurações incorretas em templates de código e infraestrutura como código (IaC):

Ferramenta IaC/Linguagens suportadas Licença
Analisador de modelos Modelos ARM IaC, Bicep IaC MIT
Checkov modelos de IaC do Terraform, ficheiros de plano do Terraform, modelos do AWS CloudFormation, ficheiros de manifesto do Kubernetes, ficheiros de gráficos do Helm, Dockerfiles, modelos de IaC do Azure Resource Manager (ARM), modelos de IaC do Azure Bicep, modelos do AWS SAM (Serverless Application Model), ficheiros do Kustomize, modelos da framework Serverless, ficheiros 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 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 (pubs), 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, native-image), JavaScript (npm, yarn), Jenkins Plugins (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 (gema), 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

A varredura de código sem agente suporta os seguintes sistemas de controlo de versões:

  • 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

A varredura de código sem agentes suporta as seguintes linguagens de programação e ecossistemas de dependências:

  • 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)

A tabela seguinte lista as plataformas IaC e tipos de ficheiros suportados pela varridura de código sem agente:

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 Estrutura de diretório do Helm chart, arquivos YAML Segue a estrutura padrão de gráficos de Helm e suporta ficheiros 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 para a Cloud para habilitar a verificação de código sem agente. Para estabelecer a ligação, use um destes guias:

Diagrama mostrando um guia animado da configuração do conector Defender para a Cloud que permite a varredura de código sem agentes para Azure DevOps e GitHub.

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.

Captura de ecrã das definições da análise de código sem agente que mostra os interruptores do analisador e as opções de âmbito personalizado para organizações, projetos e repositórios.

  • 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.

    Estas opções de configuração do âmbito permitem-lhe ajustar a análise às suas necessidades de segurança, manter a cobertura atualizada à medida que o seu ambiente se expande e evitar análises desnecessárias ou lacunas.

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

A análise de código sem agente opera de forma independente 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 para a Cloud.

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

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:

  1. 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.

  2. 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.

  3. Análise: O sistema utiliza ferramentas de análise incorporadas que o Microsoft Defender para a Cloud gere e atualiza. Estas ferramentas encontram vulnerabilidades e configurações incorretas em templates de código e infraestrutura como código (IaC). O sistema também cria um SBOM para suportar consultas de pacotes.

  4. Processamento das descobertas: o sistema processa as descobertas de verificação por meio do back-end do Defender para a Cloud para criar recomendações de segurança acionáveis.

  5. Entrega de resultados: O sistema apresenta conclusões em Defender para a Cloud como recomendações de segurança. Para mais detalhes, consulte a referência de recomendações de segurança DevOps.

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

A varredura de código sem agente utiliza o seguinte cronograma:

  • 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 para a Cloud.

Aceda às conclusões

Para aceder às conclusões:

  1. Em Microsoft Defender para a Cloud, vá ao separador de recomendações de segurança: Recomendações de Segurança Aberta.

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

  3. Para a gama completa de recomendações suportadas para ambas as plataformas, veja Azure DevOps e GitHub recomendações de segurança.

    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

Sem agentes vs. análise no pipeline

A análise de código sem agente e a análise no pipeline com a extensão Microsoft Security DevOps proporcionam ambas análise de segurança no Azure DevOps e no GitHub. Servem necessidades diferentes e podem complementar-se. A tabela seguinte resume as principais diferenças para que possa escolher a opção que melhor se adapta ao seu ambiente.

Aspeto Verificação de código sem agente Varredura na linha de montagem
Ajuste de caso de uso Oferece ampla cobertura com o mínimo de interrupções para os desenvolvedores Fornece varreduras detalhadas integradas no pipeline, com controlos 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 canalização Funciona independentemente de pipelines de CI/CD sem modificar os fluxos de trabalho Integra-se no pipeline de CI/CD, necessitando de 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 para a Cloud Oferece feedback quase em tempo real dentro do pipeline de CI/CD, com resultados também visíveis no Defender para a Cloud
Critérios de ruptura e falha 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 digitalização de código sem agente do Microsoft Defender para a Cloud ajuda a proteger o seu código com controlos de segurança e privacidade dos 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 para a Cloud podem aceder ao seu código.
  • Residência e retenção de dados: As varreduras correm na mesma geolocalização que os seus conectores de Azure DevOps e GitHub (EUA ou UE) para suportar os requisitos de proteção de dados. O sistema processa o código durante a digitalização e depois apaga-o de forma segura. Não mantém armazenamento de código a longo prazo.
  • Acesso a repositórios: O serviço gera um token de acesso seguro para Azure DevOps e GitHub realizarem varreduras. Este token permite ao serviço recuperar os metadados e o código necessários sem criar recursos na sua subscrição. Apenas os componentes do Defender para a Cloud podem usar este acesso.
  • Suporte de conformidade: O serviço está alinhado com normas regulatórias e de segurança para o manuseamento de dados e privacidade, para apoiar o processamento seguro e regional do código do cliente.

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 varrimento: A varredura de código sem agente analisa repositórios quando ativa a funcionalidade e depois uma vez por dia.
  • Tamanho do repositório: A varredura de código sem agente suporta 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 ferramentas de scan.

O Syft (SBOM) tem atualmente as seguintes limitações:

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

  • Um repositório precisa de um ficheiro de bloqueio. Caso contrário, apenas sã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 nem descarregável. É gerado um SBOM em cada análise sem agentes.

  • O timeout está definido para 15 minutos para a ferramenta SBOM funcionar.

  • Desativar a análise de código sem agente não elimina as recomendações do SBOM.

Passos seguintes