Files

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

# 🛡️ Audyt 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)
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](#-przegląd)
- [Funkcje](#-funkcje)
- [Wymagania](#-wymagania)
- [Instalacja](#-instalacja)
- [Użycie](#-użycie)
- [Konfiguracja](#-konfiguracja)
- [Wygenerowany Raport](#-wygenerowany-raport)
- [Struktura Danych](#-struktura-danych)
- [System Punktacji](#-system-punktacji)
- [Rozwiązywanie Problemów](#-rozwiązywanie-problemów)
- [Współpraca](#-współpraca)
- [Licencja](#-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
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
```powershell
.\AuditFirewall.ps1
```
### Z Proxy
```powershell
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.firma.com:8080"
```
### Z Uwierzytelnianiem Proxy
```powershell
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.firma.com:8080" -ProxyUseAuthentication
```
### Z Niestandardowym Limitem Czasu
```powershell
.\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:
```powershell
$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`
```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:
```powershell
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*