O DevSecOps é uma cultura e prática organizacional de engenharia de software que visa unificar o desenvolvimento de software (Dev), a segurança (Sec) e as operações (Ops), de modo que uma ideia de negócio seja de fato materializada em um produto ou serviço, promovendo a melhor experiência para o usuário consumidor.
A principal característica do DevSecOps é melhorar os resultados de negócio e o valor entregue de um software e isto somente se faz automatizando, monitorando e aplicando a segurança em todas as fases de seu ciclo de vida.
A prática do DevSecOps fornece melhorias evidentes na qualidade e na segurança ao longo do ciclo de vida de uma aplicação tradicional. Algumas métricas importantes que podemos extrair que comprovam isto são:
• Tempo médio para produção: o tempo médio necessário desde a fase de concepção de um novo recurso de software até sua execução em produção.
• Velocidade de implantação: com que rapidez uma nova versão do aplicativo pode ser implantada no ambiente de produção.
• Frequência de implantação: com que frequência uma nova versão pode ser implantada no ambiente de produção.
• Taxa de falhas na produção: com que frequência temos falhas de software implantados em produção.
• Tempo médio para recuperação: quanto tempo leva para que os aplicativos no estágio de produção se recuperem da falha.
Além disso, a prática ainda permite:
• Caracterização, monitoramento e mitigação de riscos totalmente automatizados ao longo do ciclo de vida do aplicativo.
• Número de atualizações e correções de software necessários para tratamento de vulnerabilidades de segurança e fraquezas de código.
No DevSecOps, testes e segurança são tratados de forma proativa, o que conceitualmente chamamos de “shift-left security”. Por meio de testes automatizados de código Estático (SAST), Dinâmico (DAST) e Integrado (IAST), adicionados aos testes de componentes como imagens de containers e os já tradicionais de qualidade de código, garante-se um importante diferenciador do processo, pois recursos funcionais e de segurança são testados e construídos simultaneamente.
Neste contexto, para o sucesso de uma execução de abordagem DevSecOps deve-se seguir alguns princípios-chave:
• Remover gargalos (incluindo humanos) e ações manuais.
• Automatizar o máximo possível das atividades de desenvolvimento e implantação.
• Adotar ferramentas comuns, desde o planejamento e requisitos até a implantação e operações.
• Aproveitar os princípios de software ágil e favorecer pequenas atualizações incrementais e frequentes em relação a versões maiores e mais esporádicas.
• Aplicar os conjuntos de habilidades multifuncionais de Desenvolvimento, Cibersegurança e Operações ao longo do ciclo de vida do software, adotando uma abordagem de monitoramento contínuo em paralelo, ao invés de esperar para aplicar cada conjunto de habilidades em sequência.
• Implantar infraestrutura imutável, com adoção massiva de contêineres para beneficiar uma arquitetura de software em microsserviços.
A adoção do DevSecOps em todas as fases em um ciclo de vida de software tem o objetivo de reduzir ao máximo o esforço necessário de correção, testando e corrigindo as falhas encontradas na ordem em que o código é produzido.
Esta abordagem gera economia de tempo, evitando o retrabalho de toda a cadeia do ciclo de desenvolvimento e produção, além de trazer maior tranquilidade ao negócio, com um software seguro e eficiente aos seus clientes.
*Por Otoniel Ribeiro, Gerente Sênior de TI da Agility