All Projects → hgascon → Pulsar

hgascon / Pulsar

Licence: bsd-3-clause
Protocol Learning and Stateful Fuzzing

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pulsar

Shadow
Shadow is a unique discrete-event network simulator that runs real applications like Tor, and distributed systems of thousands of nodes on a single machine. Shadow combines the accuracy of emulation with the efficiency and control of simulation, achieving the best of both approaches.
Stars: ✭ 769 (+169.82%)
Mutual labels:  networking, simulation
Unitylockstep
Modern Lockstep with clientside prediction and rollback
Stars: ✭ 349 (+22.46%)
Mutual labels:  networking, simulation
Vault
swiss army knife for hackers
Stars: ✭ 346 (+21.4%)
Mutual labels:  networking, fuzzing
Metta
An information security preparedness tool to do adversarial simulation.
Stars: ✭ 867 (+204.21%)
Mutual labels:  networking, simulation
Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (-5.26%)
Mutual labels:  simulation
Suzieq
A framework and application for network observability
Stars: ✭ 266 (-6.67%)
Mutual labels:  networking
Docker Tuntap Osx
A tuntap shim installer for "Docker for Mac"
Stars: ✭ 264 (-7.37%)
Mutual labels:  networking
Exandroidnativeemu
An improved version of AndroidNativeEmu,Allow running android elf on PC
Stars: ✭ 264 (-7.37%)
Mutual labels:  simulation
Difuze
Fuzzer for Linux Kernel Drivers
Stars: ✭ 285 (+0%)
Mutual labels:  fuzzing
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+1037.19%)
Mutual labels:  networking
Nora
Nora is a Firebase abstraction layer for FirebaseDatabase and FirebaseStorage
Stars: ✭ 270 (-5.26%)
Mutual labels:  networking
Gprmax
gprMax is open source software that simulates electromagnetic wave propagation using the Finite-Difference Time-Domain (FDTD) method for numerical modelling of Ground Penetrating Radar (GPR)
Stars: ✭ 268 (-5.96%)
Mutual labels:  simulation
Wordlists
Infosec Wordlists
Stars: ✭ 271 (-4.91%)
Mutual labels:  fuzzing
Eve
EVE is Edge Virtualization Engine
Stars: ✭ 266 (-6.67%)
Mutual labels:  networking
Cute headers
Collection of cross-platform one-file C/C++ libraries with no dependencies, primarily used for games
Stars: ✭ 3,274 (+1048.77%)
Mutual labels:  networking
Networklayer
Network Layer in Swift: Protocol-Oriented Approach
Stars: ✭ 264 (-7.37%)
Mutual labels:  networking
Wireguard Docs
📖 Unofficial WireGuard Documentation: Setup, Usage, Configuration, and full example setups for VPNs supporting both servers & roaming clients.
Stars: ✭ 3,201 (+1023.16%)
Mutual labels:  networking
Openttd
OpenTTD is an open source simulation game based upon Transport Tycoon Deluxe
Stars: ✭ 3,765 (+1221.05%)
Mutual labels:  simulation
Facet
Human-explainable AI.
Stars: ✭ 269 (-5.61%)
Mutual labels:  simulation
Inet
INET Framework for the OMNeT++ discrete event simulator
Stars: ✭ 268 (-5.96%)
Mutual labels:  simulation

PULSAR

Join the chat at https://gitter.im/hgascon/pulsar

Protocol Learning, Simulation and Stateful Fuzzer

Pulsar is a network fuzzer with automatic protocol learning and simulation capabilites. The tool allows to model a protocol through machine learning techniques, such as clustering and hidden Markov models. These models can be used to simulate communication between Pulsar and a real client or server thanks to semantically correct messages which, in combination with a series of fuzzing primitives, allow to test the implementation of an unknown protocol for errors in deeper states of its protocol state machine.

For detailed information about the method implemented by Pulsar, you can read the following publications:

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.

Configuration

The directory pulsar/conf contains a series of configuration files that define the parameters required for certain operations in each one of the Pulsar methods for automatic learning, simulation and fuzzing.

Examples

Generate the model of a communication channel from individual PCAP files or the recorded traces of one or more binaries run by 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)

Simulate a communication channel based on a learnt model:

$> pulsar.py -s -m model_file

Initiate a fuzzing session against a target given the model of its communication channel:

$> pulsar.py -z -m model_file
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].