Ho la seguente regola:
avviso tcp $ HOME_NET any > $ EXTERNAL_NET any (msg: "Questo non dovrebbe accadere"; flusso: stabilito, to_server; contenuto: "GET"; profondità: 4; contenuto: "Set-Cookie:"; http_header; within: 100; classtype: trojan-activity; sid: 1000001; rev: 1;)
L'intestazione e le opzioni generali non sono il problema: sono le opzioni di payload e non-payload che mi stanno buttando fuori. La mia comprensione è che questa regola dovrebbe sparare solo nelle seguenti condizioni:
- Esiste una sessione stabilita (flusso: stabilito)
- Attiva le richieste dei client da $ HOME_NET a $ EXTERNAL_NET (to_server)
- Il contenuto include 'GET'
- 'OTTIENI' entro 4 byte dall'inizio del payload
- Il contenuto include "Set-Cookie:" all'interno delle intestazioni HTTP
- 'GET' e 'Set-Cookie' si trovano entro 100 byte l'uno dall'altro
Questa è la versione 2.9.1.x. Il preprocessore http_inspect è stato modificato rispetto all'impostazione predefinita, ma non penso che questo sia il problema. Quindi, mi chiedo come questa regola si attiva sul traffico che non ha "Set-Cookie" proveniente dal client (Set-Cookie dovrebbe solo entrare in una risposta del server, mentre Cookie dovrebbe venire solo in una richiesta client). Forse sto seguendo la strada sbagliata la mia ricerca ha rivelato che Snort utilizza l'algoritmo di ricerca di stringhe Boyer-Moore ( link ) che corrisponde "... alla coda del modello piuttosto che alla testa ...". Quindi, nel mio caso, la regola si attiva sul traffico del client che include un cookie poiché vedrebbe "Cookie" (che fa parte di "Set-Cookie") ??
Non ho scritto la regola e la persona che ha fatto non è disponibile. Devo capire perché questo sta sparando sul traffico che ai miei occhi non corrisponde a quello che la regola sta cercando. La regola è scritta in modo errato per acquisire il traffico $ HOME_NET (client) su $ EXTERNAL_NET (server) con set di intestazione HTTP "Set-Cookie"?
Grazie per il tuo tempo e i tuoi commenti.