BLOG

DevOps — Como aumentar a segurança de seu software usando pipelines


Durante a fase inicial de validação do ciclo de desenvolvimento de software, por meio da integração contínua e entrega contínua (CI/CD), é fundamental utilizarmos ferramentas que nos proporcionem métricas e relatórios sobre as vulnerabilidades existentes em nosso código. Esse conjunto de práticas e abordagens é amplamente conhecido como DevSecOps, que enfatiza a integração da segurança desde o início do processo de desenvolvimento. Neste artigo, apresentarei algumas sugestões e estratégias que podemos incorporar em nossos pipelines de desenvolvimento, visando o fortalecimento do pilar de segurança em nosso projeto.

Para melhor aproveitamento desse artigo, considero um pré requisito a leitura sobre a criação de uma pipeline eficiente para sofware.

Se você utiliza o GitHub como fonte para administrar seu código, você não precisa se preocupar quanto a implementação, muito das validações que comentarei já são nativas.

Quando Analisar

No âmbito da segurança de software, duas formas cruciais de análise ganham destaque: a Análise Estática e a Análise Dinâmica de código. Cada uma delas desempenha um papel vital na detecção e mitigação de vulnerabilidades, contribuindo para a criação de aplicações mais seguras e confiáveis.

A Análise Estática de Código é uma técnica fundamental que visa encontrar vulnerabilidades no código-fonte de uma aplicação sem a necessidade de executá-la. Esta abordagem é altamente eficaz e se encaixa perfeitamente no contexto de integração contínua e entrega contínua (CI/CD).
Sugestão: Um momento crucial para aplicar a Análise Estática de Código é quando um Pull Request (PR) é aberto. Nesse ponto, é possível ter um controle preciso sobre quaisquer novas vulnerabilidades que possam estar sendo introduzidas no código-fonte.

Na Análise Dinâmica de Código, a abordagem muda consideravelmente em comparação com a Análise Estática. Aqui, a ênfase está na interação com a aplicação em tempo real, simulando ataques e, o mais importante, identificando todas as vulnerabilidades e brechas disponíveis no sistema, muitas vezes em tempo real.

Sugestão: Normalmente, algumas ferramentas oferecem a possibilidade para executar essa análise em paralelo, o que seria muito ideal, pois dependendo do tamnho da aplicação, esse tipo de validação pode levar até horas e isso pode acarretar em um fluxo de CI/CD lento ( totalmente oposto do que ele propõe, entrega rápida, feedback rápido ).

Como Analisar

No código

Gravar senhas diretamente no código ou em arquivos .env, contendo dados sensíveis como tokens, é um erro comum, mas perigoso, que pode representar um grande risco, especialmente para especialistas em segurança de aplicações. Ferramentas como GitLeaks e TruffleHog podem identificar e reportar essas vulnerabilidades, enquanto ferramentas intermediadoras podem proteger suas informações de exposição na internet.

Dependências

Há também vunerabilidades que também são encontradas em frameworks de mercado, no qual, sempre devemos nos manter atualizados para que nenhuma falha possibilite alguma brecha ( há muitos casos reportados via OWASP ). Para isso, há ferramentas que são capazes de analisar todas as dependências do seu código ou seu container. O melhor momento para se executar isso, é exatamente no mesmo momento que você valida a estrutura básica do seu código. Para esse tipo de operação, ferramentas como Trivy, Snyk e Black Duck são referências.


Nos próximos artigos, trarei alguns exemplos práticos de como utilizar as ferramentas dentro de um fluxo de CICD.

Tem interesse em aprender mais sobre? Entre em contato conosco ❤️!

Toolbox Devops Consultoria

Toolbox Devops Consultoria

Simplicando seu dia-a-dia na cloud

Esta gostando do conteúdo ? Compartilhe!