Mantemos ativamente as seguintes versões:
| Versão | Suportada | Observação |
|---|---|---|
| 1.3.x | ✅ Sim | Atual (recomendada) |
| 1.2.x | Migre para 1.3.x | |
| 1.1.x | ❌ Não | Descontinuada |
| 1.0.x | ❌ Não | Descontinuada |
| < 1.0 | ❌ Não | Descontinuada |
A segurança do Boleto CNAB API é levada muito a sério. Se você descobrir uma vulnerabilidade de segurança, por favor:
Vulnerabilidades de segurança devem ser reportadas de forma privada.
-
Envie um e-mail para: maxwbh@gmail.com
- Assunto:
[SECURITY] Vulnerabilidade em Boleto CNAB API
- Assunto:
-
Inclua as seguintes informações:
- Tipo de vulnerabilidade (ex: SQL injection, XSS, etc.)
- Localização do código afetado (arquivo e linha)
- Passos para reproduzir
- Impacto potencial
- Possível correção (se souber)
- Sua informação de contato
-
Exemplo de reporte:
Assunto: [SECURITY] Vulnerabilidade em Boleto CNAB API Tipo: Command Injection Localização: lib/boleto_api.rb:123 Versão afetada: 1.3.0 Descrição: O parâmetro 'nosso_numero' não é sanitizado antes de ser usado em um comando shell, permitindo command injection. Reprodução: 1. POST /api/boleto 2. nosso_numero="; rm -rf /" 3. Comando malicioso é executado Impacto: Execução arbitrária de código no servidor Possível correção: Sanitizar o parâmetro antes de usar
- Confirmação inicial: Dentro de 48 horas
- Análise da vulnerabilidade: Dentro de 7 dias
- Correção e patch: Varia conforme criticidade
- Crítico: < 7 dias
- Alto: < 14 dias
- Médio: < 30 dias
- Baixo: < 60 dias
- Confirmaremos o recebimento do seu reporte
- Investigaremos e validaremos a vulnerabilidade
- Desenvolveremos uma correção
- Lançaremos um patch de segurança
- Publicaremos um security advisory (se crítico)
- Creditaremos você na correção (se desejar)
Proteção de Dados Sensíveis:
- ❌ Nunca commite arquivos
.envcom credenciais - ❌ Nunca logue dados completos de boletos em produção
- ✅ Use variáveis de ambiente para configurações sensíveis
- ✅ Implemente rate limiting no seu proxy/gateway
- ✅ Use HTTPS em produção
Validação de Dados:
# ✅ BOM: Validar entrada do usuário
def gerar_boleto(dados):
if not validar_cpf(dados['sacado_documento']):
raise ValueError("CPF inválido")
# ...
# ❌ RUIM: Confiar cegamente em dados do usuário
def gerar_boleto(dados):
# usar dados diretamente sem validaçãoDeploy Seguro:
- ✅ Use Docker com imagem base oficial e atualizada
- ✅ Execute a aplicação com usuário não-root
- ✅ Limite recursos (CPU, memória)
- ✅ Configure firewall apropriadamente
- ❌ Não exponha porta do container diretamente
Evite Vulnerabilidades Comuns:
-
SQL Injection - Não aplicável (não usa SQL diretamente)
-
Command Injection:
# ❌ RUIM: Concatenar strings em comandos shell `convert #{params[:file]} output.pdf` # ✅ BOM: Usar arrays de argumentos system('convert', params[:file], 'output.pdf')
-
Path Traversal:
# ❌ RUIM: Usar input diretamente em paths File.read(params[:filename]) # ✅ BOM: Validar e sanitizar filename = File.basename(params[:filename]) File.read(File.join(SAFE_DIR, filename))
-
XSS - Não aplicável (API REST sem frontend)
-
Information Disclosure:
# ❌ RUIM: Retornar stack trace completo rescue => e { error: e.backtrace } # ✅ BOM: Retornar mensagem genérica rescue => e logger.error(e.backtrace) { error: "Erro interno" }
-
DoS (Denial of Service):
# ✅ BOM: Limitar tamanho de upload use Rack::Protection::JsonCsrf use Rack::BodyProxy::MaxLength, max_length: 1_000_000
Verificamos regularmente dependências com:
# Ruby
bundle audit check --update
# Python
pip-audit- Dependências críticas: Atualizadas imediatamente
- Dependências de segurança: Dentro de 7 dias
- Dependências menores: Revisão mensal
Ruby:
grape- Framework da APIbrcobranca- Geração de boletos- Ver
Gemfilepara lista completa
Python Cliente:
requests- Cliente HTTP- Ver
python-client/requirements.txt
Este projeto:
- ✅ Não armazena dados de cartão de crédito
- ✅ Não processa pagamentos diretamente
- ✅ Gera apenas PDFs de boletos (não executa transações)
- ✅ É stateless (não mantém sessões)
- ✅ Não acessa bancos de dados externos
- ✅ Usa imagem Docker Alpine minimalista
- OWASP Top 10
- Ruby on Rails Security Guide
- Docker Security Best Practices
- CWE - Common Weakness Enumeration
Agradecemos aos seguintes pesquisadores de segurança que reportaram vulnerabilidades responsavelmente:
(Nenhum reporte até o momento - seja o primeiro!)
Obrigado por ajudar a manter o Boleto CNAB API seguro!
Para questões gerais (não relacionadas a segurança), por favor use as issues do GitHub.