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

  1. Faça commit desse código no repositório do GitLab.
  2. Aguarde a execução automática do pipeline de CI/CD.
  3. 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.

Este exemplo prático foi baseado no curso GitLab Security Essentials, disponível na GitLab University. Para aprofundar seus conhecimentos, confira a documentação oficial do GitLab Security e o conteúdo público no GitLab Handbook.

Deixe um comentário

Tendência