Cisco: Intrusion Prevention System (IPS / IDS)

Wprowadzenie

Intrusion Prevention System (IPS) oraz Intrusion Detection System (IDS) są mechanizmami bezpieczeństwa służącymi do monitorowania ruchu sieciowego i wykrywania potencjalnych ataków. Na routerach Cisco można wdrożyć podstawową wersję IPS/IDS bez potrzeby zewnętrznych urządzeń.

IDS – system wykrywający zagrożenia (informuje, nie blokuje).

IPS – system wykrywający i blokujący zagrożenia.

Cisco umożliwia realizację IPS/IDS bezpośrednio w systemie IOS przy użyciu wbudowanych sygnatur oraz odpowiednich polityk.

Wymagania

Cisco IOS z obsługą funkcji IPS

Dostęp do sygnatur IPS (plik `.pkg`)

Pamięć flash z odpowiednim miejscem

Włączenie usługi i konfiguracja odpowiednich polityk

Konfiguracja IPS w trybie inline

1. Włączenie inspekcji

conf t
ip ips name moj_ips

2. Załaduj sygnatury IPS

Sygnatury muszą zostać pobrane i załadowane do routera (z TFTP lub lokalnie). Przykład:

ip ips signature-definition
load tftp://192.168.1.100/IOS-Sxxx.pkg

3. Włączenie IPS na interfejsach

Na interfejsach należy przypisać politykę IPS:

interface FastEthernet0/0
ip ips moj_ips in
exit
interface Serial0/0
ip ips moj_ips out
exit

4. Konfiguracja alertów i logowania

ip ips notify log
ip ips notify sdee

Dodatkowo, jeśli router ma możliwość zapisu logów:

logging buffered 51200 debugging

Tryby działania

inline (IPS) – pakiety są analizowane i mogą być blokowane przed dotarciem do celu.

promiscuous (IDS) – pakiety są tylko analizowane i raportowane (wymaga SPAN/mirroring).

Integracja z Snort (IDS Open Source)

Snort to popularny, darmowy system IDS/IPS, który może być skonfigurowany do analizy ruchu przepływającego przez router.

A. Instalacja Snort

Na systemie Linux (np. Ubuntu/Debian):

sudo apt update
sudo apt install snort

B. Konfiguracja Snort do analizy ruchu

1. Tryb sniffera (monitorowania):

sudo snort -i eth0 -A console -c /etc/snort/snort.conf

2. Ustaw interfejs routera w tryb SPAN/monitor (jeśli korzystasz z GNS3, zrób „port mirroring” na interfejsie):

monitor session 1 source interface FastEthernet0/0
monitor session 1 destination interface FastEthernet0/1

3. Podłącz Snorta do portu docelowego SPAN (np. `FastEthernet0/1`).

C. Tworzenie własnych sygnatur

Sygnatury Snort są przechowywane w plikach `.rules`. Przykład reguły:

alert tcp any any -> any 80 (msg:"HTTP access detected"; sid:1000001; rev:1;)

Umieść własne reguły w katalogu `/etc/snort/rules/local.rules` i włącz je w pliku konfiguracyjnym.

Automatyczne pobieranie sygnatur dla Snort

Najwygodniejszym sposobem aktualizacji reguł Snorta jest użycie narzędzia PulledPork.

A. Instalacja PulledPork

Na systemie Linux:

sudo apt install pulledpork

Lub pobierz z repozytorium:

git clone https://github.com/shirkdog/pulledpork.git

B. Konfiguracja PulledPork

Edytuj plik konfiguracyjny `pulledpork.conf`:

rule_url=https://www.snort.org/reg-rules/snortrules-snapshot-29120.tar.gz|snortrules-snapshot.tar.gz|oinkcode
oinkcode=TWÓJ_KOD_OINK
snort_path=/usr/sbin/snort
config_path=/etc/snort/snort.conf
rule_path=/etc/snort/rules/snort.rules
local_rules=/etc/snort/rules/local.rules
sid_msg=/etc/snort/sid-msg.map

Aby uzyskać `oinkcode`, zarejestruj się na https://www.snort.org/

C. Uruchamianie aktualizacji

sudo ./pulledpork.pl -c /etc/pulledpork/pulledpork.conf -l

Można dodać do `cron` aby aktualizować codziennie.

D. Sprawdzenie załadowanych reguł

sudo snort -T -c /etc/snort/snort.conf

Zastosowania

Ochrona brzegowa w małych sieciach.

Monitorowanie i kontrola dostępu w sieciach kampusowych.

Integracja z politykami bezpieczeństwa (ACL, CBAC, ZBF).

Wykrywanie znanych exploitów i ataków (Snort).

Podsumowanie

IPS/IDS na routerze Cisco to skuteczne, choć ograniczone rozwiązanie wykrywania i zapobiegania atakom. W połączeniu z narzędziem takim jak Snort i PulledPork, administrator zyskuje możliwość wdrażania aktualnych reguł wykrywających najnowsze zagrożenia.