- Scan their software for potential security issues and violations of organizational policy.
- Prioritize vulnerabilities in the context of their applications.
- Understand the relationships between software components in their applications.
System specifications for scan
Make sure that you have a minimum system requirement specification of an 8-core processor with 32 GB RAM. Use a system equipped with either Mac OS X or Linux operating systems to perform the scans.Software prerequisites
- Install Cargo and the Rust compiler (
rustc), and make sure both are on yourPATH. You can install them with rustup or another installer. - Make sure your repository includes a
Cargo.tomlfile.
Prepare Rust projects
Commit yourCargo.lock file so scans use the same dependency versions as your builds. If Cargo.lock is missing, Cargo creates one during the scan, which needs access to crates.io or your private registry.
To confirm that Cargo can resolve your dependencies, run the following command in each directory that contains a Cargo.toml file.
Run a scan
Perform a scan to get visibility into your software composition and resolve dependencies.If you use Endor Labs with an EU tenant, use
https://app.eu.endorlabs.com instead of https://app.endorlabs.com.Understand the scan process
Endor Labs resolves dependencies for the package version when it scans Rust projects.Resolving Dependencies
Endor Labs runscargo metadata with all features enabled in each directory that contains a Cargo.toml file. It uses the output to resolve the dependencies in your Cargo.toml files and construct the dependency graph. Cargo workspaces are supported.
Supported targets
Endor Labs scans library and binary targets and creates a package version for each one. It scans libraries of every crate type, includinglib, rlib, dylib, cdylib, staticlib, and proc-macro, and counts a target with more than one crate type, such as crate-type = ["cdylib", "rlib"], once. It does not scan examples, tests, benchmarks, or build scripts. For a description of each crate type, refer to the Rust compiler documentation.
Known Limitations
- Call graphs are not supported for Rust projects.
- Scanning Rust projects on the Microsoft Windows operating system is currently unsupported.
Troubleshoot errors
Ifcargo metadata fails, Endor Labs reports a dependency resolution error for the project. Run the command in Prepare Rust projects to see the Cargo error, fix it, and scan again. If Cargo is not installed or not on your PATH, install it and scan again.