
Protokoll-Lernen und Stateful Fuzzing
Pulsar ist ein Netzwerk-Fuzzer mit automatischen Protokoll-Lern- und Simulationsfähigkeiten. Das Tool ermöglicht es, ein Protokoll durch maschinelle Lerntechniken wie Clustering und Markov-Modelle zu modellieren. Diese Modelle können verwendet werden, um die Kommunikation zwischen Pulsar und einem echten Client oder Server zu simulieren, dank semantisch korrekter Nachrichten, die in Kombination mit einer Reihe von Fuzzing-Primitiven es erlauben, die Implementierung eines unbekannten Protokolls auf Fehler in tieferen Zuständen seiner Protokollzustandsmaschine zu testen.
Für detaillierte Informationen über die von Pulsar implementierte Methode können Sie die folgenden Publikationen lesen:
Pulsar: Zustandsbehaftetes Black-Box-Fuzzing proprietärer Netzwerkprotokolle
Hugo Gascon, Christian Wressnegger, Fabian Yamaguchi, Daniel Arp und Konrad Rieck
Tagungsband der 11. EAI International Conference on Security and Privacy in Communication Networks (SECURECOMM), Oktober 2015
Lernen zustandsbehafteter Modelle für Netzwerk-Honeypots
Tammo Krueger, Hugo Gascon, Nicole Krämer und Konrad Rieck
ACM Workshop on Security and Artificial Intelligence (AISEC), Oktober 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]
Protocol Learning and Stateful Fuzzing
optional arguments:
-h, --help show this help message and exit
-c CONF, --conf CONF Change default directory for configuration files. If
no directory is given, the files from 'pulsar/conf'
will be read.
MODEL LEARNING:
-l, --learner Learn a model from a set of network traces.
-p PCAP, --pcap PCAP tcpdump output file (pcap) or list of files separated
by commas to use as input data for a new model.
-b BINARIES, --binaries BINARIES
Name of binaries to process from the cuckoo storage
dir separated with commas.
-a, --all-binaries Generate models for all binaries from the cuckoo
storage dir (cuckoo/storage/binaries).
-x, --process Process derrick files through the functions defined in
utils/preprocessing/derrick.py.
-o OUT, --out OUT Change output directory for generated models. If no
directory is given, the model will be written to the
'models' directory.
-d DIMENSION, --dimension DIMENSION
Number of components to be used for NMF clustering.
SIMULATION & FUZZING:
-s, --simulate Simulate communication based on a given model.
-z, --fuzzer Start a fuzzing session based on a given model.
-m MODEL, --model MODEL
Path of the dir containing the model files to be
loaded for simulation or fuzzing.
Das Verzeichnis pulsar/conf enthält eine Reihe von Konfigurationsdateien, die die für bestimmte Operationen in jeder der Pulsar-Methoden für automatisches Lernen, Simulation und Fuzzing erforderlichen Parameter definieren.
Erzeugen Sie das Modell eines Kommunikationskanals aus einzelnen PCAP-Dateien oder den aufgezeichneten Spuren eines oder mehrerer von der Cuckoo-Sandbox ausgeführten Binärdateien:
$> 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)
Simulieren Sie einen Kommunikationskanal basierend auf einem gelernten Modell:
$> pulsar.py -s -m model_file
Starten Sie eine Fuzzing-Sitzung gegen ein Ziel mit dem Modell seines Kommunikationskanals:
$> pulsar.py -z -m model_file