Boas práticas de segurança em DevOps
16 de março de 2021
0 minutos de leituraA segurança em DevOps consiste na aplicação de políticas e tecnologias de segurança da informação em todo o ciclo de vida e fluxo de valor de DevOps. Como DevOps tende a envolver todas as etapas do ciclo de vida do desenvolvimento de software (SDLC), uma segurança eficaz se torna ainda mais essencial.
Para a maioria das organizações, a segurança da informação não é novidade. Uma das principais preocupações da tecnologia da informação é: como proteger os sistemas contra comprometimentos? No entanto, a infraestrutura de DevOps representa uma grande mudança em relação aos paradigmas mais tradicionais de TI. Como aplicar a segurança da informação a DevOps de forma eficaz?
O que é segurança em DevOps?
A segurança em DevOps é uma versão inicial do DevSecOps, que busca colocar a segurança em foco em todo o ciclo de vida do desenvolvimento de software, capacitando e dando autonomia às equipes de desenvolvimento (Dev) e operações (Ops) para terem mais controle sobre a segurança dos softwares que desenvolvem e implantam.

Saiba mais sobre a transição de DevOps para DevSecOps.
4 principais desafios da segurança em DevOps
A transição dos modelos tradicionais de TI e desenvolvimento de software para o foco moderno e ágil de DevOps trouxe novos desafios de segurança. Isso exige não apenas uma mudança nas ferramentas de segurança, mas também na cultura, nas pessoas e nos processos. Embora DevOps seja frequentemente visto como a união entre desenvolvimento e operações, DevOps e segurança continuam separados.
1. Ritmo acelerado de mudanças
Um dos efeitos mais significativos sobre a segurança é o ritmo acelerado de mudanças em DevOps. Em ambientes legados, a nova infraestrutura geralmente era provisionada como hardware físico, sem sistema operacional, e havia um longo intervalo entre a solicitação de provisionamento e a disponibilidade funcional. O desenvolvimento de software costumava seguir o modelo em cascata, com grandes lançamentos a cada poucos meses ou trimestres. Já em ambientes ágeis modernos, podem ocorrer várias implantações em produção em um único dia.
Além disso, o uso de infraestrutura baseada na nuvem permite aumentar a capacidade em questão de minutos, em vez de horas ou dias. Tudo isso resulta em um aumento significativo no ritmo de mudanças de um determinado ambiente. Tecnologias e processos legados não foram desenvolvidos para se adaptar a um ambiente com tantas mudanças.
2. Segurança na nuvem
Outro desafio decorre diretamente da popularidade das arquiteturas que priorizam a nuvem. Em comparação com uma implantação tradicional local, a nuvem apresenta uma superfície de ataque muito mais ampla, com limites de rede pouco definidos e imprecisos. Quase qualquer recurso provisionado pode ser configurado para aceitar tráfego da internet pública com apenas alguns cliques ou linhas de código. A segurança de rede legada partia do pressuposto de que a rede seria bem definida, com alguns vetores de entrada e saída já estabelecidos. Saiba mais sobre os desafios da segurança na nuvem.
3. Conteinerização de cargas de trabalho
Isso também traz novas variáveis para o ambiente de segurança. Os contêineres oferecem recursos atraentes para os fluxos de trabalho modernos de desenvolvimento e implantação, mas a complexidade adicional do mecanismo subjacente, da orquestração e da rede cria mais possíveis vetores de ataque que precisam ser monitorados e protegidos.
4. Colaboração
As ferramentas, tecnologias e os processos de segurança legados simplesmente não foram projetados para muitos desses casos de uso. Equipes isoladas de segurança e engenharia não conseguirão acompanhar o ritmo acelerado e iterativo de uma cultura que prioriza DevOps. Quando segurança e engenharia trabalham em bolhas separadas, muitas vezes duplicam esforços operacionais e fluxos de informações que poderiam ser facilmente reunidos em um só lugar.
Também é fundamental criar um único pipeline para que as equipes estejam alinhadas e recebam as mesmas informações da mesma fonte. Na prática, porém, não é incomum encontrar organizações executando dois agentes do Splunk na mesma máquina — um para a equipe de segurança e outro para a equipe de aplicações — ou uma equipe de prevenção a fraudes recebendo dados tanto da segurança quanto da infraestrutura, cada uma com pipelines de eventos completamente separados e paralelos.
Comece a participar de desafios de Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.
E quanto a DevSecOps?
DevSecOps integra o modelo de DevOps — com entrega de software e cultura organizacional que favorecem ciclos rápidos de feedback — às práticas de segurança da informação. Em vez de adicionar a segurança da informação às etapas do ciclo de DevOps depois que elas já aconteceram, como na segurança em DevOps, DevSecOps busca integrar os objetivos de segurança e engenharia com uma mentalidade de “shift left”.

Figura 2: os objetivos de segurança estão sendo antecipados
A segurança em DevOps geralmente começa com uma mentalidade ou postura geral. Nela, as ferramentas não são tudo. As práticas de DevSecOpsnão se resumem a marcar itens de uma lista de tarefas. Sem uma mentalidade de segurança na equipe, será praticamente impossível alcançar o objetivo de ter uma plataforma segura.
Em DevSecOps, os objetivos de segurança são aplicados às diferentes etapas do ciclo de vida com as ferramentas e os processos disponíveis. As equipes de segurança ainda podem trabalhar em silos separados das equipes de engenharia e operações, embora possa haver uma cultura mais colaborativa. Desde o início, DevOps se baseia no modelo de responsabilidade compartilhada entre desenvolvimento e operações. Mesmo assim, a segurança ainda costuma depender da interação com uma equipe ou organização de segurança externa e isolada.
DevSecOps busca integrar os objetivos de segurança a todo o ciclo de vida de DevOps, especialmente às primeiras etapas de design e desenvolvimento. As responsabilidades pela segurança são “antecipadas”, dando aos desenvolvedores a responsabilidade de corrigir problemas antes que eles cheguem a ambientes com SLAs mais rigorosos.
Para empresas com equipes enxutas, antecipar a segurança pode ajudar a reduzir parte da carga de correção que recai sobre as equipes de segurança. No caso do Reddit, uma API automatizada permitiu que uma pequena equipe de segurança gerenciasse muitos repositórios e também deu aos desenvolvedores autonomia para corrigir problemas de segurança:
“Depois de limpar nossos repositórios, mudamos a estratégia: os novos pull requests passaram a ser rejeitados quando continham vulnerabilidades de segurança. Isso fez o Reddit deixar de depender de uma abordagem reativa, liderada pela equipe de segurança, e adotar uma abordagem centrada nos desenvolvedores e liderada por eles para corrigir os problemas. Só conseguimos dar conta de todo esse trabalho usando a API da Snyk.”
Spencer Koch, profissional de segurança do Reddit
Os recursos de feedback rápido de DevOps e das ferramentas de DevSecOps, especialmente de CI/CD, permitem que os desenvolvedores respondam imediatamente ao feedback automatizado de segurança. Assim, os ciclos de revisão manual são eliminados e a postura de segurança melhora em todo o SDLC.
Faça a transição de DevOps para DevSecOps
Como uma organização pode fazer a transição de uma cultura de DevOps para uma de DevSecOps? A resposta pode parecer contraintuitiva: é preciso parar de se preocupar com segurança. Em vez disso, a organização precisa dar autonomia a todos para que assumam a responsabilidade pela segurança. Algumas estratégias fundamentais podem ajudar a iniciar esse processo.
Como já explicamos, antecipar a segurança é um dos principais focos de uma iniciativa séria de DevSecOps. Levar os objetivos de segurança para etapas anteriores do SDLC melhora os resultados gerais de segurança. Como isso funciona na prática? Em vez de as equipes de desenvolvimento enviarem os artefatos de implantação concluídos para a equipe de segurança revisar e relatar problemas no fim do SDLC, a segurança se integra perfeitamente aos ciclos iniciais de desenvolvimento, incluindo o levantamento de requisitos e o design.
O objetivo não é impor requisitos onerosos nem adicionar processos aos fluxos de trabalho existentes. A meta é minimizar o atrito em cada etapa. DevSecOps permite que uma organização adote um ciclo de vida de desenvolvimento seguro de software (SSDLC).

Figura 3: DevSecOps + SDLC = SSDLC
Além de antecipar a segurança, dar autonomia aos desenvolvedores e engenheiros de infraestrutura para assumirem os objetivos de segurança de ponta a ponta melhora a postura de segurança de uma aplicação. Para que isso aconteça, é preciso priorizar a automação e os ciclos rápidos de feedback. Quando um desenvolvedor envia código, deve receber feedback imediato sobre possíveis problemas de segurança nos novos recursos ou correções. Com feedback que permita agir, o desenvolvedor faz as alterações necessárias e a organização melhora a segurança imediatamente, sem a intervenção de um engenheiro de segurança.
Na Red Ventures, priorizar uma experiência “sem atrito” para os desenvolvedores fez com que as iniciativas para melhorar aspectos críticos da segurança, especialmente das cargas de trabalho em contêineres, fossem prontamente adotadas. Os fluxos de trabalho existentes podem ser usados para reforçar a segurança com o mínimo de interrupção.
Integrar ainda mais essa automação à CI/CD permite analisar o código das aplicações e as alterações de infraestrutura como código (IaC) para identificar possíveis problemas e fornecer feedback rápido quando necessário.
Com DevSecOps, as organizações podem melhorar os resultados de segurança

Figura 4: a proposta de valor de DevSecOps
Quando deixam de se preocupar com a segurança em DevOps e adotam DevSecOps, as organizações levam o desenvolvimento e a entrega de software a uma nova etapa da cultura de DevOps. Na cultura de DevSecOps, a segurança passa a fazer parte do modelo colaborativo compartilhado por operações e desenvolvimento.
Antecipar a segurança significa incorporar os objetivos de segurança desde o início. Desenvolvedores, engenheiros de infraestrutura e equipes de operações têm autonomia para assumir a responsabilidade pelos problemas de segurança. Os ciclos rápidos de feedback, característicos da cultura e das ferramentas de DevSecOps, permitem que a automação — como os pipelines de CI/CD — mostre possíveis problemas de segurança em segundos ou minutos, e não em horas ou dias.
Escolher ferramentas modernas para apoiar uma iniciativa de DevSecOps é fundamental. As ferramentas e os processos de segurança legados não foram projetados para o ritmo acelerado de mudanças das arquiteturas nativas da nuvem.
Comece a participar de desafios de Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.
Com DevSecOps, uma organização pode entregar software com mais rapidez e segurança e, por fim, gerar mais valor para seus clientes e para si mesma.