Fases do ciclo de vida de desenvolvimento de software SDLC seguro
Publicados: 2021-02-26A abordagem inteligente para criar software seguro é Secure SDLC ou Software Development Lifecycle. Em vez de criar software e testá-lo quanto a vulnerabilidades, é melhor criá-lo com ênfase na segurança.
O que é SDLC Seguro?
Em um sentido mais amplo, um SDLC seguro é um processo de integração de testes de segurança e outras medidas no ciclo de vida de desenvolvimento de software existente. Isso pode incluir:
- Escrevendo requisitos de segurança junto com requisitos funcionais.
- Realização de análise de arquitetura.
- Usando componentes de código aberto sem vulnerabilidades de segurança conhecidas.
- Testar o software em todas as etapas e evitar que vulnerabilidades/ameaças sejam levadas adiante.
Por que o SDLC seguro é importante?
A implementação de práticas seguras de Ciclo de Vida de Desenvolvimento de Software é importante porque os desenvolvedores não podem se dar ao luxo de lançar um produto com vulnerabilidades de segurança. Para proteger o software e os dados de ameaças e ataques, ele deve ser desenvolvido de forma a garantir a segurança.
Outra razão para isso é que não é uma abordagem eficiente desenvolver software sem focar na segurança e depois testá-la e corrigi-la.
Fases do SDLC Seguro
Todo o conceito de SDLC seguro gira em torno de cortar o mal pela raiz. O processo evita que os defeitos sejam transportados para a próxima fase do ciclo de vida de desenvolvimento de software. Aqui está um esboço das fases envolvidas no Secure SDLC e as medidas de segurança implementadas em cada uma delas.
Fase de Requisitos do SDLC Seguro
Juntamente com os requisitos funcionais do software, os requisitos de segurança também são descritos no início do SDLC seguro. Esses requisitos detalham o que é exigido dos desenvolvedores para tornar o software inerentemente seguro.
Uma lista detalhada de todos os Casos de Uso e Cenários relacionados à Segurança é compilada antes do início do desenvolvimento. Isso é usado para criar os recursos de segurança e projetar cenários de teste de segurança.
Esses requisitos podem ser algo assim:
- Todos os gateways e pontos de entrada devem ter medidas de autenticação em vigor.
- O sistema deve implementar a autenticação por meio de uma tela de login segura.
- Todos os dados pessoais devem ser criptografados em todos os momentos.
- Mais de um canal de autenticação deve ser usado para transferência de dados confidenciais.
Fase de planejamento para SDLC seguro
A fase de planejamento é a etapa fundamental no Secure SDLC. O planejamento pode diferir de caso para caso, mas aqui estão algumas das coisas mais fundamentais que devem ser atendidas:
- Uma equipe de segurança experiente e dedicada deve ser formada para supervisionar e direcionar todas as medidas relacionadas à segurança do software de maneira imparcial. Essa equipe, preferencialmente localizada fora do escritório de gerenciamento de projetos, deve consistir em um oficial de segurança, arquitetos de segurança e testadores de segurança. Todos os membros da equipe devem ter funções e responsabilidades claramente definidas.
- Quaisquer ambiguidades ou escalações relacionadas às questões de segurança do projeto devem ser tratadas pelo responsável pela segurança do produto. Ele deve ser aconselhado pela equipe de segurança para garantir que as decisões corretas sejam tomadas.
- Um ponto de contato de segurança deve ser estabelecido para garantir que quaisquer alterações feitas na segurança do produto não passem despercebidas pela equipe de segurança.
Fase de Arquitetura e Design do SDLC
Uma avaliação detalhada do risco de segurança do produto deve ser realizada durante a fase de projeto. Isso inclui revisar o programa do ponto de vista da segurança enquanto ele não entrou no estágio de codificação. Quaisquer riscos de segurança devem ser eliminados antes de entrar na próxima fase. Para garantir a segurança, todas as avaliações devem ser realizadas de acordo com os padrões da indústria.

As coisas que devem ser cuidadas durante esta fase incluem, mas não estão limitadas a:
- Revisar todos os recursos, requisitos, histórias de usuários e documentos de design de acordo com os detalhes compartilhados pela equipe do projeto. Em caso de ausência de algum dos documentos exigidos, tudo deve ser claramente discutido pelos membros da equipe do projeto.
- Quaisquer lacunas nos requisitos de segurança do programa devem ser identificadas e avaliadas em relação aos padrões do setor que estão sendo usados. Se necessário, modelos de ameaças podem ser criados de acordo com as lacunas identificadas.
- As lacunas com riscos de segurança suficientes devem ser listadas e uma mitigação viável é sugerida para elas.
Fase de Desenvolvimento do SDLC
Este é o verdadeiro “desenvolvimento” do software. Depois que um layout seguro do aplicativo foi preparado, os desenvolvedores devem escrever o código de acordo com as diretrizes de segurança. Isso inclui:
- Uso de componentes de código aberto sem vulnerabilidades conhecidas.
- Usando as medidas de segurança acordadas ao longo do desenvolvimento do software.
- Teste a frio do código para expor e mitigar qualquer vulnerabilidade no código.
Alguns testes também são feitos na fase. Isso pode incluir coisas como garantir que dados confidenciais não sejam transmitidos como texto simples.
Fase de Implementação do SDLC
Uma vez que o software foi desenvolvido, o próximo passo é a análise dinâmica do código. Esta é uma forma de teste de segurança de aplicativo, também conhecido como teste Open Web Application Project (OWASP).
Antes que a solução seja implementada na vida real, a Análise de Vulnerabilidade e o Teste de Penetração são realizados. As versões do software em que essa verificação é executada são chamadas de compilações de teste. As principais coisas a serem observadas sobre isso incluem:
- Ferramentas como HP WebInspect, ZAP, Burp Suite e SOAP são usadas para verificar as vulnerabilidades do software em relação a vários bancos de dados de vulnerabilidade.
- Toda essa fase é uma mistura de automação e testes manuais.
- Esse processo é realizado em um ambiente independente não vinculado ao ambiente de desenvolvimento para garantir cenários de teste próximos da realidade.
- Qualquer vulnerabilidade encontrada nesta fase é mitigada antes do lançamento do software.
- As ameaças comuns e típicas são identificadas durante esta fase e são tomadas medidas para evitá-las.
Conclusão
À medida que nossa dependência de software continua a aumentar, é importante torná-los seguros para os usuários. Para garantir que o software e os aplicativos estejam de acordo com a segurança, as práticas Secure SDLC são adotadas. O objetivo final é sempre criar soluções de software que sejam invulneráveis.
O processo SDLC seguro tem cinco fases, desde a coleta dos requisitos até o teste de pré-implantação. O foco é mitigar ameaças e vulnerabilidades em cada etapa para que não sejam levadas adiante.
