Awesome Rust Security
Curated list of awesome projects and resources related to Rust and computer security
Table of Contents
Tools
Web and Cloud Security
Pentesting
- sn0int - OSINT framework and package manager
- sniffglue - secure multithreaded packet sniffer
- badtouch - scriptable network authentication cracker
- rshijack - TCP connection hijacker
- feroxbuster - fast, simple and recursive content discovery tool
- rustbuster - web fuzzer and content discovery tool
Authorization & Authentication Frameworks
- biscuit - delegated, decentralized, capabilities based authorization token
- paseto.rs - PASETO Rust implementation
- webauthn.rs - WebAuthn implementation in Rust
- OpenSK - open-source implementation for security keys written in Rust
Cloud and Infrastructure
- firecracker - secure and fast microVMs for serverless computing
- boringtun - CloudFlare's Rust implementation of WireGuard
- innernet - private network based on WireGuard
- vaultwarden - unofficial BitWarden implementation in Rust
Software Supply Chain
- rebuilderd - independent verification of binary packages
- rust-tuf - Rust implementation of the Update Framework
Other Frameworks
- adblock-rust - Brave's Rust-based adblock engine
- libinjection - Rust bindings to libinjection
Vulnerability Assessment
Static Code Auditing
- RustSec - organization supporting vulnerability disclosure for Rust packages, audit Cargo.lock files for dependencies
- cargo-geiger - detect usage of unsafe Rust
- siderophile - find ideal fuzz targets in a Rust codebase
- cargo-crev - cryptographically verifiable code review for cargo
- arch-audit - audit installed Arch packages for vulnerabilities
- ripgrep - recursively search directories with regexes
Fuzzing
- rust-fuzz - organization implementing cargo plugins for AFL, libFuzzer, and honggfuzz
- LibAFL - slot fuzzers together in Rust
- fuzzcheck.rs - structure-aware, in-process, coverage-guided, evolutionary fuzzing engine for Rust functions.
- onefuzz - self-hosted Fuzzing-As-A-Service platform
- lain - fuzzer framework implemented in Rust
- fzero - fast grammar-based fuzz generator implementation
- nautilus - grammar-based feedback fuzzer from RUB's Systems Security Lab
- sidefuzz - fuzzer for side-channel vulnerabilities
- arbitrary - trait for generating structured input from raw bytes, helpful for structure-aware fuzzing
- rust-san - sanitizers for Rust code
- lidiffuzz - memory allocator drop-in to test for uninitialized memory reads
Binary Analysis & Reversing
- goblin - binary parsing crate for Rust
- unicorn.rs - Rust bindings to the Unicorn framework
- cargo-call-stack - whole program stack analysis
- xori - disassembly library for PE32, 32+ and shellcode
- rd - record/replay debugger implemented in Rust
- binsec - Swiss Army Knife for Binary (In)Security
- radeco - Radare2-based decompiler and symbol executor
- falcon - Binary Analysis Framework in Rust
- mesos - binary coverage tool without modification for Windows
- guerilla - monkey patching Rust functions
Property-Based Testing
- quickcheck - property-based testing for Rust
- proptest - Hypothesis-like property testing for Rust
- bughunt-rust - example of using fuzzing QuickCheck models for bughunting
- mutagen - mutation testing framework for Rust
Symbolic Execution
- seer - symbolic execution engine for Rust
- haybale - LLVM IR-based symbolic execution engine from the USCD System Security Lab
Formal Verification
- MIRAI - abstract interpreter for Rust's MIR from Facebook
- electrolysis - formal verification of Rust programs with the Lean theorem prover
Offensive Security and Red Teaming
TODO: need contributions!
Command-and-Control Frameworks
Defense Evasion
Packing, Obfuscation, Encryption
- obfstr - string obfuscation for Rust
- Linux.Fe2O3 - Simple ELF prepender virus / in-memory loader written in Rust
Malware and Threat Detection
- yara-rust - Rust bindings to YARA
- BONOMEN - hunt for malware critical process impersonation
- confine - sandbox for threat detection
- redbpf - crate for writing BPF/eBPF modules
- cernan - telemetry aggregation and shipping
Cryptography
Frameworks
- secrets - secure storage for cryptographic secrets in Rust
- mundane - BoringSSL-backed cryptography library
- rust-threshold-secret-sharing - Rust implementation of threshold-based secret sharing
- molasses - Rust implementation of the MLS group messaging protocol
- rust-security-framework - Rust bindings to the macOS
Security.framework
- microkv - minimal and secure key-value storage for Rust
Applications
- ripasso - password manager written in Rust
- sekey - TouchID / Secure Enclave for SSH authentication
- Mullvad VPN Client - Mullvad VPN app written in Rust
Educational
Books
Articles
- str::repeat wildcopy exploit writeup
- Basic Guide to Linux Exploit Mitigations and Building a Security Detector with Rust
Talks
TODO: need contributions!
Similar Lists
- awesome-rust
- rust-secure-code/projects
- analysis-tools-dev/static-analysis
- analysis-tools-dev/dynamic-analysis
- awesome-go-security
Contributing
Make a pull request if you are interested in adding more to this list!