Crate scayl

source · []
Expand description

A vulnerability analysis tool designed to score vulnerabilities inside of a vulnerability report. A vulnerability & sbom format analysis library. This library is used to analyze software based on their vulnerabilities

Examples

// Requires the 'grype' & 'trivy' features to be enabled
use std::collections::BTreeMap;
use scayl::{ContextRunner, DeploymentContext, Grype, read_json, Trivy, VulnerabilityFormat};
let grype: Grype = read_json("grype.json").unwrap();
let trivy: Trivy = read_json("trivy.json").unwrap();

let scores: BTreeMap<_, _> = grype.cvss_v3_1_scores();
for (vuln_id, v3_metric) in scores {
    println!("{} {}", vuln_id, v3_metric);
}

let context = DeploymentContext {
    ..Default::default()
};
// or
let context: DeploymentContext = read_json("context.json").unwrap();

let mut runner = ContextRunner::new();
runner.grype(&grype);
runner.trivy(&trivy);
let score = runner.calculate(&context).unwrap();
println!("{:?}", score);
// Requires the 'cyclonedx' feature to be enabled
use scayl::{ContextRunner, CycloneDx, DeploymentContext, read_json};
let cyclone: CycloneDx = read_json("cyclonedx.json").unwrap();
let context: DeploymentContext = read_json("context.json").unwrap();

let mut runner = ContextRunner::new();
 runner.cyclonedx(&cyclone);
let score = runner.calculate(&context).unwrap();
println!("{:?}", score);

Re-exports

pub use format::*;
pub use cvss::*;
pub use api::*;
pub use context::*;
pub use model::*;
pub use util::*;

Modules

This model contains some apis for vulnerability related services (incomplete) A collection of APIs relating to CVEs and CVSS scores Mostly unfinished, but it’s a start.

The main module containing the scoring mechanism & deployment contexts

This module contains CVSS v2.0 & CVSS v3.0 scoring systems and data models

This module contains the different SBOM and Vulnerability Report formats. Various SBOM & Vulnerability formats the grype feature enables the Grype format the syft feature enables the SYFT format the cyclonedx feature enables the CycloneDX format the sarif feature enables the SARIF format the trivy feature enables the Trivy format

Contains some traits for generic vulnerability & cvss functionality

This module contains some useful tools for reading/writing files

Macros

CVSS Component macro

A single CVSS metric