Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. A verificação de código sem agente 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 sem a necessidade de alterações nos pipelines de build ou implantação. Essa abordagem simplifica a instalação e a manutenção com um único conector do Azure DevOps ou do GitHub e fornece ampla cobertura, insights contínuos e descobertas de segurança acionáveis. Ela 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
Casos de uso compatíveis:
Recomendações de segurança para priorizar e corrigir vulnerabilidades de código
Consultas do Cloud Security Explorer para localizar repositórios, incluindo dependências resultantes de um SBOM.
Regiões com suporte: Leste da Austrália, Canadá Central, Eua Central, Leste da Ásia, Leste dos EUA, Norte da Europa, Suécia Central, Sul do Reino Unido, Europa Ocidental.
Ambientes com suporte: conector do Azure DevOps e conector do GitHub.
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
Alguns dos principais benefícios da verificação de código sem agente no Microsoft Defender para Nuvem são:
- 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.
Capacidades de detecção de riscos
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.
- Software Bill of Materials (SBOM): 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 digitalizaçã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 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 de CloudFormation do AWS, arquivos de manifesto do Kubernetes, arquivos de gráficos do Helm, Dockerfiles, modelos de IaC do ARM (Azure Resource Manager), modelos de IaC do Azure Bicep, modelos do AWS SAM (Serverless Application Model), 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 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 (vmlinz), 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
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
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)
| 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; 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. Siga as etapas em Conectar suas organizações do Azure DevOps ou conecte suas organizações do GitHub para começar.
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.
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.
Isso permite que você alinhe a verificação com suas necessidades de segurança, mantenha a cobertura atualizada à medida que seu ambiente cresce e evite escaneamentos desnecessários ou áreas sem verificação.
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.
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:
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.
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.
Análise: O sistema usa um conjunto de ferramentas internas de verificação, gerenciadas e atualizadas no Microsoft Defender para Nuvem, para encontrar vulnerabilidades e configurações incorretas em modelos de Infraestrutura como Código (IaC). Ele também cria um SBOM para permitir o gerenciamento de pacotes que pode ser consultado.
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.
Entrega de resultados: o sistema mostra as descobertas como recomendações de segurança no Defender para Nuvem, permitindo que as equipes de segurança examinem e resolvam os problemas.
Frequência e duração da verificação
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
Navegue até a guia Recomendações de segurança do no Microsoft Defender para Nuvem.
Examine as recomendações para repositórios do Azure DevOps e do GitHub, como:
Repositórios devem ter descobertas de verificação de código resolvidas – indica vulnerabilidades encontradas em repositórios de código.
Os repositórios devem ter a infraestrutura como descobertas de verificação de código resolvidas – sinaliza configurações incorretas de segurança em modelos IaC.
Repositórios devem ter descobertas de verificação de vulnerabilidade de dependência resolvidas – indica pacotes de software livre vulneráveis detectados em repositórios.
Para obter toda a gama de recomendações com suporte 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 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
A verificação de código sem agente e a verificação no pipeline usando a extensão DevOps de Segurança da Microsoft oferecem verificação de segurança no Azure DevOps e no GitHub. Eles atendem necessidades diferentes, mas complementam uns aos outros. A tabela a seguir destaca as principais diferenças para ajudá-lo a escolher a opção que melhor atende às suas necessidades de segurança e desenvolvimento.
| 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 | É executada independentemente de pipelines (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 digitalização de código sem agente do Microsoft Defender para Nuvem garante o tratamento seguro e em conformidade do código implementando medidas rigorosas de segurança e privacidade 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 ocorrem na mesma área geográfica que os conectores do Azure DevOps e do GitHub (EUA ou UE) para cumprir as leis de proteção de dados. O sistema processa o código somente 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ódigo necessários sem criar recursos em sua assinatura. Somente os componentes do Defender para Nuvem têm acesso, garantindo a integridade dos dados.
- Suporte de conformidade: o serviço se alinha aos padrões regulatórios e de segurança para tratamento e privacidade de dados, garantindo o processamento seguro e a digitalização de código do cliente em conformidade com os requisitos regionais de proteção de dados.
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: verifica repositórios após a habilitação e, em seguida, diariamente.
- Tamanho do repositório: Limita a digitalização 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 SBOM tem as seguintes limitações:
- O 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. Uma SBOM será gerada em cada verificação sem agente.
- O tempo limite é definido como 15 minutos para a ferramenta SBOM ser executada.
- Desabilitar o Agentless não exclui as recomendações do SBOM.