Intrusion Detection System (IDS) - homes.di.unimi.it · Cos’è un sistema di Network Intrusion...

63
Sicurezza nelle Reti Prof. Claudio A. Ardagna, Dr. Marco Anisetti, Dr. Valerio Bellandi, Dott. Fulvio Frati http://homes.di.unimi.it/anisetti/index.html Università degli Studi di Milano

Transcript of Intrusion Detection System (IDS) - homes.di.unimi.it · Cos’è un sistema di Network Intrusion...

Sicurezza nelle Reti

Prof. Claudio A. Ardagna, Dr. Marco Anisetti, Dr. Valerio Bellandi, Dott. Fulvio Frati

http://homes.di.unimi.it/anisetti/index.html

Università degli Studi di Milano

Intrusion Detection System (IDS)

Tipici abusi a cui siamo esposti

• accesso non autorizzato ad un host

• compromissione del sistema

• Denial of Service

• mail spam

• utilizzo abusivo di anonymous ftp server

• virus, troiani, ...

3 Sicurezza nelle Reti

Come prevenirli ?

filtri sul router

tcp-wrappers

chiusura servizi inutili

filtri anti-spam

antivirus

eliminazione trasmissione password in chiaro

4 Sicurezza nelle Reti

Un’intrusione nella LAN resta comunque

un evento possibile e probabile

si usano sistemi operativi intrinsecamente insicuri e/o

non sempre configurati

gli utenti richiedono di utilizzare servizi insicuri

i sistemi di autenticazione utilizzati (password) sono

deboli

tutti i sistemi operativi risultano prima o poi

vulnerabili a chi riesce ad accedervi come utente

locale

5 Sicurezza nelle Reti

Cos’è un sistema di

Network Intrusion Detection ?

• E` un sistema di monitoraggio del traffico di rete con lo

scopo di evidenziare eventi critici per la security

• Si puo` considerare come una valida estensione dei log di

sistema

6 Sicurezza nelle Reti

Intrusion Detection System

definizione:

sistema per identificare individui che usano un computer

o una rete senza autorizzazione

esteso anche all’identificazione di utenti autorizzati, ma

che violano i loro privilegi

ipotesi:

il “pattern” di comportamento degli utenti non autorizzati

si differenzia da quello degli utenti autorizzati

7 Sicurezza nelle Reti

Perchè usare gli IDS

per rilevare attacchi o altre violazioni alla sicurezzache non sono prevenuti da altri sistemi;

per fornire utili informazioni su intrusioni avvenute, fare diagnosi e correzioni di eventuali debolezze;

eventualmente, per avere risposte automatiche come la chiusura di una connessione, l’aumento dellasensibilità di un IDS o lo spegnimento di un host sotto attacco.

8 Sicurezza nelle Reti

IDS: caratteristiche funzionali

IDS passivi:

uso di checksum crittografiche (es. tripwire)

riconoscimento di pattern (“attack signature”)

IDS attivi:

“learning” = analisi statistica del funzionamento del sistema

“monitoring” = analisi attiva di traffico dati, sequenze, azioni

“reaction” = confronto con parametri statistici (reazione

scatta al superamento di una soglia)

9 Sicurezza nelle Reti

A cosa serve

Permette di rivelare:

• network scan

• traffico sospetto (IRC bot, abusi di ftp anonymous, troiani, etc.)

• traffico che coinvolge host sospetti

Può rivelare anche attacchi che originano da un host

compromesso della nostra LAN

Permette di effettuare analisi specifiche anche a distanza di

tempo, per esempio ricontrollando il traffico riguardante

particolari host o servizi

10 Sicurezza nelle Reti

A cosa non serve

a prevenire un’intrusione

a prevenire un Denial of Service

a rivelare intrusioni o attacchi provenienti dall’interno

della LAN

Non e` un sistema di protezione ma di rivelazione

delle intrusioni provenienti dall’esterno o di attacchi

diretti verso l’esterno

11 Sicurezza nelle Reti

Un esempio: compromissione

dell’account di root

• remota: mediante un servizio vulnerabile visibile

all’esterno

• È possibile difendersi (sicurezza perimetrale)

• locale: accesso come utente non privilegiato (es. uso di

password rubate) e successiva compromissione di root

tramite un bug

• Come mi difendo?

12 Sicurezza nelle Reti

IDS: caratteristiche topologiche

HIDS (host-based IDS)

analisi dei log (del S.O. o delle applicazioni)

attivazione di strumenti di monitoraggio interni al S.O.

NIDS (network-based IDS)

attivazione di strumenti di monitoraggio del traffico di rete

13 Sicurezza nelle Reti

Come valutare un IDS

Per valutare l’efficienza di un IDS è necessario

conoscere due parametri:

accuratezza: allarmi corretti / allarmi totali;

completezza: allarmi corretti / numero delle intrusioni.

14Sicurezza nelle Reti

Intrusion No Intrusion

IDS

AlarmAllarme corretto

Falso allarme

(o falso positivo)

IDS

RejectionRifiuto falso Rifiuto corretto

Falsi allarmi

In generale in tutti gli IDS occorre bilanciare

falsi negativi attacchi non rilevati

falsi positivi attacchi rilevati corrispondenti a situazioni normali

Quanto più la rilevazione e specifica tanto più aumenta il

carico computazionale

la rilevazione diventa sensibile

Quanto più la rilevazione si fa lasca tanto più il carico

computazionale cala

la rilevazione risulta poco influenzata da varianti

vengono rilevati eventi simili ma non pericolosi.

Sicurezza nelle Reti 15

Relazione fra FP e FN

FP e FN risultano correlati inversamente: agendo per

diminuire l'una, tipicamente l'altra aumenta.

Il problema si ripropone in moltissime discipline

ogni volta che si ha una decisione binaria (test)

Sicurezza nelle Reti 16

Positivo Negativo

Attacco TP FN

Non attacco FP TN

TP+TN+FP+FN = totale

Precision e recall

FP Type I error, falso allarme

FN Type II error, miss

Specificità= TN/(TN+FP) FPR 1-specificità

Accuratezza= (TP+TN)/totale

Precisione (precision)

Sensibilità (recall) TPR

ROC receiver operative characteristic Sensibilità vs. tasso di falsi positivi

Sicurezza nelle Reti 17

wikipedia

Falsi allarmi

Il problema degli IDS sono i falsi allarmi e le mancate

segnalazioni

la qualità di un IDS sta nella relazione fra FP e FN

per valutarla ci si serve di ROC e AUC (Area Under

Curve)

18Sicurezza nelle Reti

Prof. Mattia Monga

Falsi allarmi

Gli strumenti di analisi come ROC permettono di

valutare l'efficacia ex-post, valutando il peso di FP e FN in

un determinato contesto sperimentale.

Un IDS genera migliaia di allarmi al giorno: qual e la

probabilita che un allarme sia davvero relativo a un

attacco?

dipende in maniera complessa dalla probabilita a priori di

un attacco.

Sicurezza nelle Reti 19

Teorema di Bayes

Per calcolare la probabilità di un allarme veritiero occorre sempre stimare la probabilità a priori di un attacco, che e spesso piuttosto bassa

i falsi allarmi sono inevitabilmente comuni, a meno di avere un IDS straordinariamente preciso o asset particolarmente appetibili.

Pr(attacco|allarme) =

Sicurezza nelle Reti 20

SIV e LFM

System IntegrityVerifier controlla i file / filesystem di un nodo per rilevarne

cambiamenti

es. rileva modifiche ai registri di Windows o alla configurazione di cron, cambio privilegi di un utente

es. tripwire

Log File Monitor controlla i file di log (S.O. e applicazioni)

rileva pattern conosciuti derivanti da attacchi o da tentativi di attacco

es. swatch

21 Sicurezza nelle Reti

Componenti di un NIDS

sensor controlla traffico e log individuando pattern sospetti

attiva i security event rilevanti

interagisce con il sistema (ACLs, TCP reset, ... )

director coordina i sensor

gestisce il security database

IDS message system

Consente la comunicazione sicura ed affidabile tra i componenti dell’IDS

22 Sicurezza nelle Reti

DMZ

Architettura di un NIDS

23 Sicurezza nelle Reti

Rete

esterna

Rete

interna

IDS

Director

(host)

sensors

(net)

sensors

(host)

sensors

(net)

sensors

Interoperabilità di IDS/NIDS

necessaria perché attacchi coinvolgono differenti organizzazioni e/o sono rilevate da diversi strumenti

formato di signature: nessuno standard, ma molto diffuso il formato di Snort

formato degli allarmi e protocollo per la loro trasmissione:

IDMEF + IDXP + IODEF (IETF)

SDEE (Cisco, ISS, SourceFire)

24 Sicurezza nelle Reti

Flusso dati in un NIDS

25 Sicurezza nelle Reti

Data source

sensor

analyzer

manager

operator

administrator

Security

policy

activity

event

alert

notification

response

IDMEF + IDXP

sviluppati da IETF

Intrusion Detection Message Exchange Format indipendente dal protocollo (IPv4, IPv6)

supporta internationalizzazione e localizzazione

supporta aggregazione e filtraggio dei dati (sul manager)

Intrusion Detection eXchange Protocol basato su BEEP (RFC-3080)

scambia profili (di sicurezza end-to-end, di ID)

profilo di sicurezza base è TLS

26 Sicurezza nelle Reti

SDEE

Secure Device Event Exchange

basato sul paradigma web service:

messaggi in formato XML

scambio messaggi in HTTP o HTTPS

standard chiuso, gestito da ICSAlabs

27 Sicurezza nelle Reti

IODEF

Incident Object Description and Exchange Format

è un soprainsieme di IDMEF

serve per scambiare informazioni tra enti diversi,

tenere statistiche, valutare rischi

28 Sicurezza nelle Reti

Intrusion Prevention System

Intrusion Prevention System IPS

per velocizzare ed automatizzare la risposta alle

intrusioni = IDS + firewall dinamico distribuito

non un prodotto ma una tecnologia, con grosso

impatto su tanti elementi del sistema di protezione

pericolo di prendere la decisione sbagliata o di

bloccare traffico innocuo

29 Sicurezza nelle Reti

Honey pot

30 Sicurezza nelle Reti

Rete

esterna DMZ

Decoy DMZ

Internal

network

Web server

Honey pot

(Attacchi esterni)

Honey pot

(Attacchi interni)

Trusted host

Intrusion detection system

Sono disponibili in rete diversi programmi che possonoessere utilizzati come IDS, tuttavia molti sono a pagamentoo ancora in versione beta.

Snort è gratuito, testato, diffuso e ben supportato.

Può funzionare sia come normale sniffer, sia come IDS. Se utilizzato in questo secondo modo, viene gestito daiseguenti file: snort.conf, classification.conf e da tutte le regole racchiuse negli *.rules.

Gli alert possono essere salvati in binario in formatotcpdump, il che permette una maggiore velocità di scritturae un minore utilizzo di spazio.

Snort è quindi in grado di leggere i file in formato tcpdumpper un’analisi posticipata.

31 Sicurezza nelle Reti

Snort

Snort è un IDS open source usato per monitorare i pacchetti in transito sulla rete

Come tcpdump, utilizza le Libcap per sniffare e catturare i pacchetti

Quattro modalità utilizzo:

Sniffer mode, legge i pacchetti dalla rete e li visualizza come un flusso continuo

Packet Logger mode, logga i pacchetti salvandoli sul disco

Network Intrusion Detection System (NIDS) mode, utilizza regolesnort-based per individuare pattern di traffico sospetti

Inline mode, riceve i pacchetti direttamente da IpTables e collabora per bloccare traffico sospetto

32 Sicurezza nelle Reti

Configurazione di Snort

File snort.conf

Variabili di configurazione utili come HOME_NET, HTTP_SEVERS, DNS_SERVERS atte a diminuire i falsipositivi;

configurazione dei preprocessori che permettonoun’analisi più estesa dei pacchetti.

configurazione dell’output

per esempio verso un database.

Regole da usare.

33 Sicurezza nelle Reti

Regole(1)

Sicurezza nelle Reti34

File *.rules e classification.conf

le rules servono per identificare i pacchetti che fanno scattare

gli allarmi.

Scritte su di un'unica riga

Bisogna suddividere le regole in due sezioni logiche:

header: (chi dove cosa fare) contiene le azioni delle regole,

protocollo, indirizzo IP di origine e destinazione, e le

informazioni sulle porte.

options: contiene messaggi di alert, informazioni su quali parti

dei pacchetti devono essere analizzate per determinare se le

regole di azione devono essere eseguite.

Regole(2)

Sicurezza nelle Reti35

Seguente format

Func prot sIP/mask sport -> dIP/mask dport (opzione1; opzione2;…)

func indica l’azione della regola

alert: genera un alert usando il metodo di alert selezionato, e

poi fa il log del pacchetto

log: fa il log del pacchetto

pass: ignora il pacchetto

activate: genera un alert e poi viene attivata un’azione

dynamic

dynamic: rimane inattiva finché non è attivata da un’azione

activate, poi agisce come un log

Regole(3)

Sicurezza nelle Reti36

->: indica la direzione del traffico (dalla sorgente alla destinazione) che può essere anche inversa (<-) o bidirezionale (<>);

Le opzioni contengono una delle seguenti parole chiavi: Content, content-list: cerca un determinato pattern o una lista di pattern nel

payload del pacchetto.

msg: stampa un messaggio di alert a video o nel file di log.

logto: crea il log del pacchetto in un file specificato dall’utente invece che sullo standard output;

ttl, tos, id (fragment), ipoption, seq, ack : testa campi del TCP

dsize: confronta la taglia del carico (payload) di un pacchetto con un determinato valore per prevenire problemi di buffer overflows;

flags: testa i flag TCP per alcuni valori;

itype: testa il valore del campo type ICMP con un determinato valore;

session: scarta tutte le informazioni aggiunte dal livello applicazione per una data sessione.

rpc: controlla i servizi RPC e automaticamente decodifica l’applicazione, procedura e versione, indicando successo quando tutte e tre le variabili corrispondono;

…..

Esempi di Regole e classificazione

esempi: alert tcp any any -> 193.205.161.191/23 (msg : “Tentativo di Connessione Telnet”;

content: “Last login”;)

alert tcp !192.168.1.0/24 any -> 192.169.1.0/24 111 (content: “|00 01 86 a5|”; msg:

“external mountd access”;)

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS cmd.exe

access";flow:to_server; flags: A+;content:"cmd.exe"; nocase;classtype:web-application-

attack;sid:1002; rev:3;)

classification.conf contiene le priorità degli allarmi.

37 Sicurezza nelle Reti

Snort: Sniffer & Packet Logger Mode

Attiva lo sniffer e visualizza pacchetti TCP in transito su

eth0snort -v -i eth0

11/05-18:29:42.554864 192.168.1.2 -> 192.168.1.1

ICMP TTL:64 TOS:0x0 ID:275

ID:63745 Seq:0 ECHO

11/05-18:29:42.554962 192.168.1.1 -> 192.168.1.2

ICMP TTL:255 TOS:0x0 ID:2323

ID:63745 Seq:0 ECHO REPLY

Logga i pacchetti in transito su eth0 nella cartella /log./snort -dev –i eth0 -l ./log

38 Sicurezza nelle Reti

Snort: IDS Mode

Utilizza le regole di Snort per registrare solo i pacchetti

sospetti

./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf

Regole sono scaricabili dal sito e personalizzabili Es: lancio un alert (evento gestibile da applicazione terze, es. Syslog) se intercetta

traffico in entrata e in uscita sulla porta 23

alert tcp any any <> any 23 (msg: “telnet connection active”;)

39 Sicurezza nelle Reti

Snort: Inline Mode

Lavora in stretto contatto con Iptables da cui riceve i pacchetti

IpTables deve essere compilato per il supporto a Snort

Il target QUEUE è stato aggiunto a IpTables per indicare le connessioni da controllare con Snort

Tre azioni principali:

drop: ordina a iptables di eliminare i pacchetti sospetti

reject: come drop ma fa inviare un tcp_reset per terminare la connessione

sdrop: fa eliminare il pacchetto senza loggare

Es: chiede il drop di tutti i pacchetti in arrivo sulla porta 23drop tcp any any -> any 80 (classtype:attempted-user;

msg:"Port 80 connection initiated";)

40 Sicurezza nelle Reti

Conclusioni su Snort

Snort viene utilizzato come sensore e come Alarm-Processing Unit.

per controllare il traffico di una rete deve vederetutto il traffico che passa per il router.

nel caso di reti fisiche diverse bisogna utilizzare piùsensori (Network IDS).

come utilizzare in maniera efficace questa grossaquantità di dati?

41 Sicurezza nelle Reti

GUI e add on

Sicurezza nelle Reti42

SGUIL: Snort GUI for Lamers". Non solo una GUI per

Snort, ma integra alter tecnologie tipiche di un IDS

GUI e add on

Sicurezza nelle Reti43

BASE: Basic Analysis and Security Engine, nasce dalleceneri di ACID Analysis Console for Intrusion Databases. Si tratta di una interfaccia web per Snort

SNIPS: Snort Intrusion Analysis using Proof Strengthening; progetto di ricerca che mira a correlare glialert a quello che davvero importa ovvero informazioni suchi sta attaccando cosa o su quale malware sta agendo.

Snorby: ruby on rails web application che funziona con I più popolari ids

Situazione molto dinamica e spesso progetti che nasconoe chiudono

Argus

Argus è nato per non essere un IDS, perchè non analizza ipacchetti che riceve;

registra protocollo, host e porta, sorgente e destinazionedi tutte le connessioni Registra a livello di connessione non di singolo pacchetto

argus -P 561 –d (guarda quello che trova sulla prima interfaccia disponibile e espone i suoi

risultati sulla porta 561)

scrive i dati in formato binario molto compatto;

i dati possono essere analizzati con il commando ratop -S localhost:561

Esistono altri comandi come ra ecc che permettono l’analisi

44 Sicurezza nelle Reti

Suricata

Sicurezza nelle Reti45

Suricata è una network threat detection engine. real time intrusion detection (IDS),

inline intrusion prevention (IPS),

network security monitoring (NSM)

offline pcap processing.

Conclusioni

Gli IDS, allo stato attuale, possono essere molto utili,

in una fase post-attacco per capire le debolezze del

sistema e cercare collegamenti tra gli host coinvolti

nell’attacco.

Pre-Attacco Attacco Post-Attacco

Prime informazioni

sulla reteAnalisi dei bersagli

Prove di accesso Copertura

Attivazione

Intrusione nel sistema Danno

46 Sicurezza nelle Reti

IDS attuativi (1)

Sicurezza nelle Reti47

Le azioni intraprese da un IDS ad esempio con la direttivadi react possono essere anche dannose

Esempio Snort:

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS cmd.exe access"; content:"cmd.exe"; react: block; ...)

L'opzione react: block fa s che la connessione TCP nella quale si e verificato il tentativo di accesso a cmd.exe venga automaticamente terminata

Le tecniche piu diuse sono

Reset di sessioni (Session Sniping)

Aggiornamento del firewall

IDS attuativi (2)

Sicurezza nelle Reti48

Sniping:

NIDS deve essere in grado di forzare la terminazione dellaconnessione inviando un pacchetto contenente un RST a entrambi devono apparire ai riceventi come inviati dalle controparti

Riconfigurare Firewall

Esempio: la rilevazione di attivita di scan viene utilizzata per impedire automaticamente ogni connessione da parte degli indirizzi IP sorgenti coinvolti.

Un intrusore può provocare ricongurazioni che risultano dannose,

inviando pacchetti con IP spoofed bloccando connessioni provenienti da sorgenti legittime (denial-of-service)

Fail2ban

Sicurezza nelle Reti49

Attuatore che verifica a livello applicativo errori di

autenticazione e agisce di conseguenza sul firewall

bannando.

action = iptables[name=%(__name__)s, port=%(port)s]

[proftpd]

enabled = true

port = ftp

filter = proftpd

logpath = /var/log/auth.log

failregex = proftpd: \(pam_unix\) authentication failure; .*

host=<HOST>

maxretry = 5

Evasione da IDS

Sicurezza nelle Reti50

Spesso l'elusione del rilevamento e possibile sfruttando

l'uso di alias o altri trucchi che aggirano l'identificazione di

una risorsa o di un attacco

Esempio: Una regola che cerchi di verificare la condizione

content:/etc/passwd; potrebbe essere bypassata da formati

equivalenti quali /etc//\//passwd oppure /etc/rc.d/.././\passwd.

Utilizzo sofisticato di pacchetti frammentati

Per esempio, si supponga che il NIDS abbia una finestra per

riassemblare i pacchetti frammentati inferiore rispetto al

sistema vittima. Il NIDS considererebbe due frammenti come

pacchetti indipendenti, il sistema destinatario come pacchetto

unico.

Commenti

Sicurezza nelle Reti51

Un famoso (e controverso) rapporto di Gartner Group

del 2003 afferma che gli IDS non valgono gli investimenti

richiesti, perche:

Troppi falsi positivi e negativi

Richiedono sta dedicato al monitoraggio che dev'essere

compiuto 247

Il processo di risposta agli incidenti e molto oneroso

Non si riescono a monitorare reti con traffico superiore ai

600MB/s senza inaccettabili decadimenti prestazionali

Assunzioni

Sicurezza nelle Reti52

I NIDS signature-based si basano sull'assunzione di saper

caratterizzare un attacco.

Identicare una vulnerabilità: la firma in grado rappresentare

tutti gli attacchi;

Riconoscere un exploit: la firma dovrebberappresentare tutte

le varianti.

Zero day

Un attacco può essere del tutto inatteso: in questo caso si

parla di zero-day, ossia il giorno prima di quando i NIDS sono

in grado di riconoscerlo.

vulnerability window a volte lunghe anni

Ricerca vulnerabilità

Sicurezza nelle Reti53

La ricerca delle vulnerabilità non note e una delle attività

dei laboratori di sicurezza.

Studio analitico: si studiano le specifiche più o meno formali

di applicazioni e protocolli

Fuzzing: si provano le applicazioni (o i protocolli) con input

strain casuali o artificiali

Honeypot: un sistema bersaglio

Vulnerabilità classica: buffer overflow

Sicurezza nelle Reti54

a[0]

a[1]

a[2]

var locali

indirizzo di ritorno

stacka[i]==&a[0]+ sizeof(a[0])*i

Nessus: Vulnerability Scanner

Applicativo open source per analizzare in remoto una o

più macchine per determinare se sono vulnerabili agli

attacchi conosciuti

Permette di individuare punti deboli dell’architettura di

rete e prevedere eventuali contromisure

55 Sicurezza nelle Reti

Port Knocking (1)

Ulteriore sistema di sicurezza.

E’ un sistema di comunicazione attraverso porte chiuse del firewall che vengono aperte in base alle necessità Port sequence Packet-payload

I dati vengono trasmessi ad una porta chiusa e ricevuti da un demone che monitora il firewall e le intercetta Se la richiesta che monitora ha diritto passa

56 Sicurezza nelle Reti

Port Knocking (2)

L’informazione è codificata e eventualmente criptata come sequenza di numeri di porte

Questa sequenza è il Knock

Firewall completamente chiuso

Server monitora il firewall

Client bussa alle porte con un pacchetto di syn nell’ordine stabilito

Il server non da risposta fino a che la sequenza non è terminata ed è corretta. Terminata il server agisce di conseguenza Es. apre la porta e comunica

57 Sicurezza nelle Reti

port knocking in 4 easy steps (1)

step 1 (A) il client non si può

collegare alla applicazione sulla

porta n; (B) il client non riesce a

stabilire connessione su nessuna

porta

step 2 | (1,2,3,4) il client contatta porte ben definite in

sequenza fornendo un messaggio criptato fatto da i

tentativi di connessione con syn attivo. Il sistema rileva

la sequenza di knock

Il client sa che terminato di bussare alle porte giuste si

attiverà la risposta anche se in questa fase tutto viene

bloccato dal firewall.

58 Sicurezza nelle Reti

port knocking in 4 easy steps (2)

step 3 | (A) il port knocking daemon

decripta il messaggio fatto dagli knock sulle

porte e decide se si tratta della sequenza

corretta o no.

Il server reagisce di conseguenza per

esempio aprendo la porta al client che ha

bussato

step 4 | (A) il client accede

alla porta e si autentica

regolarmente, il firewall

verificherà il traffico come da

regole

59 Sicurezza nelle Reti

Port Knocking (3)

Si deve definire la sequenza di knock e la relativa reazione

La reazine potrebbe essere una azione sul firewall o altri eventi di amministrazione

Tecnica semplice per codificare un messaggio di autentificazione a livello di rete

60 Sicurezza nelle Reti

Port Knocking e iptables

knockd - a port-knocking server

knockd è un port-knock server. Ascolta il traffico su una interfaccia in attesa di una sequenza corretta

Il client può generare la sequenza d knock usando TCP ma anche UDP

Le porte usate per bussare devono essere chiuse

Quando viene rilevata la sequenza un comando indicato nel file di configurazione verrà eseguito

Ad esempio cambio le regole di iptebles

61 Sicurezza nelle Reti

Esempio:

Esempio di apertura e chiusura porte dopo una sequenza di knock

Apro la 22 (SSH),

La chiudo quando ho finito

Migliora la politica di deny all.

[options]

logfile = /var/log/knockd.log

[openSSH]

sequence = 7000,8000,9000

seq_timeout = 10

tcpflags = syn

command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

[closeSSH]

sequence = 9000,8000,7000

seq_timeout = 10

tcpflags = syn

command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

62 Sicurezza nelle Reti

Esempio: Variante temporale

Esempio di knock per aprire la porta 22 (SSH).

Il daemon lancia lo start_command, attende un tempo specifico in cmd_timeout,

esegue stop_command.

[options]

logfile = /var/log/knockd.log

[opencloseSSH]

sequence = 2222:udp,3333:tcp,4444:udp

seq_timeout = 15

tcpflags = syn,ack

start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --syn --dport 22 -j

ACCEPT

cmd_timeout = 10

stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --syn --dport 22 -j

ACCEPT

63 Sicurezza nelle Reti