Files

295 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🛡️ Auditoria de Firewall - Network Reputation Service
![Version](https://img.shields.io/badge/version-1.3-blue.svg)
![PowerShell](https://img.shields.io/badge/PowerShell-5.1+-blue.svg)
![License](https://img.shields.io/badge/license-MIT-green.svg)
Uma ferramenta profissional de auditoria em PowerShell para avaliar a eficácia da filtragem do seu firewall testando URLs categorizadas baseadas na sua reputação de rede.
## 📋 Índice de Conteúdos
- [Visão Geral](#-visão-geral)
- [Características](#-características)
- [Pré-requisitos](#-pré-requisitos)
- [Instalação](#-instalação)
- [Uso](#-uso)
- [Configuração](#-configuração)
- [Relatório Gerado](#-relatório-gerado)
- [Estrutura de Dados](#-estrutura-de-dados)
- [Sistema de Pontuação](#-sistema-de-pontuação)
- [Resolução de Problemas](#-resolução-de-problemas)
- [Contribuir](#-contribuir)
- [Licença](#-licença)
## 🎯 Visão Geral
Este script PowerShell testa a eficácia do seu firewall verificando se URLs maliciosas são corretamente bloqueadas enquanto sites legítimos permanecem acessíveis. Gera um relatório HTML profissional com pontuação, estatísticas e recomendações.
**Autor:** Hubert Cornet
**Versão:** 1.3
**Data:** 3 de setembro de 2025
## ✨ Características
- 🔍 **Testes automatizados** de centenas de URLs categorizadas
- 📊 **Pontuação inteligente** com notas de A+ a F
- 📱 **Relatório HTML responsivo** com interface interativa
- 🔧 **Suporte a proxy** com autenticação
-**Barras de progresso em tempo real**
- 🎨 **Visualizações coloridas** dos resultados
- 💾 **Exportação JSON** dos dados brutos
- 🌐 **Detecção multi-método** de bloqueios
## 📋 Pré-requisitos
### Requisitos do Sistema
- Windows 10/11 ou Windows Server 2016+
- PowerShell 5.1 ou superior
- Conexão à Internet ativa
- Permissões de escrita no diretório do script
### Módulos PowerShell (instalados automaticamente)
- `PSWriteHTML`
- `PSWriteColor`
### Arquivos Necessários
- `file-nrs.json` - Base de dados de URLs categorizadas
## 🚀 Instalação
1. **Descarregue o script** numa pasta dedicada
2. **Descarregue o arquivo JSON** de:
```
https://gitea.tips-of-mine.com/Tips-Of-Mine/Powershell/src/branch/main/cybersecurity/Network%20Reputation%20Service/file-nrs.json
```
3. **Coloque ambos os arquivos** no mesmo diretório
## 💻 Uso
### Uso Básico
```powershell
.\AuditFirewall.ps1
```
### Com Proxy
```powershell
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.empresa.com:8080"
```
### Com Autenticação de Proxy
```powershell
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.empresa.com:8080" -ProxyUseAuthentication
```
### Com Timeout Personalizado
```powershell
.\AuditFirewall.ps1 -TimeoutSeconds 15
```
## ⚙️ Configuração
### Parâmetros Disponíveis
| Parâmetro | Tipo | Descrição | Padrão |
|-----------|------|-----------|---------|
| `ProxyUrl` | String | URL do proxy de rede | Nenhum |
| `ProxyUseAuthentication` | Switch | Ativar autenticação de proxy | False |
| `TimeoutSeconds` | Integer | Timeout por URL | 10 |
### Personalização das Palavras-chave de Bloqueio
Modifique a variável `$BlockKeywords` no script:
```powershell
$BlockKeywords = @("site bloqueado", "acesso negado", "filtragem web", "Access Denied", "Site Blocked")
```
## 📊 Relatório Gerado
O script gera automaticamente:
### 📁 Estrutura de Arquivos de Saída
```
Rapports/
└── [Data e Hora]/
├── Audit_Firewall_Report.html # Relatório principal
└── Results.json # Dados brutos
```
### 🎨 Conteúdo do Relatório HTML
- **Resumo Executivo**: Pontuação global e estatísticas-chave
- **Tabela de Pontuações**: Performance por categoria
- **Detalhes Interativos**: Testes individuais por URL
- **Escala de Avaliação**: Explicação do sistema de pontuação
## 📁 Estrutura de Dados
### Formato `file-nrs.json`
```json
{
"categorie": [
{
"id": "malware",
"nom": "Malware",
"description": "Sites que distribuem software malicioso",
"urls": [
{
"url": "http://exemplo-malware.com",
"reputation": "malicious",
"expected_action": "block"
},
{
"url": "https://site-legitimo.com",
"reputation": "safe",
"expected_action": "allow"
}
]
}
]
}
```
### Ações Esperadas
- `"block"`: A URL deve ser bloqueada pelo firewall
- `"allow"`: A URL deve permanecer acessível
## 📈 Sistema de Pontuação
### Escala de Avaliação
| Nota | Pontuação | Interpretação |
|------|-----------|---------------|
| **A+** | 95-100% | 🟢 Excelente / Perfeito |
| **A** | 90-95% | 🟢 Muito bom nível de filtragem |
| **B+** | 85-90% | 🟡 Muito bom |
| **B** | 80-85% | 🟡 Bom, alguns ajustes necessários |
| **C+** | 75-80% | 🟠 Razoavelmente bom |
| **C** | 70-75% | 🟠 Médio, lacunas significativas |
| **D+** | 65-70% | 🔴 Aceitável |
| **D** | 60-65% | 🔴 Fraco, filtragem ineficaz |
| **E+** | 55-60% | 🔴 Muito fraco |
| **E** | 50-55% | 🔴 Insuficiente |
| **F+** | 45-50% | ⚫ Crítico |
| **F** | 0-45% | ⚫ Ação imediata necessária |
### Método de Cálculo
```
Pontuação = (URLs filtradas corretamente / Total de URLs testadas) × 100
```
## 🔍 Métodos de Detecção
### Como o script deteta bloqueios:
1. **Análise de Conteúdo**: Procura por palavras-chave de páginas de bloqueio
2. **Timeouts de Rede**: Pedidos que expiram (provável bloqueio do firewall)
3. **Erros de Conexão**: Incapacidade de alcançar o servidor
4. **Códigos de Estado HTTP**: Análise das respostas do servidor
### Cabeçalhos HTTP Simulados:
O script simula um navegador moderno para evitar detecção:
```
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Accept: text/html,application/xhtml+xml,application/xml...
Accept-Language: pt-PT,pt;q=0.9,en-US;q=0.8,en;q=0.7
```
## 🔧 Resolução de Problemas
### Problemas Comuns
#### ❌ "Arquivo 'file-nrs.json' não existe!"
**Solução:** Descarregue o arquivo JSON do link fornecido e coloque-o na mesma pasta do script.
#### ❌ "Não é possível instalar o módulo X"
**Solução:** Execute PowerShell como administrador ou use:
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
#### ❌ Timeouts Frequentes
**Soluções:**
- Aumente o valor de `-TimeoutSeconds`
- Verifique a sua conexão de rede
- Configure corretamente as definições de proxy
#### ❌ Falsos Positivos/Negativos
**Soluções:**
- Atualize as palavras-chave de bloqueio
- Verifique a configuração do firewall
- Adapte o arquivo JSON ao seu ambiente
## 🏢 Casos de Uso Recomendados
### 📅 Uso Periódico
- **Auditoria mensal** da eficácia do firewall
- **Validação** após atualizações de regras
- **Benchmarking** entre soluções de segurança
### 👥 Relatórios Gerenciais
- **Dashboards** para gestão de TI
- **KPIs de segurança** mensuráveis
- **Justificação de investimento** em segurança
### 🔧 Testes de Configuração
- **Validação** após mudanças de rede
- **Testes de regressão** das regras do firewall
- **Auditoria de conformidade** de segurança
## ⚠️ Limitações Técnicas
### Pontos de Atenção:
- **Testes Sequenciais**: Sem paralelização (pode ser lento)
- **Detecção Básica**: Baseia-se em palavras-chave predefinidas
- **Falsos Positivos**: Sites legítimos temporariamente inacessíveis
- **Segurança**: O script realmente contacta as URLs testadas
### Melhores Práticas:
1. 🕐 Execute durante horas de menor tráfego
2. 📊 Analise os resultados no contexto
3. 🔄 Mantenha o arquivo JSON atualizado
4. 📈 Acompanhe a evolução das pontuações ao longo do tempo
## 🤝 Contribuir
### Para Contribuir:
1. Faça fork do projeto
2. Crie o seu branch de funcionalidade
3. Faça commit das suas alterações
4. Push para o branch
5. Abra um Pull Request
### Ideias de Melhoria:
- [ ] Paralelização de testes para melhor performance
- [ ] Detecção mais sofisticada de páginas de bloqueio
- [ ] Suporte a bases de dados de reputação externas
- [ ] Interface gráfica para configuração
- [ ] Integração com APIs de threat intelligence
## 🎯 Roteiro
### Versão 1.4 (planeada)
- [ ] Testes paralelos para performance melhorada
- [ ] Suporte a certificados SSL personalizados
- [ ] Notificações por email dos resultados
### Versão 2.0 (futuro)
- [ ] Interface web para configuração
- [ ] Integração com soluções SIEM
- [ ] API REST para automação
## 📞 Suporte
Para obter ajuda ou reportar problemas:
- 📧 Contacte o autor: Hubert Cornet
- 🐛 Abra um issue no repositório do projeto
- 📚 Consulte a documentação técnica
## 📄 Licença
Este projeto está sob licença MIT. Veja o arquivo `LICENSE` para mais detalhes.
---
**⭐ Se este script foi útil para si, não hesite em dar-lhe uma estrela!**
---
*Última atualização: 3 de setembro de 2025*