Incorpore a segurança Zero Trust ao seu fluxo de trabalho de desenvolvedor
Como desenvolvedor, você precisa se sentir confiante e seguro para se mover em velocidade. A necessidade de segurança começa assim que você clona seu código. Neste artigo, você aprenderá a desenvolver usando os princípios do Zero Trust para que possa inovar de forma rápida e segura. A estratégia e abordagem de segurança Zero Trust para projetar e implementar aplicativos compreende estes princípios:
- Verifique explicitamente. Sempre autentique e autorize com base em todos os pontos de dados disponíveis.
- Use o acesso com privilégios mínimos. Limite o acesso do usuário com Just-In-Time e Just-Enough-Access (JIT/JEA), políticas adaptativas baseadas em risco e proteção de dados.
- Assuma a violação. Minimize o raio de jateamento e o acesso ao segmento. Verifique a criptografia de ponta a ponta e use análises para obter visibilidade, impulsionar a deteção de ameaças e melhorar as defesas.
Incorporar segurança no seu fluxo de trabalho ajuda-o a:
- Identifique vulnerabilidades de segurança mais rapidamente.
- Forneça ferramentas de desenvolvedor mais seguras.
- Crie conexões para melhorar a colaboração entre as equipes de segurança e desenvolvimento.
Inove e proteja o seu fluxo de trabalho à medida que cria código
A solução unificada da Microsoft, ilustrada no diagrama a seguir, faz a ponte entre as equipes de DevOps e SecOps para ajudá-lo a acelerar e proteger o desenvolvimento de código para nuvem.
Nossa solução para proteger o DevOps depende de dois componentes principais: fornecer aos desenvolvedores ferramentas para impulsionar a inovação e proteger o fluxo de trabalho do desenvolvedor à medida que os desenvolvedores criam código. Assista à sessão Acelerar e proteger seu código para desenvolvimento em nuvem do Microsoft Build 2022 para saber como esses componentes podem proteger seu ambiente de desenvolvimento.
Implemente as seguintes práticas recomendadas que funcionam juntas no Azure e no GitHub para proteger sua solução de desenvolvimento.
- Como a segurança começa quando os desenvolvedores clonam código, habilite o DevSecOps com o Azure e o GitHub para fazer a ponte entre as equipes de DevOps e SecOps e proteger seus ambientes de desenvolvimento.
- Forneça ferramentas de desenvolvedor flexíveis e poderosas para qualquer desenvolvedor, linguagem e pilha com Visual Studio e Visual Studio Code.
- Simplifique a integração e a colaboração de novos desenvolvedores com uma ferramenta de ciclo de vida de desenvolvimento inteira na nuvem usando o GitHub Codespaces e o Microsoft Dev Box.
- Inclua proteção de propriedade intelectual integrada para código que você não dispersa mais em vários locais. Ajude suas equipes a colaborar, desenvolver, automatizar e implantar código onde quiserem com o GitHub Actions e o Azure Pipelines.
- Obtenha orientação de segurança e feedback de segurança contínuo no fluxo de trabalho do desenvolvedor com verificação de código, verificação secreta e revisão de dependência usando o GitHub Advanced Security.
- Incuta segurança de confiança zero em toda a sua organização usando serviços de gerenciamento de identidades no Microsoft Entra ID.
Encaixe a segurança Zero Trust no seu ciclo de vida de desenvolvimento
Da pré-confirmação à confirmação, passando pela implantação, operação e monitoramento, você precisa de soluções de segurança em vigor em todos os estágios do ciclo de vida do desenvolvimento.
Estágio de pré-confirmação
- Modelação de ameaças
- Plug-in de segurança IDE
- Ganchos de pré-confirmação
- Padrões de codificação seguros
- Avaliação pelos pares
Oitenta e cinco por cento dos defeitos de código aparecem durante a fase de pré-compromisso de desenvolvimento, principalmente devido a erro humano. Concentre-se na segurança antes de confirmar seu código escrevendo seu código em Visual Studio Code, Visual Studio ou GitHub Codespaces para identificar vulnerabilidades e proteger o código. Use revisões por pares para incentivar práticas de codificação seguras.
Estágio de confirmação (IC)
- Análise de código estático
- Testes de unidade de segurança
- Gestão de dependências
- Análise de credenciais
Durante o estágio de confirmação, use métodos de segurança abrangentes para revisar seu código (incluindo análise de código estático) e digitalize seu código à medida que você o verifica em seu controle de origem. Use a verificação de credenciais (também conhecida como verificação secreta ou verificação de token) para expor credenciais que você pode introduzir inadvertidamente na base de código. Detete dependências inseguras antes de apresentá-las ao seu ambiente com a revisão de dependência.
Estágio de implantação (CD)
- Verificação de infraestrutura como código (IaC)
- Análise de segurança dinâmica
- Verificações de configuração na nuvem
- Testes de aceitação de segurança
Durante o estágio de implantação, observe a integridade geral da sua base de código e execute uma verificação de segurança de alto nível para identificar riscos. Execute verificações de configuração de nuvem, verificações de código de infraestruturas e testes de aceitação de segurança para garantir o alinhamento com as metas de segurança organizacionais.
Operar e monitorar o estágio
- Monitorização contínua
- Informações sobre ameaças
- Postmortems irrepreensíveis
Durante a fase de operação e monitoramento, use monitoramento contínuo e inteligência de ameaças para mitigar as vulnerabilidades gerais de dependência que você pode herdar ao longo do tempo. Execute postmortems para tirar lições aprendidas e continuar iterando ao longo do seu ciclo de DevOps.
Implementar análise de dependência, código e segredos
Para facilitar a proteção do código para os desenvolvedores, use recursos nativos e automatizados para fornecer feedback contínuo com recursos de segurança contínuos durante todo o ciclo de vida do desenvolvimento. Forneça segurança geral para desenvolvedores e comunidades com a verificação de dependência de segurança avançada do GitHub, verificação de código e verificação secreta.
Análise de dependência
- Análise integrada das dependências
- Alertas e atualizações de segurança
Obtenha níveis de risco de dependências e correções automatizadas para dependências vulneráveis em sua base de código com verificação contínua de dependências. Como um processo contínuo, ele empurra seus desenvolvedores na direção certa de uma maneira amigável e discreta.
Análise de código
- Estrutura extensível para verificação de código
- Integrado no fluxo de trabalho do desenvolvedor
- Apoiado pelo motor CodeQL líder do setor
Implemente a verificação de código à medida que gera código sem outras etapas para executar em locais separados. Facilite as correções no início do seu ciclo de vida de desenvolvimento visualizando os resultados da verificação em sua experiência de usuário familiar do GitHub.
Análise de segredos
- Analise segredos vazados em repositórios públicos e privados
- Parceria com 40+ fornecedores
- Proteção contra empurrar
- Passar da reparação à prevenção
- Verifique se há segredos de alta confiança
- Habilite a proteção com uma seleção
Analise seu código em busca de credenciais e tokens codificados com a verificação secreta. A proteção por push verifica segredos e tokens antes de enviar por push para sua base de código. Verifique se há segredos de alta confiança à medida que os desenvolvedores enviam código, bloqueando o push quando o GitHub identifica um segredo.
Gerenciar e proteger identidades de carga de trabalho
- Gestão do ciclo de vida
- Governança de acesso
- Acesso adaptável seguro
Obtenha visibilidade da atividade de suas identidades de carga de trabalho e habilite a limpeza periódica. Determine quem possui identidades de carga de trabalho e como você mantém essas informações atualizadas nas alterações da organização. Rastreie quando você usou identidades de carga de trabalho pela última vez, quando você emitiu tokens pela última vez e quando os tokens expiram.
Para mitigar o potencial de segredos e credenciais vazados, realize periodicamente revisões de acesso. Exija que os usuários revisem suas identidades de carga de trabalho e remova privilégios de acesso desnecessários. Peça aos usuários que relatem privilégios de acesso superprivilegiados e subutilizados. Discuta como proteger as identidades da carga de trabalho contra violações. Habilite o acesso condicional para garantir que o acesso seja originário dos recursos esperados.
Proteja identidades com o GitHub OIDC e o Microsoft Entra Workload ID Federation
Para proteger ainda mais sua organização, use o GitHub OpenID Connect (OIDC) com o Microsoft Entra Workload Identity Federation e minimize a necessidade de armazenar e acessar segredos. Gerencie com segurança os segredos principais do servidor do Azure e outros recursos de credenciais de nuvem de longa duração para minimizar o tempo de inatividade do serviço devido a credenciais expiradas. Integre com plataformas de desenvolvedores, como o GitHub Actions, para criar seus aplicativos com segurança.
Nosso fluxo de trabalho recomendado de Federação de Identidades de Carga de Trabalho, ilustrado no diagrama a seguir, compreende seis etapas.
- Configure a confiança no Microsoft Entra ID e solicite um token.
- Configure o fluxo de trabalho do GitHub para permitir ações para obter o token.
- O fluxo de trabalho do GitHub envia uma solicitação para a ID do Azure.
- O Microsoft Entra ID valida a confiança no aplicativo e busca as chaves para validar o token.
- O Microsoft Entra ID acessa e emite o token.
- A ação de implantação usa o token de acesso do Microsoft Entra para implantar em recursos no Azure.
Assista a April Edwards, Senior Cloud Advocate e DevOps Practice Lead, demonstrar o fluxo de trabalho da Workload Identity Federation. A demonstração começa às 19h14 na sessão Microsoft Build 2022, Acelere e proteja seu código para desenvolvimento em nuvem.
Próximos passos
- Inscreva-se na CLI do Desenvolvedor do Azure, uma ferramenta de código aberto que acelera o tempo necessário para começar a usar o Azure.
- Configure o Azure para confiar no OIDC do GitHub como uma identidade federada. O OpenID Connect (OIDC) permite que seus fluxos de trabalho de Ações do GitHub acessem recursos no Azure sem a necessidade de armazenar as credenciais do Azure como segredos de longa duração do GitHub.
- Implementar os princípios do Zero Trust, conforme descrito no memorando 22-09 (em apoio à ordem executiva dos EUA 14028, Improving the Nation's Cyber Security) usando o Microsoft Entra ID como um sistema centralizado de gerenciamento de identidade.
- Acelere e proteja seu código com o Azure DevOps com ferramentas que oferecem aos desenvolvedores a experiência de código para nuvem mais rápida e segura.
- Proteger o ambiente do desenvolvedor ajuda você a implementar os princípios do Zero Trust em seus ambientes de desenvolvimento com práticas recomendadas para privilégios mínimos, segurança de filial e ferramentas, extensões e integrações confiáveis.
- Ambientes de DevOps Seguros para Zero Trust descrevem as práticas recomendadas para proteger seus ambientes de DevOps para evitar que hackers comprometam caixas de desenvolvedores, infetem pipelines de liberação com scripts mal-intencionados e obtenham acesso a dados de produção por meio de ambientes de teste.
- Personalizar tokens descreve as informações que você pode receber nos tokens do Microsoft Entra. Ele explica como personalizar tokens para melhorar a flexibilidade e o controle e, ao mesmo tempo, aumentar a segurança de confiança zero do aplicativo com o menor privilégio.
- Configurar declarações de grupo e funções de aplicativo em tokens mostra como configurar seus aplicativos com definições de função de aplicativo e atribuir grupos de segurança a funções de aplicativo. Esses métodos ajudam a melhorar a flexibilidade e o controle e, ao mesmo tempo, aumentam a segurança de confiança zero do aplicativo com o menor privilégio.