SEC11-BP03 Realizar teste de penetração regular
Realize um teste de penetração regular do software. Esse mecanismo ajuda a identificar possíveis problemas de software que não podem ser detectados pelo teste automatizado ou por uma revisão manual do código. Ele também ajuda você a entender a eficácia dos controles de detecção. O teste de penetração deve tentar determinar se o software pode ser executado de formas inesperadas, por exemplo, expondo dados que devem ser protegidos ou concedendo permissões mais amplas que o esperado.
Resultado desejado: o teste de penetração é usado para detectar, corrigir e validar as propriedades de segurança da sua aplicação. O teste de penetração regular e agendado deve ser realizado como parte do ciclo de vida de desenvolvimento de software (SDLC). As descobertas do teste de penetração devem ser abordadas antes do lançamento do software. As descobertas do teste de penetração devem ser analisaras para identificar se há problemas que podem ser encontrados usando a automação. Ter um processo de teste de penetração regular e repetível que inclua um mecanismo de feedback ativo ajuda a transmitir as orientações aos criadores e melhora a qualidade do software.
Práticas comuns que devem ser evitadas:
-
Realizar um teste de penetração somente para problemas de segurança conhecidos ou prevalentes.
-
Realizar um teste de penetração em aplicações sem ferramentas e bibliotecas de terceiros dependentes.
-
Realizar um teste de penetração em aplicações em busca de problemas de segurança de pacote e não avaliar a lógica de negócios implementada.
Benefícios de implementar esta prática recomendada:
-
Maior confiança nas propriedades de segurança do software antes do lançamento.
-
Oportunidade de identificar padrões de aplicação preferenciais, o que aumenta a qualidade do software.
-
Um ciclo de feedback que identifica mais cedo no ciclo de desenvolvimento quando a automação ou treinamento adicional pode melhorar as propriedades de segurança do software.
Nível de risco exposto se esta prática recomendada não for estabelecida: Alto
Orientação para implementação
O teste de penetração é um exercício de teste de segurança estruturado em que você executa cenários de violação de segurança planejados a fim de detectar, corrigir e validar controles de segurança. Os testes de penetração começam com o reconhecimento, fase durante a qual os dados são coletados com base no design atual da aplicação e nas respectivas dependências. Uma lista selecionada de cenários de teste específicos de segurança é criada e executada. A principal finalidade desses testes é revelar problemas de segurança em sua aplicação, os quais podem ser explorados para obter acesso não intencional ao seu ambiente ou acesso não autorizado aos dados. É necessáraio realizar o teste de penetração ao lançar novos recursos ou sempre que sua aplicação passar por alterações importantes na implementação técnica ou de funções.
É necessário identificar o estágio mais apropriado do ciclo de vida de desenvolvimento para realizar o teste de penetração. Esse teste deve ocorrer em uma fase tardia o suficiente para que a funcionalidade do sistema esteja próxima ao estado de lançamento pretendido, mas com tempo suficiente para corrigir todos os problemas.
Etapas de implementação
-
Tenha um processo estruturado de como o teste de penetração é definido. Basear esse processo no modelo de ameaças
é uma boa maneira de manter o contexto. -
Identifique o estágio apropriado do ciclo de vida de desenvolvimento para realizar o teste de penetração, o qual deverá ocorrer quando houver o mínimo de alterações esperadas na aplicação e tempo suficiente para realizar a correção.
-
Treine os criadores sobre o que esperar das descobertas do teste de penetração e como ter informações sobre correção.
-
Utilize ferramentas para acelerar o processo de testes de penetração automatizando testes comuns ou repetíveis.
-
Analise as descobertas do teste de penetração para identificar problemas de segurança sistêmicos e utilize esses dados para embasar testes automatizados adicionais e a instrução contínua dos criadores.
Recursos
Práticas recomendadas relacionadas:
Documentos relacionados:
-
O Teste de penetração da AWS
fornece orientação detalhada para testes de penetração na AWS -
Modernizar sua arquitetura de testes de penetração no AWS Fargate
Exemplos relacionados: