Com a transformação digital, muito se tem falado sobre redução de custos e aumento da velocidade de desenvolvimento de software. Nesse contexto, o pipeline de entrega de software está centrado em entregar produtos e serviços de alta qualidade ao mercado, de forma cada vez mais rápida e eficiente, sendo uma das maneiras a utilização de metodologias DevOps (Development and Operations). Assim, as práticas associadas ao DevOps vêm transformando o Ciclo de Desenvolvimento de Software ou Software Development Lifecycle (SDLC), trazendo as lições da manufatura para o desenvolvimento de aplicações. 

Mas, o que é DevOps e qual a sua importância? Qual a relação entre DevOps e Segurança da Informação? E como uma solução de Gestão de Acesso Privilegiado pode se integrar ao SDLC para melhorar a segurança no desenvolvimento de aplicações? 

DevOps é uma palavra utilizada para descrever um conjunto de práticas que visam unir o time de Desenvolvimento (Development) e de Operação (Operations) para trabalhar em um projeto de maneira colaborativa. O objetivo é que, ao unir esses times no ciclo de desenvolvimento de software, as organizações possam reduzir o tempo e esforço envolvidos na implantação de novas versões. Desta maneira, é possível alcançar ciclos mais curtos e obter custos mais baixos de desenvolvimento, resultando em uma maior capacidade de responder às necessidades dos clientes’’, aumentando a confiança nos aplicativos construídos e cumprindo as metas de negócio mais rapidamente. 

A introdução das práticas DevOps, com maior interação entre os times de Desenvolvimento e Operação, foi considerada uma revolução na maneira como os times trabalhavam juntos no desenvolvimento do software. Apesar de o DevOps resolver inúmeros desafios no processo de SDLC, também introduz outros problemas. Com o aumento e custo dos incidentes de segurança em todo o mercado, identificou-se a necessidade de incluir o aspecto segurança nesse conceito. Além disso, a aceleração do processo de desenvolvimento fez com que a segurança das aplicações estivesse presente não apenas na fase inicial de desenvolvimento, mas durante todo o ciclo de vida do software. Nasceu, assim, o DevSecOps, junção de Desenvolvimento, Operações e Segurança.

DevSecOps significa, então, integrar a segurança da informação em todo o ciclo e níveis da aplicação. Ademais, significa automatizar o trabalho de segurança para não afetar a velocidade do fluxo de trabalho, selecionando as ferramentas adequadas e construindo essa nova vertente sobre a cultura DevOps dentro da organização. Por conseguinte, todos os envolvidos no SDLC são responsáveis por garantir que o aspecto segurança esteja presente no ciclo de desenvolvimento, e seja implantada na mesma escala e velocidade que as ações relacionadas a operações e desenvolvimento. 

O principal benefício do DevSecOps é a automação em todo o pipeline de entrega de software, que elimina erros e reduz ataques e tempo de inatividade. Neste sentido, para equipes que desejam integrar a segurança à estrutura do DevOps, o processo pode ser concluído usando as ferramentas e os processos certos do DevSecOps. Quando o uso inadequado dessas ferramentas e processos causa violações, na maioria das vezes, isso se resume a uma proteção deficiente de contas privilegiadas. Em razão disso, uma das ferramentas e processos que pode trazer benefícios ao SDLC está relacionada à Gestão de Acesso Privilegiado ou PAM.

O PAM é claramente um elemento muito importante para cibersegurança. Tanto que foi considerado como número 1 nos 10 principais projetos de segurança do Gartner por dois anos consecutivos, além de estar entre os 20 Critical Security Controls do CIS. Nesse contexto, se as organizações desejam obter todos os benefícios do DevOps sem colocar em risco a sua infraestrutura e dados de TI, será necessário pensar de forma mais estratégica sobre como lidam com o PAM. 

A seguir, estão listadas algumas das melhores práticas relacionadas à PAM, que podem ser integradas pelos times no ciclo de desenvolvimento de software:

I. Descobrir e inventariar todas as credenciais privilegiadas, além dos dispositivos associados

É impossível gerenciar o que não se conhece. Portanto, esta etapa é fundamental para todo o processo PAM. Como a cadeia de ferramentas do DevOps pode conter inúmeros scripts e automação em toda as camadas, essa pode ser uma tarefa bem difícil. No entanto, é necessário que haja visibilidade clara sobre exatamente quais ferramentas estão executando a automação e quais privilégios são atribuídos a elas. É necessário saber, por exemplo, o que realmente está sendo executado, quem está executando e quando. Além disso, as organizações precisam entender onde a automação está armazenada e, consequentemente, onde essas informações de credenciais incorporadas estão sendo armazenadas, para que a respectiva segurança possa ser avaliada. Finalmente, é preciso entender todo o processo, e as credenciais privilegiadas estão sendo incorporadas para a edição, armazenamento, operação e criação de scripts.

II. Gerenciar segredos compartilhados e senhas hardcoded

As senhas hardcoded são um dos maiores problemas na gestão de credenciais. Infelizmente, mesmo quando os times de segurança de aplicação removem senhas codificadas de seus aplicativos, geralmente as deixam dentro da infraestrutura de TI. Isto vale para o compartilhamento de contas, que é um erro frequente que as organizações cometem para manter a automação funcionando apropriadamente. O problema é que isso impede qualquer rastreabilidade das atividades no ambiente. Desta maneira, é preciso haver controle na combinação que pode rastrear usuários individuais e contas de script ou automação que afetam os ambientes, para rastrear cada processo ou atividade com credenciais exclusivas. Isso é essencial tanto para a conformidade quanto para a integridade geral da fábrica ​​de software do time de DevOps.

III. Aplicar o princípio do privilégio mínimo

Por fim, os conceitos relacionados à PAM dependem apenas de fornecer a usuários individuais ou contas de automação específicas a quantidade exata de privilégios necessários para realizar suas atividades. Em um ambiente onde credenciais são fornecidas aos times de DevOps o tempo todo, muito privilegiadas, o modelo adotado deve ser baseado no privilégio mínimo. Assim, é possível fornecer privilégios suficientes para que o processo do DevOps funcione, de modo a garantir que, caso algum processo ou conta seja comprometido, o resto do ambiente não seja comprometido.