Sistema completo de auditoria de segurança para Fedora Workstation
Monitora, analisa e gera relatórios detalhados sobre a postura de segurança do seu sistema
Features • Instalação • Uso • Documentação • Contribuir
Sistema profissional de auditoria de segurança que monitora 7 áreas críticas do seu sistema Linux, detecta vulnerabilidades, gera alertas inteligentes e produz relatórios HTML bonitos com análise humanizada via Google Gemini AI.
Porque ficar olhando logs crus é coisa de 2010.
| Módulo | O que faz |
|---|---|
| 🔌 Portas & Serviços | Detecta portas abertas, conexões suspeitas, serviços vulneráveis |
| 🔐 Autenticação | Analisa logins falhos, sessões ativas, uso de sudo, ataques de força bruta |
| 🛡️ Firewall & SELinux | Verifica configuração de firewall, zonas, regras e status do SELinux |
| Detecta CVEs conhecidos, atualizações pendentes, kernel vulnerável | |
| 🌐 Rede | Testa conectividade, DNS, gateway, largura de banda, interfaces |
| 📁 Permissões | Encontra arquivos SUID/SGID, world-writable, permissões incorretas |
| 🚨 Sistema de Alertas | Gera alertas inteligentes priorizados por severidade (crítico/aviso/info) |
# 1️⃣ Coleta Local (sem IA)
./security_audit.sh --no-ai
# Gera JSON local, zero envio de dados
# 2️⃣ Relatório HTML Local (sem IA)
./security_audit.sh --local-html
# HTML gerado localmente sem análise de IA, privacidade total
# 3️⃣ Relatório Completo com IA
./security_audit.sh --full
# Análise humanizada via Gemini, insights profundos
# ⚡ FALLBACK AUTOMÁTICO: Se a IA falhar, gera relatório local automaticamenteAntes de enviar dados para a IA, o sistema oferece 4 níveis de sanitização:
- none: Dados originais (use apenas em ambiente de teste)
- light: Anonimiza último octeto de IPs privados
- moderate: ⭐ Recomendado - Anonimiza IPs, usernames, hostname
- strict: Máxima privacidade - Anonimiza tudo possível
# Escolher nível de sanitização
./security_audit.sh --full --sanitize-level moderate📖 Leia mais: docs/SECURITY.md para detalhes sobre sanitização
Sistema de pontuação 0-100 com:
- ✅ Deduções por vulnerabilidades encontradas
- 🎯 Bônus por boas práticas implementadas
- 📈 Nota final (A-F) baseada no score
- 💡 Recomendações priorizadas
Relatórios visuais responsivos com:
- 🌈 Gradientes modernos
- 📊 Cards organizados por categoria
- 🎯 Score visual destacado
- 💬 Análise humanizada da IA (modo full)
- 🎪 UI Avançada (modo IA):
- 📁 Accordion expansível para recomendações
- 📊 Cards estatísticos para compliance
- ⏳ Timeline visual para próximos passos
- 🎯 Vetores de ataque formatados com severidade
- 🔄 Fallback Inteligente: Se a IA falhar (erro de rede, JSON truncado), gera relatório local automaticamente
- 💾 Debug Automático: Salva respostas problemáticas da IA em arquivos para análise
- SO: Fedora Workstation (ou qualquer Linux com systemd)
- Python: 3.8+
- Permissões: sudo para algumas verificações
# 1️⃣ Clone o repositório
git clone https://github.com/montezuma-p/security-audit-system.git
cd security-audit-system
# 2️⃣ Crie virtual environment
python3 -m venv venv
source venv/bin/activate
# 3️⃣ Instale dependências
pip install -r requirements.txt
# 4️⃣ Configure (opcional)
cp config.json.example config.json
# Edite config.json para customizar
# 5️⃣ (Apenas para modo --full) Configure API Key do Gemini
export GEMINI_API_KEY="sua-api-key-aqui"
# Ou adicione ao ~/.bashrc para permanentePara usar o modo --full com análise de IA:
- Acesse Google AI Studio
- Crie uma API Key gratuita
- Export como variável de ambiente:
echo 'export GEMINI_API_KEY="sua-api-key"' >> ~/.bashrc
source ~/.bashrc# Ativar venv
source venv/bin/activate
# Executar auditoria
./security_audit.sh --no-ai
# Resultado: JSON salvo em ~/.bin/data/scripts-data/reports/security/raw/./security_audit.sh --local-html
# Resultado: HTML básico em ~/.bin/data/scripts-data/reports/security/html/# Com confirmação de privacidade
./security_audit.sh --full
# Pular confirmação (use com cuidado!)
./security_audit.sh --full --skip-confirm
# Escolher nível de sanitização
./security_audit.sh --full --sanitize-level strict# Apenas coletar dados (sem gerar HTML)
./monitor/security_monitor.py
# Apenas gerar HTML de JSONs existentes
./reporter/security_reporter.py --input ~/.bin/data/scripts-data/reports/security/raw/security_20231108_143000.json# Ver todas as opções
./security_audit.sh --help
# Executar apenas monitor específico (edite config.json)
# Defina checks específicos como false para desabilitar
# Customizar diretórios de output via ENV
export SECURITY_MONITOR_OUTPUT="/seu/diretorio/json"
export SECURITY_REPORTER_OUTPUT="/seu/diretorio/html"
./security_audit.sh --full.
├── config.json.example
├── docs
│ ├── ARCHITECTURE.md
│ ├── CONTRIBUTING.md
│ ├── SECURITY.md
│ └── TODO.md
├── LICENSE
├── monitor
│ ├── modules
│ │ ├── alerts.py
│ │ ├── auth.py
│ │ ├── firewall.py
│ │ ├── __init__.py
│ │ ├── network.py
│ │ ├── permissions.py
│ │ ├── ports.py
│ │ └── vulnerabilities.py
│ └── security_monitor.py
├── README.md
├── reporter
│ ├── modules
│ │ ├── analyzers
│ │ │ ├── auth_analyzer.py
│ │ │ ├── base_analyzer.py
│ │ │ ├── firewall_analyzer.py
│ │ │ ├── __init__.py
│ │ │ ├── network_analyzer.py
│ │ │ ├── permissions_analyzer.py
│ │ │ ├── ports_analyzer.py
│ │ │ ├── score_analyzer.py
│ │ │ └── vulnerabilities_analyzer.py
│ │ ├── html_builder
│ │ │ ├── ai_sections.py
│ │ │ ├── footer.py
│ │ │ ├── formatters.py
│ │ │ ├── header.py
│ │ │ ├── __init__.py
│ │ │ └── sections.py
│ │ ├── html_generator.py
│ │ ├── __init__.py
│ │ └── sanitizer.py
│ ├── security_reporter.py
│ └── templates
│ └── assets
│ ├── report.js
│ └── styles.css
├── requirements.txt
└── security_audit.sh
10 directories, 39 files
🔒 Security Monitor - Iniciando auditoria de segurança...
🔒 Coletando métricas de segurança...
🔌 Portas e serviços...
🔐 Autenticação...
🛡️ Firewall e SELinux...
⚠️ Vulnerabilidades...
🌐 Rede e conectividade...
📁 Permissões de arquivos...
🚨 Gerando alertas de segurança...
💾 Salvando relatório...
✅ Relatório salvo em: ~/.bin/data/scripts-data/reports/security/raw/security_20231108_143522.json
======================================================================
🔒 RESUMO DA AUDITORIA DE SEGURANÇA
======================================================================
✅ Status de Segurança: GOOD
🎯 Score de Segurança: 87/100 - B (Bom)
🕐 Timestamp: 2023-11-08T14:35:22
🖥️ Hostname: workstation-montezuma
🚨 Alertas:
Total: 3
❌ Críticos: 0
⚠️ Avisos: 2
ℹ️ Informativos: 1
📊 Estatísticas:
🔌 Portas abertas: 12
⚠️ Portas suspeitas: 0
🔐 Logins falhos (24h): 0
✅ Internet: OK
✅ Firewall: Ativo
✅ SELinux: enforcing
======================================================================
O relatório HTML gerado inclui:
- 🎨 Header visual com gradiente
- 📊 Score de segurança destacado
- 💬 Análise humanizada da IA
- 📋 Seções detalhadas para cada módulo
- 💡 Recomendações priorizadas
- 📱 Design responsivo
| Antes | Depois |
|---|---|
| 😰 Logs confusos em 10 lugares diferentes | ✨ Um único relatório bonito |
| 🤯 Não sabe o que é crítico e o que não é | 🎯 Alertas priorizados automaticamente |
| 📝 Escrever análise manual leva horas | ⚡ IA faz em segundos |
| 🔓 Não tem certeza se está seguro | 📊 Score objetivo 0-100 |
| 😨 Privacidade? Que privacidade? | 🔐 Sanitização multi-nível |
- 🏢 Sysadmins: Auditoria periódica de servidores
- 👨💻 DevOps: Verificação de segurança pré-deploy
- 🔐 Security Teams: Compliance e análise de postura
- 🎓 Estudantes: Aprender segurança Linux na prática
- 🏠 Entusiastas: Manter workstation pessoal segura
- Python 3.8+: Core do sistema
- psutil: Coleta de métricas do sistema
- Google Gemini API: Análise humanizada via IA (opcional)
- systemd/journalctl: Análise de logs
- firewalld: Verificação de firewall
- SELinux: Análise de políticas de segurança
🆕 Novidades Recentes:
- ✨ Arquitetura Modular: HTML Generator refatorado (751→285 linhas) com pacote
html_builder/ - 🎪 UI Avançada para IA: Accordion, cards, timeline e formatação aprimorada
- 🔄 Fallback Inteligente: Se API Gemini falhar, gera relatório local automaticamente
- 🛠️ Recuperação de JSON: Tenta recuperar JSONs truncados/malformados da IA
- 💾 Debug Automático: Salva respostas problemáticas em
gemini_response_error_*.txt
Documentação completa disponível em:
- 📋 TODO.md - Roadmap e tarefas futuras
- 🤝 CONTRIBUTING.md - Como contribuir
- 🏗️ ARCHITECTURE.md - Arquitetura do sistema
- 🔐 SECURITY.md - Alertas e sanitização
Contribuições são muito bem-vindas! 🚀
- Fork o projeto
- Crie sua feature branch (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Add: minha feature dahora') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Leia CONTRIBUTING.md para detalhes sobre nosso código de conduta e processo de PR.
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Google Gemini API pela análise inteligente
- Comunidade Python pela excelente tooling
- Fedora Project pelo sistema operacional incrível
- Todos os contribuidores que tornaram este projeto possível
Pedro Lucas Montezuma Loureiro
Feito com ❤️ e ☕ por Montezuma
⭐ Se este projeto te ajudou, considere dar uma estrela!