A metodologia DevOps transformou a maneira como os softwares são desenvolvidos e, acima de tudo, mostrou a importância da responsabilidade compartilhada entre os departamentos de desenvolvimento e operação.
De maneira resumida, DevOps refere-se ao processo integrado entre desenvolvimento de sistemas e operações de TI, para deixar o procedimento ágil e enxuto, com a implementação de ciclos mais curtos, testes mais rápidos e um maior nível de automação.
Muitas vezes vistas como “adversárias”, a equipe de operação de TI, responsável por manter os serviços disponíveis, não apoiava as mudanças da equipe de desenvolvimento, pois em sua visão, entregas mais ágeis tornavam mais complexas as tarefas de manter um ambiente operacional, estável e seguro.
A maior parte das empresas que adotou o modelo de DevOps, alcançou resultados bem positivos. Uma pesquisa recente constatou que as organizações que “abraçaram” a metodologia aumentaram sua velocidade de ida ao mercado em 20%. Outro estudo revelou que 52% dos que incorporaram a cultura aumentaram a taxa de satisfação de seus clientes e 38% apuraram crescimento nas vendas.
Segurança aplicada ao DevOps
No entanto, com a adoção de processos de metodologia ágil, foi necessário que os procedimentos de segurança no desenvolvimento também se adaptassem, trazendo a cultura de DevSecOps, que consiste no modelo de inserir ações de segurança e pontos de controle em algumas etapas do desenvolvimento de aplicações, seguindo a mesma mentalidade ágil.
Podemos dizer que DevSecOps é o processo e a prática de desenvolvimento que torna cada membro da equipe responsável pela segurança.
Os resultados do DevSecOps costumam ser satisfatórios para a empresa, uma vez que a ideia é construir aplicações mais resistentes desde o início do ciclo de desenvolvimento, em vez de adicionar recursos de proteção apenas no final, algo que pode ser extremamente custoso.
Um bug descoberto no período de desenvolvimento tem custo de correção relativamente baixo, porém seu valor vai aumentando à medida que o processo de desenvolvimento vai avançando, pois a mobilização das equipes é maior.
Ao enfatizar uma abordagem de segurança em primeiro lugar, conforme descrito no Manifesto do DevSecOps, o modelo incorpora segurança desde a concepção do código. Dessa maneira, permite que aplicativos e infraestrutura possam escalar com segurança na mesma velocidade dos negócios. Dois objetivos aparentemente opostos – “velocidade de entrega” e “código seguro” – são mesclados em um processo simplificado.
Como os desenvolvedores continuam inovando, a separação entre desenvolvimento e segurança não é mais interessante. Aplicativos que antes eram monolíticos agora consistem em muitos serviços e dependências, cada um com potenciais falhas de segurança. Ao transferir a responsabilidade pela segurança para mais perto das pessoas que criam aplicativos e arquitetura, o DevSecOps cria aplicativos com a segurança mais integrada.
Alguns componentes importantes de uma abordagem DevSecOps:
- Análise de código – entrega de código em pequenos pedaços para que as vulnerabilidades possam ser identificadas rapidamente;
- Gerenciamento de mudanças – aumente a velocidade e a eficiência permitindo que qualquer pessoa envie alterações e, em seguida, determine se o resultado é eficiente ou não;
- Monitoramento de conformidade – esteja pronto para auditorias a qualquer momento (o que significa monitoramento contínuo, incluindo coleta de evidências de conformidades com o GDPR , PCI, etc.);
- Avaliação de vulnerabilidades – identifique novas vulnerabilidades com a análise de código e, em seguida, analise a rapidez com que elas estão sendo respondidas e corrigidas;
- Treinamento de segurança – treine desenvolvedores e administradores de sistemas de TI com diretrizes e normas bem conhecidas.
Os modelos de desenvolvimento de software ainda pecam na questão da segurança
O OWASP Top 10 (Open Web Application Security Project) é um documento de conscientização para a segurança das aplicações web que visa elencar as principais vulnerabilidades encontradas normalmente dentro de um período de 3 anos. Importante lembrar que não são as vulnerabilidades mais críticas ou as mais importantes, mas sim as mais encontradas durante aquela versão do documento (hoje estamos na versão 2017 e já tivemos versões 2004, 2007, 2010 e 2013).
Boa parte das vulnerabilidades estão presentes em todos os documentos, alternando apenas a posição dentro da classificação. Isso demonstra a real necessidade das práticas de segurança no ciclo de desenvolvimento de software.
Se uma determinada vulnerabilidade continua dentro do OAWSP Top 10 desde 2004, os processos de desenvolvimento de softwares atuais ainda não atingiram um nível de maturidade para endereçar os problemas mais recorrentes.
Integre o DevSecOps às operações atuais de segurança
Existem diversos padrões e métodos de segurança de aplicativos utilizados hoje em dia, como OWASP Top 10, ISO/IEC 27034, NIST 800-54/64, SANS CWE Top 25, CIS CSC, Open SAMM, etc., além de diversas ferramentas para ajudar a automatizar e acelerar os processos de DevOps, como Jenkins, Puppet, Docker, Chef, Ansible, etc.
A proposta prática do DevSecOps é integrar os testes de segurança utilizando os padrões e métodos disponíveis atualmente com as automações já realizadas em cada fase das entregas de software, gerando assim, aplicações mais seguras desde a sua concepção e cumprindo com o principal objetivo do DevSecOps: “garantir a segurança dos dados“.
Gostou desse post? Talvez você se interesse também por Shadow IT e os desafios para o departamento de TI.