jbenjos / poseidon

Poseidon is a python-based application that leverages software defined networks (SDN) to acquire and then feed network traffic to a number of machine learning techniques. The machine learning algorithms classify and predict both the type of device and if the device is acting normally or abnormally.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

We are coding again. After a brief pause we are ready to extend Poseidon. Look for additional refinements to the machine learning, a simpler architecture, and better results.

Status

Currently the code is going through a simplification stage. Many classes are being axed to get things to run in a single docker container. The code at this point is not functional.

Poseidon

POSEIDON is now BlackDuck 2016 OpenSource Rookie of the year

License CircleCI codecov Codacy Badge

Situational awareness underpins informed decisions. Understanding what comprises a network, and what network elements are doing is essential. Without situational awareness and context, defending a network remains a difficult proposition.

Can SDN and machine learning answer:

  • What devices comprise my network?
  • What are devices doing?

Install Instructions

git clone https://github.com/CyberReboot/poseidon.git
cd poseidon
*editor* config/poseidon.config
docker build -f ./Dockerfile -t poseidon .
docker run poseidon

Configuration

config/poseidon.config

[Monitor]

rabbit_server = RABBIT_SERVER
rabbit_port = RABBIT_PORT
collector_nic = COLLECTOR_NIC
vent_ip = VENT_IP
vent_port = VENT_PORT

RABBIT_SERVER - ip address of the rabbit-mq server
RABBIT_PORT - rabbit-mq server server port
COLLECTOR_NIC - name of the network interface that will be listening for packets
VENT_IP - ip address of serever running vent
VENT_PORT - vent server port

[NorthBoundControllerAbstraction:Update_Switch_State]

controller_uri = https://CONTROLLER_SERVER:8443/api/v1/
controller_user = USERNAME
controller_pass = PASSWORD

CONTROLLER_SERVER - BCF controller ip
USERNAME - username for BCF login
PASSWORD - password for BCF login

Required Dependencies

  • Docker

Documentation

Tests

Tests are currently written in py.test for Python. The tests are automatically run when building the containers.

Contributing to Poseidon

Want to contribute? Awesome! Issue a pull request or see more details here.

About

Poseidon is a python-based application that leverages software defined networks (SDN) to acquire and then feed network traffic to a number of machine learning techniques. The machine learning algorithms classify and predict both the type of device and if the device is acting normally or abnormally.

License:Other


Languages

Language:Python 100.0%