
تعلم البروتوكول والتجريب القائم على الحالة
Pulsar هو مختبر شبكات (network fuzzer) مع قدرات تلقائية لتعلم البروتوكولات والمحاكاة. تتيح الأداة نمذجة بروتوكول من خلال تقنيات التعلم الآلي، مثل التجميع (clustering) ونماذج ماركوف (Markov models). يمكن استخدام هذه النماذج لمحاكاة الاتصال بين Pulsar وعميل أو خادم حقيقي بفضل الرسائل الصحيحة نحويًا والتي، بالاشتراك مع سلسلة من بدائيات الاختبار (fuzzing primitives)، تسمح باختبار تنفيذ بروتوكول غير معروف بحثًا عن أخطاء في حالات أعمق من آلة حالات البروتوكول (protocol state machine) الخاصة به.
للحصول على معلومات مفصلة حول الطريقة المنفذة بواسطة Pulsar، يمكنك قراءة المنشورات التالية:
Pulsar: Stateful Black-Box Fuzzing of Proprietary Network Protocols
Hugo Gascon, Christian Wressnegger, Fabian Yamaguchi, Daniel Arp and Konrad Rieck
Proc. of 11th EAI International Conference on Security and Privacy in Communication Networks (SECURECOMM) October 2015
Learning Stateful Models for Network Honeypots
Tammo Krueger, Hugo Gascon, Nicole Krämer and Konrad Rieck
ACM Workshop on Security and Artificial Intelligence (AISEC) October 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.
يحتوي الدليل pulsar/conf على سلسلة من ملفات الإعداد التي تحدد المعاملات المطلوبة لعمليات معينة في كل من طرق Pulsar للتعلم التلقائي والمحاكاة والاختبار (fuzzing).
إنشاء نموذج لقناة اتصال من ملفات PCAP فردية أو من المسارات المسجلة لواحد أو أكثر من الثنائيات (binaries) التي يديرها صندوق الرمل 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
بدء جلسة اختبار (fuzzing session) ضد هدف معطى بناءً على نموذج قناة الاتصال الخاصة به:
$> pulsar.py -z -m model_file