Skip to content
A 3-component fog based, intrusion detection system with basic threat detection mechanisms. Using a Raspberry Pi Zero, a beefy RPi 3, and NodeMCU modules
Python C++ Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ansible
edge
scripts
server
.gitignore
README.md

README.md

Intrusion Detector

CC Project

components

edge device

captures and transfers camera feed to the server for further processing

AI powered analyzer

analyzes and classifies the camera feed from the edge camera device

pubsub broker

facilitates pub sub communication in the system

intrusion response

iot module subscribing to alerts from the AI powered analyzer. responsible for responding to detected threats.

discussion

different parts are designed to work and communicate separately, this is not the most efficient way of building this system but it would allow total separation of task plus would let us use different languages and technologies and mix and match easily.

configuration

use config.ini files in to setup the communication (in edge/communication/) and the server app (in server/)

installation

general

we use pipenv for managing python environments. Use pipenv to handle, install and run the python parts of the framework

whereever you see a Pipfile you'll need to run pipenv install to install the dependencies. Then use pipenv run python PYTHONFILEHERE to execute a python script

pubsub broker

run the following command to start a "mosquitto" broker in docker. docker run -d --name mqtt-broker -p 1883:1883 -p 9001:9001 eclipse-mosquitto don't forget to open ports 1883 and 9001 to the publishers and subscribers

TODO

  • implement and test different components separately
  • scheduled image capturing
  • integration tests
  • Ansible support
  • performance and timing analysis (cloud vs fog setup)
    • unify configuration of different settings (pubsub sever settings, detector server etc): env variables
    • implement end to end time measurement
  • better ML powered threat detection: Google's quickdraw doodle classifier?
  • use a logger instead of print statements
You can’t perform that action at this time.