docker通過sbom獲取組件版本和漏洞編號的方法
更新時間:2025年05月29日 10:41:23 作者:din4e
本文主要介紹了docker通過sbom獲取組件版本和漏洞編號的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
最近做 SCA 測試,需要獲取鏡像的組件和漏洞,使用 docker scout 工具,通過 sbom 獲取組件名稱、版本和漏洞編號。
docker scout
獲取組件信息
docker scout sbom --format spdx --output 2025.05.25.sbom.spdx.json nginx:stable-perl
v SBOM of image already cached, 244 packages indexed
v Report written to 2025.05.25.sbom.spdx.json
使用 SCA 工具處理組件信息。
獲取 CVE 編號

docker scout cves --format sbom nginx:stable-perl > sbom.cve.json
按行輸出 CVE 編號
import json
import re
from charset_normalizer import detect
def extract_cve_ids(file_path):
"""
Extract all CVE IDs from a JSON file.
"""
cve_pattern = re.compile(r'CVE-\d{4}-\d{4,}') # Regex pattern for CVE IDs
cve_ids = []
# Detect the file encoding
with open(file_path, 'rb') as file:
raw_data = file.read()
detected = detect(raw_data)
encoding = detected['encoding']
# Read the JSON file with the detected encoding
with open(file_path, 'r', encoding=encoding) as file:
data = json.load(file)
# Recursively search for CVE IDs in the JSON structure
def search_cve(obj):
if isinstance(obj, dict):
for key, value in obj.items():
search_cve(value)
elif isinstance(obj, list):
for item in obj:
search_cve(item)
elif isinstance(obj, str):
matches = cve_pattern.findall(obj)
cve_ids.extend(matches)
search_cve(data)
return cve_ids
# File path to 1.json
file_path = "sbom.cve.json"
# Extract CVE IDs and print them
cve_ids = extract_cve_ids(file_path)
print("\n".join(cve_ids))到此這篇關(guān)于docker通過sbom獲取組件版本和漏洞編號的方法的文章就介紹到這了,更多相關(guān)docker sbom獲取組件版本和漏洞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服
Maven大家應(yīng)該都比較熟了,我這里就用安卓人狂喜的Gradle來演示一下,在build.gradle中編寫腳本即可上傳,接下來通過本文給大家介紹下利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服的問題,感興趣的朋友一起看看吧2022-01-01
使用Golang玩轉(zhuǎn)Docker API的實踐
這篇文章主要介紹了使用Golang玩轉(zhuǎn)Docker API的實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
局域網(wǎng)內(nèi)部署 Docker Registry(推薦)
本文將從創(chuàng)建單機的 Docker Registry 開始,逐步完成局域網(wǎng)內(nèi)可用的 Docker Registry 的創(chuàng)建,并重點解釋如何使用 IP 地址訪問 Registry 的方法2017-05-05

