Skip to main content

SSVC Ore Miner

Overview

The Stakeholder-Specific Vulnerability Categorization (SSVC) Ore Miner is a tool designed to enhance vulnerability management by automating the process of calculating patch priority. It addresses the shortcomings of traditional methods like the Common Vulnerability Scoring System (CVSS) by incorporating asset context and vulnerability intelligence.

Why SSVC Ore Miner?

While CVSS provides a generic risk score, it fails to consider the specific context of vulnerable assets. SSVC Ore Miner bridges this gap by:

  • Accounting for the real-life implications of vulnerabilities.
  • Using well-defined decision logic for prioritization.
  • Allowing inspection, modification, and extension of decision criteria to fit organizational needs.
  • NEW: Integrating EPSS (Exploit Prediction Scoring System) scores for enhanced risk assessment.

By leveraging asset context and vulnerability intelligence, the SSVC Ore Miner helps security teams focus on vulnerabilities that pose the highest risk of compromise.


Prioritization Criteria

SSVC Ore Miner evaluates vulnerabilities using the following vectors:

  1. Exploitation:
    Determines the exploit's availability and status using open-source threat intelligence feeds.

    • Possible values: active, PoC, none.
  2. Exposure:
    Assesses the likelihood of exposure if an exploit is used against a vulnerable asset.

    • Possible values: unavoidable, probable, unlikely.
  3. Utility:
    Evaluates the ease of exploitation based on factors like network access, user interaction, and asset discoverability.

    • Possible values: effortless, complex, laborious.
  4. Impact:
    Considers the environment (e.g., production or staging), asset type, and criticality to the business.

    • Possible values: very high, high, medium, low.
  5. EPSS Score:
    NEW: Exploit Prediction Scoring System score indicating the probability of exploitation within 30 days.

    • Provides percentile ranking and risk categorization.

Patch Priority Levels

Based on the evaluation, SSVC Ore Miner assigns one of the following patch priorities:

Patch Priority Description
act_now Critical risk of compromise. The vulnerability affects a public-facing or critical asset, and the exploit is highly effective.
out-of-cycle Increased risk of compromise. Patching should occur ahead of the regular schedule.
schedule Follow the regular patching schedule.
defer The risk is minimal; the patch can be delayed.
review The vulnerability is new or undisclosed, and a CVSS vector has not been assigned yet. Requires further analysis.

Internals

Open-Source Threat Intelligence

  • Pulls data from the Known Exploitable Vulnerability (KEV) catalog and NVD vulnerability data from CISA and NIST.
  • Analyzes CVE exploitability and CVSS scores to calculate the Exploitation and Utility vectors.
  • NEW: Fetches EPSS scores from FIRST.org API for enhanced exploit prediction.

Asset Context

  • Uses asset context to refine prioritization.
  • Maps vulnerabilities to the first four stages of the MITRE ATT&CK® Matrix for Enterprise:

Decision Tree

  • Independently calculates vectors for Exposure, Utility, and Impact.
  • Uses these vectors to generate a query for the final decision tree, producing a prioritization result.
  • NEW: Incorporates EPSS scores to enhance decision-making with exploit probability data.

Usage

Command-Line Interface (CLI)

ssvc_ore.py [-h] [--single | --datafile] [-cn CVE_NUMBER] [-p {public,public_restricted,private,None}] 
             [-e {production,non_production,None}] [-a {db,compute,storage,None,network}] 
             [-s {critical,high,medium,low}] [--file FILE] [-v]

Optional Arguments:

  • -h, --help: Show help message.
  • --single: Parameter-based entry.
  • --datafile: Upload vulnerabilities via a CSV file using --file.
  • -id, --asset_id: Asset identifier (optional).
  • -cn, --cve_number: CVE numbers separated by |.
  • -p, --public_status: Public status of the asset (public, public_restricted, private, none).
  • -vs, --vul_severity: Vulnerability severity (critical, high, medium, low).
  • -e, --environment: Asset environment (production, non_production, none).
  • -a, --assetType: Asset type (db, compute, storage, network, none).
  • -s, --criticality: Business criticality of the asset (critical, high, medium, low).
  • --file: Provide a CSV file for batch vulnerability input.
  • -v, --verbose: Increase output verbosity.

Example Usage

cd path/to/ssvc_ore_miner
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -r requirements.txt --upgrade
export PYTHONPATH=.
python3 ssvc_ore.py --datafile --file ./test/sample_vulnerabilities_data.csv -v

Single Vulnerability Analysis

ssvc_ore.py --single -id "web-server-01" -cn "CVE-2023-1234" -p "public" -e "production" -a "compute" -s "high" -v

Batch Processing with CSV File

ssvc_ore.py --datafile --file vulnerabilities.csv -v

Using Severity Instead of CVE

ssvc_ore.py --single -id "database-01" -vs "critical" -p "private" -e "production" -a "db" -s "critical" -v

CSV File Format

Your CSV file should have the following columns:

asset_id,cve_number,vul_severity,public_status,environment,assetType,assetCriticality
web-server-01,CVE-2023-1234|CVE-2023-5678,None,public,production,compute,high
database-01,None,critical,private,production,db,critical

Use as a Python Package

Install the package:

pip install rapticoressvc

Example:

from rapticoressvc.ssvc_ore import ssvc_recommendations

# Analyze a single vulnerability
result = ssvc_recommendations(
    asset="web-server-01",
    vul_details=["CVE-2023-1234"],
    public_status="public",
    environment="production",
    asset_type="compute",
    asset_criticality="high"
)

print(f"SSVC Recommendation: {result['ssvc_rec']}")
print(f"EPSS Score: {result['epss_score']}")
print(f"EPSS Category: {result['epss_category']}")

Requirements

  • Python 3.9+
  • Internet connection for fetching vulnerability data
  • Optional: AWS credentials for S3 storage (if using S3 storage type)

Credits

Based on the work from:

Spring, J., Hatleback, E., Householder, A.D., Manion, A., & Shick, D. (2020).
"Prioritizing vulnerability response: A stakeholder-specific vulnerability categorization"
Presented at the Workshop on the Economics of Information Security, Brussels, Belgium.

Release files for rapticoressvc 0.0.18

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rapticoressvc 0.0.18
File Size Uploaded
rapticoressvc-0.0.18.tar.gz 35.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rapticoressvc 0.0.18
File Interpreter ABI Platform
rapticoressvc-0.0.18-py3-none-any.whl Python 3 none any Details

Total release size:73.0 kB

Release files / rapticoressvc-0.0.18.tar.gz

Download URL rapticoressvc-0.0.18.tar.gz
Size 35.0 kB
Tags Source
SHA-256 checksum
How to use checksums
dda0e700234f79e17e855c23ac6f0a5c725a664ce71539815226c8de6bad4ac9
BLAKE2b-256 checksum
How to use checksums
ef9add6c1b0d9b0f97aa136aa979fc75c6ad9cc4f89cdc7ad9c936354cd7508c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.21

Release files / rapticoressvc-0.0.18-py3-none-any.whl

Download URL rapticoressvc-0.0.18-py3-none-any.whl
Size 38.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
13ba01b8f8185d2a53ad955cf8262b32c67e756259d115c2baa415286c53555e
BLAKE2b-256 checksum
How to use checksums
7fafd777441968025480bfc78e9edda692cbbe70f818ceadf14fab33ac946b6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.21

Release history Release notifications | RSS feed

This release

0.0.18 This release

2 release files

0.0.17

1 release file

0.0.16

1 release file

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page