detección de eventos no periódicos

1

Estoy buscando detección de keylogger . Por lo que veo, casi todos los keyloggers creados por herramientas envían datos a un host periódicamente, pero los generados por los codificadores pueden enviar datos de forma no periódica. Debido a que es fácil detectar eventos periódicos al escuchar el tráfico de un host, algunos piratas informáticos profesionales (escritores de códigos) hacen un truco: crean un hour1 y min1 al azar y después de hour1:min1 envían los primeros datos de pulsaciones (o lo que sea) se está enviando al hacker). Después de enviar el primer conjunto de datos, cree aleatoriamente hour2 y min2 y después de que hour2:min2 envíe los siguientes datos y así sucesivamente.

Con esta técnica obtienen datos de forma no periódica, pero con regularidad. ¿Hay alguna forma / truco para descubrir que la carga de datos no es periódica pero regular?

Nota: No estoy interesado en Comando y Control por ahora. ¿Sólo me interesa la detección de keylogger de carga de datos de forma no periódica? Se agradecerán las ideas relacionadas con la detección de eventos no periódicos y regulares.

Nota 2: la mayoría de los keyloggers están enviando datos a través de gmail u otro servidor de correo y algunos de ellos están usando un servidor ftp.

Nota 3: la detección no se basará en el host, sino en network based detection .

Gracias,

    
pregunta smttsp 19.02.2013 - 11:57
fuente

2 respuestas

1

Detectar un keylogger basándose en su periodicidad parece ser una forma extraña de hacerlo y usar un temporizador aleatorio para impedir que la detección también parezca extraña. Si estaba escribiendo un keylogger, parece más natural implementar algo así como una vez que el archivo de registro alcanza un cierto tamaño (por ejemplo, 50 kB), inicie uno nuevo y transfiera el archivo anterior, en lugar de enviarlo a un nivel fijo. Hay muchas transferencias de datos que deben ocurrir a intervalos periódicos, por lo que el simple hecho de que una transferencia sea periódica no significa mucho (por ejemplo, copias de seguridad en un NAS local, comprobación de actualizaciones, solicitudes de recuperación de correo, etc.)

Realmente, la mejor manera de detectar es que las conexiones de red no solicitadas están siendo establecidas por procesos que no está utilizando (por ejemplo, en linux, busque en lsof -i -n o netstat -p -n -t ) o no haya autorizado. También puede usar una herramienta como nethogs que recopilará activamente estadísticas sobre la cantidad de actividad de red que utiliza cada proceso.

    
respondido por el dr jimbob 19.02.2013 - 17:09
fuente
1

Primero, necesitas destilar el patrón de comunicación y algunas características. Si tiene suerte, la exfiltración se destaca, por ejemplo, debido a la dirección de destino única, el pequeño tamaño de la conexión, la periodicidad, etc.

Para la detección, Bro sería su mejor apuesta aquí. Aquí hay dos puntos de partida:

  1. Inspeccione los registros de conexión . Bro ha escrito un archivo llamado conn.log que tiene un resumen de una línea para cada conexión. Como NetFlow en los esteroides. Busque un host específico que haya realizado una conexión de salida y analice su marca de tiempo y la cantidad de bytes enviados. Este proceso podría comenzar así:

    bro-cut ts id.orig_h id.resp_h id.orig_p id.resp_p local_orig orig_bytes < conn.log \
        | awk '$2 == compromised_host && $6 == "T" && $7 < max_bytes'
    

    Pero luego tienes que continuar con el trabajo duro y filtrar. Este es un proceso iterativo que converge cuando tiene una verdad fundamental, es decir, tiene algunos ejemplos de tráfico malo conocido.

  2. Escribir un script personalizado . Bro viene con un lenguaje de secuencias de comandos asíncrono, basado en eventos y Turing-complete. Por ejemplo, podría escribir un script que enganche el new_connection evento que se genera para cada nueva conexión TCP o UDP vista, instala un temporizador (por ejemplo, 1 hora) más algún estado, y luego verifica de nuevo al vencimiento del temporizador si las condiciones sostienen que usted cree que constituyen la exfiltración. Si ese es tu camino, dale una oportunidad y no dudes en consultarnos en la lista de correo de Bro , estamos felices de ayudar!

Aún puede profundizar en la capa de aplicación, por ejemplo, si sabe que el keylogger usa HTTP. Entonces Bro ofrece una gran cantidad de enlaces solo para ese protocolo.

En general, la detección de la disimulación desde el ángulo de la red es un problema difícil que implica ajustar los parámetros hasta que tenga una tasa práctica de falsos positivos.

    
respondido por el mavam 20.02.2013 - 19:07
fuente

Lea otras preguntas en las etiquetas