Files

295 lines
8.9 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.

# 🛡️ Firewall-Audit - 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)
Ein professionelles PowerShell-Audit-Tool zur Bewertung der Filtereffektivität Ihrer Firewall durch das Testen kategorisierter URLs basierend auf ihrer Netzwerk-Reputation.
## 📋 Inhaltsverzeichnis
- [Überblick](#-überblick)
- [Funktionen](#-funktionen)
- [Voraussetzungen](#-voraussetzungen)
- [Installation](#-installation)
- [Nutzung](#-nutzung)
- [Konfiguration](#-konfiguration)
- [Generierter Bericht](#-generierter-bericht)
- [Datenstruktur](#-datenstruktur)
- [Bewertungssystem](#-bewertungssystem)
- [Fehlerbehebung](#-fehlerbehebung)
- [Mitwirken](#-mitwirken)
- [Lizenz](#-lizenz)
## 🎯 Überblick
Dieses PowerShell-Skript testet die Effektivität Ihrer Firewall, indem es überprüft, dass schädliche URLs korrekt blockiert werden, während legitime Websites zugänglich bleiben. Es generiert einen professionellen HTML-Bericht mit Bewertung, Statistiken und Empfehlungen.
**Autor:** Hubert Cornet
**Version:** 1.3
**Datum:** 3. September 2025
## ✨ Funktionen
- 🔍 **Automatisiertes Testen** von Hunderten kategorisierter URLs
- 📊 **Intelligente Bewertung** mit Noten von A+ bis F
- 📱 **Responsive HTML-Berichte** mit interaktiver Benutzeroberfläche
- 🔧 **Proxy-Unterstützung** mit Authentifizierung
-**Echtzeit-Fortschrittsbalken**
- 🎨 **Farbkodierte Visualisierungen** der Ergebnisse
- 💾 **JSON-Export** der Rohdaten
- 🌐 **Multi-Methoden-Erkennung** von Blockierungen
## 📋 Voraussetzungen
### Systemanforderungen
- Windows 10/11 oder Windows Server 2016+
- PowerShell 5.1 oder höher
- Aktive Internetverbindung
- Schreibrechte im Skript-Verzeichnis
### PowerShell-Module (werden automatisch installiert)
- `PSWriteHTML`
- `PSWriteColor`
### Erforderliche Dateien
- `file-nrs.json` - Datenbank kategorisierter URLs
## 🚀 Installation
1. **Laden Sie das Skript** in einen dedizierten Ordner herunter
2. **Laden Sie die JSON-Datei** von hier herunter:
```
https://gitea.tips-of-mine.com/Tips-Of-Mine/Powershell/src/branch/main/cybersecurity/Network%20Reputation%20Service/file-nrs.json
```
3. **Platzieren Sie beide Dateien** im selben Verzeichnis
## 💻 Nutzung
### Grundlegende Nutzung
```powershell
.\AuditFirewall.ps1
```
### Mit Proxy
```powershell
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.unternehmen.com:8080"
```
### Mit Proxy-Authentifizierung
```powershell
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.unternehmen.com:8080" -ProxyUseAuthentication
```
### Mit benutzerdefiniertem Timeout
```powershell
.\AuditFirewall.ps1 -TimeoutSeconds 15
```
## ⚙️ Konfiguration
### Verfügbare Parameter
| Parameter | Typ | Beschreibung | Standard |
|-----------|-----|--------------|----------|
| `ProxyUrl` | String | Netzwerk-Proxy-URL | Keine |
| `ProxyUseAuthentication` | Switch | Proxy-Authentifizierung aktivieren | False |
| `TimeoutSeconds` | Integer | Timeout pro URL | 10 |
### Anpassung der Block-Schlüsselwörter
Bearbeiten Sie die Variable `$BlockKeywords` im Skript:
```powershell
$BlockKeywords = @("Seite blockiert", "Zugriff verweigert", "Web-Filterung", "Access Denied", "Site Blocked")
```
## 📊 Generierter Bericht
Das Skript generiert automatisch:
### 📁 Ausgabe-Dateistruktur
```
Rapports/
└── [Datum und Uhrzeit]/
├── Audit_Firewall_Report.html # Hauptbericht
└── Results.json # Rohdaten
```
### 🎨 HTML-Berichtsinhalt
- **Zusammenfassung**: Gesamtpunktzahl und wichtige Statistiken
- **Punktetabelle**: Leistung nach Kategorie
- **Interaktive Details**: Einzelne Tests pro URL
- **Bewertungsskala**: Erklärung des Bewertungssystems
## 📁 Datenstruktur
### Format von `file-nrs.json`
```json
{
"categorie": [
{
"id": "malware",
"nom": "Malware",
"description": "Websites, die schädliche Software verbreiten",
"urls": [
{
"url": "http://beispiel-malware.com",
"reputation": "malicious",
"expected_action": "block"
},
{
"url": "https://legitime-website.com",
"reputation": "safe",
"expected_action": "allow"
}
]
}
]
}
```
### Erwartete Aktionen
- `"block"`: URL sollte von der Firewall blockiert werden
- `"allow"`: URL sollte zugänglich bleiben
## 📈 Bewertungssystem
### Notenskala
| Note | Punktzahl | Interpretation |
|------|-----------|---------------|
| **A+** | 95-100% | 🟢 Ausgezeichnet / Perfekt |
| **A** | 90-95% | 🟢 Sehr gutes Filtering-Niveau |
| **B+** | 85-90% | 🟡 Sehr gut |
| **B** | 80-85% | 🟡 Gut, einige Anpassungen nötig |
| **C+** | 75-80% | 🟠 Ziemlich gut |
| **C** | 70-75% | 🟠 Durchschnittlich, erhebliche Lücken |
| **D+** | 65-70% | 🔴 Akzeptabel |
| **D** | 60-65% | 🔴 Schwach, ineffektives Filtering |
| **E+** | 55-60% | 🔴 Sehr schwach |
| **E** | 50-55% | 🔴 Unzureichend |
| **F+** | 45-50% | ⚫ Kritisch |
| **F** | 0-45% | ⚫ Sofortige Maßnahmen erforderlich |
### Berechnungsmethode
```
Punktzahl = (Korrekt gefilterte URLs / Gesamtzahl getesteter URLs) × 100
```
## 🔍 Erkennungsmethoden
### Wie das Skript Blockierungen erkennt:
1. **Inhaltsanalyse**: Suche nach Schlüsselwörtern von Blockierungsseiten
2. **Netzwerk-Timeouts**: Anfragen, die ablaufen (wahrscheinliche Firewall-Blockierung)
3. **Verbindungsfehler**: Unfähigkeit, den Server zu erreichen
4. **HTTP-Statuscodes**: Analyse der Serverantworten
### Simulierte HTTP-Header:
Das Skript simuliert einen modernen Browser, um Erkennung zu vermeiden:
```
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Accept: text/html,application/xhtml+xml,application/xml...
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
```
## 🔧 Fehlerbehebung
### Häufige Probleme
#### ❌ "Datei 'file-nrs.json' existiert nicht!"
**Lösung:** Laden Sie die JSON-Datei vom bereitgestellten Link herunter und platzieren Sie sie im selben Ordner wie das Skript.
#### ❌ "Modul X kann nicht installiert werden"
**Lösung:** Führen Sie PowerShell als Administrator aus oder verwenden Sie:
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
#### ❌ Häufige Timeouts
**Lösungen:**
- Erhöhen Sie den `-TimeoutSeconds` Wert
- Überprüfen Sie Ihre Netzwerkverbindung
- Konfigurieren Sie die Proxy-Einstellungen korrekt
#### ❌ Falsch-Positive/Negative
**Lösungen:**
- Aktualisieren Sie die Block-Schlüsselwörter
- Überprüfen Sie die Firewall-Konfiguration
- Passen Sie die JSON-Datei an Ihre Umgebung an
## 🏢 Empfohlene Anwendungsfälle
### 📅 Regelmäßige Nutzung
- **Monatliches Audit** der Firewall-Effektivität
- **Validierung** nach Regel-Updates
- **Benchmarking** zwischen Sicherheitslösungen
### 👥 Management-Berichterstattung
- **Dashboards** für IT-Management
- **Messbare Sicherheits-KPIs**
- **Investitionsbegründung** für Sicherheit
### 🔧 Konfigurationstests
- **Validierung** nach Netzwerkänderungen
- **Regressionstests** der Firewall-Regeln
- **Sicherheits-Compliance-Audit**
## ⚠️ Technische Einschränkungen
### Beachtenswertes:
- **Sequenzielle Tests**: Keine Parallelisierung (kann langsam sein)
- **Grundlegende Erkennung**: Basiert auf vordefinierten Schlüsselwörtern
- **Falsch-Positive**: Legitime Websites zeitweise unzugänglich
- **Sicherheit**: Skript kontaktiert tatsächlich getestete URLs
### Best Practices:
1. 🕐 Führen Sie während schwacher Verkehrszeiten aus
2. 📊 Analysieren Sie Ergebnisse im Kontext
3. 🔄 Halten Sie JSON-Datei aktuell
4. 📈 Verfolgen Sie die Entwicklung der Punktzahlen über Zeit
## 🤝 Mitwirken
### Um beizutragen:
1. Forken Sie das Projekt
2. Erstellen Sie Ihren Feature-Branch
3. Committen Sie Ihre Änderungen
4. Pushen Sie zum Branch
5. Öffnen Sie eine Pull Request
### Verbesserungsideen:
- [ ] Test-Parallelisierung für bessere Performance
- [ ] Ausgeklügeltere Blockseiten-Erkennung
- [ ] Externe Reputationsdatenbank-Unterstützung
- [ ] Grafische Benutzeroberfläche für Konfiguration
- [ ] Threat Intelligence API-Integration
## 🎯 Roadmap
### Version 1.4 (geplant)
- [ ] Parallele Tests für verbesserte Performance
- [ ] Benutzerdefinierte SSL-Zertifikat-Unterstützung
- [ ] E-Mail-Benachrichtigungen für Ergebnisse
### Version 2.0 (zukünftig)
- [ ] Web-Interface für Konfiguration
- [ ] SIEM-Lösungsintegration
- [ ] REST API für Automatisierung
## 📞 Support
Für Hilfe oder um Probleme zu melden:
- 📧 Kontaktieren Sie den Autor: Hubert Cornet
- 🐛 Öffnen Sie ein Issue im Projekt-Repository
- 📚 Konsultieren Sie die technische Dokumentation
## 📄 Lizenz
Dieses Projekt steht unter MIT-Lizenz. Siehe die `LICENSE`-Datei für weitere Details.
---
**⭐ Wenn Ihnen dieses Skript nützlich war, geben Sie ihm gerne einen Stern!**
---
*Zuletzt aktualisiert: 3. September 2025*