Vex在NixOS中的不合理有效性
2026年10月11日,7分钟阅读由于今年大量的LLM辅助漏洞报告,我们听到了许多关于流行(开源)项目维护者在应对这些报告时面临的困难。大多数项目已放慢功能开发,以专注于漏洞评估;其他项目仍在寻找应对洪水的办法。虽然我们往往听到许多来自维护者的报告,但关于流程另一面的人的声音却较少:系统管理员、SRE和应用安全团队也面临着相同的挑战。新的(可能未修复的)CVE每天都在出现。每个CVE都需要被评估,受影响的软件需要更新或手动修补。如果你在这个领域待了一段时间,你很快就会听说VEX文档和声明。VEX代表漏洞利用可交换性:一种机器可读的安全通告,它告诉你一个特定软件产品是否实际上暴露于已知漏洞。听起来不错!但是我们能否实际以自动化的方式生成这些声明,以支持可扩展的漏洞评估过程呢?答案总是:这要视情况而定。基于SBOM的扫描让我们看一下当前许多项目和组织中使用的安全流程。给定一个简单的Go程序: package main import ( "fmt" "golang.org/x/text/width" ) func main () { fmt.Println(width.Widen.String("hello, world")) } 使用golang.org/x/text库的v0.38.0版本: module maybe - vulnerable go 1.26.8 require golang.org/x/text v0.38.0 扫描程序以查找漏洞的常用方法是:生成软件物料清单(SBOM),扫描SBOM中注明的组件以查找已知漏洞。使用这种方法的每个团队都会看到以下漏洞(截至2026年10月11日): $ syft scan . -o cyclonedx-json > sbom.cdx $ grype sbom:sbom.cdx 姓名 已安装 固定在 类型 漏洞 严重性 EPSS风险 golang.org/x/text v0.38.0 0.39.0 go-module GO-2026-5970 高 0.5% (第39) 0.4 golang.org/x/text v0.38.0 0.41.0 go-module GO-2026-6629 高 0.3% (第24) 0.3 如果我们稍微做点功课,我们会发现这两个漏洞实际上都不影响我们的程序。GO-2026-5970仅存在于golang.org/x/text/unicode/norm包中,而GO-2026-6629仅存在于golang.org/x/text/secure/precis包中。它们都没有在我们的程序中被使用!我们可以利用这些信息,制作两个声明表示vulnerable_code_not_present,但这存在两个问题:这个手动过程随着你的代码库和依赖项数量的增加而扩展。每当你更改代码时,都必须重复完整的分析,因为你可能开始使用易受攻击的功能。可达性分析幸运的是,对于我们来说,编程语言是高度结构化的,因此机器很容易(至少对于机器来说)对它们进行推理。此外,Go团队在工作中非常勤勉,当新漏洞被记录时,使用ecosystem_specific字段记录每个受影响的导入路径和符号。这是govulncheck的动力所在。它使用我们的源代码和Go漏洞数据库的静态分析,将报告缩小到只有可能影响应用程序的那些。对我们的示例应用程序执行它显示: $ govulncheck . === 符号结果 === 没有发现漏洞。您的代码受到0个漏洞的影响。此扫描还发现您导入的包中有1个漏洞和您所需的模块中有14个漏洞,但您的代码似乎没有调用这些漏洞。如果你有这种能力,你可以设想关闭Dependabot,并仅在受影响时修补。这对于操作系统来说是行不通的让我们看看这将如何在操作系统中工作。我们使用这个Dockerfile: FROM debian:trixie@sha256:913f6706df59a68922d1dd08f78c2476560a8d367897200a6005b00e5f67c2d5 RUN apt-get update \ && apt-get install -y --no-install-recommends openssh-server \ && mkdir -p /run/sshd \ && rm -rf /var/lib/apt/lists/* 然后像以前一样扫描: $ docker build -t opensshpam . $ syft scan docker:opensshpam -o cyclonedx-json > sbom.cdx $ grype sbom:sbom.cdx ✔ 扫描漏洞 [284个漏洞匹配] ├── 按严重性:3个危急,65个高风险,80个中风险,39个低风险,97个可忽略 └── 按状态:0个修复,284个未修复,0个已忽略 姓名 已安装 固定在 类型 漏洞 严重性 EPSS风险 [ ... ] openssh-server 1:10.0p1-7+deb13u4 deb CVE-2007-2768 可忽略 8.6% (第94) 0.4 [ ... ] 在此演示中,我们将专注于针对单个漏洞CVE-2007-2768的评估过程,将剩下的283个作为读者练习。🫠 短话长说,如果sshd通过PAM使用OPIE一次性密码,攻击者可以从登录提示中判断用户名是否存在。自2007年以来它一直未在上游修复。手动检查我们的sshd配置,我们可以看到PAM已启用,但键盘交互式身份验证已禁用。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡