SEC11-BP02 Automatizar o teste durante o ciclo de vida de desenvolvimento e lançamento
Automatize o teste das propriedades de segurança durante o ciclo de vida de desenvolvimento e lançamento. Com a automação, é mais fácil identificar de forma consistente e repetível possíveis problemas no software antes do lançamento, o que reduz o risco de problemas de segurança no software que está sendo fornecido.
Resultado desejado: o objetivo dos testes automatizados é fornecer uma forma programática de detectar possíveis problemas com antecedência e frequência durante todo o ciclo de vida do desenvolvimento. Ao automatizar o teste de regressão, você pode executar novamente testes funcionais e não funcionais para verificar se o software testado anteriormente ainda funciona da forma esperada após uma alteração. Ao definir testes de unidade de segurança para conferir configurações incorretas comuns, como uma autenticação ausente ou danificada, é possível identificar e resolver esses problemas logo no início do processo de desenvolvimento.
A automação de testes utiliza casos de teste para um propósito específico para validação de aplicações, com base nos requisitos e na funcionalidade desejada da aplicação. O resultado dos testes automatizados baseia-se na comparação da saída do teste gerado com a respectiva saída esperada, o que acelera o ciclo de vida dos testes em geral. As metodologias de teste, como teste de regressão e pacotes de teste de unidade, são mais adequadas para automação. A automação dos testes de propriedades de segurança possibilita aos criadores receber feedback automatizado sem precisar esperar por uma avaliação da segurança. Os testes automatizados em forma de análise de código estático ou dinâmico podem melhorar a qualidade do código e ajudar a detectar possíveis problemas de software no ciclo de vida de desenvolvimento.
Práticas comuns que devem ser evitadas:
-
Não comunicar os casos de teste e os resultados dos testes automatizados.
-
Realizar os testes automatizados somente antes de um lançamento.
-
Automatizar casos de teste com requisitos que mudam com frequência.
-
Não fornecer orientações sobre como abordar os resultados dos testes de segurança.
Benefícios de implementar esta prática recomendada:
-
Redução da dependência de pessoas que avaliam as propriedades de segurança dos sistemas.
-
Descobertas consistentes em vários fluxos de trabalho que melhoram a consistência.
-
Redução da probabilidade de introduzir problemas de segurança no software de produção.
-
Redução do período de tempo entre a detecção e a correção devido à detecção precoce dos problemas de software.
-
Maior visibilidade do problema sistêmico ou repetido entre os vários fluxos de trabalho, o que pode ser utilizado para promover melhorias em toda a organização.
Nível de risco exposto se esta prática recomendada não for estabelecida: Médio
Orientação para implementação
Ao criar um software, adote vários mecanismos de teste para garantir que você esteja testando os requisitos funcionais da aplicação com base na respectiva lógica de negócios e em requisitos não funcionais, os quais se focam a confiabilidade, a performance e a segurança da aplicação.
O teste de segurança de aplicação estática (SAST) analisa padrões de segurança anômalos no código-fonte e fornece indicações de código propenso a defeitos. O SAST depende de entradas estáticas, como documentação (especificação de requisitos, documentação e especificações de design) e código-fonte da aplicação, para testar uma série de problemas de segurança conhecidos. Os analisadores de código estático podem ajudar a acelerar a análise de grandes volumes de código. O NIST Quality Group
Complemente seu teste estático com metodologias de teste de segurança de análise dinâmica (DAST), as quais realizam testes na aplicação em execução a fim de identificar comportamento possivelmente inesperado. O teste dinâmico pode ser utilizado para detectar possíveis problemas que não são detectáveis por meio de análise estática. Por meio dos testes nos estágios de repositório de código, compilação e pipeline, é possível impedir que diferentes tipos de problema em potencial ocorram no código. O Amazon Q Developer
O workshop Segurança para desenvolvedores
À medida que você avançar no SDLC, estabeleça um processo iterativo que inclua avaliações de aplicação periódicas com sua equipe de segurança. O feedback coletado dessas avaliações de segurança deve ser abordado e validado como parte de sua revisão de prontidão do lançamento. Essas avaliações estabelecem um procedimento de segurança robusto de aplicações e fornecem aos criadores feedback útil para resolver possíveis problemas.
Etapas de implementação
-
Implemente um IDE consistente, análise de código e ferramentas de CI/CD que incluam teste de segurança.
-
Considere quando no SDLC é adequado bloquear pipelines em vez de apenas notificar os criadores de que problemas precisam ser corrigidos.
-
O Automated Security Helper (ASH)
é um exemplo de ferramenta de digitalização de segurança de código aberto. -
Realizar testes ou revisões de código usando ferramentas automatizadas, como o Amazon Q Developer
integrado aos IDEs de desenvolvedores e o Amazon CodeGuru Security para verificar o código na confirmação, ajuda os criadores a obter feedback no momento certo. -
Ao compilar usando o AWS Lambda, é possível usar o Amazon Inspector para verificar o código da aplicação em suas funções.
-
Quando testes automatizados são incluídos em pipelines de CI/CD, é necessário usar um sistema de emissão de tíquetes para rastrear a notificação e a correção de problemas de software.
-
Para testes de segurança que podem gerar descobertas, a vinculação com orientações para correção ajuda os criadores a melhorar a qualidade do código.
-
Analise regularmente as descobertas das ferramentas automatizadas para priorizar a próxima automação, o treinamento de criadores ou a campanha de conscientização.
-
Para extrair o SBOM como parte de seus pipelines de CI/CD, use o Amazon Inspector SBOM Generator para produzir SBOMs para arquivos, imagens de contêineres, diretórios, sistemas locais e binários Go e Rust compilados no formato CycloneDX SBOM.
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
-
Parceiros de competência Segurança da AWS
para segurança de aplicações -
Biblioteca de detecção de segurança do Amazon CodeGuru Security
-
Como a AWS aborda a automatização de implantações seguras e sem intervenção manual
-
Como o Amazon CodeGuru Security ajuda você a equilibrar de forma eficaz a segurança e a velocidade
Vídeos relacionados:
Exemplos relacionados: