MOTDEC is a Moving Target Defense (MTD) controller. It orchestrates and enforces MTD operations on 5G and beyond Telco Cloud networks based on the NFV architecture. MOTDEC operates 2 types of MTD operations:
- Hard MTD actions: reinstantiation and migration of virtual network functions (VNFs) and network services (NSs) using the network slice manager Katana, the NFV orchestrator OSM, and the Virtual Infrastructure Manager (VIM) OpenStack.
- Soft MTD operations: it changes the topology of the network and the traffic path of the various communications using the SDNC ONOS and TopoFuzzer.
- Integration of MOTDEC in a Telco Cloud environment that uses OpenStack, OSM, Katana
- REST API interface to enforce MTD operations of the detected running VNFs in the network
- Reinstantiate and migrate VNFs using their authenticated image for malware infection mitigation, proactively (periodically for prevention against undetected infections) and reactively (event-based triggered MTD operation)
- Monitor the network traffic using the MMT monitoring probes and control communication flows
- Integration of OptSFC, allowing to automate MTD operations using optimized strategies learned with Machine Learning (ML).
REQUIREMENTS:
- Operating System: Ubuntu 18.04
- Python3.8 (
sudo apt install python3.8) - Python3-pip (
sudo apt install python3-pip) - Django 4.1.3 and other Python modules (
pip install -r requirements.txt) - You have a running Katana network slice manager and Topofuzzer in your Telco Cloud testbed
- change the file
motdec/settings.pyto put the IP and port of Topofuzzer and the MMT probe in the correspondent fieldsALLOWED_HOSTS,TOPOFUZZER_IP,TOPOFUZZER_PORT, andMMT_PORT(default port is 27017). - also in
motdec/settings.py, add the public IP of your hosting machine toALLOWED_HOSTS. - start the sqlite3 DB with
python3 manage.py makemigrationsandpython3 manage.py migrate. - create an admin user with the command
python manage.py createsuperuser. - start the server with the command
python manage.py runserver 0:8000, which starts the MOTDEC REST API interface.
Run MOTDEC's services
- start MOTDEC's four services (i.e., Katana and OSM based life cycle management, MMT traffic monitoring, threat and risk assessment, and the MTD orchestration) with the command
sudo python manage.py main --katana-hostname <slicem_ip>where <slicem_ip> is the IP or the hostname of the external network slice manager -> For now only Katana is compatible.