🛡️ Audyt konfiguracji Firewalla w Windows 12: Czy Twój system jest naprawdę chroniony?
Współczesne zagrożenia cybernetyczne są coraz bardziej zaawansowane, a atakujący coraz częściej wykorzystują luki konfiguracyjne, a nie same błędy w oprogramowaniu. Firewall systemowy, choć często traktowany jako „ustaw i zapomnij”, może stać się zarówno pierwszą linią obrony, jak i największym punktem słabości.
Dlatego audyt konfiguracji Firewalla w Windows 12 to nie tylko dobra praktyka – to obowiązkowy element strategii cyberbezpieczeństwa.
📌 Dlaczego audyt zapory jest konieczny?
🔒 Firewall może być aktywny, ale nieskuteczny – jeśli:
- Reguły są zbyt luźne (np. zezwalanie „na wszystko” dla programów)
- Nie ma monitoringu zdarzeń
- Profile sieciowe są źle skonfigurowane
- Stare lub nieużywane reguły pozostają aktywne
- Reguły są sprzeczne i źle priorytetyzowane
➡️ Regularny audyt pozwala wykrywać takie błędy i optymalizować zabezpieczenia systemowe.

🎯 Cele audytu zapory w Windows 12
- Weryfikacja aktywności i spójności profili
- Identyfikacja reguł o zbyt szerokim zakresie
- Analiza połączeń dopuszczonych i zablokowanych
- Wyszukiwanie luk w konfiguracji aplikacji
- Ocena skuteczności logowania i inspekcji
- Ocena ochrony zależnej od typu sieci (Public/Private/Domain)
- Audyt reguł dynamicznych i ręcznie dodanych
- Zgodność z politykami firmowymi / ISO / NIS2 / RODO
⚙️ Etap 1: Sprawdzenie ogólnej konfiguracji zapory
📍 Stan profili zapory
Get-NetFirewallProfile
- Czy wszystkie profile mają
Enabled=True? - Czy logowanie zablokowanych i dozwolonych połączeń jest aktywne?
- Czy reguły są różne dla profili Public / Private / Domain?
🧠 Automatyczne podsumowanie konfiguracji:
Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction, LogBlocked, LogAllowed
📋 Etap 2: Audyt aktywnych reguł zapory
🔍 Lista aktywnych reguł:
Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"} | Sort-Object DisplayName
Sprawdź:
- Czy są reguły o nazwach „Zezwalaj wszystko”, „Test”, „Any App”?
- Czy są powtarzające się lub nieopisane wpisy?
- Czy reguły mają określone profile, programy, porty, adresy?
📌 Sprawdzenie reguł z brakiem ograniczeń:
Get-NetFirewallRule | Where-Object {
$_.Enabled -eq "True" -and
$_.Action -eq "Allow" -and
($_.Direction -eq "Inbound" -or $_.Direction -eq "Outbound")
} | Select DisplayName, Direction, Profile, Program, RemoteAddress, Protocol
⚠️ Zbyt ogólne reguły (np. brak programu, brak adresu zdalnego, brak protokołu) to realna luka w ochronie.
🛠️ Etap 3: Ocena reguł aplikacyjnych i portowych
🔐 Przykład – reguły dla konkretnych aplikacji:
Get-NetFirewallApplicationFilter | Select-Object Program, AssociatedNetFirewallRule
Czy aplikacje typu C:\Windows\System32\cmd.exe albo powershell.exe mają zezwolenie na ruch wychodzący?
🎯 Sprawdzenie reguł portowych:
Get-NetFirewallPortFilter | Where-Object {$_.LocalPort -ne $null}
Sprawdź otwarte porty i ich znaczenie:
- TCP/445 – SMB
- TCP/3389 – RDP
- TCP/5985/5986 – WinRM
- UDP/1900 – SSDP
- UDP/5353 – mDNS
Każdy z tych portów może być wykorzystany w atakach lateral movement, DoS lub eksfiltracji danych.
📄 Etap 4: Analiza logów zapory
📁 Lokalizacja domyślnych logów:
C:\Windows\System32\LogFiles\Firewall\pfirewall.log
🧪 Zawiera wpisy dotyczące:
- zablokowanych pakietów
- źródłowych i docelowych adresów IP
- użytych protokołów i portów
🔍 Przykład analizy PowerShell:
Select-String -Path "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" -Pattern "DROP"
➡️ Analiza częstości zablokowań może wskazać na próbę skanowania, brute-force lub exfiltrację.
📡 Etap 5: Audyt profili sieciowych
Get-NetConnectionProfile
Sprawdź:
- Czy sieci prywatne są oznaczone jako Public?
- Czy komputer w domenie używa profilu DomainAuthenticated?
- Czy sieć hotelowa nie jest przypadkiem zaufana?
🔐 Ustawienie profilu Public to must-have dla sieci niezarządzanych.
🔧 Wymuszenie profilu:
Set-NetConnectionProfile -InterfaceAlias "Wi-Fi" -NetworkCategory Public
🔍 Etap 6: Analiza dynamicznych i ręcznych reguł
Wiele złośliwych programów próbuje tworzyć lub modyfikować reguły zapory.
📘 Sprawdzenie daty utworzenia:
PowerShell nie pokazuje domyślnie timestampów – należy:
- Eksportować reguły do XML i analizować metadata
- Śledzić zmiany rejestrowane w dzienniku zdarzeń:
Get-WinEvent -LogName "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall"
🔐 Monitorowanie tworzenia reguł
Włącz Audit Policy:
AuditPol /set /subcategory:"Filtering Platform Policy Change" /success:enable /failure:enable
➡️ Dzięki temu wszelkie modyfikacje będą logowane.
🧰 Etap 7: Eksport konfiguracji i porównanie zmian
🔄 Eksport reguł:
netsh advfirewall export "C:\Backup\zapora.wfw"
📁 Można porównać pliki .wfw (np. przez WinMerge) by wykryć nieautoryzowane zmiany między dniem audytu a incydentem.
🧬 Alternatywa – eksport reguł jako JSON/CSV:
Get-NetFirewallRule | Select DisplayName, Direction, Profile, Enabled, Action | Export-Csv -Path C:\audit\firewall.csv
📊 Etap 8: Integracja z innymi systemami bezpieczeństwa
Firewall nie powinien działać w izolacji.
🔗 Sprawdź, czy logi zapory są:
- Przesyłane do SIEM (Sentinel, Splunk, Graylog)
- Korelowane z EDR (Microsoft Defender for Endpoint)
- Używane w automatycznej reakcji (SOAR/Logic Apps)
📡 WEF – Windows Event Forwarding
Wysyłanie zdarzeń zapory do centralnego serwera zbierającego logi
🧠 Najczęstsze błędy konfiguracyjne wykrywane w audycie
❌ Reguły zezwalające „na wszystko” dla PowerShell, WMI, RDP
❌ Reguły aplikacyjne bez określonej ścieżki pliku wykonywalnego
❌ Otwarty port 445 w profilu Public
❌ Brak aktywnego logowania zablokowanych połączeń
❌ Stare reguły aplikacji już usuniętej z systemu
❌ Brak ochrony dynamicznej (brak integracji z EDR)
❌ Reguły aktywne we wszystkich profilach, zamiast tylko np. Domain
✅ Rekomendacje po audycie
- ✂️ Usuń nieużywane i przestarzałe reguły
- 🧱 Upewnij się, że tylko niezbędne usługi mają otwarte porty
- 🔐 Stosuj zasadę najmniejszych uprawnień (Least Privilege)
- 📤 Wysyłaj logi zapory do SIEM/Syslog
- 🧠 Opisuj reguły –
-Descriptionpomaga w późniejszej analizie - 📅 Planuj automatyczne audyty co 30 dni
- 📈 Używaj tagowania, nazewnictwa i wersjonowania reguł (np. RDP_Internal_V1.2)
🧩 Checklist: Audyt zapory krok po kroku
| Krok | Co sprawdzamy | Narzędzia |
|---|---|---|
| 1 | Stan profili i aktywność | Get-NetFirewallProfile |
| 2 | Reguły aktywne | Get-NetFirewallRule |
| 3 | Reguły zbyt luźne | analiza warunków |
| 4 | Reguły aplikacyjne | Get-NetFirewallApplicationFilter |
| 5 | Logowanie zdarzeń | Set-NetFirewallProfile, pfirewall.log |
| 6 | Zmiany w regułach | Event Viewer, AuditPol |
| 7 | Eksport i porównanie | netsh advfirewall export |
| 8 | Integracja z SIEM | WEF, API, PowerShell |
📌 Podsumowanie
Audyt konfiguracji Firewalla w Windows 12: Czy Twój system jest naprawdę chroniony? to pytanie, które powinno być stawiane cyklicznie.
Firewall nie chroni systemu, jeśli jest źle skonfigurowany – a luka może pozostać niezauważona przez miesiące.
🔍 Audyt to nie jednorazowa akcja – to proces ciągłego doskonalenia bezpieczeństwa, zgodny z założeniami Zero Trust i Cybersecurity Framework (NIST).






