Code Monkey home page Code Monkey logo

integratio's Introduction

integratio

Configurable user-space network stack, aimed to simulate network error condition, delays and vulnerabilities.

Integratio can be configured via JSON Configuration test cases, which describes which application level content should be delivered and in which points delayed should be introduced.

Introduction of delays happens by state in the TCP state machine. State transition will wait for the test case defined value before execuring the state transition.

Test cases can be described in JSON by category ('time', 'content') and combined together. For example, the short demo below shows an HTTP request response provided with delay at the TCP connection ESTABLISHING state and a different delay apply to data transfer during the ESTABLISHED TCP connection state. You can see how the delays valued configured on the Configuration test cases are matching with what get measured by Chrome Developer Tool:

Next features:

  • add support for DNS, NTP, DHCP and other application level protocols
  • integration of ssh-based control access Dependencies

This was checked on fresh Ubuntu 18.04 on VMWare virtual machine.

sudo apt update

sudo apt install git

sudo apt install libboost-all-dev

Installation of libtins

git clone https://github.com/mfontanini/libtins.git

apt-get install libpcap-dev libssl-dev cmake

mkdir build

cd build

cmake ../ -DLIBTINS_ENABLE_CXX11=1

make

sudo make install

sudo ldconfig

Clone integratio on home dir

git clone https://github.com/zupino/integratio.git

cd integratio

make

Also, remember to block RST packet from the server machine with the following iptable rule

NOTE This rule will check both RST and PSH flags, and drop only the RST=1 and PSH=0 In this way, we can block the RST from kernel, but let the RST PSH from test cases

iptables -A OUTPUT -p tcp --tcp-flags RST,PSH RST -j DROP

integratio's People

Contributors

zupino avatar

Watchers

 avatar

integratio's Issues

GDB need to be listed as dependency

The Makefile main target set the capabilities to GDB debugger to allow debugging integratio without using root, but still being able to send raw packets.

GDB is not listed in the dependencies, so make will fail because the build process will not find the gdb binary to set network capabilities for.

sudo apt install gdb should solve the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.