aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-10-18 22:48:44 +0200
committerJ08nY2024-10-18 22:48:44 +0200
commit4325e46f96f29e95acdc2a11943150ee089edd55 (patch)
tree29878d98f4fada2dc66a4128ba942e6f8f64a587
parent63e7998b47fa645a6b7d921504f67a81293f457c (diff)
downloadsec-certs-4325e46f96f29e95acdc2a11943150ee089edd55.tar.gz
sec-certs-4325e46f96f29e95acdc2a11943150ee089edd55.tar.zst
sec-certs-4325e46f96f29e95acdc2a11943150ee089edd55.zip
Fixup notebooks wrt dataset loading.
-rw-r--r--notebooks/cc/vulnerabilities.ipynb16
-rw-r--r--notebooks/fips/vulnerabilities.ipynb481
2 files changed, 34 insertions, 463 deletions
diff --git a/notebooks/cc/vulnerabilities.ipynb b/notebooks/cc/vulnerabilities.ipynb
index 315f35a8..176b3e69 100644
--- a/notebooks/cc/vulnerabilities.ipynb
+++ b/notebooks/cc/vulnerabilities.ipynb
@@ -81,18 +81,16 @@
"cpe_dset: CPEDataset = CPEDataset.from_json(\"/path/to/cpe_dataset.json\")\n",
"\n",
"# # Remote instantiation (takes approx. 10 minutes to complete)\n",
- "# with tempfile.TemporaryDirectory() as tmp_dir:\n",
- "# dset: CCDataset = CCDataset.from_web_latest()\n",
- "# dset.root_dir = tmp_dir\n",
+ "# dset: CCDataset = CCDataset.from_web_latest(path=\"dset\", auxiliary_datasets=True)\n",
"\n",
- "# print(\"Downloading dataset of maintenance updates\")\n",
- "# main_dset: CCDatasetMaintenanceUpdates = CCDatasetMaintenanceUpdates.from_web_latest()\n",
+ "# print(\"Downloading dataset of maintenance updates\")\n",
+ "# main_dset: CCDatasetMaintenanceUpdates = CCDatasetMaintenanceUpdates.from_web_latest()\n",
"\n",
- "# print(\"Downloading CPE dataset\")\n",
- "# cpe_dset: CPEDataset = dset._prepare_cpe_dataset()\n",
+ "# print(\"Downloading CPE dataset\")\n",
+ "# cpe_dset: CPEDataset = dset.auxiliary_datasets.cpe_dset\n",
"\n",
- "# print(\"Downloading CVE dataset\")\n",
- "# cve_dset: CVEDataset = dset._prepare_cve_dataset()"
+ "# print(\"Downloading CVE dataset\")\n",
+ "# cve_dset: CVEDataset = dset.auxiliary_datasets.cve_dset"
]
},
{
diff --git a/notebooks/fips/vulnerabilities.ipynb b/notebooks/fips/vulnerabilities.ipynb
index 6e499fb6..ffd19548 100644
--- a/notebooks/fips/vulnerabilities.ipynb
+++ b/notebooks/fips/vulnerabilities.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"id": "41674b9c",
"metadata": {
"ExecuteTime": {
@@ -26,72 +26,28 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": null,
"id": "5ee5dca5",
"metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Downloading FIPS: 61.7MB [00:11, 5.80MB/s]\n"
- ]
- },
- {
- "ename": "JSONDecodeError",
- "evalue": "Expecting value: line 8390393 column 29 (char 396555616)",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m dset \u001b[38;5;241m=\u001b[39m \u001b[43mFIPSDataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_web_latest\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfips_dset\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauxiliary_datasets\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/dataset/fips.py:239\u001b[0m, in \u001b[0;36mFIPSDataset.from_web_latest\u001b[0;34m(cls, path, auxiliary_datasets, artifacts)\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfrom_web_latest\u001b[39m(\n\u001b[1;32m 221\u001b[0m \u001b[38;5;28mcls\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 224\u001b[0m artifacts: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 225\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m FIPSDataset:\n\u001b[1;32m 226\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 227\u001b[0m \u001b[38;5;124;03m Fetches the fresh snapshot of FIPSDataset from sec-certs.org.\u001b[39;00m\n\u001b[1;32m 228\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 237\u001b[0m \u001b[38;5;124;03m :param artifacts: Whether to also download artifacts (i.e. PDFs).\u001b[39;00m\n\u001b[1;32m 238\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 239\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_web\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 240\u001b[0m \u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfips_latest_full_archive\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 241\u001b[0m \u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfips_latest_snapshot\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 242\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mDownloading FIPS\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 243\u001b[0m \u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 244\u001b[0m \u001b[43m \u001b[49m\u001b[43mauxiliary_datasets\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 245\u001b[0m \u001b[43m \u001b[49m\u001b[43martifacts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 246\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/dataset/dataset.py:248\u001b[0m, in \u001b[0;36mDataset.from_web\u001b[0;34m(cls, archive_url, snapshot_url, progress_bar_desc, path, auxiliary_datasets, artifacts)\u001b[0m\n\u001b[1;32m 246\u001b[0m dset\u001b[38;5;241m.\u001b[39mroot_dir \u001b[38;5;241m=\u001b[39m constants\u001b[38;5;241m.\u001b[39mDUMMY_NONEXISTING_PATH\n\u001b[1;32m 247\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m auxiliary_datasets:\n\u001b[0;32m--> 248\u001b[0m \u001b[43mdset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_auxiliary_datasets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdownload_fresh\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 249\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m dset\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/serialization/json.py:108\u001b[0m, in \u001b[0;36mserialize.<locals>._serialize\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m SerializationError(\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe invoked method requires dataset serialization. Cannot serialize without root_dir set. You can set it with obj.root_dir = ...\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 105\u001b[0m )\n\u001b[1;32m 107\u001b[0m update_json \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mupdate_json\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m--> 108\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m update_json:\n\u001b[1;32m 110\u001b[0m args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mto_json()\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/dataset/fips.py:276\u001b[0m, in \u001b[0;36mFIPSDataset.process_auxiliary_datasets\u001b[0;34m(self, download_fresh)\u001b[0m\n\u001b[1;32m 274\u001b[0m \u001b[38;5;129m@serialize\u001b[39m\n\u001b[1;32m 275\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess_auxiliary_datasets\u001b[39m(\u001b[38;5;28mself\u001b[39m, download_fresh: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 276\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_auxiliary_datasets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdownload_fresh\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauxiliary_datasets\u001b[38;5;241m.\u001b[39malgorithm_dset \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_algorithm_dataset(download_fresh)\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/serialization/json.py:108\u001b[0m, in \u001b[0;36mserialize.<locals>._serialize\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m SerializationError(\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe invoked method requires dataset serialization. Cannot serialize without root_dir set. You can set it with obj.root_dir = ...\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 105\u001b[0m )\n\u001b[1;32m 107\u001b[0m update_json \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mupdate_json\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m--> 108\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m update_json:\n\u001b[1;32m 110\u001b[0m args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mto_json()\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/dataset/dataset.py:334\u001b[0m, in \u001b[0;36mDataset.process_auxiliary_datasets\u001b[0;34m(self, download_fresh)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauxiliary_datasets_dir\u001b[38;5;241m.\u001b[39mmkdir(parents\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, exist_ok\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauxiliary_datasets\u001b[38;5;241m.\u001b[39mcpe_dset \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_cpe_dataset(download_fresh)\n\u001b[0;32m--> 334\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauxiliary_datasets\u001b[38;5;241m.\u001b[39mcve_dset \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_prepare_cve_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdownload_fresh\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m download_fresh \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcpe_match_json_path\u001b[38;5;241m.\u001b[39mexists():\n\u001b[1;32m 337\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_cpe_match_dict(download_fresh\u001b[38;5;241m=\u001b[39mdownload_fresh)\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/utils/profiling.py:41\u001b[0m, in \u001b[0;36mstaged.<locals>.deco.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 39\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 40\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m log_stage(logger, log_message, collect_garbage):\n\u001b[0;32m---> 41\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/dataset/dataset.py:455\u001b[0m, in \u001b[0;36mDataset._prepare_cve_dataset\u001b[0;34m(self, download_fresh)\u001b[0m\n\u001b[1;32m 453\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcve_dataset_path\u001b[38;5;241m.\u001b[39mexists():\n\u001b[1;32m 454\u001b[0m logger\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPreparing CVEDataset from json.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 455\u001b[0m cve_dataset \u001b[38;5;241m=\u001b[39m \u001b[43mCVEDataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_json\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcve_dataset_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 456\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 457\u001b[0m cve_dataset \u001b[38;5;241m=\u001b[39m CVEDataset(json_path\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcve_dataset_path)\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/dataset/json_path_dataset.py:42\u001b[0m, in \u001b[0;36mJSONPathDataset.from_json\u001b[0;34m(cls, input_path, is_compressed)\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfrom_json\u001b[39m(\u001b[38;5;28mcls\u001b[39m, input_path: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m|\u001b[39m Path, is_compressed: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m):\n\u001b[0;32m---> 42\u001b[0m dset \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_json\u001b[49m\u001b[43m(\u001b[49m\u001b[43minput_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mis_compressed\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 43\u001b[0m dset\u001b[38;5;241m.\u001b[39mjson_path \u001b[38;5;241m=\u001b[39m Path(input_path)\n\u001b[1;32m 44\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m dset\n",
- "File \u001b[0;32m~/dev/sec-certs/src/sec_certs/serialization/json.py:90\u001b[0m, in \u001b[0;36mComplexSerializableType.from_json\u001b[0;34m(cls, input_path, is_compressed)\u001b[0m\n\u001b[1;32m 88\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 89\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Path(input_path)\u001b[38;5;241m.\u001b[39mopen(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m handle:\n\u001b[0;32m---> 90\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mcls\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mCustomJSONDecoder\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m/usr/lib/python3.12/json/__init__.py:293\u001b[0m, in \u001b[0;36mload\u001b[0;34m(fp, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 274\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mload\u001b[39m(fp, \u001b[38;5;241m*\u001b[39m, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, object_hook\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, parse_float\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 275\u001b[0m parse_int\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, parse_constant\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, object_pairs_hook\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[1;32m 276\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Deserialize ``fp`` (a ``.read()``-supporting file-like object containing\u001b[39;00m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;124;03m a JSON document) to a Python object.\u001b[39;00m\n\u001b[1;32m 278\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 291\u001b[0m \u001b[38;5;124;03m kwarg; otherwise ``JSONDecoder`` is used.\u001b[39;00m\n\u001b[1;32m 292\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 293\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 294\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mcls\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mobject_hook\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobject_hook\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 295\u001b[0m \u001b[43m \u001b[49m\u001b[43mparse_float\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparse_float\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparse_int\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparse_int\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 296\u001b[0m \u001b[43m \u001b[49m\u001b[43mparse_constant\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparse_constant\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mobject_pairs_hook\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobject_pairs_hook\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m/usr/lib/python3.12/json/__init__.py:359\u001b[0m, in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 357\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 358\u001b[0m kw[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mparse_constant\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m parse_constant\n\u001b[0;32m--> 359\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m/usr/lib/python3.12/json/decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdecode\u001b[39m(\u001b[38;5;28mself\u001b[39m, s, _w\u001b[38;5;241m=\u001b[39mWHITESPACE\u001b[38;5;241m.\u001b[39mmatch):\n\u001b[1;32m 333\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;124;03m containing a JSON document).\u001b[39;00m\n\u001b[1;32m 335\u001b[0m \n\u001b[1;32m 336\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m end \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28mlen\u001b[39m(s):\n",
- "File \u001b[0;32m/usr/lib/python3.12/json/decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 353\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscan_once(s, idx)\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n",
- "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 8390393 column 29 (char 396555616)"
- ]
- }
- ],
+ "outputs": [],
"source": [
- "dset = FIPSDataset.from_web_latest(path=\"fips_dset\", auxiliary_datasets=True)"
+ "dset = FIPSDataset.from_web_latest(path=\"dset\", auxiliary_datasets=True)"
]
},
{
"cell_type": "code",
- "execution_count": 5,
- "id": "303824ee-a101-492d-8505-3e1f96a04d69",
+ "execution_count": null,
+ "id": "be466617-e182-4bec-bdb5-a479703faa50",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "PosixPath('/this/is/dummy/nonexisting/path/auxiliary_datasets/cpe_dataset.json')"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
- "cve_dset: CVEDataset = dset.auxiliary_datasets.cve_dataset\n",
- "cpe_dset: CPEDataset = dset.auxiliary_datasets.cpe_dataset"
+ "cve_dset: CVEDataset = dset.auxiliary_datasets.cve_dset\n",
+ "cpe_dset: CPEDataset = dset.auxiliary_datasets.cpe_dset"
]
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": null,
"id": "530354be",
"metadata": {},
"outputs": [],
@@ -108,350 +64,40 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"id": "0bf3a0a5",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "<div>\n",
- "<style scoped>\n",
- " .dataframe tbody tr th:only-of-type {\n",
- " vertical-align: middle;\n",
- " }\n",
- "\n",
- " .dataframe tbody tr th {\n",
- " vertical-align: top;\n",
- " }\n",
- "\n",
- " .dataframe thead th {\n",
- " text-align: right;\n",
- " }\n",
- "</style>\n",
- "<table border=\"1\" class=\"dataframe\">\n",
- " <thead>\n",
- " <tr style=\"text-align: right;\">\n",
- " <th></th>\n",
- " <th>cert_id</th>\n",
- " <th>name</th>\n",
- " <th>status</th>\n",
- " <th>standard</th>\n",
- " <th>type</th>\n",
- " <th>level</th>\n",
- " <th>embodiment</th>\n",
- " <th>date_validation</th>\n",
- " <th>date_sunset</th>\n",
- " <th>algorithms</th>\n",
- " <th>...</th>\n",
- " <th>st_directly_referenced_by</th>\n",
- " <th>st_indirectly_referenced_by</th>\n",
- " <th>st_directly_referencing</th>\n",
- " <th>st_indirectly_referencing</th>\n",
- " <th>year_from</th>\n",
- " <th>n_cves</th>\n",
- " <th>cve_published_dates</th>\n",
- " <th>earliest_cve</th>\n",
- " <th>worst_cve_score</th>\n",
- " <th>avg_cve_score</th>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>dgst</th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " <th></th>\n",
- " </tr>\n",
- " </thead>\n",
- " <tbody>\n",
- " <tr>\n",
- " <th>1a42d5267aba37d7</th>\n",
- " <td>735</td>\n",
- " <td>Datacryptor® SONET/SDH v1.00</td>\n",
- " <td>Historical</td>\n",
- " <td>FIPS140-2</td>\n",
- " <td>Hardware</td>\n",
- " <td>2.0</td>\n",
- " <td>Multi Chip Standalone</td>\n",
- " <td>2007-02-06</td>\n",
- " <td>NaT</td>\n",
- " <td>{DSA algorithm # #159 created by None, AES alg...</td>\n",
- " <td>...</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>2007</td>\n",
- " <td>0</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>bfa6b4fe534027ca</th>\n",
- " <td>3075</td>\n",
- " <td>Samsung Flash Memory Protector V1.2.1</td>\n",
- " <td>Active</td>\n",
- " <td>FIPS140-2</td>\n",
- " <td>Software Hybrid</td>\n",
- " <td>1.0</td>\n",
- " <td>Multi Chip Standalone</td>\n",
- " <td>2017-12-06</td>\n",
- " <td>2022-12-05</td>\n",
- " <td>{HMAC algorithm # #3126 created by None, SHS a...</td>\n",
- " <td>...</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>2017</td>\n",
- " <td>0</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>3c4ee858b268931a</th>\n",
- " <td>1336</td>\n",
- " <td>Microsoft Windows Server 2008 R2 Cryptographic...</td>\n",
- " <td>Historical</td>\n",
- " <td>FIPS140-2</td>\n",
- " <td>Software</td>\n",
- " <td>1.0</td>\n",
- " <td>Multi Chip Standalone</td>\n",
- " <td>2010-08-12</td>\n",
- " <td>NaT</td>\n",
- " <td>{RSA algorithm # #559 created by None, SHS alg...</td>\n",
- " <td>...</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>2010</td>\n",
- " <td>316</td>\n",
- " <td>[2012-12-12, 2010-02-10, 2010-02-10, 2010-08-1...</td>\n",
- " <td>2008-04-08</td>\n",
- " <td>10.0</td>\n",
- " <td>7.286709</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>e50b6b02d6d90ddc</th>\n",
- " <td>1766</td>\n",
- " <td>ProxySG 9000-10 [1], 9000-20 [2], 9000-20B [3]...</td>\n",
- " <td>Historical</td>\n",
- " <td>FIPS140-2</td>\n",
- " <td>Hardware</td>\n",
- " <td>2.0</td>\n",
- " <td>Multi Chip Standalone</td>\n",
- " <td>2012-07-27</td>\n",
- " <td>NaT</td>\n",
- " <td>{Triple-DES algorithm # #1218 created by None,...</td>\n",
- " <td>...</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>2012</td>\n",
- " <td>0</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " </tr>\n",
- " <tr>\n",
- " <th>377adeb4cd4096ad</th>\n",
- " <td>315</td>\n",
- " <td>Motorola Gold Elite Gateway Secure Card (MGEG SC)</td>\n",
- " <td>Historical</td>\n",
- " <td>FIPS140-2</td>\n",
- " <td>Hardware</td>\n",
- " <td>1.0</td>\n",
- " <td>Multi Chip Embedded</td>\n",
- " <td>2003-05-13</td>\n",
- " <td>NaT</td>\n",
- " <td>{Triple-DES algorithm # #82 created by None, A...</td>\n",
- " <td>...</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>2003</td>\n",
- " <td>0</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " <td>NaN</td>\n",
- " </tr>\n",
- " </tbody>\n",
- "</table>\n",
- "<p>5 rows × 28 columns</p>\n",
- "</div>"
- ],
- "text/plain": [
- " cert_id name \\\n",
- "dgst \n",
- "1a42d5267aba37d7 735 Datacryptor® SONET/SDH v1.00 \n",
- "bfa6b4fe534027ca 3075 Samsung Flash Memory Protector V1.2.1 \n",
- "3c4ee858b268931a 1336 Microsoft Windows Server 2008 R2 Cryptographic... \n",
- "e50b6b02d6d90ddc 1766 ProxySG 9000-10 [1], 9000-20 [2], 9000-20B [3]... \n",
- "377adeb4cd4096ad 315 Motorola Gold Elite Gateway Secure Card (MGEG SC) \n",
- "\n",
- " status standard type level \\\n",
- "dgst \n",
- "1a42d5267aba37d7 Historical FIPS140-2 Hardware 2.0 \n",
- "bfa6b4fe534027ca Active FIPS140-2 Software Hybrid 1.0 \n",
- "3c4ee858b268931a Historical FIPS140-2 Software 1.0 \n",
- "e50b6b02d6d90ddc Historical FIPS140-2 Hardware 2.0 \n",
- "377adeb4cd4096ad Historical FIPS140-2 Hardware 1.0 \n",
- "\n",
- " embodiment date_validation date_sunset \\\n",
- "dgst \n",
- "1a42d5267aba37d7 Multi Chip Standalone 2007-02-06 NaT \n",
- "bfa6b4fe534027ca Multi Chip Standalone 2017-12-06 2022-12-05 \n",
- "3c4ee858b268931a Multi Chip Standalone 2010-08-12 NaT \n",
- "e50b6b02d6d90ddc Multi Chip Standalone 2012-07-27 NaT \n",
- "377adeb4cd4096ad Multi Chip Embedded 2003-05-13 NaT \n",
- "\n",
- " algorithms ... \\\n",
- "dgst ... \n",
- "1a42d5267aba37d7 {DSA algorithm # #159 created by None, AES alg... ... \n",
- "bfa6b4fe534027ca {HMAC algorithm # #3126 created by None, SHS a... ... \n",
- "3c4ee858b268931a {RSA algorithm # #559 created by None, SHS alg... ... \n",
- "e50b6b02d6d90ddc {Triple-DES algorithm # #1218 created by None,... ... \n",
- "377adeb4cd4096ad {Triple-DES algorithm # #82 created by None, A... ... \n",
- "\n",
- " st_directly_referenced_by st_indirectly_referenced_by \\\n",
- "dgst \n",
- "1a42d5267aba37d7 NaN NaN \n",
- "bfa6b4fe534027ca NaN NaN \n",
- "3c4ee858b268931a NaN NaN \n",
- "e50b6b02d6d90ddc NaN NaN \n",
- "377adeb4cd4096ad NaN NaN \n",
- "\n",
- " st_directly_referencing st_indirectly_referencing \\\n",
- "dgst \n",
- "1a42d5267aba37d7 NaN NaN \n",
- "bfa6b4fe534027ca NaN NaN \n",
- "3c4ee858b268931a NaN NaN \n",
- "e50b6b02d6d90ddc NaN NaN \n",
- "377adeb4cd4096ad NaN NaN \n",
- "\n",
- " year_from n_cves \\\n",
- "dgst \n",
- "1a42d5267aba37d7 2007 0 \n",
- "bfa6b4fe534027ca 2017 0 \n",
- "3c4ee858b268931a 2010 316 \n",
- "e50b6b02d6d90ddc 2012 0 \n",
- "377adeb4cd4096ad 2003 0 \n",
- "\n",
- " cve_published_dates \\\n",
- "dgst \n",
- "1a42d5267aba37d7 NaN \n",
- "bfa6b4fe534027ca NaN \n",
- "3c4ee858b268931a [2012-12-12, 2010-02-10, 2010-02-10, 2010-08-1... \n",
- "e50b6b02d6d90ddc NaN \n",
- "377adeb4cd4096ad NaN \n",
- "\n",
- " earliest_cve worst_cve_score avg_cve_score \n",
- "dgst \n",
- "1a42d5267aba37d7 NaN NaN NaN \n",
- "bfa6b4fe534027ca NaN NaN NaN \n",
- "3c4ee858b268931a 2008-04-08 10.0 7.286709 \n",
- "e50b6b02d6d90ddc NaN NaN NaN \n",
- "377adeb4cd4096ad NaN NaN NaN \n",
- "\n",
- "[5 rows x 28 columns]"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": null,
"id": "3d33b063",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "278"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"len(df_cve_rich)"
]
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": null,
"id": "aacaf7f7",
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "513"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"len(df_cpe_rich)"
]
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": null,
"id": "726d77a2",
"metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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fvpp3SOLNKBWrVrRpUsXtthii7RD2YQSiEgOy5Yto127dnTv3p2NG4IVaTzuzqpVq1i2bBk9evRIO5xNqAhLJIdPP/2UbbfdVslDUmVmbLvttk32SlgJRKQGSh7SFDTl7VAJREREElEdiEg9dB/7cEGnt3TcEbUOX7VqFQcffDAAb7/9NhUVFXTqFB46njVrFi1a5P1uonoZMWIERx55JMcffzyjR4/m/PPPp2fPnjnHveuuu/jWt75F586530R88cUXc+CBB3LIIYdUPyzcsWPHnONmW7p0KU8//TQnnXQSAFVVVUyYMIHf/va3yRasHgYOHMh1111HZWVl3vGWKyUQadoubV+PcXK9/rm4bbvttsydOxeASy+9lLZt23LhhRc2agy33357rcPvuusuevXqlTOBrF+/nssvvzzxvJcuXco999xTnUAqKyuprKxMPD1pGCrCEikCn3zyCT169OCLL74AYM2aNdXdAwcO5Ic//CF9+/alV69ezJoVXiL50UcfMWrUKPr370+/fv146KGHNpmuuzNmzBh23XVXDjnkEN55553qYQMHDqSqqor169czYsQIevXqRe/evbnhhhuYNGkSVVVVDB8+nL59+/LJJ5/QvXt3LrroIvbcc08eeOABRowYwaRJk6qnd+2119K7d2/69+/P4sXhRZLZ47Rt2xaAsWPH8tRTT9G3b19uuOEGZsyYwZFHHgnAe++9x9FHH02fPn3Yd999mTdvHhAS7ahRoxg4cCA77LBDjVcrZ511FpWVley+++5cckleb6iWLEogIkWgdevWDBw4kIcfDkVpEydO5Nhjj61+NuDjjz9m7ty53HzzzYwaNQqAq666ikGDBjFr1iymT5/Oj370Iz766KONpvvggw+yaNEiXnrpJSZMmMDTT2/6xt25c+eyfPlyXnzxRebPn8/IkSM5/vjjqays5O6772bu3Lm0bt0aCFdOc+bMYejQoZtMp3379syfP58xY8Zw7rnn1rq848aNY8CAAcydO5fzzjtvo2GXXHIJ/fr1Y968eVx99dWccsop1cMWLlzI1KlTmTVrFpdddll1wo276qqrqKqqYt68eTzxxBPVCUjypwQiUiRGjx7NnXfeCcCdd97JyJEjq4cNGzYMgAMPPJA1a9awevVqHn30UcaNG0ffvn0ZOHAgn376Ka+//vpG03zyyScZNmwYFRUVdO7cmUGDBm0y3x122IElS5Zw9tln849//IOtttqqxhhPPPHEGodlYhw2bBjPPPNM/Rc8y8yZMzn55JMBGDRoEKtWrWLNmjUAHHHEEbRs2ZKOHTvyla98hRUrVmzy/fvvv58999yTfv36sWDBAl566aXEsZQ71YGIFIkDDjiApUuXMmPGDNavX0+vXr2qh2Xf6mlmuDt/+ctf2HXXXTdrvltvvTUvvPACU6dO5ZZbbuH+++/njjvuyDnulltuWeN04jFmPjdv3pwNGzYAsGHDBj7//PPNirVly5bVnysqKli3bt1Gw1977TWuu+46Zs+ezdZbb82IESOa7DMWxUBXICJF5JRTTuGkk07a6OoD4L777gPC2Xn79u1p37493/72t7nxxhvJvHX03//+9ybTO/DAA7nvvvtYv349b731FtOnT99knHfffZcNGzZw3HHHceWVVzJnzhwA2rVrx9q1a+sdeybG++67j/322w8Ir3J4/vnnAZg8eXJ1kVNt0x4wYAB33303ADNmzKBjx461XhXFrVmzhi233JL27duzYsUKHnnkkXrHL5vSFYhIPdR1221jGT58OD/72c+qi4MyWrVqRb9+/fjiiy+qrw5+/vOfc+6559KnTx82bNhAjx49+Pvf/77R94455hgef/xxevbsSbdu3aoP7HHLly9n5MiR1VcKv/jFL4BQAX7mmWfSunXrehVJvf/++/Tp04eWLVty7733AnDaaadx1FFHscceezB48ODqK5g+ffpQUVHBHnvswYgRI+jXr1/1dDKV5X369KFNmzaMHz++vquPPfbYg379+vH1r3+drl27csABB9T7u7KpJvFO9MrKStcLpSSnlG7jffnll9ltt90KPt3NNWnSJB566CH+9Kc/VfeLP78gpSnX9mhmz7t7qj+6rkBEisTZZ5/NI488wpQpU9IORQRQAhEpGjfeeGPO/jNmzGjcQEQiqkQXEZFElEBERCQRJRAREUlECURERBJRJbpIfdTnduK8plf7rcdqzr3hmnP/8MMPueCCC5g2bRodOnSgXbt2XHPNNeyzzz5UVFTQu3dv1q1bx2677cb48eNp06ZNdf+MoUOHMnbs2Drntf/+++dsXyyj2G/BziuBmNlg4DdABXC7u4/LMc53gUsBB15w95MKEKeUmPq+X2NpqwYOpIlSc+4N15z76NGj6dGjB6+88grNmjXjtddeq24Pq3Xr1tXrffjw4dxyyy2cf/75G/Wvj3Xr1tG8efNak0cpqHcRlplVADcBhwE9gWFm1jNrnJ2BnwAHuPvuwLmFC1WkfKk598I05/7qq6/y3HPPceWVV9KsWTj89ejRgyOO2LSlgQEDBlTHWR8zZsxgwIABDBkypPqqLbM8ANdccw29e/dmjz322Ojq5YEHHqB///7ssssuPPXUU/WeX1OQzxVIf2Cxuy8BMLOJwFFAvCnL04Cb3P19AHd/Z5OpiEje4s25H3300TU25/7kk08yatQoXnzxxerm3O+44w5Wr15N//79OeSQQzZq8DDenPuKFSvo2bNndXPwGfHm3AFWr15Nhw4d+N3vfrdJ8UumOXeAf/zjHxtNJ9Oc+4QJEzj33HM3aVYlbty4cVx33XXV48Sfdck05/7Xv/6Vxx9/nFNOOaX66mDhwoVMnz6dtWvXsuuuu3LWWWdVryOABQsW0LdvXyoqKmpd3+vWreORRx5h8ODBQEjgffv2rR7+k5/8JGfLw3PmzOHFF1+kR48eG/V/5JFHeOihh3juuedo06YN77333kbzmjVrFlOmTOGyyy5j2rRptcbWlORTib4d8Ease1nUL24XYBcz+5eZPRsVeeVkZqebWZWZVa1cuTKPMETKk5pzDza3OffaZBJFZWUl3bp14/vf/z7wZdFW5q+m5ezfv/8myQNg2rRpjBw5kjZt2gCwzTbbVA879thjAdhrr71YunRpXvGmrdCV6M2BnYGBQBfgSTPr7e6rs0d099uA2yC0hVXgOERKjppzr1tdzbnvvvvuvPDCC6xfvz7nVUg+dR3PPfccZ5xxBgCXX345W221Va3LX1fMueJt6vK5AlkOdI11d4n6xS0DJrv7F+7+GvAfQkIRkQJQc+6b15z7jjvuSGVlJZdcckn1elm6dGn1mx7zsc8++1RfkQwZMqTWcQ899FDuvPNOPv74Y4CNirCKWT5XILOBnc2sByFxDAWy77D6KzAMuNPMOhKKtJYUIE6RdDVAi79JqDn3zWvOHcLdZRdccAE77bQTrVu3pmPHjvzyl7+s9TvZdSCDBw9m3LhNbkKt0eDBg5k7dy6VlZW0aNGCww8/nKuvvjqvuJuivJpzN7PDgV8TbuO9w92vMrPLgSp3n2zhuvRXwGBgPXCVu0+sa7pqzr381P823nrcBa7m3Iv6WQKpW0k05+7uU4ApWf0ujn124PzoT0QKSM25S1OjJ9FFioSac5emRm1hiYhIIkogIiKSiBKIiIgkogQiIiKJqBJdpB56j+9d90h5mH/q/FqHqzn3xm/OfezYsYwdO5Zvf/vb1eP++te/ZtGiRVx00UXstttuGz3Vf/7553PKKafUOq8333yTc845Z6MGI7Plu26aEiUQkSZIzbk3fnPuw4YNY+LEiRslkIkTJ3LttdcC4Sn2fJt079y5c63Jo9ipCEukCKg594Zvzv3444/n4Ycfrm6Pa+nSpbz55psMGDCg3r/TXXfdxZAhQxg0aBAHH3wwS5curW6zbP369Vx44YX06tWLPn36bHRb9o033siee+5J7969WbhwYb3nlzYlEJEiEG/OHaixOfebb765ujn2THPus2bNYvr06fzoRz/io48+2mi68ebcJ0yYkPMFSPHm3OfPn8/IkSM5/vjjqays5O6772bu3Lm0bt0a+LI596FDh24ynUxz7mPGjOHcc8+tdXnHjRvHgAEDmDt3Luedd95GwzLNuc+bN4+rr756o2KkhQsXMnXqVGbNmsVll11WnXAzamvOfZtttqF///488sgj1ev4u9/9bnXDj6+++ip9+/at/qvp3R1z5sxh0qRJPPHEExv1v+2221i6dClz585l3rx5DB8+vHpYx44dmTNnDmeddRbXXXddreumKVECESkSas49aMjm3DPFWBASSLzNsUwRVuavpiuTQw89dKPm2jOmTZvGGWecQfPmoeagFJp0VwIRKRJJm3PPHPBef/31RO17ZZpzHzhwILfccgujR4+ucdxias49l6OOOorHHnuMOXPm8PHHH7PXXnvVOr8HH3yw+ook055fOTXprgQiUkTUnHvDNufetm1bDjroIEaNGrVJi8e5HHPMMdUJuq5K/kMPPZRbb721OkGUQpPuugtLpB7quu22sag594Zvzn3YsGEcc8wx1UVZGZk6kIxRo0Zxzjnn1Hu+o0eP5j//+Q99+vRhiy224LTTTmPMmDF5xd7U5NWce0NRc+7lR825J6Pm3MtTSTTnLiLpUXPu0tQogYgUCTXnLk2NKtFFatAUindFmvJ2qAQikkOrVq1YtWpVk955pfS5O6tWraJVq1Zph5KTirBEcujSpQvLli1j5cqVaYciZa5Vq1Z06dIl7TByUgIRyWGLLbagR48eaYch0qSpCEtERBJRAhERkUTySiBmNtjMFpnZYjMbm2P4CDNbaWZzo7+aG80REZGiVu86EDOrAG4CDgWWAbPNbLK7v5Q16n3uXtzP54uISJ3yuQLpDyx29yXu/jkwETiqYcISEZGmLp8Esh3wRqx7WdQv23FmNs/MJplZ182KTkREmqxC38b7N+Bed//MzM4AxgObvqEGMLPTgdMBunXrVuAwRKQY9B7fu17jNZXWkGVj+VyBLAfiVxRdon7V3H2Vu38Wdd4O1Pg2Fne/zd0r3b2yU6dOeYQhIiJNQT4JZDaws5n1MLMWwFBgcnwEM/tarHMI8PLmhygiIk1RvYuw3H2dmY0BpgIVwB3uvsDMLgeq3H0ycI6ZDQHWAe8BIxogZhERaQLyqgNx9ynAlKx+F8c+/wT4SWFCExGRpkxPoouISCJKICIikogSiIiIJKIEIiIiiSiBiIhIIkogIiKSiBKIiIgkogQiIiKJKIGIiEgiSiAiIpKIEoiIiCSiBCIiIokogYiISCJKICIikkihX2kr0ujq81pUvRJVpPB0BSIiIokogYiISCJKICIikogSiIiIJKIEIiIiiSiBiIhIIkogIiKSiBKIiIgkkncCMbPBZrbIzBab2dhaxjvOzNzMKjcvRBERaYrySiBmVgHcBBwG9ASGmVnPHOO1A34IPFeIIEVEpOnJ9wqkP7DY3Ze4++fAROCoHONdAVwDfLqZ8YmISBOVbwLZDngj1r0s6lfNzPYEurr7w7VNyMxON7MqM6tauXJlnmGIiEjaClqJbmbNgOuBC+oa191vc/dKd6/s1KlTIcMQEZFGkG8CWQ50jXV3ifpltAN6ATPMbCmwLzBZFekiIqUn3wQyG9jZzHqYWQtgKDA5M9DdP3D3ju7e3d27A88CQ9y9qmARi4hIk5BXAnH3dcAYYCrwMnC/uy8ws8vNbEhDBCgiIk1T3i+UcvcpwJSsfhfXMO7AZGGJiEhTpyfRRUQkESUQERFJRAlEREQSUQIREZFElEBERCQRJRAREUlECURERBJRAhERkUSUQEREJBElEBERSUQJREREElECERGRRJRAREQkESUQERFJJO/m3EVEuo99uM5xlo47ohEikTTpCkRERBJRAhERkUSUQEREJBElEBERSUQJREREElECERGRRJRAREQkkbwTiJkNNrNFZrbYzMbmGH6mmc03s7lmNtPMehYmVBERaUrySiBmVgHcBBwG9ASG5UgQ97h7b3fvC1wLXF+IQEVEpGnJ90n0/sBid18CYGYTgaOAlzIjuPua2PhbAr65QYpIEbq0fd3j9OjW8HFIg8k3gWwHvBHrXgbskz2Smf0AOB9oAQxKHJ2IiDRZDVKJ7u43ufuOwEXAz3KNY2anm1mVmVWtXLmyIcIQEZEGlG8CWQ50jXV3ifrVZCJwdK4B7n6bu1e6e2WnTp3yDENERNKWbwKZDexsZj3MrAUwFJgcH8HMdo51HgG8snkhiohIU5RXHYi7rzOzMcBUoAK4w90XmNnlQJW7TwbGmNkhwBfA+8CphQ5aRETSl/f7QNx9CjAlq9/Fsc8/LEBcIiLSxOlJdBERSUQJREREElECERGRRJRAREQkESUQERFJRAlEREQSUQIREZFElEBERCQRJRAREUlECURERBJRAhERkUSUQEREJBElEBERSUQJREREElECERGRRJRAREQkESUQERFJRAlEREQSUQIREZFElEBERCQRJRAREUlECURERBJRAhERkUTySiBmNtjMFpnZYjMbm2P4+Wb2kpnNM7PHzGz7woUqIiJNSb0TiJlVADcBhwE9gWFm1jNrtH8Dle7eB5gEXFuoQEVEpGnJ5wqkP7DY3Ze4++fAROCo+AjuPt3dP446nwW6FCZMERFpavJJINsBb8S6l0X9avJ94JGaBprZ6WZWZWZVK1euzCMMERFpChqkEt3MvgdUAr+saRx3v83dK929slOnTg0RhoiINKDmeYy7HOga6+4S9duImR0C/BT4prt/tnnhiYhIU5XPFchsYGcz62FmLYChwOT4CGbWD7gVGOLu7xQuTBERaWrqnUDcfR0wBpgKvAzc7+4LzOxyMxsSjfZLoC3wgJnNNbPJNUxORESKXD5FWLj7FGBKVr+LY58PKVBcIiLSxOlJdBERSUQJREREElECERGRRJRAREQkESUQERFJRAlEREQSUQIREZFElEBERCQRJRAREUlECURERBJRAhERkUSUQEREJBElEBERSUQJREREElECERGRRJRAREQkESUQERFJRAlEREQSUQIREZFElEBERCQRJRAREUlECURERBLJK4GY2WAzW2Rmi81sbI7hB5rZHDNbZ2bHFy5MERFpauqdQMysArgJOAzoCQwzs55Zo70OjADu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",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
"source": [
"categories_cpe = df_cpe_rich.type.value_counts().sort_index().rename('Type distribution CPE-rich')\n",
"categories_cve = df_cve_rich.type.value_counts().sort_index().rename('Type distribution CVE-rich')\n",
@@ -465,23 +111,10 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": null,
"id": "80de4629",
"metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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Jobt27d39DAUCoWiyyCESG661clDLYspFAqFos1RwkWhUCgUbY4SLgqFQqFoczqlzcUR1dXVpKamUlHhLBmtQtH98PT0pE+fPri7u3f0UBSKZtFlhEtqaip+fn7ExMSg5bdUKLo3Ukpyc3NJTU0lNja2o4ejUDSLLrMsVlFRQUhIiBIsih6DEIKQkBClrSu6JF1GuABKsCh6HOqaV3RVupRwUSgUPY+NaRuprqnu6GEomokSLi4gpWT69On88MMPtm1ffPEFZ511Vruc74MPPuD2228H4I033uCjj+pXqq1l3bp1bNq0yen+FStW8MwzzwBwzTXX8OWXXzZrLE899VSd91OnTm3W8c1lyZIlvPDCC0DLxusKjc3pvvvuY/jw4dx3331NfvbOKCgo4PXXX2/1OBVwtOAoN6+5mTXH1zTdWNGp6DIG/Y5ECMEbb7zBwoULmTVrFmazmYceeogff3S5plEdzGYzbm6uffQ333xzo/vXrVuHr6+vw5u+2Wzmggsu4IILLmjROEG7ET/00EO2940Jss6OlBIpZaNzeuutt8jLy8NoNDrqwiWswuXWW29t1XgVcLz4OADZZdkdPBJFc1Gai4uMGDGC888/n2effZYnnniCK664gieffJJJkyYxduxYvv32WwCSkpKYMWMG48aNY9y4cbYb17p165gxYwYXXHABw4YNa9D/+++/z6BBg5g0aRIbN9YWI7R/kn/55ZcZNmwYo0aNYtGiRSQlJfHGG2/w4osvMmbMGH7//XeuueYabr75ZiZPnszf//73OloQwJo1a5gwYQKDBg1i5cqVAA3anHfeeaxbt44HHniA8vJyxowZw+WXXw6Ar69WSl5KyX333ceIESMYOXIky5Yts83ztNNOY8GCBQwZMoTLL78cR5m33377bSZOnMjo0aO5+OKLKSsrc/m7SExMZM6cOYwePZpx48Zx5MgRAJ5//nkmTpzIqFGjeOyxx2zfx+DBg7nqqqsYMWIE1113ndM5XXDBBZSUlDB+/HiWLVtW57N3dM6SkhJmz57NuHHjGDlypO0aeOCBBzhy5Ahjxozhvvvuczq20tJSzj33XEaPHs2IESNsn6GilvSSdAAKKgs6diCKZtMlNZfHv9vPgfSiNu1zWJQ/j50/vNE2jz32GOPGjcPDw4PzzjuP008/nffee4+CggImTZrEnDlzCA8P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",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
"source": [
"years_cpe = df_cpe_rich.year_from.value_counts().sort_index().rename('Year distribution CPE-rich')\n",
"years_cve = df_cve_rich.year_from.value_counts().sort_index().rename('Year distribution CVE-rich')\n",
@@ -496,23 +129,10 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": null,
"id": "2b12db24",
"metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEOCAYAAACetPCkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAqu0lEQVR4nO3de3wU5dn/8c9FQFFBqYBUDQpF0HIyQsDiAaH1gIrgAQqIVdoKIqZgFVuqLfLQ2h9UHq1VVDwr1YJSSxHwsZ7QKlYMGMtBqYAoQUWqgiIiBK7fHzMbJstushMWN8Hv+/XKK7tz3zNzzezMfe0c9h5zd0RERDJVJ9cBiIhI7aLEISIisShxiIhILEocIiISixKHiIjEosQhIiKxKHHsJjPbZGbfqaLOyWa2fA/Mu4WZuZnVzfa0JWBmS82sRwb13MyO2vMR7RmZbqNmNsTMXvo6Ykox73Fm9udqjjvPzC4NX+dyGa41s3si788zszVhO3JcpttbrlWZOMxstZl9GS5Y4u+2pDo9wh3nl0nD9/qGzd0buPuqKur8092P/rpiykRt+WzM7EAz+6OZvRdueyvD903C8uj2uc7MHjCzBmHZPDPbkrTtPhFn/u7ezt3n7YFFq8DMzjCzF83sczNbb2YvmFkfM/uemX2RWKakcV43s6LIZ7kp6W9ApvOvidtobRe2i6XRYe7+e3e/NDJoElAUtiOvZ2N7250Em6lMjzjOCRcs8VeUVH4J8AlwcXbDq7lqeoO7NzCzfYBngXZAL+BAoBvwMdA1UvUcd28AdAIKgV9HyoqStt1zMpz31/b5mlk/4DHgISAfaAaMJViufwGlQL+kcdoDbYG/RAY3SlrW6RnOX9tylsVYp0cCS/dkLHuEu1f6B6wGTq2k/ADgc2AgsBUojJS1AByom8F89gP+F3gX2Ai8BOwXlvUhWLkbgHnAd5Piuwb4N/AFcC/BjvdkGNczwLeS4hkGvA98AIyOTKsr8Eo4nw+A24B9IuUOXAG8DbwTGXZU+PosYFk437WJaQM9gNLIdL4bLseGcLn6RMoeACYDc8LpvAq0SrPOqlqeOsAYYCVBY/socHBY9l447qbwr1u47juH5YPD8nbh+58CM6uablj+PWB+uHxvAD0iZfOA3wIvh8v3D6BJmuW7FFgHNMh0+wRuBGZH5nVpVdte0rR+SbAtfQXUjU4fyAOuDZf7c2Ah0DyyHQwPt40N4WdoGczTws/imkrqXAs8lzTsD8Df4u5n0e0xXNYPgansuo02Bx4H1oef8W3h8CEE++Yk4FPgHeDMSuaV2E4+J9g3zouUVTotoCXwQjju0wT745/TzOdbwOww3k/D1/lJ292l0flWEvNJ7Nx+1wBDwuH7hrG+F26Xd7KzjUpep48BXwI72LmPHQaMA/4cTmtT+Ll9AaxM3p6r2N5uCWP7LBx+cji8F0E7vC2c/hvh8IMI2sYPCNqm3wF5YdlR4XreCPwXmF7lNpThzlRZ4vhRGEwe8ARwa4qGLZPEMTn8cA8Pp3VCuHLbhCv2NKAe8AtgBWGDHsb3L4JkcTjwEbAIOA6oDzwHXJ8Uz18IEl4Hgg0t8UF1Jmj06oZ13wSujMToBBvwwZENJpo4Poh8gN8COkU3qvB1vTD+a4F9gO+HG8XRYfkD7PxGXRd4GJiWZp1VtTyjwnWTH67LKcBf0n02BN94rw5f30WwwV4eKft5BtM9PIz/LIIEc1r4vmlkB14Zfq77he8npFm+acCDmW6fBI3dUuC3yY1Fhg3qaqAknM5+KaZ/DbAYOJqgwT8WaBzZDmYDjYAjws+hVwbzPCYct2UldZoDZexsNOoQNFLnxt3PIttjGTAx/Pz2o+I2mkeQ8G8Ot6v6wEmRRncbMDSsdznBl5aUSRLoT9Bg1gEGEOzLh2YyLYIvcTeFMXYn2E/SJY7GwAXA/kBDgoZ7ZqS8fFugksRBcATwOTCIYF9tDBSEZTcDswj2/4YE7d3/y2SdRqY/LroMRNqPmNvbRWFsdYGrCZJV/VTzCIf9jWA/PQA4BFgAXBaW/QW4LvyMyj/rSrehDHemTQTZN/E3NFL+DPDH8PUggh2mXpwNOgz4S+DYFGW/AR5NqruW8FtsGN/gSPlfgTsi73/Gzm/KiXiOiZT/Abg3TVxXEn6ri3zI30+qE00c7wGXAQem2FETO+XJ4YdcJ1L+F2Bc+PoB4J5I2VnAW2niq3R5CBLfDyJlhxLsqHVJnTh+CsyKjHspYdIiOBrplMF0fwlMTYrzKeCSyA7860jZCOD/0izf06RJKmm2z3eB29nZ6M8DNlNx2/1tFdP6SYphiR15OdA3zbhOZIcjOAobk8H+dWI4bv0q6j0DXBu+Po3U+9mGpL/vpplWD4JvpfWThiW20W7h9HfZbwka3RWR9/uH8/52Vcsa1i9JrMPKpkWQfMuAAyLlj5AmcaSYTwHwaeT9PDJLHL8iss9HhhtB0msVGdaNnWceKl2nkWHjyDxxpN3eUsT3KWH7mWIezQiOoPeLDBsEPB++fojgi2J+JvNy94yvcZzr7o0if3cDmFlzoCfBt2KAvxNkrLMznG5Ck3C8lSnKDiNoEABw9x0Eh2iHR+qsi7z+MsX75AuLayKv3w3ngZm1MbPZZvahmX0G/D6MLd24yS4gaOjfDS9udkuzPGvC5YjGEF2eDyOvN6eIP1nK5SH49vQ3M9tgZhsIGvztBBtSKi8AJ5vZoQTfAB8FTjSzFgSHuiUZTPdIoH+iLCw/iSC5xF2+j5PGSyexfR7p7iPc/ctI2cikbfc3AGb2ZOQi8uBI/co+3+ak3kYT4n5uECwjVL2cDxIc3RP+n+bu25LqNEla1jfN7IjoBfNI3fXuviXNvJoD77p7WZry8uV0983hy5TLamYXm1lJZFtoT8V9Kt20DiNo+L+I1H2XNMxsfzObYmbvhvvui0AjM8tLN04a6T7jpgSJbWFkWf4vHJ5Q2TqtjrTbm5mNNrM3zWxjGMtB7NpWJRxJcPT0QST2KQRHHhCcxTFgQXhX10+qCmx3b8f9UTiNJ8zsQ2AVQQK4JOZ0/gtsAVqlKHufYMEBMDMjWKFrqxNwqHnk9RHhPADuAN4CWrv7gQSnkyxpXE83UXd/zd37EnwgMwka3mTvA83NLLruj2DPLM8agnPG0cakvruvTbUc7r6CoMH7GfCiu39GsGMPI/iGtiOD6a4hOOKIlh3g7hOqsVzPAGeY2QHVGLdS7n6m77yI/HC0qJLR1pB6G90dy8PpXlBFvceBfDPrCZxPkEiq5O7vRZYz2rhXtZxH7O5FczM7ErgbKCI4xdIIWMKu+1QqHwDfSvrsj6ik/tUEp3SOD/fd7okwYoad7jP+L8GX0HaR7fqgKtZpZeu42rGY2ckEjf0PCa7fNiK4PpFY1uT5riE44oh+sTjQ3dsBuPuH7j7U3Q8jOGNyu1Vxa/nuJo5LgP8hOCxM/F0AnGVmjSP19jWz+pG/CvMNG6T7gJvM7DAzyzOzbma2L0Hje7aZ/cDM6hFsIF8RXLyqrt+E31DaAT8GEnefNCS42LTJzI4hOOeaETPbx8wGm9lB4TfBzwgujCV7laBx/oWZ1bPgnu1zCM7nV1e65bkTuCHcgTGzpmbWNyxbH8aX/BuUFwh29BfC9/OS3lc13T8D54S3l+aFn3cPM8uvxnJNJdjo/2pmx5hZHTNrbMG98GdVY3q76x7gt2bW2gIdk7bzlCK3y7ZILvPgXMFVBJ/hjy24/biOmZ1kZndF6n0BzADuJzgaKM7aUu1qAUHDPcHMDgg/wxOrMZ0DCBqx9QBm9mOCI44qufu7QDHwP+G+dRLBfpJOQ4KGfYOZHQxcX414ITh7cqqZ/dDM6obbW0HYRt0N3Gxmh4TLc7iZnVHJtNYBjc3soGrGkm57a0hwGm89UNfMxhLccRidb4tEO+vuHxDchPK/ke2rlZmdEi5H/8j++SnBZ5aq7SqXaeJ4wireH/43M/sewZHA5DBjJf5mEVz8HRQZfxPBh5r4+36KeYwmuBD0GsGtvRMJrgMsJ7gQdCtB1j+H4DbFrRnGnsoLYYzPApPc/R+RGC4kuDh2Nzsb4Ez9CFgdHioPJ7gzqYIw7nOAMwmW53bgYnd/qxrLkZBueW4huJj3DzP7nOCC9vFhHJuBG4CXw8PX70Wm1ZDgUD/V+6qmuwboS3C0tp6g4b+GanxJcfevgFMJjgKfJkjGCwgOyV/NcDK3JW27C+PGEXETwReZf4Sx3EtwEbQqzQlOs6Q8qnT3GQQXjn9CcLS4juCul78nVX2QYJ97KM18NiQt61UZxJYqnu0E2+hRBNftSsP44k5nGcGdkq8QLFMHgrvpMnUhwXb1CUEiSLfcAH8k+Cz+S7A9/l/ceCE4QiM43Xx1ON8SgovSEFy/WwH8K9zHnyE4ykk3rbcIrl+uCvexw9LVTSPd9vYUwfL9h2C72kLFU6yPhf8/NrNF4euLCW7GWUaQHGaw8/RoF+BVC05lzgJGeRW/TUvcvfCNEH7je4fgomK687ciWWVmvyY4/z0l17GIZIMSh4iIxKK+qkREJJZv1BGHiIjsPh1xiIhILDnv3KxJkybeokWLXIchIlKrLFy48L/u3rTqmtmX88TRokULiov35C3pIiJ7HzNL+0v6PU2nqkREJBYlDhERiSXjxGFmvcxsuZmtMLMxaer80MyWWdBR1iPZC1NERGqKjK5xWNDD5GSC7pxLgdfMbFbYpUCiTmuCLolPdPdPE/25iMS1bds2SktL2bIlmx2NitRO9evXJz8/n3r16uU6lHKZXhzvStBv/ioAM5tG0B/RskidoQT9Vn0K4O4fZTNQ+eYoLS2lYcOGtGjRArO4nZuK7D3cnY8//pjS0lJatmyZ63DKZXqq6nAqdqJVSsXnR0DwRLc2Zvaymf3LzHqlm5iZDTOzYjMrXr9+fbyIZa+3ZcsWGjdurKQh33hmRuPGjWvc0Xc2L47XBVoTPPVqEHC3mTVKVdHd73L3QncvbNo0J7chSw2npCESqIn7QqaJYy0VHxaUz65dRJcSPHZ0m7u/Q9Dlb+vdD1FERGqSTK9xvAa0NrOWBAljIEFf+VEzCY407jezJgSnrirt010kEy3GzMnq9FZPqPrJxg0aNGDTpk1V1quOcePG0aBBA0aPHp1RDO+//z4jR45kxowZKett2LCBRx55hBEjRqSd1gknnMD8+fOZN28ekyZNYvbs2RnHO3PmTNq0aUPbtm0BGDt2LN27d+fUU0/NeBpxrF69mt69e7NkyZJqxZuJypbpn//8J8OHD6devXrMmTOHUaNGpV33lXnggQc4/fTTOeywuI/hqPkyShzuXmZmRQQPEMkD7nP3pWY2HigOH970FHC6mS0jeP70Ne7+cfqp7j06PNihWuMtvmRxliORvdFhhx1WacO1YcMGbr/99pSJo6ysjLp16zJ/fvUfmDlz5kx69+5d3siOHz++2tOqCcrKyipdpocffphf/epXXHTRRQDVShoQJI727dvvlYkj42sc7j7X3du4eyt3vyEcNjZMGnjgKndv6+4d3H13HoUqUuOsXLmSXr160blzZ04++WTeeustNm7cyJFHHsmOHcGTNr/44guaN2/Otm3bUtavzDvvvEO3bt3o0KEDv/71r8uHr169mvbtgyeuLl26lK5du1JQUEDHjh15++23GTNmDCtXrqSgoIBrrrmGefPmcfLJJ9OnT5/yhrFBg52Pxv7ss884++yzOfrooxk+fHh57NE6M2bMYMiQIcyfP59Zs2ZxzTXXUFBQwMqVKxkyZEh5Y/rss89y3HHH0aFDB37yk5/w1VdfAUFXQtdffz2dOnWiQ4cOKZd99erVnHzyyXTq1IlOnTrFSm7bt29n9OjRtG/fno4dO3LrrbcCsHDhQk455RQ6d+7MGWecwQcffABAjx49uPLKKyksLGTixIlpl+mee+7h0Ucf5Te/+Q2DBw+usO7TzXP8+PF06dKF9u3bM2zYMNydGTNmUFxczODBgykoKODLL79MG9uf/vQn2rZtS8eOHRk4cGDG6yCXct5XlUhtMWzYMO68805at27Nq6++yogRI3juuecoKCjghRdeoGfPnsyePZszzjiDevXqpa2fzqhRo7j88su5+OKLmTx5cso6d955J6NGjWLw4MFs3bqV7du3M2HCBJYsWUJJSQkA8+bNY9GiRSxZsiTlLZwLFixg2bJlHHnkkfTq1YvHH3+cfv36pZzfCSecQJ8+fejdu/cudbZs2cKQIUN49tlnadOmDRdffDF33HEHV155JQBNmjRh0aJF3H777UyaNIl77rmnwviHHHIITz/9NPXr1+ftt99m0KBBGfdbd9ddd7F69WpKSkqoW7cun3zyCdu2beNnP/sZf//732natCnTp0/nuuuu47777gNg69at5dN/++23Uy7TpZdeyksvvVRetnr16krnCVBUVMTYsWMB+NGPfsTs2bPp168ft912G5MmTaKwsLDS2CZMmMA777zDvvvuy4YNGzJa/lxT4hDJwKZNm5g/fz79+/cvH5b4dj1gwACmT59Oz549mTZtGiNGjKi0fjovv/wyf/3rX4GgAfrlL3+5S51u3bpxww03UFpayvnnn0/r1qnvP+natWva+/67du3Kd77zHQAGDRrESy+9lDZxVGb58uW0bNmSNm3aAHDJJZcwefLk8sRx/vnnA9C5c2cef/zxXcbftm0bRUVFlJSUkJeXx3/+85+M5/3MM88wfPhw6tYNmrCDDz6YJUuWsGTJEk477TQgOEI49NBDy8cZMCD2Y9OrnCfA888/zx/+8Ac2b97MJ598Qrt27TjnnHMqjLt8+fK0sXXs2JHBgwdz7rnncu655+5WjF8XJQ6RDOzYsYNGjRqVf6uP6tOnD9deey2ffPIJCxcu5Pvf/z5ffPFF2vqVqerWywsvvJDjjz+eOXPmcNZZZzFlypTyJBB1wAEHZDyPxPvo8Gz8bmDfffcFIC8vj7KyXZ/UfPPNN9OsWTPeeOMNduzYQf369Xdrfu5Ou3bteOWVV1KWV7ZOqmvLli2MGDGC4uJimjdvzrhx41Kuu8pimzNnDi+++CJPPPEEN9xwA4sXLy5PTjWVOjkUycCBBx5Iy5Yteeyxx4CgIXjjjTeA4NpAly5dGDVqFL179yYvL6/S+umceOKJTJsWXBp8+OGHU9ZZtWoV3/nOdxg5ciR9+/bl3//+Nw0bNuTzzz/PeFkWLFjAO++8w44dO5g+fTonnXQSAM2aNePNN99kx44d/O1vfyuvn276Rx99NKtXr2bFihUATJ06lVNOOSXjODZu3Mihhx5KnTp1mDp1Ktu3b8943NNOO40pU6aUJ6RPPvmEo48+mvXr15c3ztu2bWPp0qUpx4+7ztLNM5EkmjRpwqZNmypcSI/OI11sO3bsYM2aNfTs2ZOJEyeycePGPXY3XzbV7LQmQma3z2bb5s2byc/PL39/1VVX8fDDD3P55Zfzu9/9jm3btjFw4ECOPfZYIDgN0r9/f+bNm1c+TmX1U7nlllu48MILmThxIn379k1Z59FHH2Xq1KnUq1ePb3/721x77bUcfPDBnHjiibRv354zzzyTs8+ufH116dKFoqIiVqxYQc+ePTnvvPMAmDBhAr1796Zp06YUFhaWN2ADBw5k6NCh/OlPf6rQMNavX5/777+f/v37U1ZWRpcuXRg+fHjlKzZixIgRXHDBBTz00EP06tUr1hHBpZdeyn/+8x86duxIvXr1GDp0KEVFRcyYMYORI0eyceNGysrKuPLKK2nXrt0u46dbpurMc+jQobRv355vf/vbdOnSpbz+kCFDGD58OPvttx+vvPJKytjatGnDRRddxMaNG3F3Ro4cSaNGjTJeD7mS82eOFxYWem1/kJNux82uN998k+9+97u5DkOkxki1T5jZQncvzEU8OlUlIiKxKHGIiEgsShwiIhKLEoeIiMSixCEiIrEocYiISCxKHFLzjTsou38ZiHb4l/XFGTeOSZMmZRzD+++/X2mXIInecStzwgknAEE/Vr17944RbdA77rJlO58SPXbsWJ555plY00hnwYIFdO/enaOPPprjjjuOSy+9lM2bN/PAAw/QtGlTCgoKaNu2LXfffTdAheGJv2hs6cyaNYsJEyakLY92ZihV0w8ARWq4vbVb9XXr1tG/f3+mTZtGt27dgKBX3sSvrQcMGMBtt93GRx99RLt27ejTp0+F4ZkqKyujT58+5ePL7tMRh0iG1K16drtVnzx5Mpdcckl50gDo168fzZo1q1DvkEMOoVWrVrz77rtVfEI7JX61ffzxx/OLX/yCBx54gKKiIiBIWOeddx7HHnssxx57bHlS3b59O0OHDqVdu3acfvrpfPnllxnP75tGiUMkQ8OGDePWW29l4cKFTJo0iREjRnDQQQeVd6sO7NKtenL9yiS6VV+8eHGFXl2jEt2ql5SUUFxcTH5+PhMmTKBVq1aUlJRw4403ArBo0SJuueWWlD3OLliwgFtvvZVly5axcuXKlD3XJiS6Vb/xxhspKSmhVatW5WWJbtWnT5/O4sWLKSsr44477igvT3Srfvnll6c8NbdkyRI6d+5c6TqBoH+uVatWcdRRRwEwffr0Cqeq0jXwpaWlzJ8/n5tuuqnC8JEjR3LKKafwxhtvsGjRovIuSd5++22uuOIKli5dSqNGjcp7KpZdKXGIZCDaTXpBQQGXXXZZ+YN4Et2qA0ybNo0BAwZUWj+dl19+mUGDBgFBt+qpdOvWjd///vdMnDiRd999l/322y9lvUy6Vc/LyyvvVr06UnWr/uKLL5aXR7tVjz7XIlOJBDFo0CCmTJlS3o35gAEDKCkpKf9Ltw769+9PXl7eLsOfe+45Lr/8ciDoufegg4LrXi1btqSgoGC3Yv6m0DUOkQyoW/X4qupWvV27dixcuDBth45xrmVcd911zJkTPJs+sc7jdqOeiDcRs05VpacjDpEMqFv17HerXlRUxIMPPsirr75aPuzxxx9n3bp1GU8j4YYbbig/AqnKD37wg/JTatu3b2fjxo2x5/dNpyMOqfnGff07trpV3/Pdqjdr1oxp06YxevRoPvroI+rUqUP37t3p1atXpeNNnz69wum122+/vfx240zccsstDBs2jHvvvZe8vDzuuOOOtNeUJDV1q54F6lY9u9StukhF6lZdRERqNSUOERGJRYlDRERiUeIQEZFYlDhERCSWjG/HNbNewC1AHnCPu09IKh8C3AisDQfd5u73ZClOqW0y7IV21/F0T71ITZdR4jCzPGAycBpQCrxmZrPcPbk/4+nuXpTlGOUbrrq3O6eTyW3QDRo0KP8dQ7aNGzeOBg0aMHr06IxieP/99xk5cmTaHnI3bNjAI488UmlfWCeccALz589n3rx5TJo0idmzZ2cc78yZM2nTpk15h4ljx46le/funHrqqRlPI50FCxYwevRo1q1bx/7770/nzp256qqrOP3003nvvfeoU2fnSZGCggKmTJnCk08+yd13303Tpk3Ly+bNm0ejRo0qndedd97J/vvvz8UXX5yyvDrr5psq01NVXYEV7r7K3bcC04DUv1ASkazKtFv1VBJdfexut+rRZ16MHz8+K0kj0a36xIkTWb58Oa+//jq9evWicePGHHHEEfzzn/8sr/vWW2/x+eefc/zxxwPw85//vEJ/VVUljbKyMoYPH542aUg8mSaOw4E1kfel4bBkF5jZv81shpk1TzcxMxtmZsVmVrx+/foY4YrkjrpV//q6VR80aFB59ysQdB45cODADD6lnXr06MGVV15JYWEht9xyS4UHaK1YsYJTTz2VY489lk6dOrFy5Uog6MyyX79+HHPMMQwePJhc/0C6psrmxfEngBbu3hF4GngwXUV3v8vdC929MHq4KVKTqVv1r69b9R/+8IfMnDmz/Ihp+vTp5T0HA9x8883l3ar37Nkzbfxbt26luLiYq6++usLwwYMHc8UVV/DGG28wf/788vX9+uuv88c//pFly5axatUqXn755bTT/ibLNHGsBaJHEPnsvAgOgLt/7O5fhW/vAaruaF+kllC36rvak92qN2vWjPbt2/Pss89SUlJC3bp1KzzaNXqq6vnnn087nQEDBuwy7PPPP2ft2rXlfXTVr1+f/fffHwjWTX5+PnXq1KGgoEBdq6eR6V1VrwGtzawlQcIYCFwYrWBmh7p7Ys/oA7yZtShFckzdqse3u92qJ05XJU5dVeXHP/4xr7/+Oocddhhz584Fdr9r9VRxS4ZHHO5eBhQBTxEkhEfdfamZjTezxIN8R5rZUjN7AxgJDNkTAYvkgrpV//q7VT///POZO3cu06dPz+j6xv33309JSUl50kinYcOG5OfnM3PmTAC++uorNm/enHHcEuN3HO4+F5ibNGxs5PWvgF9lLzSRQC56EVa36rnvVr1Ro0Z069aNDz/8cJejqptvvpk///nP5e9nzpxJixYtMp731KlTueyyyxg7diz16tUrT/CSGXWrngXqVj2F3fgBoLpVF6lI3aqLiEitpsQhIiKxKHFIjZTrU6giNUVN3BeUOKTGqV+/Ph9//HGN3GFEvk7uzscff0z9+vVzHUoFGd9VJfJ1yc/Pp7S0FHVHIxJ8kYre4VcTKHFEVfdOoJZHZDeOb7h69eql/dWziOSeTlWJiEgse+URR4sxc6o13uqadRpRRKRG0hGHiIjEosQhIiKxKHGIiEgsShwiIhKLEoeIiMSixCEiIrEocYiISCxKHCIiEosSh4iIxKLEISIisShxiIhILEocIiISixKHiIjEosQhIiKxKHGIiEgsShwiIhKLEoeIiMQSK3GYWS8zW25mK8xsTCX1LjAzN7PC3Q9RRERqkowTh5nlAZOBM4G2wCAza5uiXkNgFPBqtoIUEZGaI84RR1dghbuvcvetwDSgb4p6vwUmAluyEJ+IiNQwcRLH4cCayPvScFg5M+sENHf3OVmITUREaqCsXRw3szrATcDVGdQdZmbFZla8fv36bIUgIiJfgziJYy3QPPI+PxyW0BBoD8wzs9XA94BZqS6Qu/td7l7o7oVNmzaNH7WIiORMnMTxGtDazFqa2T7AQGBWotDdN7p7E3dv4e4tgH8Bfdy9OKsRi4hITmWcONy9DCgCngLeBB5196VmNt7M+uypAEVEpGapG6eyu88F5iYNG5umbo/qhyUiIjWVfjkuIiKxxDrikG+eFmOqd2f16vrVm1+HBztUa7zFlyyu3gxFJDYdcYiISCxKHCIiEosSh4iIxKLEISIisShxiIhILEocIiISixKHiIjEosQhIiKxKHGIiEgsShwiIhKLEoeIiMSixCEiIrEocYiISCxKHCIiEosSh4iIxKLEISIisShxiIhILEocIiISixKHiIjEosQhIiKxKHGIiEgsShwiIhKLEoeIiMSixCEiIrHEShxm1svMlpvZCjMbk6J8uJktNrMSM3vJzNpmL1QREakJMk4cZpYHTAbOBNoCg1IkhkfcvYO7FwB/AG7KVqAiIlIzxDni6AqscPdV7r4VmAb0jVZw988ibw8AfPdDFBGRmqRujLqHA2si70uB45MrmdkVwFXAPsD3dys6ERGpcbJ+cdzdJ7t7K+CXwK9T1TGzYWZWbGbF69evz3YIIiKyB8VJHGuB5pH3+eGwdKYB56YqcPe73L3Q3QubNm0aIwQREcm1OInjNaC1mbU0s32AgcCsaAUzax15ezbw9u6HKCIiNUnG1zjcvczMioCngDzgPndfambjgWJ3nwUUmdmpwDbgU+CSPRG0iIjkTpyL47j7XGBu0rCxkdejshSXiIjUUPrluIiIxKLEISIisShxiIhILEocIiISixKHiIjEosQhIiKxKHGIiEgsShwiIhKLEoeIiMSixCEiIrEocYiISCxKHCIiEosSh4iIxKLEISIisShxiIhILEocIiISixKHiIjEosQhIiKxKHGIiEgsShwiIhKLEoeIiMSixCEiIrEocYiISCxKHCIiEosSh4iIxKLE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",
- "text/plain": [
- "<Figure size 432x288 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
"source": [
"levels_cpe = df_cpe_rich.level.value_counts().sort_index().rename('Level distribution CPE-rich')\n",
"levels_cve = df_cve_rich.level.value_counts().sort_index().rename('Level distribution CVE-rich')\n",
@@ -525,20 +145,10 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": null,
"id": "27423367",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "-0.7014575524888043 8.642059914383105e-43\n",
- "-0.7315824610567971 3.940161217161724e-48\n",
- "-0.3627281950234617 2.269867935814956e-10\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"spearmanr = functools.partial(stats.spearmanr, nan_policy=\"omit\", alternative=\"less\")\n",
"n_cves_level_corr, n_cves_level_pvalue = spearmanr(df_cve_rich.level, df_cve_rich.n_cves)\n",
@@ -553,47 +163,10 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": null,
"id": "1f99702a",
"metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAFgCAYAAACFYaNMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAcKElEQVR4nO3dfZBddZ3n8fc3Sae7052QkIfuTAATNKkxaYVhuyI7MpYjNTFEIUytxeDuKKKzuLtYMjXuA7oWjJGqtXZm2ZXS0UFkBcsRUEfNODwWWmqNT0QXpYMK4UmSSifhKZ2H7iZN//aPe7q5CR1yE+7pH93n/aq61ef+7ul7v31y8unTv/M7vxMpJSRJk29G7gIkqaoMYEnKxACWpEwMYEnKxACWpExm5S6gDOvXr0933nln7jIkaUxM1Dgtj4Cfeuqp3CVI0jFNywCWpKnAAJakTAxgScrEAJakTAxgScrEAJakTAxgScrEAJakTAxgScpkWl6KfLyeGxziof4D7BoYpmteK6u6O5jf3pa7LEnTXOUD+LnBIe7u28NVm/sYOjRKW8sMNl3Qw7qexYawpFJVvgviof4D4+ELMHRolKs29/FQ/4HMlUma7iofwLsGhsfDd8zQoVF2DQxnqkhSVVQ+gLvmtdLWcvhmaGuZQde81kwVSaqKygfwqu4ONl3QMx7CY33Aq7o7Mlcmabqr/Em4+e1trOtZzPJFax0FIWlSVT6AoRbCa1cYuJImlwEMHBgcZmv//vEj4DXdnXS02wcsqVyVD+ADg8P8c9/ul4wDfkfPEkNYUqkqfxJua//+CccBb+3fn7kySdNd5QPYccCScql8ADsOWFIulQ/gNd2dE44DXtPdmbkySdNd5U/CdbS38o6eJYeNA3YUhKTJUPkAhloIr11h4EqaXJXvgpCkXAxgScrEAJakTAxgScrEAJakTBwFARwcfJ6+/n3jw9B6uucyp3127rIkTXOVD+CDg8/znb5dL5mM5509XYawpFJVvguir3/fhJPx9PXvy1yZpOmu8gHsZDyScql8ADsZj6RcKh/APd1zJ5yMp6d7bubKJE13lT8JN6d9Nu/s6WL5ojmOgpA0qSofwFAL4bUrFuYuQ1LFVL4LQpJyMYAlKRMDWJIyMYAlKRMDWJIyMYAlKZPSAjgiTo2I70XEgxGxNSKuKNpPjoh7IuLh4uuCoj0i4rqI2BYRv4qIs+re65Ji/Ycj4pKyapakyVTmEfAI8JGU0mrgbODyiFgNXAncm1JaCdxbPAc4D1hZPC4DPge1wAauBt4ErAWuHgttSZrKSgvglNLOlNIviuV9wK+BZcBG4KZitZuAC4vljcDNqeYnwPyIWAq8HbgnpfRMSulZ4B5gfVl1S9JkmZQ+4IhYDvwB8FOgK6W0s3ipH+gqlpcBT9Z92/ai7WjtR37GZRGxJSK27Nmzp7k/gCSVoPQAjohO4BvAX6aUBupfSyklIDXjc1JK16eUelNKvYsXL27GW0pSqUoN4IhooRa+X0kp/WPRvKvoWqD4urto3wGcWvftpxRtR2uXpCmtzFEQAXwR+HVK6dq6lzYDYyMZLgG+Xdf+3mI0xNnA3qKr4i5gXUQsKE6+rSvaJGlKK3M2tDcD7wEeiIj7i7aPAZ8CbouIDwBPABcVr90ObAC2AQeBSwFSSs9ExCeB+4r1NqWUnimxbkmaFFHrhp1eent705YtW3KXIUljYqJGr4STpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKpLQAjogbI2J3RPTVtf11ROyIiPuLx4a61z4aEdsi4rcR8fa69vVF27aIuLKseiVpspV5BPwlYP0E7f87pXRm8bgdICJWAxcDa4rv+buImBkRM4HPAucBq4F3F+tK0pQ3q6w3Tin9ICKWN7j6RuCWlNIw8FhEbAPWFq9tSyk9ChARtxTrPtjseiVpsuXoA/5QRPyq6KJYULQtA56sW2d70Xa09peIiMsiYktEbNmzZ08ZdUtSU012AH8OeC1wJrAT+F/NeuOU0vUppd6UUu/ixYub9baSVJrSuiAmklLaNbYcEV8AvlM83QGcWrfqKUUbL9MuSVPapB4BR8TSuqd/CoyNkNgMXBwRrRGxAlgJ/Ay4D1gZESsiYja1E3WbJ7NmSSpLaUfAEfFV4K3AoojYDlwNvDUizgQS8DjwQYCU0taIuI3aybUR4PKU0gvF+3wIuAuYCdyYUtpaVs2SNJkipZS7hqbr7e1NW7ZsyV2GJI2JiRq9Ek6SMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSkTA1iSMjGAJSmThgI4It4cER3F8p9HxLUR8ZpyS5Ok6a3RI+DPAQcj4gzgI8AjwM2lVSVJFdBoAI+klBKwEfhMSumzwNzyypKk6W9Wg+vti4iPAu8B/igiZgAt5ZUlSdNfo0fAfwYMA+9PKfUDpwB/U1pVklQBDQVwEbrfAFqLpqeAb5ZVlCRVQaOjIP498HXg74umZcC3SqpJkiqh0S6Iy4E3AwMAKaWHgSVlFSVJVdBoAA+nlJ4fexIRs4BUTkmSVA2NBvD3I+JjQHtE/AnwNeCfyitLkqa/RgP4SmAP8ADwQeB24ONlFSVJVdDoOOALgZtTSl8osRZJqpRGj4DPBx6KiC9HxDuLPmBJ0ivQ6DjgS4HXUev7fTfwSETcUGZhkjTdNXwkm1I6FBF3UBv90E6tW+IvSqpLkqa9Ri/EOC8ivgQ8DPwb4Aagu8S6JGnaa/QI+L3ArcAHU0rDJdYjSZXRaAD/d2DnWPhGRDvQlVJ6vKzCJGm6a3QUxG3AC3XPX6B2Qk6SdIIaDeBZ9ZciF8uzyylJkqqh0QDeExEXjD2JiI3UpqSUJJ2gRvuA/wPwlYj4TPF8O7W7Y0iSTlBDAZxSegQ4OyI6i+f761+PiEtSSjeVUJ8kTVuNdkEAteA9MnwLVzSpHkmqjOMK4JcRTXofSaqMZgWwk7NL0nHyCFiSMmnoJFxEtFKbA2J5/feklDYVi//S9MokaZpr9Aj428BGYAQ4UPcAIKX0oSO/ISJujIjdEdFX13ZyRNwTEQ8XXxcU7RER10XEtoj4VUScVfc9lxTrPxwRl5zYjylJrz6NjgM+JaW0/jjf+0vAZ4Cb69quBO5NKX0qIq4snv834DxgZfF4E/A54E0RcTJwNdBLrZ/55xGxOaX07HHWIkmvOo0eAf8oIt5wPG+cUvoB8MwRzRuBsfHCN1GbU3is/eZU8xNgfkQsBd4O3JNSeqYI3XuA4/1FIEmvSo0eAZ8DvC8iHgOGqZ10SymlNx7n53WllHYWy/1AV7G8DHiybr3tRdvR2iVpyms0gM9r9genlFJENG34WkRcBlwGcNpppzXrbSWpNI3eE+6JiR4n8Hm7iq4Fiq+7i/YdwKl1651StB2tfaIar08p9aaUehcvXnwCpUnS5GrWOOBGbQbGRjJcQm10xVj7e4vREGcDe4uuiruAdRGxoBgxsa5ok6Qpr7Tby0fEV4G3AosiYju10QyfAm6LiA8ATwAXFavfDmwAtgEHgUsBUkrPRMQngfuK9TallI48sSdJU1KkNP2uIu7t7U1btmzJXYYkjZnwauHJ7oKQJBUMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKxACWpEwMYEnKpLR7wk0lBwaH2dq/n10Dw3TNa2VNdycd7a25y5I0zVU+gA8MDvPPfbu5anMfQ4dGaWuZwaYLenhHzxJDWFKpKt8FsbV//3j4AgwdGuWqzX1s7d+fuTJJ013lA3jXwPB4+I4ZOjTKroHhTBVJqorKB3DXvFbaWg7fDG0tM+iaZ/eDpHJVPoDXdHey6YKe8RAe6wNe092ZuTJJ013lT8J1tLfyjp4lLF+01lEQkiZV5QMYaiG8doWBK2lyVb4LQpJyMYAlKRMDWJIyMYAlKRMDWJIyMYAlKROHoQEjI6Ns3bmXnXuHWHpSO2uWzmPWLH83SSpX5QN4ZGSUb/1yBx//1ouzoV1zYQ8XnrHMEJZUqsonzNade8fDF2oT8Xz8W31s3bk3c2WSprvKB/DOvUMTzobWv3coU0WSqqLyAbz0pPYJZ0PrPqktU0WSqqLyAbxm6TyuufDw2dCuubCHNUtPylyZpOmu8ifhZs2awYVnLGPlkk769w7RfVIba5ae5Ak4SaWrfABDLYTPOHUBZ5yauxJJVeJhniRlYgBLUiYGsCRlYgBLUiYGsCRlYgBLUiYGsCRlYgBLUiYGsCRlYgBLUiYGsCRlYgBLUiZOxgM8NzjEQ/0H2DUwTNe8VlZ1dzC/3fmAJZUrSwBHxOPAPuAFYCSl1BsRJwO3AsuBx4GLUkrPRkQAnwY2AAeB96WUftGsWp4bHOLuvj1ctfnFe8JtuqCHdT2LDWFJpcrZBfHHKaUzU0q9xfMrgXtTSiuBe4vnAOcBK4vHZcDnmlnEQ/0HxsMXarcjumpzHw/1H2jmx0jSS7ya+oA3AjcVyzcBF9a135xqfgLMj4ilzfrQXQPDE94TbtfAcLM+QpImlCuAE3B3RPw8Ii4r2rpSSjuL5X6gq1heBjxZ973bi7bDRMRlEbElIrbs2bOn4UK65rVOeE+4rnmtDb+HJJ2IXAF8TkrpLGrdC5dHxFvqX0wpJWoh3bCU0vUppd6UUu/ixYsb/r5V3R1suuDwe8JtuqCHVd0dx/PxknTcspyESyntKL7ujohvAmuBXRGxNKW0s+hi2F2svgOov1nQKUVbU8xvb2Ndz2KWL1rrKAhJk2rSj4AjoiMi5o4tA+uAPmAzcEmx2iXAt4vlzcB7o+ZsYG9dV0VTzG9vY+2KhZx/xu+xdsVCw1fSpMhxBNwFfLM2uoxZwD+klO6MiPuA2yLiA8ATwEXF+rdTG4K2jdowtEsnv2RJar5JD+CU0qPAGRO0Pw2cO0F7Ai6fhNIkaVK9moahSVKlGMCSlIkBLEmZGMCSlIkBLEmZOB0lMDqaePzpA+waGKJrXhvLF3YwY0bkLkvSNFf5AB4dTdy5tZ+/uu3+8ekor73oTNav6TaEJZWq8l0Qjz99YDx8oTYT2l/ddj+PP+10lJLKVfkA3jUwNOF0lLv3DWWqSFJVVD6Au+a1TTgd5ZK5zgchqVyVD+DlCzu49qIzD5uO8tqLzmT5QqejlFSuyp+EmzEjWL+mm9//8B+xe98QS+Y6CkLS5Kh8AEMthE9f3MnpiztzlyKpQgxgYP/gEA/W3ZZ+dXcHnc4JLKlklQ/g/YND3D7Bbek39Cw2hCWVqvIn4R48ym3pH/S29JJKVvkA9rb0knKpfAB7W3pJuVQ+gFcf5bb0q70tvaSSVf4kXGd7GxuOuC29oyAkTYbKBzDUQnjtCgNX0uSqfBeEJOViAEtSJnZBAIODh3igf2C8D/gN3fNob2/JXZakaa7yATw4eIh/6ut/yZVw5/d0G8KSSlX5LogH+gcmvBLugf6BzJVJmu4qH8BP75/4SrinD3glnKRyVT6AF3ZOfCXcwg6vhJNUrsoH8LMHD/Hht6087Eq4D79tJc8dPJS5MknTXeVPwi2Y08KtW37HB845nQhICW7d8jv+5l1n5C5N0jRX+QDuaJ3Jxza8nkMjiQPDI3S0zeKNp7yejtaZuUuTNM1VPoAXzAm27hh5yTC0NyzznnCSylX5PuDtz45MOAxt+7MjmSuTNN1VPoCdkF1SLpUPYCdkl5RL5QN41VEmZF/lhOySSlb5k3Dz29tYd8SE7Ku6O5jvhOySSlb5AB4cPMTdW/dw1bfrRkFs7OH8NU7GI6lcle+C6OsfGA9fKEZBfLuPPifjkVSyygfwrn1HGQWxz1EQkspV+S6IhR2zaWuZcVgI1ybjmZ2xKuU2Opp4/OkD7BoYomteG8sXdjBjhhfnqLkqfwTc2TqTq89fc9goiKvPX0PHbC9FrqrR0cQdff1suO6HvPsLP2XDdT/kjr5+RkdT7tI0zVT+CLitJVgwZxZ/+64zOPD8CB2zZzFrJrTP9minqh7Zs5+PfO3+w84LfORr97Oq6xxWds3NXJ2mk8ofAfcPHOKGHz7KWAfEKHDDDx9l14DTUVbVY08dmPC8wGNPHchUkaarygfw/uER5ra2cFL7LFpnzWR++yzmtrawf9i5IKpqzuyZE14dOcduKTVZ5bsglp/czvo3LOWDX/75+DjgT1ywhtNObs9dmjLpaJ3JFeeu5NP3Pjy+T1xx7krPC6jpKh/AA0MvcPXmrYf19129eSs3Xbo2c2XK5en9z3Pzj584bJL+m3/8BCuXdOYuTdNM5QN4975hVi3p5C/e8loGh0eY0zqLL/zgEXY7DriyWltm8uzB5/ns97aNt7W1zKC1xSNgNVflA3jFojm8+02v4b9+/Zfjf25eff4aViyak7s0ZbJgTgsfO+/3eerA84wmmBm18eIL5nhpupqr8gF88PkX+Pz3t43/uQnw+e9v855wFfa6hZ38pn8f19/xm/Ffytdc2MPrFtoFoeaqfAA/e/AQf9Z7Gtd998UTLh9+20qe9a7IlfXQnn3c8rMn+J/vOmO8W+qmHz3KqiWdvPHUBbnL0zRS+QBeMKdlPHyhdhLuuu8+zM3v9yRcVe0fPsRFvacd1i216YI17B/2l7Kaa8oEcESsBz4NzARuSCl9qhnvOzB4aMJB9wND/merqtmzZvFQ/3N86dK17Nk3xJK5bdyzdQenLz4ld2nKZP/gEA/2HxifM3x1dwedTZgzfEoEcETMBD4L/AmwHbgvIjanlB58pe89f07LhJPxnNTmCZeqapk5yqru+bzv//7ssCPglpnOBVFF+weHuL1vz0vunL6hZ/ErDuGpciXcWmBbSunRlNLzwC3Axma88aEXRrni3JWHTcZzxbkrGRkdPcZ3aroaPhRcdcTY8Ks2b8UeiGp6sP/AhHdOf7D/lV+aPiWOgIFlwJN1z7cDb6pfISIuAy4DOO200xp+472DIxMOul+xaHUTytZU5BzRqlfmndOnSgAfU0rpeuB6gN7e3ob/Vlwyt3XCQfeLO70rclWN3Sn7yG4p75RdTWXuD1OlC2IHcGrd81OKtlfs9CVzuObCw++KfM2FPby2ywsxqso7Zave6qPsD6ubsD9ESq/+EwsRMQt4CDiXWvDeB/zblNLWidbv7e1NW7Zsafj9nxsc4qG6M5zeFVnuE6rXhFEQE04wPiW6IFJKIxHxIeAuasPQbjxa+J6I+e1trF3hfy69yH1C9TpL2h+mRAADpJRuB27PXYckNctU6QOWpGnHAJakTAxgScrEAJakTAxgScrEAJakTAxgScrEAJakTKbEpcjHKyL2AE+cwLcuAp5qcjnWMHVrgFdHHdYw9Wt4KqW0/sjGaRnAJyoitqSUeq3BGl5NdVjD9K3BLghJysQAlqRMDODDXZ+7AKxhzKuhBnh11GENNdOuBvuAJSkTj4AlKRMDWJIyqUQAR8SNEbE7IvqO8npExHURsS0ifhURZ9W9dklEPFw8Limxhn9XfPYDEfGjiDij7rXHi/b7I6Lxey0dfw1vjYi9xefcHxFX1b22PiJ+W2yjK0us4b/UfX5fRLwQEScXrzVrO5waEd+LiAcjYmtEXDHBOqXuEw3WMBn7RCN1lLpfNFhDqftFRLRFxM8i4pdFDZ+YYJ3WiLi1+Fl/GhHL6177aNH+24h4e8MfnFKa9g/gLcBZQN9RXt8A3EHtvk1nAz8t2k8GHi2+LiiWF5RUwx+OvTdw3lgNxfPHgUWTsB3eCnxngvaZwCPA6cBs4JfA6jJqOGLd84HvlrAdlgJnFctzqd1vcPUR65S6TzRYw2TsE43UUep+0UgNZe8Xxb9zZ7HcAvwUOPuIdf4T8Pli+WLg1mJ5dfGztwIrim0ys5HPrcQRcErpB8AzL7PKRuDmVPMTYH5ELAXeDtyTUnompfQscA/wkqtZmlFDSulHxWcA/ITanZ+bqoHtcDRrgW0ppUdTSs8Dt1DbZmXX8G7gqyfyOceoYWdK6RfF8j7g18CyI1YrdZ9opIZJ2ica2RZH05T94gRqaPp+Ufw77y+ethSPI0cobARuKpa/DpwbEVG035JSGk4pPQZso7ZtjqkSAdyAZcCTdc+3F21Hay/bB6gdfY1JwN0R8fOIuKzkz/7XxZ9hd0TEmqJt0rdDRMyhFmzfqGtu+nYo/oz8A2pHPPUmbZ94mRrqlb5PHKOOSdkvjrUtytwvImJmRNwP7Kb2S/ao+0RKaQTYCyzkFWyHKXNTzqqIiD+m9p/tnLrmc1JKOyJiCXBPRPymOJJstl8Ar0kp7Y+IDcC3gJUlfE4jzgf+JaVUf7Tc1O0QEZ3U/iP/ZUpp4BXWW1oNk7FPHKOOSdkvGvz3KG2/SCm9AJwZEfOBb0ZET0ppwnMVzeIRcM0O4NS656cUbUdrL0VEvBG4AdiYUnp6rD2ltKP4uhv4Jg3+eXO8UkoDY3+GpdpdqFsiYhGTvB0KF3PEn5nN3A4R0ULtP/tXUkr/OMEqpe8TDdQwKfvEseqYjP2ikW1RKHW/KN7nOeB7vLRrafznjYhZwEnA07yS7fBKOq6n0gNYztFPPr2Dw0+4/KxoPxl4jNrJlgXF8skl1XAatb6jPzyivQOYW7f8I2B9STV08+LFOWuB3xXbZBa1k00rePFky5oyaiheP4laP3FHGduh+JluBv7Py6xT6j7RYA2l7xMN1lHqftFIDWXvF8BiYH6x3A78EHjnEetczuEn4W4rltdw+Em4R2nwJFwluiAi4qvUzuQuiojtwNXUOtlJKX0euJ3aWe9twEHg0uK1ZyLik8B9xVttSof/6dPMGq6i1p/0d7V+fUZSbdalLmp/DkFth/+HlNKdJdXwLuA/RsQIMAhcnGp72EhEfAi4i9qZ7xtTSltLqgHgT4G7U0oH6r61adsBeDPwHuCBos8P4GPUAm+y9olGaih9n2iwjrL3i0ZqgHL3i6XATRExk1rPwG0ppe9ExCZgS0ppM/BF4MsRsY3aL4KLi/q2RsRtwIPACHB5qnVnHJOXIktSJvYBS1ImBrAkZWIAS1ImBrAkZWIAS1ImBrAqJyL2H3ut/O+p6c8AlqRMDGBVWjHP7H1Rm3f3E0XbpyLi8rp1/joi/vPR1pdOlAGsyoqIddQmlVkLnAn8q4h4C3ArcFHdqhcBt77M+tIJqcSlyNJRrCse/6943gmsTCl9MSKWRMTvUZsj4NmU0pNRu1PDS9YHypiZThVgAKvKAvgfKaW/n+C1r1GbA6Gb2hHxsdaXjptdEKqyu4D3F/PQEhHLijlloRa6F1ML4a81sL503DwCVmWllO6OiNcDPy5m09oP/Dmwu5jhai6wI6W081jrZ/kBNOU5G5okZWIXhCRlYgBLUiYGsCRlYgBLUiYGsCRlYgBLUiYGsCRl8v8BFKfod9rthGQAAAAASUVORK5CYII=",
- "text/plain": [
- "<Figure size 360x360 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- "<Figure size 360x360 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- "<Figure size 360x360 with 1 Axes>"
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
"source": [
"g = sns.relplot(data=df_cve_rich, x=\"level\", y=\"n_cves\")\n",
"plt.show()\n",
@@ -606,7 +179,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "d63d24cd",
+ "id": "6c3c2ec4-3fab-48ad-aacb-6f54277abe66",
"metadata": {},
"outputs": [],
"source": []