- Versões Suportadas
- Reportando Vulnerabilidades
- Processo de Divulgação
- Práticas de Segurança
- Configuração Segura
- Checklist de Segurança
| Versão | Suportada | Notas |
|---|---|---|
| 0.1.x | ✅ Sim | Versão atual em desenvolvimento ativo |
| < 0.1 | ❌ Não | Versões anteriores não recebem patches |
Recomendamos sempre utilizar a versão mais recente do projeto para garantir que você tenha todas as correções de segurança aplicadas.
A segurança deste projeto é tratada com seriedade. Agradecemos sua ajuda em reportar vulnerabilidades de forma responsável.
- Email: Envie detalhes para o mantenedor do projeto via issue privada
- GitHub Security Advisories: Use a aba "Security" do repositório para reportar diretamente
Por favor, inclua o máximo de informações possível:
## Descrição da Vulnerabilidade
[Descrição clara e concisa]
## Passos para Reproduzir
1. [Primeiro passo]
2. [Segundo passo]
3. [...]
## Impacto Esperado
[Qual o impacto potencial desta vulnerabilidade?]
## Ambiente
- Versão do projeto: [ex: 0.1.0]
- Sistema Operacional: [ex: Ubuntu 22.04]
- Python: [ex: 3.10.12]
- Outros detalhes relevantes
## Evidências (se aplicável)
[Screenshots, logs sanitizados, PoC]
## Sugestão de Correção (opcional)
[Se você tiver uma sugestão de como corrigir]Seguimos um processo de divulgação responsável:
| Etapa | Prazo | Descrição |
|---|---|---|
| Confirmação | 48h | Confirmamos o recebimento do relatório |
| Triagem | 7 dias | Avaliamos a severidade e validade |
| Correção | 30 dias | Desenvolvemos e testamos a correção |
| Release | 7 dias | Publicamos a correção |
| Divulgação | 30 dias | Divulgação pública após o patch |
| Nível | CVSS Score | Tempo de Resposta |
|---|---|---|
| 🔴 Crítico | 9.0 - 10.0 | 24 - 48 horas |
| 🟠 Alto | 7.0 - 8.9 | 7 dias |
| 🟡 Médio | 4.0 - 6.9 | 30 dias |
| 🟢 Baixo | 0.1 - 3.9 | 90 dias |
- API Keys: Todas as chamadas à API requerem autenticação via header
X-API-Key - Rate Limiting: Proteção contra ataques de força bruta e DDoS
- HMAC Signing: Webhooks são assinados para verificação de origem
# Exemplo de verificação de webhook
import hmac
import hashlib
def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(),
payload,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)- Masking de PII: Dados pessoais são mascarados em logs
- Sanitização: Inputs são sanitizados antes do processamento
- Encriptação: Dados sensíveis em config são criptografados
O projeto utiliza ferramentas automatizadas de segurança:
| Ferramenta | Propósito | Comando |
|---|---|---|
| Bandit | Análise estática de segurança | bandit -r src/ |
| Safety | Verificação de dependências | safety check |
| Dependabot | Atualizações automáticas | Configurado no GitHub |
| CodeQL | Análise semântica de código | GitHub Actions |
Nunca commite credenciais no repositório. Use variáveis de ambiente:
# .env (não versionado)
API_KEY=<chave-forte-32-caracteres>
WEBHOOK_SECRET=<segredo-hmac-256-bits>
TELEGRAM_BOT_TOKEN=<token-do-bot>
REDIS_URL=redis://localhost:6379/0# Gerar API_KEY segura
python -c "import secrets; print(secrets.token_urlsafe(32))"
# Gerar WEBHOOK_SECRET
python -c "import secrets; print(secrets.token_hex(32))"{
"security": {
"rate_limit": "100/minute",
"max_request_size": "10MB",
"allowed_origins": ["https://seu-dominio.com"],
"ssl_verify": true,
"log_pii": false
},
"scraping": {
"headless": true,
"disable_dev_shm": true,
"sandbox": false
}
}# Use usuário não-root
USER 1000:1000
# Minimize a superfície de ataque
FROM python:3.10-slim
# Não exponha portas desnecessárias
EXPOSE 8000- Credenciais: Todas as credenciais estão em variáveis de ambiente
- API Key: Chave API com pelo menos 32 caracteres
- WEBHOOK_SECRET: Segredo HMAC configurado
- HTTPS: Apenas conexões HTTPS em produção
- Rate Limiting: Limites apropriados configurados
- Logs: PII masking ativado
- Dependências: Verificadas com
safety check - Código: Analisado com
bandit
- Firewall: Portas não-essenciais bloqueadas
- Atualizações: Dependências atualizadas regularmente
- Monitoramento: Alertas de segurança configurados
- Backup: Backups criptografados e testados
- Logs: Logs de auditoria habilitados
- Rotação: Credenciais rotacionadas periodicamente
# Verificar segurança completa
make security
# Análise estática
bandit -r src/ -ll
# Dependências vulneráveis
safety check --full-report
# Verificar configuração
python scripts/system_diagnostic.py| Data | Descrição | Severidade | Status |
|---|---|---|---|
| - | Nenhum incidente reportado | - | - |
Agradecemos a todos os pesquisadores de segurança que ajudam a manter este projeto seguro através de divulgação responsável.
Contribuidores de segurança serão reconhecidos aqui (com permissão):
| Nome | Contribuição | Data |
|---|---|---|
| - | Seja o primeiro! | - |
Para questões de segurança, use os canais mencionados em Reportando Vulnerabilidades.
Não use canais públicos (issues, discussions) para reportar vulnerabilidades.
Última atualização: Abril 2025