Extract signatures from IoT event network traffic
Project description
Extraction of network signatures of IoT events
signature-extraction is a Python package which extracts network pattern signatures, i.e. a sequence of network flows, from network traffic related to IoT (smart home) events.
Glossary
- (User) event: interaction with an IoT device that triggers a change in its state, and the associated network traffic.
- (Network) packet: unit of data transmitted over a network.
- (Network) 5-tuple: set of five values that uniquely identify a network flow: source IP address, source port, destination IP address, destination port, and layer 4 protocol.
Includes part of, or all, the packet's 5-tuple, as well as other protocol-dependent features, e.g.:
- HTTP: method, URI
- DNS: query name, query type
- DHCP: message type
- CoAP: message type, method, URI
- (Network) flow: time-ordered sequence of network packets having the same network 5-tuple.
- (Packet/Flow) fingerprint: set of relevant packet features which identify a packet / flow.
- Network pattern: sequence of network flows that repeatedly occurs together, potentially indicating a specific user event.
- (Event) signature: network pattern that uniquely identifies a user event.
Features
This package is split into three main modules, each responsible for part of the pipeline:
pkt_extraction: read PCAP files and extract packet fingerprints.flow_grouping: group packets per flow and extract flow fingerprints.event_signature_extraction: extract event signatures from sets of flow fingerprints.
Translation to firewall
Additionally, flow fingerprints can be converted to configuration scripts for @fdekeers's smart-home-firewall, or to a YAML profile exhaustively describing such configuration.
Installation
From PyPI
pip install signature-extraction
From local source
Clone the repository and install the dependencies using pip.
git clone https://github.com/smart-home-network-security/signature-extraction.git
cd signature-extraction
pip install -r requirements.txt
pip install .
License
This project is licensed under the GPL-3.0 License -- see the LICENSE file for details.
Acknowledgements
This work is part of the Smart Home Network Security research project made by @fdekeers and UCLouvain.
It was partially authored by @remivanboxem during his internship at UCLouvain.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signature_extraction-0.9.0.tar.gz.
File metadata
- Download URL: signature_extraction-0.9.0.tar.gz
- Upload date:
- Size: 38.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e5ecd48c3d4dfc7f410986741f4df53737a98f9ac7b1808c4ab0c0c37e9f60f
|
|
| MD5 |
6e84efbbcd3dec665d3bdaa338b4ff7f
|
|
| BLAKE2b-256 |
36764a1d674365e1b4dacf61dcad2d98ac1bb923a8b65701c3084a01f5c48249
|
File details
Details for the file signature_extraction-0.9.0-py3-none-any.whl.
File metadata
- Download URL: signature_extraction-0.9.0-py3-none-any.whl
- Upload date:
- Size: 44.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06e2193681d0b5fff52e7f943db5d078b29d8b15bf2f1b8dd17e1d21e96800d5
|
|
| MD5 |
e690e84ebece60c14bcb9684634bfffa
|
|
| BLAKE2b-256 |
4e4cf919e33cf01bc460345ae6504f678f3bf9d43ccef9e64adc103e56829714
|