Data Theorem's CVSS scoring system leverages the Results API and generates a score for each issue, based on the type of issue, its severity, exploit-ability, etc. Below are the details on how the scoring works:
- Severity
- Critical (Security P1)
- High
- Medium
- Low
- Exploitability
- Hard
- Moderate
- Easy
- Issue Type
- Data At-Rest Exposure
- Data In-Transit Exposure
- Data Loss to Attackers
- Data Exposure to Third Party Apps
- Unauthorized Data Collection
...
To generate the CVSS score for a specific finding returned by the Results API and all the issues displayed in your account within the Data Theorem portal, use the Data Theorem's Python client, use the following Python script: Code Block
class CvssPlugin(object):
"""Compute the CVSS score for a security issue returned by the Data Theorem Results API.
"""
BASE_SCORE = {
'DATA_AT_REST_EXPOSURE': 1,
'DATA_IN_TRANSIT_EXPOSURE': 3,
'DATA_LOSS_TO_HACKERS': 3,
'DATA_EXPOSURE_TO_THIRD_PARTY_APPS': 2,
'UNAUTHORIZED_DATA_COLLECTION': 1.5,
}
SEVERITY_MODIFIER = {
'HIGH': 2,
'MEDIUM': 1,
'LOW': 0
}
EXPLOITABILITY_MODIFIER = {
'EASY': 2,
'MODERATE': 1,
'DIFFICULT': 0
}
SECURITY_P1_MODIFIER = 2
@classmethod
def compute_cvss_score(cls, security_finding):
score = cls.BASE_SCORE[security_finding['category']]
score += cls.SEVERITY_MODIFIER[security_finding['severity']]
score += cls.EXPLOITABILITY_MODIFIER[security_finding['exploitability']]
if 'SECURITY_P1' in security_finding['importance_tags']:
score += cls.SECURITY_P1_MODIFIER
return score
language | py |
---|
python results_api_cli.py --api-key <results_api_key> |
---|
The script will write all the issues to a CSV file, with a CVSS score generated for each issue.