Google發佈OSV-Scanner,一款開源漏洞(Open Source Vulnerability,OSV)資料庫前端介面。OSV 資料庫是一個分散式開源資料庫,透過 OSV 格式存儲漏洞資訊。OSV-Scanner 會基於 OSV 資料庫評估專案的依賴關係,顯示與專案相關的所有漏洞。
在掃描專案時,OSV-Scanner 首先透過分析清單、軟體資料清單(SBOM)和程式碼提交雜湊值來確定正在使用的所有依賴關係。這些資訊用於查詢 OSV 資料庫,並報告與專案相關的漏洞。漏洞通過表格的形式或基於 JSON 的 OSV 格式(可選)進行報告。
OSV格式提供了一種機器可讀的 JSON 模式,用於表示漏洞資訊。這種格式被用來加強與實際開源包中使用的命名和方案一致的版本規範。谷歌高級工程師Oliver Chang和谷歌傑出工程師Russ Cox表示,這種方法「可以用來描述任意開源生態系統中的漏洞,同時又不需要依賴生態系統的邏輯來處理它們。」
"schema_version": "1.3.0",
"id": "GHSA-c3g4-w6cv-6v7h",
"modified": "2022-04-01T13:56:42Z",
"published": "2022-04-01T13:56:42Z",
"aliases": [ "CVE-2022-27651" ],
"summary": "Non-empty default inheritable capabilities for linux container in Buildah",
"details": "A bug was found in Buildah where containers were created ...",
"affected": [
{
"package": {
"ecosystem": "Go",
"name": "github.com/containers/buildah"
},
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.25.0"
}
]
}
]
}
],
"references": [
{
"type": "WEB",
"url": "https://github.com/containers/buildah/commit/..."
},
{
"type": "PACKAGE",
"url": "https://github.com/containers/buildah"
}
]
}
使用命令 osv-scanner -r /path/to/your/dir 來掃描目錄,找到 lockfiles、SBOM 和 git 目錄。選項-r 用於進行遞迴掃描。目前支援使用 Package URL 的 SPDX 和 CycloneDX SBOM,也支援多種鎖檔,包括 yarn.lock、composer.lock、go.mod 和 Gemfile.lock。
OSV-Scanner 也可以用於掃描 Debian 鏡像中已安裝的套件,找出其中的漏洞:$ osv-scanner --docker image_name:latest。這需要安裝 docker,並且目前不掃描 docker 容器的檔案系統。關於這項預覽功能的更多細節可以在GitHub Issue中找到。
OSV-Scanner 可以被配置為根據漏洞 ID 來忽略漏洞,在配置時還可以可選地提供忽略的到期日期和原因。忽略的漏洞透過 IgnoreVulns 鍵來指定。
[[IgnoredVulns]]
id = "GO-2022-0968"
# ignoreUntil = 2022-11-09
reason = "No ssh servers are connected to or hosted in Go lang"
OSV-Scanner 也被整合到OpensSSF Scorecard的漏洞檢測中。Scorecard 是一種自動化的安全工具,用於識別開源項目中有風險的供應鏈。因為整合了 OSV-Scanner,Scorecard 的能力得到了擴展,可以掃描專案本身的漏洞和項目依賴關係中的漏洞。
谷歌軟體工程師Rex Pan分享了 OSV-Scanner 後續的一些細節。該團隊打算提供一個獨立的 CI 操作,以便可以進一步與工作流整合。Pan 說,他們希望通過「向 CVE 添加精確的提交級中繼資料來構建一個高品質的 C/C++漏洞資料庫」,以此來改進對 C 和 C++的支援。
OSV-Scanner 基於Apache License 2.0發行許可,程式碼託管在GitHub上。關於這個項目的更多細節可以在發表的文章中找到。
資料來源:
加入電腦王Facebook粉絲團