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.
- (Network) flow: time-ordered sequence of network packets having the same network 5-tuple.
- Flow Fingerprint: set of relevant packet features which identify a packet / flow. 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 pattern: sequence of flows / flow fingerprints 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 packets.flow_grouping: group packets per flow and generate the flow fingerprint.event_signature_extraction: extract an event signature from a set 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.
Metadata
Release files for signature-extraction 1.0.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| signature_extraction-1.0.12.tar.gz | 40.1 kB | Without provenance | Details for signature_extraction-1.0.12.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| signature_extraction-1.0.12-py3-none-any.whl | Python 3 | none | any | Details for signature_extraction-1.0.12-py3-none-any.whl |
Total release size: 85.9 kB
Release files / signature_extraction-1.0.12.tar.gz
| Download URL | signature_extraction-1.0.12.tar.gz |
|---|---|
| Size | 40.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ac6944d2f85a040b536a7dad2d7d8f7ba48be75b3687b198d5713ed987f2c36
|
|
BLAKE2b-256 checksum How to use checksums |
0d8ea37db588b1335fafe57845a2c8717ac4cfd8dba8d8b8e98dba7f99bef9e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.6
|
Release files / signature_extraction-1.0.12-py3-none-any.whl
| Download URL | signature_extraction-1.0.12-py3-none-any.whl |
|---|---|
| Size | 45.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f0341f2fc2f3cdea0379ea83c15b7b5f1dba99f323d949a0737aca1dac05316c
|
|
BLAKE2b-256 checksum How to use checksums |
4406be839b735523306df8f38b37e2de18f6fecb87dca09263912e52e50c3f4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.6
|
Security for signature-extraction 1.0.12
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.