Digitalização de código sem agente no Microsoft Defender para Nuvem
A digitalizaçã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. Ela localiza rapidamente vulnerabilidades em configurações de código e IaC (infraestrutura como código) sem precisar de agentes nem de alterações de pipeline de CI/CD (Integração Contínua e Implantação Contínua). Essa abordagem simplifica a configuração e a manutenção com um único conector do Azure DevOps 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.
Pré-requisitos
Estado de versão: visualização pública
Casos de uso compatíveis:
Nuvens: nuvens comerciais do Azure
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, Oeste da Europa
Ambientes com suporte: conector do Azure DevOps
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
- Gerenciamento de riscos proativo: identifique riscos no início do processo de desenvolvimento. Isso dá suporte a práticas de codificação seguras e reduz vulnerabilidades antes que elas cheguem à produção.
- Integração sem esforço: prepare 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 fornece 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.
Capacidades de detecção de riscos
A verificação de código sem agente melhora a segurança oferecendo recomendações de segurança direcionadas para modelos de Código e IaC (Infraestrutura como Código). Isso se soma às recomendações de segurança do GPSN (gerenciamento da postura de segurança na nuvem) fornecidas por meio do conector. As principais habilidades 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.
A criação do conector aprimora a segurança fornecendo um conjunto básico de recomendações de segurança para 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 |
---|---|---|
Bandit | Python | Apache 2.0 |
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 |
ESLint | JavaScript, TypeScript, JSX, TSX | MIT |
Analisador de Modelos | Modelos de IaC do ARM, modelos de IaC do Bicep | MIT |
Terrascan | Modelos de IaC do Terraform (HCL2), arquivos de manifesto do Kubernetes (YAML/JSON), Dockerfiles, modelos do AWS CloudFormation (YAML/JSON), modelos de IaC do ARM do Azure, arquivos de gráfico do Helm (v3), arquivos Kustomize | Apache 2.0 |
Essas ferramentas dão suporte a uma ampla gama de linguagens e estruturas de IaC, garantindo uma análise completa da segurança em sua base de código.
Plataformas 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.
Linguagens de programação
- Python
- JavaScript/TypeScript
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 . |
Terraform Plan | 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). |
Serverless Framework | 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 digitalização de código sem agente em suas organizações do Azure DevOps
Para conectar suas organizações do Azure DevOps ao Defender para Nuvem e habilitar a digitalização de código sem agente, consulte as instruções em Conectar suas organizações do Azure DevOps. O visual a seguir mostra o processo de instalação rápido e simples, orientando você em cada etapa para obter uma integração total.
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. Ela usa o conector do Azure DevOps para digitalizar automaticamente o código e as configurações de IaC (Infraestrutura como Código). 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 digitalização de código sem agente em um conector, o processo de digitalização segue estas etapas:
- Descoberta de repositório: o sistema identifica automaticamente todos os repositórios vinculados por meio do conector do Azure DevOps logo 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 do branch padrão (principal) de cada repositório para análise, primeiro após a instalação do conector e, em seguida, a cada 3 a 4 dias.
- Análise: o sistema usa um conjunto de ferramentas de verificação internas gerenciadas e atualizadas no Microsoft Defender para Nuvem para encontrar vulnerabilidades e configurações incorretas em modelos de código e IaC.
- 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 8 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, a cada 3 a 4 dias.
- 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 a lista de recomendações, que inclui descobertas como:
Repositórios do Azure DevOps devem ter descobertas de digitalização de código resolvidas – indica vulnerabilidades encontradas em repositórios de código.
Repositórios do Azure DevOps devem ter descobertas da digitalização de código da infraestrutura como código resolvidas – aponta para configurações incorretas de segurança detectadas em arquivos de modelo de IaC em repositórios.
Outras recomendações de segurança geradas pelo conector do Azure DevOps podem incluir:
- Os repositórios do Azure DevOps devem ter o GitHub Advanced Security para Azure DevOps (GHAzDO) habilitado
- Azure Pipelines não deve ter segredos disponíveis para builds de forks
- As conexões de serviço do Azure DevOps não devem conceder acesso a todos os pipelines
- Os grupos de variáveis do Azure DevOps com variáveis secretas não devem conceder acesso a todos os pipelines
- As conexões de serviço do Azure Clássico do Azure DevOps não devem ser usadas para acessar uma assinatura
- (Versão prévia) Os repositórios do Azure DevOps devem exigir a aprovação de no mínimo dois revisores para envios de código por push
- (Versão prévia) Os repositórios do Azure DevOps não devem permitir que solicitantes aprovem suas próprias pull requests
- (Versão prévia) O Azure DevOps Projects deve ter a criação de pipelines clássicos desabilitada
- Os arquivos seguros do Azure DevOps não devem conceder acesso a todos os pipelines
Selecione qualquer recomendação para obter informações detalhadas, incluindo arquivos afetados, níveis de severidade e diretrizes de correção.
Diferença entre a digitalização de código sem agente e a digitalização no pipeline
A digitalização de código sem agente e a digitalização no pipeline usando a extensão DevOps de Segurança da Microsoft oferecem verificação de segurança no Azure DevOps. Elas atendem necessidades diferentes, mas trabalham bem juntas. A tabela a seguir destaca as principais diferenças para ajudar a escolher a opção que 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 na IaC (Infraestrutura como Código) e na verificação de vulnerabilidades de código, agendadas a cada 3 a 4 dias | 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 | Os verificadores não podem ser personalizados nem executados seletivamente | 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. Ela usa a API REST do Azure DevOps para efetuar pull de metadados e código. Isso significa que as chamadas à API afetam os limites de taxa do Azure DevOps, 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 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 Limites de taxa e uso do Azure DevOps.
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 o conector do Azure DevOps (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 executar 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:
Sem verificação de binários: o sistema verifica apenas o código e os arquivos de IaC (Infraestrutura como Código).
Frequência de verificação: verifica repositórios a cada 3 a 4 dias.
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 (principal).
Personalização da ferramenta: você não pode personalizar as ferramentas de verificação.