Snort 3 – nowoczesny IDS/IPS od podstaw do zaawansowanych zastosowań
Sieci komputerowe

Snort 3 – nowoczesny IDS/IPS od podstaw do zaawansowanych zastosowań

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 3 – nowoczesny IDS/IPS od podstaw do zaawansowanych zastosowań
Snort 3 – nowoczesny IDS/IPS od podstaw do zaawansowanych zastosowań

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

HTTP, DNS, SSH, SMB itd.

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.

Polecane wpisy
Programowalne sieci komputerowe: Przewodnik z przykładami
Programowalne sieci komputerowe: Przewodnik z przykładami

Programowalne sieci komputerowe: Przewodnik z przykładami Programowalne sieci komputerowe (Software Defined Networking, SDN) to nowy paradygmat w sieciach komputerowych, który Czytaj dalej

Projektowanie sieci komputerowych
Projektowanie sieci komputerowych

Proces projektowania sieci komputerowych można podzielić na kilka etapów. Oto ogólny opis procesu projektowania sieci w formie punktów: [caption id="attachment_7334" Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.