Mi trovo a dover elaborare il traffico di rete acquisito con tcpdump
. Leggere il traffico non è difficile, ma ciò che diventa un po 'complicato è individuare dove ci sono "picchi" nel traffico. Sono principalmente interessato ai pacchetti TCP SYN e quello che voglio fare è trovare giorni in cui si verifica un improvviso aumento del traffico per una determinata porta di destinazione. C'è un bel po 'di dati da elaborare (circa un anno).Algoritmo (s) per individuare anomalie ("picchi") nei dati di traffico
Quello che ho provato finora è usare una media mobile esponenziale, questo è stato abbastanza buono da permettermi di ottenere alcune misure interessanti, ma confrontare ciò che ho visto con fonti di dati esterne sembra essere un po 'troppo aggressivo nel contrassegnare le cose come anormali.
Ho considerato l'utilizzo di una combinazione di media mobile esponenziale più dati storici (probabilmente da 7 giorni in passato, pensando che ci dovrebbe essere un ciclo settimanale per quello che sto vedendo), come alcuni documenti che ho leggere sembra essere riuscito a modellare l'utilizzo delle risorse in questo modo con un buon successo.
Quindi, qualcuno sa di un buon metodo o di un posto dove andare a 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. Ho sperimentato quali soglie utilizzare, ma ho trovato che una combinazione di "deve essere un dato fattore superiore alla media prima di pesare il nuovo valore in" e "deve essere almeno 3 superiore" per dare il risultato meno negativo.
Interessante lettura, di sicuro. Al momento, l'individuazione di livelli di traffico aumentati è sufficiente per ciò di cui ho bisogno, ma è certamente qualcosa da considerare per il futuro. – Vatine