Coder Social home page Coder Social logo

laurafbec / accountability-docker-solution Goto Github PK

View Code? Open in Web Editor NEW

This project forked from inflfb00/accountability-docker-solution

0.0 0.0 0.0 15.3 MB

This repository includes a Docker-based accountability solution based on Sysdig, Librdkafka producer, Kafka and MongoDB. The proposed solution aims to identify the causes that have triggered a set of specific events, thanks to the use of the syscalls run by the monitored system. Features such as being completely decoupled from the monitored system,

License: GNU General Public License v3.0

Shell 3.13% C++ 71.45% Python 2.77% Lua 2.82% Makefile 1.69% Dockerfile 0.91% YAML 17.23%

accountability-docker-solution's Introduction

accountability-solution

This repository includes a Docker-based accountability solution based on Sysdig, Librdkafka producer, Kafka and MongoDB. This approach aims to identify the causes that have triggered a set of specific events, thanks to the use of the syscalls run by the monitored system. Features such as being completely decoupled from the monitored system, real-time analysis and optimized querying make this solution an optimal choice when it comes to understanding the root causes of a system's behaviour. Different assessment scenarios have been developed to define the best strategy to reduce the impact of the audit process and logging tasks.

Software artifacts

Sysdig (version 0.28.0)

Librdkafka (version 1.7.0)

Zookeeper (version 7.0.1)

Kafka (version 7.0.1)

Kafka-connect (version 7.0.1)

MongoDB (version 5.0.5)

MongoDB Atlas (version 5.0.6 Enterprise)

Docker-compose (version 1.26.0)

Installation

Dependencies can be installed with setup.sh. The kernel headers must be installed in the host operating system, before running sysdig.

Configuration and usage

Host IP must be set in the Docker environment variable BROKER_KAFKA_ADVERTISED_HOST_NAME, defined in .env.

To enable TLS support, self-signed certificates, keystores and truststores can be generated by running the script create-secrets.sh.

To study autonomous systems different from ROS framework, audited processes and syscalls can be specified in settings.lua

Scenario I. ROS logging engine

ROS Docker image and workspace folder must be created by running init_ros.sh. Calls to loginfo() method should be uncommented in talker.py and in listener.py. ROS execution can be started from ROS folder by running.

docker-compose up

Scenario II. Zookeeper, Kafka broker, Kafka connect, Librdkafka producer with Sysdig and MongoDB (local)

Replace producer.cpp with producer-nossl.cpp to avoid TLS configuration.

MongoDB connection URI value must be assigned to the connection.uri property in MongoSinkConnector.properties from Kafka connect, and in sink-connect.sh for the Kafka-MongoDB connector creation. For this scenario, this value should be equal to

mongodb://root:admin@mongo:27017

The scenario can be deployed by running

docker-compose -f docker-compose-notls.yml up -d

ROS Docker image and workspace folder must be created by running init_ros.sh. Calls to loginfo() method should be commented in talker.py and in listener.py. ROS execution can be started from ROS folder by running.

docker-compose up

Scenario III. Zookeeper, Kafka broker, Kafka connect, Librdkafka producer with Sysdig and Atlas MongoDB

Replace producer.cpp with producer-nossl.cpp to avoid TLS configuration.

MongoDB connection URI value must be assigned to the connection.uri property in MongoSinkConnector.properties from Kafka connect, and in sink-connect.sh for the Kafka-MongoDB connector creation. For this scenario, this value should be equal to

mongodb+srv://root:[email protected]

The scenario can be deployed by running

docker-compose -f docker-compose-notls-atlas.yml up -d

ROS Docker image and workspace folder must be created by running init_ros.sh. Calls to loginfo() method should be commented in talker.py and in listener.py. ROS execution can be started from ROS folder by running.

docker-compose up

Scenario IV. Zookeeper, Kafka broker, Kafka connect, Librdkafka producer with Sysdig and MongoDB (local) with TLSv1.3

MongoDB connection URI value must be assigned to the connection.uri property in MongoSinkConnector.properties from Kafka connect, and in sink-connect.sh for the Kafka-MongoDB connector creation. For this scenario, this value should be equal to

mongodb://root:admin@mongo:27017/admin?ssl=true

The scenario can be deployed by running

docker-compose -f docker-compose-tls.yml up -d

ROS Docker image and workspace folder must be created by running init_ros.sh. Calls to loginfo() method should be commented in talker.py and in listener.py. ROS execution can be started from ROS folder by running.

docker-compose up

Scenario V. Zookeeper, Kafka broker, Kafka connect, Librdkafka producer with Sysdig and Atlas MongoDB with TLSv1.3

MongoDB connection URI value must be assigned to the connection.uri property in MongoSinkConnector.properties from Kafka connect, and in sink-connect.sh for the Kafka-MongoDB connector creation. For this scenario, this value should be equal to

mongodb+srv://root:[email protected]/admin?ssl=true

The scenario can be deployed by running

docker-compose -f docker-compose-tls-atlas.yml up -d

ROS Docker image and workspace folder must be created by running init_ros.sh. Calls to loginfo() method should be commented in talker.py and in listener.py. ROS execution can be started from ROS folder by running.

docker-compose up

accountability-docker-solution's People

Contributors

inflfb00 avatar laurafbec avatar

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.