Domanda

mi trovo a dover elaborare il traffico di rete catturate con tcpdump. Leggendo il traffico non è difficile, ma quello che diventa un po 'complicato è spotting dove ci sono "picchi" nel traffico. Sono per lo più interessati a pacchetti SYN TCP e quello che voglio fare è trovare giorni dove c'è un improvviso aumento del traffico per una determinata porta di destinazione. C'è un po 'di dati da elaborare (circa un anno).

Quello che ho provato finora è quello di utilizzare una media mobile esponenziale, questo era abbastanza buono per farmi ottenere alcune misure interessanti, ma confrontando quello che ho visto con origini dati esterne sembra essere un po 'troppo aggressivo segnalando le cose come anormale.

Ho considerato utilizzando una combinazione del mobile esponenziale dati medi più storici (possibilmente da 7 giorni nel passato, pensando che ci deve essere un ciclo settimanale a quello che sto vedendo), come alcuni giornali ho letto sembrano essere riuscito a modellare l'utilizzo delle risorse in quel modo con buon successo.

Così, qualcuno sa di un buon metodo o un posto dove andare e leggere su questo genere di cose.

La media mobile Sto usando sguardi più o meno come:

avg = avg+0.96*(new-avg)

Con avg essendo l'EMA e new essendo la nuova misura. Sono stato sperimentare ciò soglie da usare, ma ha trovato che una combinazione di "deve essere un dato fattore superiore alla prima media pesata il nuovo valore" e "deve essere di almeno 3 superiore" che invia il risultato meno peggio.

È stato utile?

Soluzione

Questo è ampiamente studiato in letteratura antintrusione. Si tratta di un documento fondamentale sulla questione, che mostra, tra le altre cose, come analizzare i dati tcpdump per acquisire conoscenze in materia.

Questa è la carta: http://www.usenix.org/publications/library/proceedings/sec98/full_papers/full_papers/lee/lee_html/lee.html qui usano il sistema di regole di induzione RIPPER, penso che si potrebbe sostituire quella vecchia per qualcosa di più recente, come http://www.newty.de/pnc2/ o http://www.data-miner.com/rik.html

Altri suggerimenti

avrei applicare due filtri passa-basso per i dati, uno con una lunga costante di tempo, T1, e uno con un breve periodo di tempo costante, T2. Si potrebbe quindi guardate la differenza grandezza in uscita da questi due filtri e quando si supera una certa soglia, K, allora sarebbe un picco. La parte più difficile è accordando T1, T2 e K in modo che non si ottiene troppi falsi positivi e di non perdere eventuali piccole punte.

Il seguente è un filtro passa-basso poli IIR:

new = k * old + (1 - k) * new

Il valore di k determina la costante di tempo e di solito è vicino a 1,0 (ma <1,0 naturalmente).

sto suggerendo che si applicano due tali filtri in parallelo, con differenti costanti di tempo, per esempio iniziare con dire k = 0,9 per una (breve tempo costante) e k = 0,99 per l'altro (lunga costante di tempo) e poi guardare la differenza grandezza nella loro uscite. La differenza magnitudine sarà piccolo maggior parte del tempo, ma diventerà grande quando c'è un picco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top