Skip to content

This repository contains the firmware, datasets and attestation codes used in our paper: Swarm-Net: Firmware Attestation in IoT Swarms using Graph Neural Networks and Volatile Memory, currently available on arXiv.

Notifications You must be signed in to change notification settings

VarunKohli18/swarm-net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swarm-Net

This repository contains the firmware, dataset, and attestation codes used in our paper Swarm-Net: Firmware Attestation in IoT Swarms using Graph Neural Networks and Volatile Memory submitted to the IEEE IoT Journal, which is currently available as a preprint on arXiv.

If you would like to use this work, kindly cite our preprint and dataset using the following BibTeX:

Preprint

@misc{kohli2024swarmnetfirmwareattestationiot,
      title={Swarm-Net: Firmware Attestation in IoT Swarms using Graph Neural Networks and Volatile Memory},
      author={Varun Kohli and Bhavya Kohli and Muhammad Naveed Aman and Biplab Sikdar},
      year={2024},
      eprint={2408.05680},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2408.05680}, 
}

Dataset

@data{gmee-vj41-24,
      doi = {10.21227/gmee-vj41},
      url = {https://dx.doi.org/10.21227/gmee-vj41},
      author = {Kohli, Varun and Kohli, Bhavya and Naveed Aman, Muhammad and Sikdar, Biplab},
      publisher = {IEEE Dataport},
      title = {IoT Swarm SRAM Dataset for Firmware Attestation},
      year = {2024}
}

Firmware

The IoT device firmware for swarm-1 and swarm-2 are available in ./firmware

Memory Access

read_memory.ipynb and library.py are used for data collection. They require a physical IoT swarm setup to run.

Data

The compiled dataset is stored in ./data/swarm-sram-data.zip and available on IEEE Dataport. Extract swarm-1.pkl and swarm-2.pkl from swarm-sram-data.zip into ./data before running ./src/train.py. Please refer to our preprint for more information on the dataset and its contents.

Attestation

The Swarm-Net script, ./src/train.py, trains the selected GNN architecture and saves its results on swarm-1.pkl and swarm-2.pkl into an Excel sheet.

Example script usage: python train.py --dataset_name swarm-1 --device 0 --epochs 200 --latent 64 --dropout 0.5 --lr 5e-3 --noise 0.4 --runs 20 --layer_type TransformerConv

About

This repository contains the firmware, datasets and attestation codes used in our paper: Swarm-Net: Firmware Attestation in IoT Swarms using Graph Neural Networks and Volatile Memory, currently available on arXiv.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published