SPPNet (ServerName Protocol Packet Network) is the Deep Learning architecture used to classify encrypted network traffic. The model works in packet level and classify packet in real time. This work is being published in IEEE GLOBECOM 2021 <https://ieeexplore.ieee.org/document/9686037>.
The inference program can only classify IPv4 packets. In Linux, you can desactivate
IPv6 by adding this line in /etc/sysctl.conf :
net.ipv6.conf.lo.disable_ipv6 = 1net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.all.autoconf = 0net.ipv6.conf.default.disable_ipv6 = 1net.ipv6.conf.default.autoconf = 0
To apply the change run : sysctl -p.
The package scapy_ssl_tls is not adapted for working in Python 3. The package
adapted for Python 3 is available in the scapy_ssl_tls folder.
cd src/
sudo ./start_sppnet
sudo python3.5 src/main.py
sudo python3.5 src/graph/server.py
You can get a video demonstration inside the others folder. The model is available in src/data.
- Python 3.6.0
- Keras 2.0.5
- TensorFlow 1.3.1
- Numpy 1.14.3
- Pandas 0.22.0
- Scapy 2.4.3
- Scapy_ssl_tls 2.0.0
- Version 1.0.0
- Fabien Meslet
See the file "LICENSE" for information.
