Upload files to "cybersecurity/Network Reputation Service"

This commit is contained in:
2025-09-04 13:26:42 +02:00
parent dbce1cb2a3
commit ed4c37af89
7 changed files with 2065 additions and 0 deletions

View File

@@ -0,0 +1,295 @@
# 🛡️ 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*