blog conviso

Secure Software Development Lifecycle

February 8, 2022

By

Leandro

Cabral

S-SDLC|Asset

Quando olhamos para um software, é normal imaginarmos que o seu processo de criação se baseia quase que exclusivamente no processo de escrita do seu código. No entanto, temos que lembrar que para a produção correta, eficiente e segura de um software, precisamos seguir um processo estruturado e abrangente - conhecido como Secure Software Development LifeCycle (SDLC) - que engloba várias etapas-chave para garantir a segurança e qualidade do software desde a sua concepção até o seu lançamento e manutenção.

Ao longo dos anos, vários modelos SDLC surgiram, como de cascata e iterativo, a mais recente modelos ágeis, que aumentam a velocidade e a frequência de implantação.

A intenção do Secure Software Development Lifecycle (S-SDLC) é permitir, por meio de um conjunto de atividades estruturadas de segurança, que as aplicações sejam desenvolvidas tendo como base as melhores práticas de desenvolvimento seguro, o que ao final do processo nos entregaria uma aplicação mais segura. 

Confira os dois modelos para uma melhor visualização.

O S-SDLC envolve a readequação de processos existentes, a implementação de novas ferramentas e, mais importante, a condução de uma mudança cultural em várias equipes. A segurança é uma parte importante de qualquer aplicação. Deve ser aplicada em todas as fases do processo, ajudando a evitar problemas antes que eles se manifestem como problemas de segurança em produção.

As Ferramentas no SDLC são importantes, mas não são solução para o problema. De forma conjunta temos a execução de testes automatizados e manuais, garantindo que as equipes de segurança, operações e desenvolvimento estejam trabalhando juntas em direção ao mesmo objetivo. 

Outro importante fator é o entendimento de que testar cedo e com frequência é a melhor maneira de garantir que seus produtos e o SDLC estejam protegidos desde o início. Isso significa que as equipes devem começar a testar nos primeiros estágios de desenvolvimento

Como garantir o S-SDLC?

Garantir a segurança do SDLC requer foco em como a aplicação opera e como os desenvolvedores transformam os requisitos funcionais e de segurança em código da aplicação. A segurança deve fazer parte das atividades das equipes à medida que o aplicativo é desenvolvido. Isso pode exigir uma mudança cultural dentro de suas equipes, mas, no final o resultado vai ser muito positivo.

Uma das possíveis soluções dentro de um cenário de busca por um S-SDLC é a estruturação de um Programa de Segurança de Aplicações.

Um Programa de Segurança de Aplicações pode estruturar além de todo o processo, a forma como as equipes serão treinadas, como elas ajudam na construção e manutenção do processo e alguns outros pontos. A implementação de um Programa de Security Champion pode ser atuar como uma das soluções e pode ajudar a gerar uma estrutura completa na segurança para as aplicações.

Em geral, o SDLC inclui as seguintes fases:

Security Requirements: Certifique-se de que, durante está fase, os requisitos de segurança para a aplicação sejam identificados;

Design: Aplique design seguro e modelagem de ameaças sempre, entenda as necessidades de arquitetura de software;

Development: Durante a fase de desenvolvimento, as equipes precisam se certificar de que usam padrões de codificação seguros, os desenvolvedores também precisam estar atentos aos requisitos de segurança que foram identificados;

Testing: Deve incluir testes de segurança, usando ferramentas automatizadas e testes manuais para melhorar a segurança da aplicação;

Operation: Mesmo após a implantação e implementação, as práticas de segurança precisam ser seguidas durante a manutenção da aplicação. Os produtos precisam ser atualizados continuamente para garantir que estejam protegidos contra novas vulnerabilidades e sejam compatíveis com quaisquer novos cenários de ameaças. 

O objetivo do S-SDLC não é eliminar completamente as verificações de segurança tradicionais, como um Pentest, mas sim, incluir a segurança no escopo das responsabilidades dos desenvolvedores e capacitá-los a criar aplicativos cada vez mais seguros.

Alcançar um S-SDLC exige que as organizações adotem um conjunto atualizado de práticas e processos de segurança além de uma abordagem DevSecOps.

Referências:

Sobre o autor

Leandro
Cabral

Bachelor's degree in Computer Science from the Federal University of Alagoas. He has spoken at events such as the NullByte Security Conference and Hackers to Hackers Conference, and presented research projects at national and international events. He has experience in application security, exploit development, and vulnerability research in both userland and kernel land, having discovered vulnerabilities for companies like Microsoft, AMD, and Intel. His interests include operating system internals, compilers, malware development, vulnerability research, and EDR evasion.

Saiba mais