Commento
Mi scuso davvero se questo contenuto non corrisponde alla community, ma non vengo approvato nelle mailing list snort e non so cosa posso fare per lo stesso, quindi penso che questo possa essere un buon posto per fare domande.
Domanda
Informazioni di installazione
Sto usando il
Ho tre sistemi A, B, C:
A - correre snortare
B, C - installato con nmap per portscan
Faccio un rapido portscan TCP da B e ho confermato che il preprocessore sta rilevando portscan (dettagli di registrazione nella directory dei log).
Il dubbio
Ho notato che se sto facendo lo stesso portscan TCP per una seconda volta dal sistema B o dal sistema C, snort non sta rilevando il portscan.
In breve, snort sta rilevando i portscan TCP solo per la prima volta e la prossima volta che lo stesso portscan TCP viene eseguito da una macchina uguale o diversa, non rileva.
Passaggi
Per avere un'idea, sono entrato nel codice preprocessore / portscan.c e ho scoperto che in funzione:
static int ps_alert_one_to_one(PS_PROTO *scanner, PS_PROTO *scanned,PS_ALERT_CONF *conf)
la condizione :: IF(SCANNED->PRIORITY_COUNT >= CONF->PRIORITY_COUNT)
è soddisfatto per la prima volta che portscan è fatto e non è soddisfatto dalla seconda volta in poi.
Quindi, ho controllato dove PRIORITY_COUNT è stato incrementato e quindi stampato il suo valore, questa è la funzione nel preprocessore / portscan.c
static int ps_proto_update(PS_PROTO *proto, int ps_cnt, int pri_cnt, sfaddr_t* ip, u_short port, time_t pkt_time)
if(pri_cnt)
{
proto->priority_count += pri_cnt;
///printf("proto->priority_count::%hi\n",proto->priority_count);
.........
.........
}
I valori stampati da questa affermazione printf, chiaramente soddisfatti
la condizione :: IF (SCANNED- > PRIORITY_COUNT > = CONF- > PRIORITY_COUNT)
Ma, sorprendentemente, come ho detto sopra, questa condizione non è soddisfatta nella funzione ps_alert_one_to_one.
Qualcuno può spiegare qual è la ragione di questo, e sarebbe bello se qualcuno fornisse qualche informazione sulla vita dei pacchetti all'interno di Snort?