
Aprendizaje de protocolos y fuzzing con estado
Pulsar es un fuzzer de red con capacidades automáticas de aprendizaje y simulación de protocolos. La herramienta permite modelar un protocolo mediante técnicas de aprendizaje automático, como clustering y modelos de Markov. Estos modelos pueden usarse para simular la comunicación entre Pulsar y un cliente o servidor real gracias a mensajes semánticamente correctos que, en combinación con una serie de primitivas de fuzzing, permiten probar la implementación de un protocolo desconocido en busca de errores en estados más profundos de su máquina de estados de protocolo.
Para obtener información detallada sobre el método implementado por Pulsar, puede leer las siguientes publicaciones:
Pulsar: Fuzzing de Caja Negra con Estado de Protocolos de Red Propietarios
Hugo Gascon, Christian Wressnegger, Fabian Yamaguchi, Daniel Arp y Konrad Rieck
Actas de la 11ª Conferencia Internacional EAI sobre Seguridad y Privacidad en Redes de Comunicación (SECURECOMM) Octubre de 2015
Aprendizaje de Modelos con Estado para Honeypots de Red
Tammo Krueger, Hugo Gascon, Nicole Krämer y Konrad Rieck
Taller ACM sobre Seguridad e Inteligencia Artificial (AISEC) Octubre de 2012
_
_ __ _ _| |___ __ _ _ __
| '_ \| | | | / __|/ _` | '__|
| |_) | |_| | \__ \ (_| | |
| .__/ \__,_|_|___/\__,_|_| v0.1-dev
|_|
usage: pulsar.py [-h] [-c CONF] [-l] [-p PCAP] [-b BINARIES] [-a] [-x]
[-o OUT] [-d DIMENSION] [-s] [-z] [-m MODEL]
Aprendizaje de Protocolos y Fuzzing con Estado
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-c CONF, --conf CONF Cambia el directorio predeterminado para archivos de configuración. Si
no se proporciona un directorio, se leerán los archivos de 'pulsar/conf'.
APRENDIZAJE DE MODELOS:
-l, --learner Aprende un modelo a partir de un conjunto de trazas de red.
-p PCAP, --pcap PCAP Archivo de salida de tcpdump (pcap) o lista de archivos separados
por comas para usar como datos de entrada para un nuevo modelo.
-b BINARIES, --binaries BINARIES
Nombre de los binarios a procesar desde el directorio de almacenamiento de cuckoo
separados por comas.
-a, --all-binaries Genera modelos para todos los binarios del directorio de almacenamiento de cuckoo
dir (cuckoo/storage/binaries).
-x, --process Procesa archivos derrick a través de las funciones definidas en
utils/preprocessing/derrick.py.
-o OUT, --out OUT Cambia el directorio de salida para los modelos generados. Si
no se proporciona un directorio, el modelo se escribirá en el
directorio 'models'.
-d DIMENSION, --dimension DIMENSION
Número de componentes a utilizar para el clustering NMF.
SIMULACIÓN Y FUZZING:
-s, --simulate Simula la comunicación basada en un modelo dado.
-z, --fuzzer Inicia una sesión de fuzzing basada en un modelo dado.
-m MODEL, --model MODEL
Ruta del directorio que contiene los archivos del modelo a
cargar para simulación o fuzzing.
El directorio pulsar/conf contiene una serie de archivos de configuración que definen los parámetros necesarios para ciertas operaciones en cada uno de los métodos de Pulsar para aprendizaje automático, simulación y fuzzing.
Generar el modelo de un canal de comunicación a partir de archivos PCAP individuales o las trazas registradas de uno o más binarios ejecutados por cuckoo sandbox:
$> pulsar.py -l -p file.pcap (1 pcap file)
$> pulsar.py -b 016169EBEBF1CEC2AAD6C7F0D0EE9026 (1 or more binaries from cuckoo storage)
$> pulsar.py -a (all binaries from cuckoo storage)
Simular un canal de comunicación basado en un modelo aprendido:
$> pulsar.py -s -m model_file
Iniciar una sesión de fuzzing contra un objetivo dado el modelo de su canal de comunicación:
$> pulsar.py -z -m model_file