
프로토콜 학습과 상태 기반 퍼징
Pulsar는 자동 프로토콜 학습 및 시뮬레이션 기능을 갖춘 네트워크 퍼저입니다. 이 도구는 클러스터링, 마르코프 모델과 같은 머신러닝 기술을 통해 프로토콜을 모델링할 수 있습니다. 이러한 모델은 의미적으로 올바른 메시지를 통해 Pulsar와 실제 클라이언트 또는 서버 간의 통신을 시뮬레이션하는 데 사용될 수 있으며, 일련의 퍼징 기본 요소와 결합하여 알려지지 않은 프로토콜 구현의 프로토콜 상태 머신의 더 깊은 상태에서 오류를 테스트할 수 있습니다.
Pulsar가 구현한 방법에 대한 자세한 정보는 다음 간행물을 참조하십시오:
Pulsar: Stateful Black-Box Fuzzing of Proprietary Network Protocols
Hugo Gascon, Christian Wressnegger, Fabian Yamaguchi, Daniel Arp 및 Konrad Rieck
Proc. of 11th EAI International Conference on Security and Privacy in Communication Networks (SECURECOMM) 2015년 10월
Learning Stateful Models for Network Honeypots
Tammo Krueger, Hugo Gascon, Nicole Krämer 및 Konrad Rieck
ACM Workshop on Security and Artificial Intelligence (AISEC) 2012년 10월
_
_ __ _ _| |___ __ _ _ __
| '_ \| | | | / __|/ _` | '__|
| |_) | |_| | \__ \ (_| | |
| .__/ \__,_|_|___/\__,_|_| 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.
pulsar/conf 디렉토리에는 자동 학습, 시뮬레이션 및 퍼징을 위한 Pulsar 방법의 각 작업에 필요한 매개변수를 정의하는 일련의 설정 파일이 포함되어 있습니다.
개별 PCAP 파일 또는 cuckoo 샌드박스에서 실행된 하나 이상의 바이너리에서 기록된 트레이스로부터 통신 채널의 모델을 생성합니다:
$> 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)
학습된 모델을 기반으로 통신 채널을 시뮬레이션합니다:
$> pulsar.py -s -m model_file
통신 채널 모델이 주어지면 대상에 대한 퍼징 세션을 시작합니다:
$> pulsar.py -z -m model_file