Me resulta necesario procesar el tráfico de red capturado con tcpdump
. Leer el tráfico no es difícil, pero lo que se pone un poco complicado es detectar dónde hay "picos" en el tráfico. Me preocupan principalmente los paquetes TCP SYN y lo que quiero hacer es encontrar días en los que haya un aumento repentino en el tráfico de un puerto de destino determinado. Hay bastante información para procesar (aproximadamente un año).Algoritmo (s) para detectar anomalías ("picos") en los datos de tráfico
Lo que he intentado hasta ahora es utilizar una media móvil exponencial, esto fue lo suficientemente bueno como para permitirme obtener algunas medidas interesantes, pero comparar lo que he visto con fuentes de datos externas parece ser un poco agresivo en marcar cosas como anormales.
He considerado utilizar una combinación de la media móvil exponencial más datos históricos (posiblemente de 7 días en el pasado, pensando que debería haber un ciclo semanal de lo que estoy viendo), como algunos documentos que he La lectura parece haber logrado modelar el uso de los recursos de esa manera con buen éxito.
Entonces, ¿alguien sabe de un buen método o en algún lugar para leer este tipo de cosas?
El promedio móvil He estado usando apariencia más o menos así:
avg = avg+0.96*(new-avg)
Con avg
ser el EMA y new
ser la nueva medida. He estado experimentando con los umbrales a usar, pero encontré que una combinación de "debe ser un factor dado más alto que el promedio antes de pesar el nuevo valor" y "debe ser al menos 3 más alto" para dar el resultado menos malo.
Lectura interesante, seguro. Por el momento, la detección de un aumento en los niveles de tráfico es suficiente para lo que necesito, pero ciertamente es algo a considerar para el futuro. – Vatine