Em um mundo cada vez mais digital, resguardar projetos contra ataques mal-intencionados pode representar um desafio. Além da agilidade e entrega, devemos pensar na segurança da aplicação e da infraestrutura desde o início.
Por isso, em nossa primeira #SecurityLive debatemos sobre DevSecOps, o conceito que une aspectos do DevOps às práticas de segurança, evitando a ocorrência de vulnerabilidades ao longo de todas etapas do processo de desenvolvimento.
Nossa live contou com a presença de Luis Asensio, Head de Segurança na Boa Vista, e Carlos Jardim, Sales Engineering Manager na McAfee.
Quais suas diferenças para o DevOps?
DevSecOps é um muito importante quando falamos da esteira de desenvolvimento de uma aplicação. Ele envolve a adequação dos processos de desenvolvimento e operação para que sistemas entrem de forma segura em produção em processos de Continuous Delivery.
É uma verdadeira mudança de pensamento, pois a segurança está presente em todo o ciclo. Logo a segurança ganha uma atenção especial em DevSecOps mais condizente com os atuais desafios de proteção de dados.
O conceito de DevOps se refere a práticas que combinam desenvolvimento (Dev) e Operações (Op) com objetivo de encurtar o ciclo de desenvolvimento e oferecer uma entrega contínua e um software de qualidade.
Com modelos de desenvolvimento mais tradicionais em uso, DevOps chegou para resolver problemas como:
Ambiente de desenvolvimento diferente do de produção;
Integrações não documentadas;
Documentação insuficiente ou nula.
Todas os problemas citados acima refletem no time de infraestrutura e operações, uma vez que:
O ambiente projetado tem como base a documentação, ou seja, se está for fraca, o ambiente sofrerá prejuízos;
Conexão e integrações não mapeadas, já que estas não foram devidamente mapeadas.
Dessa forma, apresentar práticas DevOps é integrar melhor ambos os times, de desenvolvimento e operações para que complicações não ocorram na hora de migrar uma aplicação para ambiente de produção.
E como a segurança estava inserida em DevOps?
No que concerne a área de desenvolvimento são realizadas modelagem de ameaças, revisões de códigos (SAST), testes dinâmicos (DAST) e ethical hacking (Pentest). Quanto a operações são definidas por exemplo regras de Firewall, VLAN e é realizada uma gestão de vulnerabilidades.
Como você pode perceber a segurança está presente de fato, porém não ao longo de todo o processo de criação de aplicação. Por exemplo, se um desenvolvedor criar uma aplicação e migrá-la para a área de infraestrutura, é possível que a aplicação apresente problemas de segurança e performance, que poderiam ter sido vistos e solucionados antes.
Imagine que após sua entrega ao cliente sua aplicação comece a apresentar vulnerabilidades. Isso demandará mais tempo e esforço por parte dos times de Desenvolvimento e Operações.
É importante que ambos os times conversem desde o começo de um projeto. Todavia, hoje mais do que nunca, o modelo de segurança precisa mudar e estar implantado em todas as fases da esteira de desenvolvimento.
Antes de mais nada, Luis Asensio reitera “DevSecOps não é um cargo, não é um ferramenta, mas uma cultura na qual todos devem ter conhecimentos sobre segurança”. Isso por que a segurança não depende de uma pessoa exclusivamente no time. Ela envolve arquitetura, gestão de acesso e governança por exemplo. Assim toda a equipe deve falar DevSecOps.
Essa cultura permite que haja agilidade na esteira de desenvolvimento, sem que a segurança ou a falta dela, se tornem obstáculos ao longo do processo.
Para Luis Asensio “a automação é uma incrível facilitadora dentre as tarefas a serem executadas, mas a relação humana é indispensável”. Modelagem de ameaças, revisão de códigos e pentest são etapas de segurança que podem ter feitas de forma automatizada, mas se tornam mais eficientes com um toque humano no final.
A cultura DevSecOps deve estar integrada em todas as fases da esteira de desenvolvimento:
Planejamento
Build
Teste
Release
Deploy
Operação
Monitoramento
A cultura DevOps em si já oferece benefícios a uma empresa como: inovação, grande eficiência operacional, redução de custos, retenção de pessoas e integração interna. Mas é importante frisar a evolução para uma cultura que saiba integrar a segurança desde o início de um projeto. Carlos Jardim cita 4 vantagens a mais quando a empresa sabe investir em DevSecOps:
Maior disponibilidade
Maior confiança
Maior integridade
Maior aderência às regulamentações
Para Carlos Jardim as empresas que inovam são aquelas que já tem uma adoção forte DevOps. Elas conseguem mudar suas aplicações, seus produtos, de uma forma muito mais rápida. No caso de uma empresa ágil, se ocorre demora de 6 meses na correção de uma aplicação, a própria empresa está abrindo brechas para que seus concorrentes ganhem mais espaço no mercado
Aplicações em containers: como fica a questão da segurança?
O desenvolvedor hoje possui um grande conhecimento sobre o ambiente onde sua aplicação se encontra e é aí que vemos a questão de containers, uma das melhores formas de hospedar uma aplicação moderna e um grande habilitador de técnicas ágeis de DevOps.
O que são containers afinal?
Trata-se de uma unidade de software que oferece uma maneira padrão de empacotar códigos, configurações e dependências da sua aplicação em um único objeto. Containers compartilham um sistema operacional instalado no servidor. Seu processo de execução é isolado dos recursos, o que implica em implantações mais rápidas e consistentes, independentemente do ambiente, seja ele um data center particular, uma nuvem pública, um ambiente híbrido ou o computador pessoal do desenvolvedor.
Por meio da containeirização é possível:
Reduzir startup time e uso de memória;
Aumentar customização escalabilidade;
Oferecer portabilidade mais simples;
Promover inovação.
Shift Left em DevOps
Em modelos de desenvolvimento mais tradicionais, a maioria dos testes de segurança de uma aplicação ocorre no fim de todo o processo. Testes de penetração e revisões de código são muito importantes para garantir a segurança da aplicação, mas o problema está no momento tardio em que são realizados. Isso é um ponto de atenção indicado por Carlos Jardim: “Em DevOps a segurança não é levada em consideração ou verificada até que a aplicação esteja em produção, o que pode gerar problemas de indisponibilidade para o cliente”.
No caso de problemas, acaba tendo que se escolher entre atrasar o lançamento do produto, aplicar hotfix ou aplicar rapidamente um plano de correção em sequência. Mas nenhuma dessas alternativas é de fato boa.
Desenvolvimento seguro ao longo da esteira de produção
Um dos princípios da cultura DevSecOps é iniciar os testes de segurança o quanto antes na esteira de desenvolvimento de uma aplicação. Se antes os testes de segurança ocorriam apenas no final, agora com o método Shift left testes de segurança são feitos em cada etapa do pipeline de DevOps.
A grande vantagem é a garantia de que todas as mudanças na base de código terão uma série de testes de segurança aplicados antes de serem aceitos em uma compilação que esteja pronta para ser lançada na produção. Além disso, isso representa camadas adicionais de teste e por consequência custos e esforços para solução de falhas são reduzidos de forma significativa.
O que pode ser feito
É essencial garantir a segurança de containers, da infraestrutura e claro de toda a esteira de desenvolvimento. Para isso, Carlos Jardim menciona alguns passos já realizados pela McAfee:
Cloud Security Posture Management (CSPM)
Proteção e controle de SaaS, IaaS e PaaS
Integração de ferramentas de DevOps (Shift left)
Scan de vulnerabilidades de containers (build time)
Governança e Compliance
Arquitetura Zero trust
Como o mercado cada vez apresenta novas demandas e os desenvolvedores continuam inovando, a separação entre desenvolvimento, operações e segurança já não é tão vantajosa. Aplicações antes monolíticas eram sinônimo de muitas dependências e serviços, cada uma com potenciais falhas de segurança. Mas saber enfatizar uma abordagem de segurança em todo o ciclo de vida da aplicação vai garantir ao mesmo tempo agilidade na entrega e a segurança do código.
Este artigo foi escrito por Alfredo Santos e publicado originalmente em Prensa.li.