Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

SNAKE: State-based Network AttacK Explorer

Tool to automatically find attacks on unmodified implementations of transport protocols using a protocol state machine based search strategy

Details described in:

Samuel Jero, Hyojeong Lee, and Cristina Nita-Rotaru. Leveraging State Information for Automated Attack Discovery in Transport Protocol Implementations. 45th IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), June 2015, pp 1-12.


  • Python 2.7

  • Perl 5.10

  • Qemu (Tested with 1.7.0 / 2.3.0)

  • pssh

  • bridge-utils (for brctl)

  • uml-utilities (for tunctl)

  • Limited sudo access. In particular, the ability to run the following commands:

      /usr/bin/tunctl -u [a-z]* -t tap*
      /usr/bin/tunctl -d tap*
      /bin/ifconfig tap* hw ether 00:00:00:*:*:*
      /bin/ifconfig tap* up
      /bin/ifconfig tap* up
      /bin/ifconfig tap* 10.0.*.* netmask 255.255.*.* up
      /bin/ifconfig tap* down
      /bin/ifconfig br* up
      /bin/ifconfig br* 10.0.*.* netmask 255.255.*.* up
      /bin/ifconfig br* down
      /sbin/brctl addbr br*
      /sbin/brctl delbr br*
      /sbin/brctl addif br* tap*
      /sbin/brctl delif br* tap*
      /bin/ifconfig tap*


  • Configure Network:

      cd system/scripts/kvm_scripts/ dnsconf 1 <max> dns 1 <max> addall 1 <max>
  • Configure VMs:

      cd system/scripts/kvm_scripts/
      tar xf snake_vm.tar.gz
      for each vm:
      	ssh-copy-id root@10.0.1.<id>

    For reference, the VM users are root and the password is Gat11ng in our default VMs

  • Configure and Build NS-3

      cd ns-3-dev
      ./waf configure --enable-examples
      cd system/messages/
      ./ tcp
  • In one terminal, run the global controller

      cd system/scripts/coordinator
  • In annother terminal, run an executor:

      cd system/scripts/

Samuel Jero

You can’t perform that action at this time.