Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions QUICK_REFERENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# 🔥 GUIA RÁPIDO - REMOÇÃO DE ARQUIVO SENSÍVEL / QUICK GUIDE - SENSITIVE FILE REMOVAL

## ⚡ AÇÃO IMEDIATA EM 3 PASSOS / IMMEDIATE ACTION IN 3 STEPS

### 1️⃣ REVOGAR API KEYS (5 minutos)
```
→ https://www.binance.com/en/my/settings/api-management
→ REVOKE todas as keys antigas
→ DELETE as keys antigas
→ Gere novas (se precisar)
```

### 2️⃣ EXECUTAR O SCRIPT (10 minutos)
```bash
cd /path/to/SbeSourceGenerator
bash scripts/remove-sensitive-file-from-history.sh
```

### 3️⃣ NOTIFICAR COLABORADORES
```
Todos devem:
1. Deletar clone local
2. Re-clonar: git clone https://github.com/pedrosakuma/SbeSourceGenerator.git
```

---

## 📚 DOCUMENTAÇÃO COMPLETA / FULL DOCUMENTATION

| Documento | Descrição |
|-----------|-----------|
| 🚨 `SECURITY_INCIDENT_RESPONSE.md` | Guia de resposta imediata |
| 📖 `docs/REMOVE_SENSITIVE_FILE_FROM_HISTORY.md` | Documentação completa (4 métodos) |
| 📝 `SOLUTION_SUMMARY.md` | Explicação do problema e solução |
| 🔧 `scripts/remove-sensitive-file-from-history.sh` | Script automatizado |

---

## 🔍 VERIFICAÇÃO RÁPIDA / QUICK VERIFICATION

Após executar o script:

```bash
# Deve retornar vazio / Should return empty
git log --all --full-history -- "**/launchSettings.json"
```

---

## ❓ DÚVIDAS COMUNS / FAQ

**Q: Posso apenas deletar o arquivo do working tree?**
A: ❌ Não é suficiente. O arquivo ainda está no histórico do Git.

**Q: Por que não foi removido automaticamente?**
A: ⚠️ Requer `git push --force`, que não é permitido neste ambiente.

**Q: É seguro usar BFG?**
A: ✅ Sim! BFG é a ferramenta recomendada pelo GitHub para este tipo de tarefa.

**Q: O que acontece se eu não revogar as keys?**
A: 🔥 CRÍTICO! Qualquer pessoa com acesso ao histórico pode usar as keys.

**Q: Preciso notificar colaboradores?**
A: ✅ Sim! Após force push, todos devem re-clonar o repositório.

---

## 🆘 PRECISA DE AJUDA? / NEED HELP?

1. Leia `SECURITY_INCIDENT_RESPONSE.md` primeiro
2. Consulte `docs/REMOVE_SENSITIVE_FILE_FROM_HISTORY.md` para detalhes
3. GitHub Support: https://support.github.com/

---

## ⏱️ TEMPO ESTIMADO / ESTIMATED TIME

| Etapa | Tempo |
|-------|-------|
| Revogar API keys | 5 min |
| Executar script | 10 min |
| Force push | 2 min |
| Notificar colaboradores | 5 min |
| **TOTAL** | **~22 min** |

---

**⚠️ LEMBRE-SE:** Quanto mais rápido agir, menor o risco!
**⚠️ REMEMBER:** The faster you act, the lower the risk!
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

A Roslyn-based source generator that converts FIX Simple Binary Encoding (SBE) XML schemas into efficient, type-safe C# code.

## 🔒 Security Notice

⚠️ **Important**: If you need to remove sensitive files from Git history, please see [SECURITY_INCIDENT_RESPONSE.md](./SECURITY_INCIDENT_RESPONSE.md) for immediate action steps.

## Features

✅ **Fully Implemented SBE Features**:
Expand Down
79 changes: 79 additions & 0 deletions SECURITY_INCIDENT_RESPONSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# 🚨 INCIDENTE DE SEGURANÇA - AÇÃO IMEDIATA NECESSÁRIA

## Resumo do Problema

O arquivo `examples/SbeBinanceConsole/Properties/launchSettings.json` contém **API keys do Binance** vazadas no histórico do Git.

**Commits afetados:**
- `b97aba181660ba29d5c5b2353424195c14a69633` - Arquivo adicionado/modificado (28 Oct 2025)
- `80a8edb47f62c1cceb5ec8814bb8db643020282f` - Arquivo removido (29 Oct 2025)

## ⚡ AÇÕES IMEDIATAS (FAÇA AGORA!)

### 1. REVOGAR API KEYS COMPROMETIDAS ⏰

**CRÍTICO:** Vá agora para o painel do Binance e:

1. Acesse: https://www.binance.com/en/my/settings/api-management (URL verificada em 2025-10-31)
2. **REVOGUE** todas as API keys que estavam no arquivo
3. **DELETE** as API keys antigas
4. Gere novas API keys se necessário
5. **NÃO** commit as novas keys no Git!

### 2. VERIFICAR GitHub Secret Scanning

1. Visite: https://github.com/pedrosakuma/SbeSourceGenerator/security/secret-scanning
2. Se houver alertas, siga as instruções do GitHub

### 3. REMOVER DO HISTÓRICO GIT

**Método Recomendado: BFG Repo Cleaner**

```bash
# Download BFG
wget https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar

# Clone mirror
git clone --mirror https://github.com/pedrosakuma/SbeSourceGenerator.git

# Remove file from history
java -jar bfg-1.14.0.jar --delete-files launchSettings.json SbeSourceGenerator.git

# Clean up
cd SbeSourceGenerator.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive

# Force push (AVISO: reescreve histórico!)
git push --force
```

**IMPORTANTE:** Depois do force push, todos os colaboradores precisam deletar e re-clonar o repositório!

## 📋 Checklist

- [ ] ✅ API keys do Binance foram REVOGADAS
- [ ] ✅ Novas API keys geradas (se necessário)
- [ ] ✅ GitHub Secret Scanning verificado
- [ ] ✅ Histórico do Git limpo com BFG
- [ ] ✅ Force push executado
- [ ] ✅ Colaboradores notificados para re-clonar
- [ ] ✅ Verificado que arquivo não está mais no histórico

## 🔍 Verificação Final

```bash
# Verificar se arquivo foi removido do histórico
git log --all --full-history -- "**/launchSettings.json"
# Deve retornar vazio!
```

## 📞 Precisa de Ajuda?

- Documentação completa: `docs/REMOVE_SENSITIVE_FILE_FROM_HISTORY.md`
- GitHub Support: https://support.github.com/
- BFG Docs: https://rtyley.github.io/bfg-repo-cleaner/

---

**⏰ TEMPO É CRÍTICO:** Quanto mais tempo as API keys permanecerem ativas, maior o risco de comprometimento!
160 changes: 160 additions & 0 deletions SOLUTION_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Relatório sobre Remoção de Arquivo Sensível do Histórico Git

## Problema Reportado

Foi solicitado a remoção do arquivo `examples/SbeBinanceConsole/Properties/launchSettings.json` do histórico do Git devido ao vazamento de secrets (credenciais da API Binance).

## Análise Realizada

### Status do Arquivo

✅ **Situação Atual:**
- O arquivo foi **removido do working tree** no commit `80a8edb47f62c1cceb5ec8814bb8db643020282f` (29 Out 2025)
- O `.gitignore` foi **corretamente configurado** (linha 373: `**/launchSettings.json`)
- Novos arquivos `launchSettings.json` **não serão commitados** no futuro

❌ **Problema Restante:**
- O arquivo ainda existe no **histórico do Git** em commits anteriores
- Especialmente no commit `b97aba181660ba29d5c5b2353424195c14a69633` (28 Out 2025)
- Qualquer pessoa com acesso ao repositório pode acessar o histórico e ver as credenciais

### Commits Afetados

| Commit | Data | Ação | Status |
|--------|------|------|--------|
| `b97aba181660ba29d5c5b2353424195c14a69633` | 28 Out 2025 | Arquivo adicionado/modificado | ⚠️ Contém secrets |
| `620633ea9c243a1cf15ad03a5d4f69a8aa7b2c5d` | 29 Out 2025 | .gitignore atualizado | ✅ Prevenção |
| `0b3a37607a54ecc9ed9fe7449565e5bddcbd2c20` | 29 Out 2025 | .gitignore recursivo | ✅ Prevenção |
| `80a8edb47f62c1cceb5ec8814bb8db643020282f` | 29 Out 2025 | Arquivo removido | ✅ Limpeza local |

## Limitações Técnicas

**Por que não posso remover o arquivo do histórico automaticamente:**

1. ❌ **Force Push não permitido**: O ambiente de execução não tem permissão para fazer `git push --force`
2. ❌ **Reescrita de histórico**: Ferramentas como `git filter-branch`, `git filter-repo` e `BFG` requerem force push
3. ❌ **Limitação de segurança**: Esta é uma medida de proteção intencional para evitar danos acidentais

## Solução Fornecida

Ao invés de realizar a remoção automaticamente (o que não é possível), foram criados os seguintes recursos:

### 1. Guia de Resposta Imediata
📄 **Arquivo:** `SECURITY_INCIDENT_RESPONSE.md`

Um guia rápido e direto com:
- Checklist de ações imediatas (revogar API keys)
- Comandos prontos para usar
- Método recomendado (BFG Repo Cleaner)

### 2. Documentação Completa
📄 **Arquivo:** `docs/REMOVE_SENSITIVE_FILE_FROM_HISTORY.md`

Documentação abrangente incluindo:
- Explicação detalhada do problema
- 4 métodos diferentes de remoção:
1. BFG Repo Cleaner (Recomendado)
2. git-filter-repo (Moderno)
3. git filter-branch (Legado)
4. GitHub Support (Se não puder fazer force push)
- Avisos e considerações
- Checklist de segurança completo
- Instruções de verificação

### 3. Script Automatizado
📄 **Arquivo:** `scripts/remove-sensitive-file-from-history.sh`

Um script Bash executável que:
- Baixa automaticamente o BFG Repo Cleaner
- Clona o repositório em modo mirror
- Remove o arquivo do histórico
- Executa limpeza e verificação
- Solicita confirmação antes do force push
- Fornece instruções claras em português e inglês

### 4. Atualização do README
📄 **Arquivo:** `README.md`

Adicionado aviso de segurança no topo do README que direciona para o guia de resposta imediata.

## Próximos Passos (Ação do Proprietário do Repositório)

O **proprietário do repositório** deve executar os seguintes passos:

### Passo 1: CRÍTICO - Revogar Credenciais (FAZER AGORA!)
```
1. Acessar: https://www.binance.com/en/my/settings/api-management
2. REVOGAR todas as API keys que estavam no arquivo
3. Gerar novas API keys (se necessário)
4. NÃO commitar as novas keys!
```

### Passo 2: Verificar GitHub Secret Scanning
```
1. Visitar: https://github.com/pedrosakuma/SbeSourceGenerator/security/secret-scanning
2. Revisar alertas
3. Seguir instruções do GitHub
```

### Passo 3: Limpar Histórico Git
```bash
# Opção 1: Usar o script fornecido (Recomendado)
bash scripts/remove-sensitive-file-from-history.sh

# Opção 2: Seguir as instruções manualmente
# Ver: SECURITY_INCIDENT_RESPONSE.md
```

### Passo 4: Notificar Colaboradores
Após o force push, **TODOS os colaboradores** devem:
1. Deletar seus clones locais
2. Re-clonar o repositório

## Verificação de Sucesso

Para confirmar que o arquivo foi removido do histórico:

```bash
# Deve retornar vazio se foi removido com sucesso
git log --all --full-history -- "**/launchSettings.json"
```

## Resumo

✅ **O que foi feito:**
- Documentação completa criada
- Script automatizado fornecido
- Guias em português e inglês
- Prevenção futura garantida (.gitignore)
- README atualizado com aviso de segurança

❌ **O que NÃO foi feito (e por quê):**
- Remoção automática do histórico Git ➜ Requer force push (não permitido no ambiente)
- Revogação de API keys ➜ Deve ser feito pelo proprietário da conta Binance

⚠️ **Ação Requerida:**
- O **proprietário do repositório** deve executar os passos documentados
- **TEMPO É CRÍTICO**: Quanto mais tempo as keys ficarem ativas, maior o risco

## Recursos Criados

| Arquivo | Propósito |
|---------|-----------|
| `SECURITY_INCIDENT_RESPONSE.md` | Guia rápido de ação imediata |
| `docs/REMOVE_SENSITIVE_FILE_FROM_HISTORY.md` | Documentação completa |
| `scripts/remove-sensitive-file-from-history.sh` | Script automatizado |
| `README.md` | Atualizado com aviso de segurança |

## Contato e Suporte

Se houver dúvidas ou problemas:
1. Revisar a documentação fornecida
2. Contatar GitHub Support: https://support.github.com/
3. Consultar BFG docs: https://rtyley.github.io/bfg-repo-cleaner/

---

**Data:** 2025-10-31
**Agente:** GitHub Copilot SWE Agent
**Status:** Documentação e ferramentas fornecidas ✅
**Ação Pendente:** Execução pelo proprietário do repositório ⏳
Loading