https://github.com/hamidzr/fog-alert
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
https://github.com/hamidzr/fog-alert
Last synced: 3 months ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/hamidzr/fog-alert
- Owner: hamidzr
- Created: 2018-11-23T01:28:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-12-13T21:54:25.000Z (over 6 years ago)
- Last Synced: 2025-01-21T00:45:45.892Z (5 months ago)
- Language: Python
- Homepage:
- Size: 244 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://pipenv.readthedocs.io/en/latest/) for managing python environments. Use pipenv to handle, install and run the python parts of the frameworkwhereever 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
- [x] implement and test different components separately
- [x] scheduled image capturing
- [x] 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
- [x] implement end to end time measurement
- [ ] better ML powered threat detection: Google's quickdraw doodle classifier?
- [ ] use a logger instead of print statements