Git Pie: A Arte Ancestral do Versionamento 🥧 Help

Segurança em Controle de Versão

Fundamentos de Segurança

Princípios Básicos

SegurançaConfidencialidadeIntegridadeDisponibilidadeDados SensíveisCredenciaisTokensCommits AssinadosHistórico ProtegidoBranches ProtegidasBackupsRedundânciaDisaster Recovery

Proteção de Dados Sensíveis

Gerenciamento de Credenciais

Nunca

Sempre

Opção 1

Opção 2

Opção 3

Credenciais

Repositório

Gestão Segura

Variáveis de Ambiente

Cofre de Senhas

Serviços de Configuração

Arquivo .gitignore Robusto

# Arquivos de Configuração .env .env.* config/*.json secrets.yaml credentials.ini # Chaves e Certificados *.pem *.key *.cert *.crt id_rsa* *.ppk # Diretórios Sensíveis .ssh/ private/ secrets/ credentials/ # Logs e Temporários *.log tmp/ temp/ .cache/ # IDEs e Editores .vscode/ .idea/ *.swp *.swo # Dependências e Builds node_modules/ vendor/ dist/ build/

Controle de Acesso

Modelo de Permissões

Básico

Intermediário

Avançado

Usuários

Níveis de Acesso

Read

Write

Admin

Clone/Pull

Push/Merge

Configurações

Autenticação e Autorização

Métodos de Autenticação

  1. SSH

RepositórioUsuárioRepositórioUsuárioApresenta Chave PúblicaDesafioResposta AssinadaAcesso Concedido
  1. Tokens de Acesso

  • Tokens de curta duração

  • Escopos limitados

  • Revogação simples

  • Auditoria facilitada

  1. 2FA/MFA

Senha

Token

Biometria

Login

1º Fator

2º Fator

3º Fator

Acesso

Proteção de Branches

Regras de Proteção

Pull_Request

Code_Review

Testes

Aprovação

Merge

Configurações Recomendadas

  1. Branch Principal

    • Requer aprovações

    • Proíbe force push

    • Exige status checks

    • Mantém histórico linear

  2. Branches de Feature

    • Nomenclatura padronizada

    • Vida útil limitada

    • Merge apenas via PR

    • Testes automatizados

Monitoramento e Auditoria

Logs de Segurança

Coleta

Análise

Armazenamento

Ação

Eventos

Logs

Alertas

Histórico

Resposta

Métricas de Segurança

MétricasAcessosAlteraçõesVulnerabilidadesTentativasSucessosFalhasCommitsMergesDeploysExposiçõesCorreçõesTempo de Resposta

Vulnerabilidades Comuns

Tipos de Ameaças

Ameaças

Exposição de Dados

Acesso Não Autorizado

Manipulação de Histórico

Injeção de Código

Mitigação

  1. Ferramentas de Análise

    • Git-secrets

    • TruffleHog

    • GitGuardian

    • Gitleaks

  2. Hooks de Prevenção

#!/bin/sh # pre-commit hook para detectar secrets if git-secrets --scan; then exit 0 else echo "Secrets detectados! Commit bloqueado." exit 1 fi

Backup e Recuperação

Estratégias de Backup

Diário

Semanal

Mensal

Repositório

Backup Local

Backup Cloud

Backup Offline

Plano de Recuperação

VerificaçãoBackupRespostaDetecçãoIncidenteVerificaçãoBackupRespostaDetecçãoIncidenteProblema IdentificadoAvaliaçãoRecuperaçãoValidação

Melhores Práticas

Checklist de Segurança

  1. Repositório

    • [ ] .gitignore atualizado

    • [ ] Branches protegidas

    • [ ] Hooks configurados

    • [ ] Backups automatizados

  2. Acesso

    • [ ] 2FA habilitado

    • [ ] Tokens com escopo mínimo

    • [ ] Revisão regular de acessos

    • [ ] Logs de auditoria

  3. Código

    • [ ] Análise de secrets

    • [ ] Verificação de dependências

    • [ ] Assinatura de commits

    • [ ] Code review obrigatório

Automação de Segurança

Trigger

Falha

Falha

Falha

Sucesso

Sucesso

Sucesso

Push

CI/CD

Análise de Secrets

Scan de Vulnerabilidades

Verificação de Licenças

Bloqueia Deploy

Continua Deploy

Resposta a Incidentes

Plano de Ação

Detecção

Avaliação

Contenção

Erradicação

Recuperação

Lições Aprendidas

Documentação

  1. Registro de Incidentes

    • Data e hora

    • Tipo de incidente

    • Impacto

    • Ações tomadas

    • Resolução

  2. Análise Post-mortem

    • Causa raiz

    • Medidas preventivas

    • Melhorias necessárias

    • Atualizações de processo

21 abril 2025