So che questa è una domanda vecchia, ma questa è stata una cosa che ho incontrato molte volte, quindi immagino che fornire una risposta possa aiutare gli altri che si sono imbattuti in questo.
La mia spiegazione
Secondo la mia esperienza, alcune versioni di Snort hanno problemi quando si passa dall'utilizzo delle opzioni HTTP che rispondono all'analisi del preprocessore e poi si passa a non utilizzarle. Data la regola che hai fornito, la prima stringa di contenuto:
content:"Content-Type: text/html"; http_header;
Utilizza il preprocessore http e il tipo di motore Snort entra nella modalità di analisi delle parti della richiesta / risposta. Seguito con la stringa del contenuto:
content:"Hello there";
... senza specificare dove trovarlo, il motore Snort ha difficoltà a trovarlo.
Naturalmente, questa è la mia "teoria" basata sull'esperienza e sulla risoluzione dei problemi.
Soluzioni possibili
-
Specifica content:"Hello there";
prima dell'altro contenuto (sposta a sinistra). Se applicabile, specifica fast_pattern:only;
.
-
Lascia il content:"Hello there";
dove si trova, ma prova ad aggiungere l'opzione pkt_data;
prima di esso. Questo dovrebbe dire a Snort di dimenticare l'analisi degli elementi di richiesta / risposta HTTP e spostare il doe_ptr all'inizio della richiesta HTTP (ad esempio il pacchetto) e quindi cercare il contenuto. Oppure, se tale contenuto è previsto nei dati del file della risposta, utilizzare invece l'opzione file_data;
. Di nuovo, pkt_data;
o file_data;
richiedono di mettere quelle opzioni prima le opzioni di content
che devono essere influenzate.