{"id":16567853,"url":"https://github.com/thenetadmin/nvleak","last_synced_at":"2025-03-05T10:40:25.794Z","repository":{"id":109731165,"uuid":"542802847","full_name":"TheNetAdmin/NVLeak","owner":"TheNetAdmin","description":"NVLeak: Off-Chip Side-Channel Attacks via Non-Volatile Memory Systems [USENIX Security '23]","archived":false,"fork":false,"pushed_at":"2022-11-17T01:58:47.000Z","size":10461,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-26T10:54:08.387Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.thenetadmin.net","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheNetAdmin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-09-28T21:38:56.000Z","updated_at":"2024-06-20T22:51:12.000Z","dependencies_parsed_at":"2023-06-11T06:30:30.380Z","dependency_job_id":null,"html_url":"https://github.com/TheNetAdmin/NVLeak","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheNetAdmin%2FNVLeak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheNetAdmin","download_url":"https://codeload.github.com/TheNetAdmin/NVLeak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242012383,"owners_count":20057647,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T21:07:38.982Z","updated_at":"2025-03-05T10:40:25.773Z","avatar_url":"https://github.com/TheNetAdmin.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NVLeak\n\nThis repo contains artifacts for our USENIX Security '23 paper *NVLeak: Off-Chip Side-Channel Attacks via Non-Volatile Memory Systems*.\n\n## Overview\n\nThis repo contains all code and tools to reproduce results in our paper, as well as data parsing and plotting scripts to generate result graph.\n\nThe repo directory structure:\n\n```shell\n.\n├── data       # Raw data copied from the NVRAM machine\n├── docker     # MongoDB docker image for data parsing scripts\n├── docs       # Docs to build and run NVLeak, and reproduce results\n├── lens       # Original version of LENS to reproduce part of results in the paper\n├── nvleak     # NVLeak code: reverse engineering, cover/side channel, mitigation, runner scripts\n├── report     # LaTeX template and R scripts to plot results and generate a pdf report\n└── scripts    # Data fetching and parsing scripts\n```\n\nThe high-level process of reproducing NVLeak results involves the following steps:\n\n  1. Run `lens` and `nvleak` code on the NVRAM machine\n  2. Fetch data from NVRAM machine to local develop machine's `data` dir\n  3. Start the docker image and parse data using `scripts`\n  4. Link `data` to `report`, plot results and generate a PDF report\n\nSee more detailed [docs](./docs/README.md) to use NVLeak and reproduce results.\n\n## NVLeak overview\n\nThe NVLeak sub-repo has the following structure\n\n```shell\n.\n├── docs    # Docs for setting up vscode   \n├── scripts # Various helper scripts such as grub setup and NVRAM configurations\n├── src     # Reverse engineering suite implementation\n└── user    # User space covert/side channel and mitigations implementations\n    ├── covert_channel\n    │   ├── cross_vm             # Cross-VM covert channel\n    │   └── inode                # Filesystem inode-based covert channel\n    └── side_channel\n        ├── bench.sh             # Helper functions for side channel demos\n        ├── common.sh            # Common env vars for side channel demos\n        ├── data                 # Database dataset\n        ├── libpmemobj-cpp       # PMDK library\n        ├── map_cli              # PMDK's key-value store side channel\n        ├── mitigation_benchmark # PMDK benchmarks to evaluate mitigation performance\n        ├── nvleak               # Side channel attacker code\n        ├── select_runner.sh     # Helper functions for side channel demos\n        ├── setup                # NVRAM set up functions\n        ├── shared_lib           # Shared library side channel demos\n        ├── sqlite               # SQLite side channel demos\n        └── wolfssl              # wolfSSL side channel demos\n```\n\n## Cite NVLeak\n\n``` BibTeX\n@inproceedings{Wang2023NVLeak,\n  title     = {{NVLeak}: Off-Chip Side-Channel Attacks via Non-Volatile Memory Systems},\n  author    = {Zixuan Wang and Mohammadkazem Taram and Daniel Moghimi and Steven Swanson and Dean Tullsen and Jishen Zhao},\n  booktitle = {32nd {USENIX} Security Symposium ({USENIX} Security 23)},\n  year      = {2023}\n}\n```\n\n## License\n\nThe code is distributed under MIT license unless otherwise stated under sub folders.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthenetadmin%2Fnvleak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthenetadmin%2Fnvleak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthenetadmin%2Fnvleak/lists"}