Files
Powershell/cybersecurity/Network Reputation Service/readme-pl.md

8.6 KiB
Raw Blame History

🛡️ Audyt Firewall - Network Reputation Service

Version PowerShell License

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

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

  1. Pobierz skrypt do dedykowanego folderu
  2. Pobierz plik JSON z:
    https://gitea.tips-of-mine.com/Tips-Of-Mine/Powershell/src/branch/main/cybersecurity/Network%20Reputation%20Service/file-nrs.json
    
  3. 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:

  1. Analiza Zawartości: Wyszukiwanie słów kluczowych stron blokujących
  2. Limity Czasu Sieci: Żądania, które wygasają (prawdopodobna blokada zapory)
  3. Błędy Połączenia: Niemożność osiągnięcia serwera
  4. 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:

  1. 🕐 Uruchamiaj podczas godzin mniejszego ruchu
  2. 📊 Analizuj wyniki w kontekście
  3. 🔄 Utrzymuj aktualny plik JSON
  4. 📈 Śledź ewolucję wyników w czasie

🤝 Współpraca

Aby Współpracować:

  1. Zrób fork projektu
  2. Utwórz swoją gałąź funkcji
  3. Zatwierdź swoje zmiany
  4. Wypchnij do gałęzi
  5. 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