8.6 KiB
🛡️ Audyt Firewall - Network Reputation Service
Profesjonalne narzędzie audytowe PowerShell do oceny skuteczności filtrowania zapory sieciowej poprzez testowanie skategoryzowanych URL-i na podstawie ich reputacji sieciowej.
📋 Spis Treści
- Przegląd
- Funkcje
- Wymagania
- Instalacja
- Użycie
- Konfiguracja
- Wygenerowany Raport
- Struktura Danych
- System Punktacji
- Rozwiązywanie Problemów
- Współpraca
- Licencja
🎯 Przegląd
Ten skrypt PowerShell testuje skuteczność zapory sieciowej, sprawdzając czy złośliwe URL-e są prawidłowo blokowane, podczas gdy legalne strony pozostają dostępne. Generuje profesjonalny raport HTML z punktacją, statystykami i rekomendacjami.
Autor: Hubert Cornet
Wersja: 1.3
Data: 3 września 2025
✨ Funkcje
- 🔍 Automatyczne testowanie setek skategoryzowanych URL-i
- 📊 Inteligentna punktacja z ocenami od A+ do F
- 📱 Responsywny raport HTML z interaktywnym interfejsem
- 🔧 Obsługa proxy z uwierzytelnianiem
- ⚡ Paski postępu w czasie rzeczywistym
- 🎨 Kolorowe wizualizacje wyników
- 💾 Eksport JSON surowych danych
- 🌐 Wielometodowe wykrywanie blokad
📋 Wymagania
Wymagania Systemowe
- Windows 10/11 lub Windows Server 2016+
- PowerShell 5.1 lub wyższy
- Aktywne połączenie internetowe
- Uprawnienia do zapisu w katalogu skryptu
Moduły PowerShell (instalowane automatycznie)
PSWriteHTML
PSWriteColor
Wymagane Pliki
file-nrs.json
- Baza danych skategoryzowanych URL-i
🚀 Instalacja
- Pobierz skrypt do dedykowanego folderu
- Pobierz plik JSON z:
https://gitea.tips-of-mine.com/Tips-Of-Mine/Powershell/src/branch/main/cybersecurity/Network%20Reputation%20Service/file-nrs.json
- Umieść oba pliki w tym samym katalogu
💻 Użycie
Podstawowe Użycie
.\AuditFirewall.ps1
Z Proxy
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.firma.com:8080"
Z Uwierzytelnianiem Proxy
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.firma.com:8080" -ProxyUseAuthentication
Z Niestandardowym Limitem Czasu
.\AuditFirewall.ps1 -TimeoutSeconds 15
⚙️ Konfiguracja
Dostępne Parametry
Parametr | Typ | Opis | Domyślny |
---|---|---|---|
ProxyUrl |
String | URL proxy sieciowego | Brak |
ProxyUseAuthentication |
Switch | Włącz uwierzytelnianie proxy | False |
TimeoutSeconds |
Integer | Limit czasu na URL | 10 |
Dostosowanie Słów Kluczowych Blokady
Zmodyfikuj zmienną $BlockKeywords
w skrypcie:
$BlockKeywords = @("strona zablokowana", "dostęp zabroniony", "filtrowanie web", "Access Denied", "Site Blocked")
📊 Wygenerowany Raport
Skrypt automatycznie generuje:
📁 Struktura Plików Wyjściowych
Rapports/
└── [Data i Czas]/
├── Audit_Firewall_Report.html # Główny raport
└── Results.json # Surowe dane
🎨 Zawartość Raportu HTML
- Streszczenie Wykonawcze: Globalny wynik i kluczowe statystyki
- Tabela Wyników: Wydajność według kategorii
- Interaktywne Szczegóły: Indywidualne testy na URL
- Skala Ocen: Wyjaśnienie systemu punktacji
📁 Struktura Danych
Format file-nrs.json
{
"categorie": [
{
"id": "malware",
"nom": "Malware",
"description": "Strony dystrybuujące złośliwe oprogramowanie",
"urls": [
{
"url": "http://przykład-malware.com",
"reputation": "malicious",
"expected_action": "block"
},
{
"url": "https://legalna-strona.com",
"reputation": "safe",
"expected_action": "allow"
}
]
}
]
}
Oczekiwane Działania
"block"
: URL powinien być zablokowany przez zaporę"allow"
: URL powinien pozostać dostępny
📈 System Punktacji
Skala Ocen
Ocena | Punkty | Interpretacja |
---|---|---|
A+ | 95-100% | 🟢 Doskonały / Idealny |
A | 90-95% | 🟢 Bardzo dobry poziom filtrowania |
B+ | 85-90% | 🟡 Bardzo dobry |
B | 80-85% | 🟡 Dobry, potrzebne pewne dostosowania |
C+ | 75-80% | 🟠 Dość dobry |
C | 70-75% | 🟠 Średni, znaczące luki |
D+ | 65-70% | 🔴 Do zaakceptowania |
D | 60-65% | 🔴 Słaby, nieefektywne filtrowanie |
E+ | 55-60% | 🔴 Bardzo słaby |
E | 50-55% | 🔴 Niewystarczający |
F+ | 45-50% | ⚫ Krytyczny |
F | 0-45% | ⚫ Wymagane natychmiastowe działanie |
Metoda Obliczania
Punkty = (Poprawnie filtrowane URL-e / Łączna liczba testowanych URL-i) × 100
🔍 Metody Wykrywania
Jak skrypt wykrywa blokady:
- Analiza Zawartości: Wyszukiwanie słów kluczowych stron blokujących
- Limity Czasu Sieci: Żądania, które wygasają (prawdopodobna blokada zapory)
- Błędy Połączenia: Niemożność osiągnięcia serwera
- Kody Statusu HTTP: Analiza odpowiedzi serwera
Symulowane Nagłówki HTTP:
Skrypt symuluje nowoczesną przeglądarkę, aby uniknąć wykrycia:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Accept: text/html,application/xhtml+xml,application/xml...
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
🔧 Rozwiązywanie Problemów
Częste Problemy
❌ "Plik 'file-nrs.json' nie istnieje!"
Rozwiązanie: Pobierz plik JSON z podanego linku i umieść go w tym samym folderze co skrypt.
❌ "Nie można zainstalować modułu X"
Rozwiązanie: Uruchom PowerShell jako administrator lub użyj:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
❌ Częste Limity Czasu
Rozwiązania:
- Zwiększ wartość
-TimeoutSeconds
- Sprawdź połączenie sieciowe
- Poprawnie skonfiguruj ustawienia proxy
❌ Fałszywe Pozytywne/Negatywne
Rozwiązania:
- Zaktualizuj słowa kluczowe blokady
- Sprawdź konfigurację zapory
- Dostosuj plik JSON do swojego środowiska
🏢 Zalecane Przypadki Użycia
📅 Użycie Okresowe
- Miesięczny audyt skuteczności zapory
- Walidacja po aktualizacjach reguł
- Benchmarking między rozwiązaniami bezpieczeństwa
👥 Raporty Zarządcze
- Dashboardy dla zarządzania IT
- Mierzalne KPI bezpieczeństwa
- Uzasadnienie inwestycji w bezpieczeństwo
🔧 Testy Konfiguracji
- Walidacja po zmianach sieciowych
- Testy regresji reguł zapory
- Audyt zgodności bezpieczeństwa
⚠️ Ograniczenia Techniczne
Punkty Uwagi:
- Testy Sekwencyjne: Brak równoległości (może być wolne)
- Podstawowe Wykrywanie: Opiera się na predefiniowanych słowach kluczowych
- Fałszywe Pozytywne: Legalne strony czasowo niedostępne
- Bezpieczeństwo: Skrypt rzeczywiście kontaktuje się z testowanymi URL-ami
Najlepsze Praktyki:
- 🕐 Uruchamiaj podczas godzin mniejszego ruchu
- 📊 Analizuj wyniki w kontekście
- 🔄 Utrzymuj aktualny plik JSON
- 📈 Śledź ewolucję wyników w czasie
🤝 Współpraca
Aby Współpracować:
- Zrób fork projektu
- Utwórz swoją gałąź funkcji
- Zatwierdź swoje zmiany
- Wypchnij do gałęzi
- Otwórz Pull Request
Pomysły na Ulepszenia:
- Równoległość testów dla lepszej wydajności
- Bardziej wyrafinowane wykrywanie stron blokujących
- Obsługa zewnętrznych baz danych reputacji
- Interfejs graficzny do konfiguracji
- Integracja z API threat intelligence
🎯 Mapa Drogowa
Wersja 1.4 (planowana)
- Testy równoległe dla lepszej wydajności
- Obsługa niestandardowych certyfikatów SSL
- Powiadomienia email o wynikach
Wersja 2.0 (przyszłość)
- Interfejs webowy do konfiguracji
- Integracja z rozwiązaniami SIEM
- API REST do automatyzacji
📞 Wsparcie
Aby uzyskać pomoc lub zgłosić problemy:
- 📧 Skontaktuj się z autorem: Hubert Cornet
- 🐛 Otwórz issue w repozytorium projektu
- 📚 Zapoznaj się z dokumentacją techniczną
📄 Licencja
Ten projekt jest pod licencją MIT. Zobacz plik LICENSE
po więcej szczegółów.
⭐ Jeśli ten skrypt był dla Ciebie przydatny, nie wahaj się dać mu gwiazdkę!
Ostatnia aktualizacja: 3 września 2025