Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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 (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

Script

To generate the CVSS score for a specific finding returned by the Results API and Data Theorem's Python client, use the following Python script:
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
  • No labels