
Olá!
Por que o GitLab é a plataforma DevSecOps ideal?
O GitLab é uma das plataformas mais completas para desenvolvimento, segurança e operações (DevSecOps) em um único ambiente. Com ele, as equipes podem integrar práticas de segurança diretamente no fluxo de trabalho de desenvolvimento, reduzindo riscos e acelerando a entrega de software seguro.
A abordagem “Shift Left” adotada pelo GitLab permite que vulnerabilidades sejam detectadas e corrigidas ainda na fase de desenvolvimento, antes mesmo de o código chegar à produção. Além disso, suas ferramentas de segurança automatizadas ajudam a garantir conformidade, protegendo aplicações contra ameaças.
A imagem abaixo ilustra como os recursos de segurança do GitLab podem ser incorporados ao ciclo de vida de desenvolvimento de software:

Importante: Este artigo faz parte do EXCELENTE curso GitLab Security Essentials, disponível na GitLab University. Além disso, o conteúdo também pode ser acessado publicamente no GitLab Handbook.
Introdução às Ferramentas de Segurança do GitLab
O GitLab oferece um conjunto de ferramentas que automatizam testes de segurança no pipeline de CI/CD. Entre as principais funcionalidades estão:
- SAST (Static Application Security Testing) – Testa o código-fonte para detectar vulnerabilidades conhecidas.
- DAST (Dynamic Application Security Testing) – Avalia a segurança da aplicação em tempo de execução.
- Detecção de Segredos – Identifica credenciais e informações sensíveis expostas no repositório.
- Dependency Scanning – Verifica dependências do projeto em busca de vulnerabilidades conhecidas.
Com essas ferramentas, os desenvolvedores podem integrar verificações de segurança automatizadas, reduzindo riscos antes da implantação do software.
Exemplo Prático: Adicionando uma Vulnerabilidade à Aplicação
Para entender como o GitLab identifica e reporta vulnerabilidades, vamos adicionar manualmente uma falha de SQL Injection e analisar os resultados gerados pelo SAST.
Passo 1: Criar um Código Vulnerável
Adicione a seguinte função Python ao seu projeto para simular uma vulnerabilidade:
import sqlite3
from flask import request
def get_user_data():
user_id = request.args.get('id') # Captura um parâmetro da URL
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# Consulta SQL vulnerável a SQL Injection
query = f"SELECT * FROM users WHERE id = {user_id}"
cursor.execute(query)
result = cursor.fetchall()
conn.close()
return result
Esse código não sanitiza a entrada do usuário, tornando-o vulnerável a ataques de SQL Injection. Um invasor poderia manipular o parâmetro id para obter ou modificar dados da aplicação.
Passo 2: Executar o Pipeline de Segurança
- Faça commit desse código no repositório do GitLab.
- Aguarde a execução automática do pipeline de CI/CD.
- Para visualizar as vulnerabilidades detectadas, acesse:
- No GitLab, vá para Secure > Vulnerability Report.
- Aqui, você verá uma lista de todas as vulnerabilidades encontradas, organizadas por gravidade.
- Clique em uma vulnerabilidade específica para visualizar detalhes, incluindo recomendações de correção.
O SAST identificará automaticamente a vulnerabilidade e a exibirá no Vulnerability Report, permitindo que a equipe tome medidas corretivas.
Corrigindo a Vulnerabilidade
A correção envolve a implementação de SQL parametrizado, que impede ataques de injeção ao separar comandos SQL dos valores do usuário.
Código Seguro
import sqlite3
from flask import request
def get_user_data():
user_id = request.args.get('id')
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# Uso de parâmetros para evitar SQL Injection
query = "SELECT * FROM users WHERE id = ?"
cursor.execute(query, (user_id,))
result = cursor.fetchall()
conn.close()
return result
Após aplicar essa correção, faça commit das alterações e execute o pipeline novamente para verificar se a vulnerabilidade foi eliminada.
Conclusão
A plataforma DevSecOps do GitLab permite que desenvolvedores incorporem práticas de segurança desde as primeiras fases do desenvolvimento. Com ferramentas como SAST, DAST e Detecção de Segredos, é possível identificar e corrigir vulnerabilidades antes que elas cheguem à produção, garantindo maior proteção para aplicações.
Além disso, todas as vulnerabilidades detectadas podem ser visualizadas no Vulnerability Report, dentro da aba Secure, facilitando a análise e correção de falhas pela equipe de segurança.

Deixe um comentário