|
1234567891011121314151617181920212223242526272829303132333435363738 |
- import math
-
- from cvss import CVSS2
- from cvss import CVSS3
- from cvss import CVSS4
-
- import re
-
- import pandas as pd
- import numpy as np
-
- data1 = pd.DataFrame(pd.read_json(r"E:\pythonProject_open\data\SIR_dataset_processed.json"))
- vecStr = data1["vectorString"]
- impactScores = data1["impactScore"]
- exploitabilityScores = data1["exploitabilityScore"]
-
- print("----")
- for i, j, k in zip(vecStr, impactScores, exploitabilityScores) :
- cvssVer = re.findall(':(.*?)/', i)
- impactScore = float(j)
- exploitabilityScore = float(k)
-
- if float(cvssVer[0]) == 2:
- cvss = CVSS2(i)
- elif 2 <= float(cvssVer[0]) < 4:
- cvss = CVSS3(i)
- else:
- cvss = CVSS4(i)
- cvss_baseScore = cvss.base_score
- print(cvss_baseScore)
-
- if impactScore <= 0:
- cvss_baseScore = 0
- elif 0 < impactScore + exploitabilityScore < 10:
- cvss_baseScore = math.ceil((impactScore + exploitabilityScore) * 10) / 10
- else:
- cvss_baseScore = 10
- print(f"baseScore:{cvss_baseScore}, impactScore:{impactScore}, exploitabilityScore:{exploitabilityScore}")
|