Segurança na concepção de produtos digitais e a atuação conjunta do DevOps
Com o advento da nuvem os processos se tornaram ágeis e as equipes mais integradas.
A evolução da tecnologia e dos sistemas de informação alavancadas pela computação em nuvem levaram a concepção e o desenvolvimento de soluções a um novo patamar. Se antes os processos tinham uma escala que, embora confiáveis, eram mais engessadas e distante das operações de negócios, com o advento da nuvem os processos se tornaram ágeis e as equipes mais integradas. Assim surgiu a cultura DevOps – união de pessoas, processos e tecnologias para otimizar o desenvolvimento dos negócios. E com a evolução cultural e tecnológica, um novo desafio apareceu, que é a segurança na concepção desses novos produtos. Ou seja, security as a code.
Se o principal objetivo do DevOps é gerar valor aos negócios e aumentar sua capacidade de resposta às mudanças por meio de entregas de serviços rápidos e de alta qualidade, certificar que tudo isso seja feito de maneira estável, robusta e segura é parte fundamental de seu funcionamento. Os times de TI e segurança precisam atentar às brechas geradas pela atuação acelerada do DevOps. E para isso, é preciso que as equipes tenham o verdadeiro “sentimento de dono” das aplicações.
Seguindo a visão de Werner Vogels, executivo que arquitetou o que viria a ser a nuvem para levar a revolução da Amazon a outro patamar, não dá para separar em um único quadro os times de desenvolvimento e de operação, e não dar a eles a responsabilidades das atribuições do que foi desenvolvido. Os times constroem, os times mantêm. Portanto, a cultura DevOps precisa ter em mente que a questão da segurança é tão ou mais fundamental que garantir a integridade da aplicação em aspectos como performance e custos de operação.
A evolução dos times de desenvolvimento e a forma como este departamento se sofisticou, implantando o infrastructure as a code, criando códigos que ajudem a automatizar operações de TI, também representa o desenvolvimento de código para automação de segurança. As equipes de operações em nuvem vêm adotando a técnica, se juntando a equipes de aplicações para ajudar a escalar o processo para programas voltados para DevOps, enquanto mantém os requisitos de TI.
E cada vez mais o uso de security as a code na concepção de produtos e soluções estará integrado no processo dos times. Estima-se que em 2020 o vazamento de dados custará para as empresas US﹩ 150 milhões – e o impacto global poderá chegar a US﹩ 2,1 trilhões. Diante disso, a segurança ganha destaque e relevância para as corporações. Com a constante e rápida mudança nos workloads e ambientes de desenvolvimento, não há uma solução mágica quando se trata de se certificar a segurança das aplicações. Entretanto, alguns princípios podem ser implantados no processo de certificação.
Uma delas é implementar o conceito de SecDevOps. Aqui, as equipes de desenvolvimento e operações recebem também o apoio do pessoal de segurança, de modo que questões essenciais deste quesito são solucionadas logo no início do desenvolvimento. Ao invés de deixar a segurança para a etapa final de testes e de quality assurance, ela já é pensada direto no código – seguindo o preceito de security as a code já mencionado – por meio de análises, automação e inserção de recursos de segurança nas ferramentas usadas pelo DevOps. Isso é fundamental por garantir mais proteção sem prejudicar a agilidade no desenvolvimento.
Outro ponto é adotar um pensamento em segurança desde o início do fluxo de integração contínua e entrega contínua (CI/CD). Isso pressupõe que toda a construção do software é conduzida de modo a integrar as boas práticas de desenvolvimento seguro ao produto, o que reduz substancialmente a quantidade de vulnerabilidades com que ele é publicado ao longo do ciclo. Na prática, isso se traduz em uma aplicação muito mais robusta e confiável, o que gera menos riscos de violações do programa por parte de indivíduos ou grupos maliciosos.
Garantir o bom andamento desse processo de segurança na concepção do código significa também promover automação. Investir em ferramentas de orquestração e automação de segurança, se utilizando de recursos como análises de imagem de container, machine learning e inteligência de ameaças para manter seu fluxo seguro desde o desenvolvimento até o deploy e o release.
E por fim, nada disso é possível sem um trabalho forte de aculturamento de engenharia dos times. Se não houver clareza da importância de ter a segurança do código permeado em todo o processo de desenvolvimento, isso pode enfraquecer a iniciativa de se somar a equipe de segurança aos projetos de DevOps – o que efetivamente impediria a implantação do SecDevOps e por consequência do security as a code. É necessário, portanto, que a liderança atue diretamente na conscientização de cada área sobre a importância de uma atuação conjunta constante.
Todas essas questões são fundamentais para as empresas que buscam o máximo em produtividade sem sacrificar a qualidade da segurança em todo o ciclo de desenvolvimento. Atrelar todos os benefícios que a cultura DevOps oferece para o desempenho do modelo de negócio da companhia à robustez do processo de segurança na concepção do produtos pelos times é juntar o melhor dos dois mundos em um ambiente cada vez mais ágil e vulnerável.
*Ari Neto trabalha em TI há 19 anos, e há 7 com projetos de cloud. Com atuação em diversas áreas, ele possui experiência com infraestrutura, data centers, ciclo de vida de aplicações e arquitetura de cloud. Na Trend Micro, ele atua como Sales Engineer focado em cloud e DevOps em todo o país.