Como integrar segurança em DevOps sem perder agilidade?
Embora esteja claro que a segurança deve estar arraigada em todo o ciclo de vida do DevOps, como você consegue isso sem prejudicar a velocidade, a agilidade e outros princípios essenciais do DevOps?
As equipes do DevOps não precisam apenas formar parcerias com as equipes de segurança para sobrepor os controles adequados, mas também devem se apropriar da segurança de seus processos e cultura.
Para reforçar a segurança do DevOps, equilibrando a necessidade de agilidade, considere implementar as seguintes práticas, iniciativas e tecnologias:
Adote o modelo DevOps para sua organização:
A segurança eficaz no** DevOps** exige colaboração multifuncional e adesão para garantir que as considerações de segurança sejam integradas em todo o ciclo de vida de desenvolvimento do produto (product design, development, delivery, operations, support, etc.). O DevOps implicará a incorporação de funções de governança e segurança cibernética, como gerenciamento de identidade e acesso (IAM), gerenciamento de privilégios, gerenciamento de firewall/ameaça unificada, análise de código, gerenciamento de configuração e testes de vulnerabilidades em todo o fluxo de trabalho do DevOps. Quando bem feito, você alinha a segurança com o DevOps e habilita lançamentos de produtos eficientes, seguros, evitando recalls ou correções caras após o lançamento dos códigos/produtos. Para que isso seja bem-sucedido, todos precisam se apropriar das melhores práticas de segurança.
Aplicar políticas e governança:
A comunicação e a governança são vitais para a segurança holística dos ambientes DevOps - ou de qualquer ambiente. Crie políticas e procedimentos transparentes de segurança que sejam fáceis de entender e concordar com os desenvolvedores e outros membros da equipe. Isso ajudará as equipes a desenvolver código que atenda aos requisitos de segurança.
Automatize seus processos de segurança no DevOps:
Sem ferramentas de segurança automatizadas para análise de código, gerenciamento de configuração, gerenciamento de patches e vulnerabilidades e gerenciamento privilegiado de credenciais, você não tem chance de escalar a segurança para os processos do DevOps. A automação também minimiza os riscos decorrentes de erros humanos e o tempo de inatividade ou vulnerabilidades associados. Priorize a implantação de ferramentas automatizadas para identificar ameaças em potencial, código problemático ou vulnerável e problemas com processo e infraestrutura. Quanto mais perto você puder igualar a velocidade da segurança ao processo do DevOps, menor será a probabilidade de enfrentar resistência cultural à incorporação de práticas de segurança.
Faça uma abrangente avaliação do seu ambiente (assessment):
Verifique o grau de maturidade de sua organização, o funcionamento do pipeline, a arquitetura, a operação, se todos os dispositivos, ferramentas e contas aprovadas e não aprovadas são continuamente ativas, validadas e submetidas ao gerenciamento de segurança de acordo com sua política.
Realize testes de vulnerabilidades recorrentes:
As vulnerabilidades devem ser examinadas, avaliadas e corrigidas adequadamente nos ambientes de desenvolvimento e homologação antes de serem implantadas em produção. Realize pentest (teste de intrusão), análise de vulnerabilidades e outras atividades para identificar pontos falhos no código de pré-produção e para indicar melhorias. Quando os produtos são lançados em um ambiente operacional, podemos realizar testes de segurança no software e na infraestrutura de produção para identificar e corrigir fragilidades.
Adote o gerenciamento de versão e configuração:
Faça scans recorrentes no ambiente para identificar e corrigir erros de configuração e versão. Aplique todas as atualizações e configurações utilizando as melhores práticas de segurança. Faça varreduras(scans) em servidores e código para identificar problemas de configuração, softwares desatualizados em ativos físicos, virtuais e na nuvem.
Gerencie credencias adequadamente:
Elimine credenciais incorporadas escondidas no código, scripts, arquivos, contas de serviço, em ferramentas, plataformas na nuvem etc. Isso envolve a separação da senha do código, para que, seja armazenada com segurança em um cofre de senha centralizado. Tenha definido uma política de gerenciamento/armazenamento de senha.
Controle, monitore e audite acessos:
Utilize a política de menor privilégio, faça que o usuário apenas consiga realizar as funções que são de sua responsabilidade. Elimine privilégios de administrador nas máquinas dos usuários finais assim como em cloud, armazene com segurança credenciais de conta privilegiadas. Monitore todas os acessos para garantir que as atividades são legítimas e normais. Audite todos os acessos.
Segmentar redes e ambientes em Cloud:
Segmentar a rede reduz o acesso à "linha de visão" de um atacante. Agrupe ativos, incluindo servidores de aplicativos e recursos, em unidades lógicas que não confiam uma na outra. Verifique como RBAC (role-based access control) está implementado na sua cloud. No caso de acesso que precise atravessar as trusted-zones, implante um jump-server seguro com MFA autenticação multifator.
* A segurança no processo de DevOps pode permitir um ecossistema produtivo e seguro. DevOps aumenta a disponibilidade, reduz a possibilidade de violações de dados e garante o desenvolvimento e o provisionamento de uma poderosa tecnologia para atender às necessidades dos negócios.*
Artigo traduzido e adaptado da Beyondtrust por Rafael Fontes – Head of software security