Snort 3 – nowoczesny IDS/IPS od podstaw do zaawansowanych zastosowań
Snort 3 to nowoczesny silnik IDS/IPS firmy Cisco, służący do wykrywania i blokowania zagrożeń w ruchu sieciowym.
W praktyce Snort może działać jako:
- IDS – wykrywanie ataków,
- IPS – aktywne blokowanie,
- Network Security Monitoring – analiza ruchu,
- sensor bezpieczeństwa dla większej infrastruktury.
Snort jest jednym z najbardziej znanych projektów w świecie Network Intrusion Detection and Prevention.
Snort 3 – czym różni się od Snort 2?
Snort 3 nie jest po prostu kolejną wersją Snort 2.
Architektura została mocno przebudowana.
Najważniejsze zmiany obejmują:
- modułową architekturę,
- lepszą wielowątkowość,
- konfigurację Lua,
- nowy system inspekcji,
- poprawioną wydajność,
- bardziej elastyczne reguły,
- lepszą obsługę dużych środowisk.
Schemat:
Snort 2
|
+-- starsza architektura
+-- klasyczna konfiguracja
+-- ograniczona skalowalność
Snort 3
|
+-- modular architecture
+-- Lua configuration
+-- multi-threading
+-- modern inspection engine
IDS a IPS
Podobnie jak w przypadku Suricaty, podstawowa różnica jest bardzo ważna.
IDS
Snort obserwuje ruch:
Client
|
+----------> Server
|
+----------> Snort
Jeżeli wykryje zagrożenie:
ALERT
ale ruch może nadal dotrzeć do serwera.
IPS
Snort znajduje się bezpośrednio na ścieżce ruchu:
Client
|
v
Snort
|
+---- ALLOW ----> Server
|
+---- DROP
W przypadku wykrycia ataku może zatrzymać pakiet.
Architektura Snort 3
Uproszczony model:
Network Traffic
|
v
+-------------+
| Packet Input |
+-------------+
|
v
+-------------+
| Inspectors |
+-------------+
|
v
+-------------+
| Detection |
| Engine |
+-------------+
|
+--------+--------+
| |
ALERT DROP
Modułowa architektura pozwala dostosować działanie silnika do konkretnego środowiska.
Snort Rules
Reguły są jednym z najważniejszych elementów Snorta.
Przykładowa prosta reguła:
alert tcp any any -> any 80 (
msg:"HTTP traffic detected";
sid:1000001;
)
Oznacza to między innymi:
alert
czyli wygenerowanie alertu,
tcp
czyli TCP,
any any
dowolne źródło i port,
-> any 80
ruch do portu 80.
SID
Każda reguła powinna mieć identyfikator:
sid:1000001
SID oznacza Signature ID.
Przykładowo:
sid:1000001
sid:1000002
sid:1000003
Administrator może dzięki temu łatwo identyfikować konkretną regułę w logach.
Rev
Reguły mogą posiadać również wersję:
rev:1
Po zmianie reguły:
rev:2
Ułatwia to zarządzanie wersjami sygnatur.
Detection Engine
Silnik detekcji analizuje ruch i sprawdza go względem reguł.
Przykład:
HTTP Request
|
v
Snort
|
+---- Rule 1 → no match
|
+---- Rule 2 → no match
|
+---- Rule 3 → MATCH
|
v
ALERT
W trybie IPS akcją może być:
DROP
Snort 3 i Lua
Jedną z istotnych zmian w Snort 3 jest wykorzystanie Lua do konfiguracji.
Konfiguracja może być bardziej elastyczna niż klasyczny model Snort 2.
Przykładowo:
snort.lua
zawiera konfigurację poszczególnych komponentów.
Konfiguracja Snort 3
Typowe elementy konfiguracji obejmują:
snort.lua
rules
policy
inspectors
outputs
logging
Można dzięki temu rozdzielić konfigurację silnika od reguł detekcji.
Sprawdzanie konfiguracji
Przed uruchomieniem warto zweryfikować konfigurację.
Przykładowo:
snort -c /etc/snort/snort.lua -T
Parametr:
-T
służy do testowania konfiguracji.
To bardzo przydatne przed wdrożeniem IPS.
Snort jako IDS
Najprostszy scenariusz:
Switch
|
SPAN/TAP
|
v
Snort
|
ALERTS
Snort otrzymuje kopię ruchu i generuje alerty.
To dobry sposób na rozpoczęcie wdrożenia.
Snort jako IPS
W trybie IPS:
Internet
|
v
Snort
|
v
Internal Network
Każdy pakiet może zostać:
ALLOW
lub:
DROP
Inline IPS
Inline jest kluczowy dla aktywnego blokowania.
Client
|
v
[ Snort 3 ]
|
v
Server
Snort może zatrzymać ruch zanim dotrze do celu.
Snort i Linux
Snort 3 może być uruchamiany na Linuxie.
Typowa architektura:
Linux Server
│
├── Snort 3
├── Network Interface
├── Rules
└── Logging
Może działać jako dedykowany sensor bezpieczeństwa.
Snort i OPNsense
OPNsense może wykorzystywać mechanizmy IDS/IPS oparte na Snort lub innych silnikach.
Schemat:
Internet
|
OPNsense
|
Snort
|
LAN
W praktyce należy sprawdzić dostępność i sposób integracji dla konkretnej wersji OPNsense, ponieważ obsługiwane mechanizmy mogą się zmieniać.
Snort i pfSense
Snort ma długą historię wykorzystania w środowiskach opartych o pfSense.
Przykład:
Internet
|
pfSense
|
Snort
|
LAN
Firewall odpowiada za podstawowe reguły dostępu, a Snort za analizę ruchu.
Snort i VLAN
W większej sieci można monitorować kilka segmentów:
Snort 3
|
Core Switch
|
+-------------+-------------+
| | |
VLAN 10 VLAN 20 VLAN 30
Users Servers DMZ
Nie zawsze trzeba analizować każdy segment. Warto skoncentrować się na miejscach, w których inspekcja daje największą wartość.
Snort i DMZ
DMZ jest bardzo dobrym miejscem do zastosowania IDS/IPS.
Internet
|
Firewall
|
Snort 3
|
DMZ
|
Web Server
Jeżeli publiczny serwer zostanie zaatakowany, Snort może wykryć znane wzorce ataku.
Snort i HTTP
Snort potrafi analizować protokoły aplikacyjne.
Przykładowa reguła może szukać określonego wzorca:
content:"/admin";
lub:
content:"malicious";
W praktycznych regułach stosuje się jednak znacznie bardziej precyzyjne mechanizmy, aby ograniczyć false positives.
Snort i TLS
HTTPS komplikuje analizę.
Client
|
HTTPS
|
Snort
|
Server
Snort nie może po prostu zobaczyć całej zawartości zaszyfrowanego połączenia.
Możliwe jest natomiast analizowanie informacji dostępnych bez odszyfrowania, zależnie od protokołu i konfiguracji.
Jeżeli organizacja wymaga pełnej inspekcji treści HTTPS, potrzebne są dodatkowe mechanizmy TLS inspection.
Snort i DNS
DNS może dostarczać bardzo dużo informacji o potencjalnych zagrożeniach.
Snort może pomagać wykrywać:
- podejrzane domeny,
- nietypowe zapytania,
- DNS tunneling,
- komunikację z infrastrukturą malware.
Schemat:
Client
|
DNS
|
Snort
|
Detection
|
ALERT / DROP
Snort i IPv6
Nowoczesna infrastruktura powinna uwzględniać IPv6.
Błąd:
IPv4 → Snort → protected
IPv6 → bypass
To może stworzyć drogę obejścia zabezpieczeń.
Dlatego przy projektowaniu IPS należy uwzględnić:
- IPv4,
- IPv6,
- ruch lokalny,
- ruch między VLAN.
Snort i malware
Snort nie jest klasycznym antywirusem.
Nie skanuje po prostu każdego pliku na dysku.
Jego zadaniem jest wykrywanie podejrzanych wzorców w komunikacji.
Przykład:
Infected Host
|
| C2 Traffic
v
Snort 3
|
v
ALERT
Może to być bardzo przydatne do wykrywania komunikacji command-and-control.
Snort i skanowanie portów
Przykładowa sytuacja:
Attacker
192.0.2.50
|
+--> 22
+--> 80
+--> 443
+--> 445
+--> 3389
+--> ...
Snort może wykryć charakterystyczne zachowanie skanującego hosta.

Snort i brute force
Można wykrywać powtarzające się próby dostępu.
Przykład:
Attacker
|
+-- SSH login
+-- SSH login
+-- SSH login
+-- SSH login
+-- SSH login
IPS może wygenerować alert, a odpowiednie mechanizmy mogą ograniczyć dalszy ruch.
Snort i SIEM
Snort jest bardzo wartościowy jako źródło danych dla SIEM.
Architektura:
Snort 3
|
Alerts
|
v
SIEM
|
+-----------+-----------+
| | |
Logs Events Alerts
Można korelować dane Snorta z:
- Active Directory,
- Linux,
- Windows,
- firewallami,
- EDR,
- DNS.
Snort i logowanie
Snort może generować informacje o:
- alertach,
- ruchu,
- protokołach,
- zdarzeniach.
Ważne jest jednak, aby nie generować ogromnej ilości niepotrzebnych danych.
Dobre IPS to nie takie, które generuje milion alertów dziennie.
Dobre IPS to takie, którego alerty administrator jest w stanie zinterpretować i wykorzystać.
False Positives
To jeden z największych problemów IDS/IPS.
Przykład:
Normal Application
|
v
Snort
|
X
FALSE POSITIVE
Jeżeli reguła jest zbyt szeroka, może blokować legalny ruch.
Dlatego:
Enable
↓
Monitor
↓
Tune
↓
Validate
↓
Block
Reguły Snort 3 – tuning
Nie warto włączać bezrefleksyjnie wszystkiego.
Lepsze podejście:
1. Poznaj środowisko
Co działa w sieci?
2. Zidentyfikuj usługi
3. Włącz odpowiednie reguły
4. Obserwuj alerty
5. Wyeliminuj false positives
6. Dopiero wtedy włącz blocking
Wydajność Snort 3
IPS może być bardzo obciążający.
Na wydajność wpływają:
- CPU,
- liczba reguł,
- przepustowość,
- liczba sesji,
- konfiguracja inspektorów,
- logging.
Przy szybkich łączach trzeba odpowiednio dobrać sprzęt.
Przykład:
100 Mbps
|
v
Snort
|
łatwe środowisko
10 Gbps
|
v
Snort
|
wymaga odpowiedniego projektu
Multi-threading
Jedną z zalet Snort 3 jest lepsze wykorzystanie wielu rdzeni CPU.
Schemat:
Traffic
|
+-------+-------+
| | |
Thread Thread Thread
| | |
+-------+-------+
|
Detection
Ma to znaczenie szczególnie w środowiskach o dużej liczbie połączeń.
Snort 3 vs Suricata
| Cecha | Snort 3 | Suricata |
|---|---|---|
| IDS | ✅ | ✅ |
| IPS | ✅ | ✅ |
| Open source | ✅ | ✅ |
| IPv6 | ✅ | ✅ |
| Multi-threading | ✅ | ✅ |
| Lua configuration | ✅ | — |
| EVE JSON | — | ✅ |
| Ekosystem Snort | bardzo duży | duży |
| Reguły | Snort Rules | Snort/ET + własne |
Oba rozwiązania są bardzo dobre.
Nie ma sensu traktować wyboru jako:
„który jest absolutnie najlepszy?”
Lepsze pytanie brzmi:
„Który lepiej pasuje do mojej infrastruktury, sposobu zarządzania regułami i systemu monitoringu?”
Snort 3 vs klasyczny firewall
Snort nie zastępuje firewalla.
Firewall:
Source
Destination
Port
Protocol
Action
Snort:
Traffic
↓
Protocol Analysis
↓
Pattern / Signature
↓
Detection
Najlepiej:
Internet
|
Firewall
|
Snort IPS
|
Network
Defense in Depth
Najlepsza architektura nie opiera się na jednym narzędziu.
Internet
|
Firewall
|
Snort IPS
|
VLAN Segmentation
|
EDR
|
Servers
|
SIEM
Każda warstwa rozwiązuje inny problem.
Przykładowa architektura enterprise
INTERNET
|
v
+---------------+
| Edge Firewall |
+---------------+
|
v
Snort 3 IPS
|
v
Core Network
|
+--------------+--------------+
| | |
Users Servers DMZ
| | |
VLAN 10 VLAN 20 VLAN 30
| | |
EDR EDR Web Server
| |
+--------------+
|
SIEM
Najczęstsze błędy
❌ włączenie wszystkich reguł bez analizy
❌ natychmiastowe przejście do DROP
❌ ignorowanie false positives
❌ brak monitorowania wydajności
❌ brak aktualizacji reguł
❌ brak ochrony IPv6
❌ traktowanie Snorta jako zamiennika firewalla
❌ brak centralnego logowania
Dobra strategia wdrożenia Snort 3
Najbezpieczniejszy proces:
Instalacja
|
v
Tryb IDS
|
v
Analiza alertów
|
v
Tuning reguł
|
v
Eliminacja false positives
|
v
Testy kontrolowane
|
v
Tryb IPS
|
v
Selektywne DROP
|
v
Monitoring 24/7
Podsumowanie
Snort 3 to dojrzała platforma IDS/IPS, która może stanowić jedną z warstw ochrony infrastruktury sieciowej.
Najważniejsze elementy:
- IDS – wykrywanie,
- IPS – blokowanie,
- Snort Rules – sygnatury,
- Detection Engine – analiza ruchu,
- Lua – elastyczna konfiguracja,
- Multi-threading – skalowanie,
- SIEM – centralna analiza,
- Inline mode – aktywne blokowanie.
Najważniejsza zasada wdrożeniowa:
Nie zaczynaj od blokowania. Zacznij od obserwacji, poznaj ruch, dostrój reguły, a dopiero później włącz aktywne IPS.
W praktyce Snort 3 + firewall + VLAN + EDR + SIEM daje znacznie większą ochronę niż samo uruchomienie Snorta z ogromnym zestawem sygnatur.






