por Bruno Lobo, Advisor of Digital Security da Italtel

DevSecOps é a integração perfeita de testes de segurança e proteção em todo o ciclo de vida de desenvolvimento e implantação de software. Assim como o DevOps, o DevSecOps é tanto sobre cultura e responsabilidade compartilhada quanto sobre qualquer tecnologia ou técnica específica. Nos dois casos os objetivos são: desenvolver software melhor e detectar/responder a falhas de software na produção com mais rapidez e eficiência.

Em modelos mais tradicionais, os departamentos de desenvolvimento e operações sempre foram separados. Com o tempo e a disseminação das metodologias ágeis (como Scrum, SAFe, LESS, XP …), o setor de desenvolvimento saiu, aos poucos, do modelo cascata com longos ciclos de entrega para ciclos de adaptações e entregas constantes. No entanto, o setor de operações sempre trabalhou com um sistema estável, com muito tempo de preparação para fazer a implementação e o lançamento.

Se por um lado um setor estava evoluindo com metodologias ágeis, o outro estava recebendo atualizações muito mais rápidas que o comum, gerando um fenômeno chamado de Wall of Confusion (ou parede de confusão). Foi nesse cenário que os setores de desenvolvimento e operações se aproximaram gradualmente, até formar o que temos hoje: o DevOps.

No entanto, em uma situação com um número tão grande de atualizações, acontecendo em tão pouco tempo, como podemos garantir a segurança na aplicação de DevOps? Afinal, a cultura de velocidade e escala também pode influenciar em uma consideração tardia da segurança e quaisquer vulnerabilidades ou configurações criadas incorretamente podem ter grandes implicações.

A seguir estão alguns pontos críticos que devem ser observados para avançar na adoção mais completa do processo:

  • Adapte política e governança

A criação de políticas e procedimentos de segurança cibernética transparentes, que sejam fáceis para os desenvolvedores e outros membros da equipe entenderem e concordarem, é o passo inicial para aliar proteção e agilidade.

  • Automatize processos e ferramentas de segurança

Sem ferramentas de segurança automatizadas para análise de código, gerenciamento de configuração, patch e gerenciamento de vulnerabilidade, não é possível escalar a segurança.

Além de fundamental nas rotinas de TI, a automação da segurança também minimiza o risco decorrente de erros humanos, bem como o tempo de inatividade ou vulnerabilidades causadas por isso. Vale lembrar que a empresa enfrenta menos resistência cultural para incorporar práticas de segurança ao DevOps se os mesmos conceitos protetivos forem incentivados em todos os processos.

  • Utilize recursos seguramente testados e aprovados

As equipes de operação costumam aproveitar ferramentas novas, imaturas ou de código aberto para gerenciar centenas de grupos de segurança e milhares de instâncias de servidor. Os contêineres tecnologias que possibilitam o empacotamento e isolamento de aplicações com todo o ambiente de execução delas podem ser levantados ou baixados rapidamente e rodam na maioria dos sistemas operacionais, bem como em serviços de nuvem.

Frequentemente, as equipes de segurança não têm visibilidade dos próprios contêineres e isso é um fator de risco, visto que compartilham um sistema operacional com outros contêineres. O DevOps, geralmente, depende muito de implantações de nuvem e isso significa que a segurança da nuvem também é uma consideração importante.

À vista disso, entendemos que priorizar a descoberta e validação contínua, sob a gestão de segurança de acordo com sua política de dispositivos, ferramentas, contas, nuvem, instâncias virtuais, contêineres e credenciais são fundamentais.

  • Gerencie a vulnerabilidade

Toda vulnerabilidade deve ser verificada, avaliada e corrigida ainda nos ambientes de desenvolvimento e integração, incluindo dentro dos contêineres citados anteriormente, antes da implantação na produção. Quando os produtos são lançados em um ambiente operacional, a segurança DevOps pode executar testes e ferramentas no software de produção e na infraestrutura para identificar e corrigir.

  • Gerencie as configurações

A velocidade e a escala dos ambientes DevOps significam que, se algum erro de configuração não puder ser detectado e corrigido rapidamente, poderá ser replicado e copiado rapidamente. A recomendação para evitar que isso aconteça é fazer a varredura para identificar e corrigir configurações incorretas e erros em potencial.

  • Faça o gerenciamento seguro de credenciais de acesso privilegiado

As equipes de DevOps podem usar diversas ferramentas como Chef, Puppet, Ansible, Salt etc. Elas exigem gerenciamento de segredos que podem ser credenciais de acesso privilegiado, chaves SSH, tokens de APIs, entre outros.

Essas chaves podem ser usadas por humanos ou máquinas (por exemplo: aplicativos, contêineres, microsserviços e instâncias de nuvem). Caso eles sejam gerenciados incorretamente, podem facilitar o acesso privilegiado aos invasores através de backdoors e, consequentemente, a capacidade de adulterar a segurança e outros controles, interromper operações, roubar informações e, basicamente, deter por completo a infraestrutura de TI de uma organização.

É comum que credenciais privilegiadas sejam incorporadas em códigos, scripts, arquivos e contas de serviço. Esse é um equívoco comum e pode permitir que pessoas não autorizadas se apoderem dessas credenciais. Dessa forma, é importante que haja políticas rígidas, proibindo a presença de qualquer tipo de credencial. Além disso, é possível utilizar ferramentas que detectem tentativas de versionar as credenciais e impeçam que elas sejam incorporadas acidentalmente.

  • Faça a gestão de acesso privilegiado (PAM)

Outro erro comum é dar mais acesso do que o colaborador precisa aos recursos da organização. É comum que esses indivíduos compartilhem credenciais, o que dificulta ou até impossibilita a auditoria das atividades nesses ambientes. O acesso privilegiado excessivo representa um cenário de ameaças ampliado.

Para controlar o risco, é essencial adotar o princípio do menor privilégio. Impor o acesso com privilégios mínimos reduz as oportunidades de invasores, internos ou externos, escalarem os direitos de usuários permitidos e explorarem vulnerabilidades do sistema ou da aplicação. As soluções de gerenciamento de acesso privilegiado empresarial (PAM) podem automatizar o controle, o monitoramento e a auditoria nesses casos, bem como o ciclo de vida completo de segredos e gerenciamento de credenciais.

  • Faça a segmentação de redes

A segmentação da rede reduz o acesso e o campo de visão dos invasores. A recomendação é o agrupamento de ativos, incluindo servidores de aplicativos e recursos, em unidades lógicas que não confiam umas nas outras.

No caso dos acessos que precisam cruzar as zonas de confiança, é interessante implantar um host administrativo seguro, com autenticação multifator, autorização de acesso adaptável e fazer o monitoramento de sessão para garantir a vigilância.

  • Adote um modelo DevSecOps

O desalinhamento entre o DevOps e as equipes de segurança pode dar abertura para a criação de códigos inseguros, vulnerabilidades, configurações incorretas, senhas codificadas não protegidas e fragilidade de segurança de aplicativos que causam disfunção operacional ou que sejam alvos fáceis para invasores.

Quando a segurança é incorporada em cada estrutura do ciclo de vida e cultura DevOps, desde o início no design, na construção, nos testes, bem como nas etapas de lançamento, suporte e manutenção, o DevOps passa a ser caracterizado como DevSecOps.

DevSecOps envolve a incorporação de todas as práticas mencionadas até aqui e outras, pois este, assim como toda metodologia ágil, está em constante evolução. Adotar uma cultura DevSecOps significa que todos compartilham a responsabilidade pela segurança do projeto.

A introdução da segurança na aplicação DevOps, no início do ciclo de vida do produto, reforça o desenvolvimento de aplicativos e sistemas que não vão colocar a tecnologia e as informações da empresa em risco, reduzindo a possibilidade de violações de dados e garantindo o desenvolvimento e o provisionamento de soluções tecnológicas de alto poder mercadológico para atender às necessidades do seu negócio.