295 lines
8.9 KiB
Markdown
295 lines
8.9 KiB
Markdown
# 🛡️ Firewall-Audit - Network Reputation Service
|
||
|
||

|
||

|
||

|
||
|
||
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* |