← 所有漏洞检测工具// Linux · Docker · PHP · JavaScript · Python

你的服务器是否在运行存在已知漏洞的软件?

免费发布于 2026年11月3日

大多数攻击并不需要新漏洞:它们利用的是几个月前就已公开、却存在于无人升级的库中的漏洞。从外部扫描看不到这些。我的服务器从内部检查——操作系统、其上的软件、编程语言以及应用程序的每一个库——并告诉你应该优先升级什么。

检查你的服务器

  1. 在服务器上安装 wpsbom(开源、只读):
    curl -fsSL https://raw.githubusercontent.com/ice-s/wpsbom/main/install.sh | sh
  2. 扫描服务器、应用程序目录以及正在运行的容器:
    sudo wpsbom scan / --path /srv/shop --docker \
      --out-dir scans/ -o cyclonedx-json
  3. 将 scans/host-host.cdx.json 上传到我的服务器。
上传扫描文件
My Server 漏洞示意图

为什么要检查服务器本身

网站扫描只能看到服务器对外展示的内容:响应头、暴露的文件、TLS。它无法发现三层之下的某个 Composer 包、构建过程中的某个 npm 依赖或后台 worker 的某个 Python 库存在已公开的 CVE——而一旦漏洞利用代码公开,攻击者扫描的正是这些。

唯一可靠的方法是列出实际安装的内容,并与漏洞数据库进行比对。这正是本检查所做的工作,比对对象为 OSV 以及 CISA 的在野利用漏洞清单(KEV)。

检查哪些内容

服务器按软件栈自下而上读取:

  1. 操作系统:发行版和内核。
  2. 系统库和已安装软件:openssl、nginx、docker、redis…
  3. 编程语言和框架:PHP 与 Laravel、JavaScript 与 Vue、Python…
  4. 语言库:每个应用程序的 Composer、npm 和 PyPI 包,包括直接依赖和传递依赖。

使用 --docker 时,每个正在运行的容器也会被原地读取,无需导出其镜像。

如何检查

wpsbom 是一个适用于 Linux 和 macOS 的开源单文件程序。它只读取文件,除非你要求,否则不会发送任何内容。

curl -fsSL https://raw.githubusercontent.com/ice-s/wpsbom/main/install.sh | sh

它无法猜测你的代码位于何处,因此请用 --path 指定每个应用程序目录,数量不限:

sudo wpsbom scan / --path /srv/shop --path /srv/worker --docker \
  --out-dir scans/ -o cyclonedx-json

几秒钟后,scans/ 中会生成一个服务器文件,以及每个容器镜像各一个文件。然后登录,从账户菜单打开我的服务器,为项目命名,选择服务器并拖入文件:

创建我的服务器项目并拖入扫描文件
每台服务器或每个镜像对应一个项目。再次上传会替换之前的扫描结果。
  • 只扫描应用程序库、不含操作系统软件包:--no-os。
  • 扫描单个镜像:wpsbom scan --image acme/shop:1.4 -o cyclonedx-json=shop.cdx.json。
  • 也支持 syft、Trivy 或 cdxgen 生成的文件(CycloneDX 或 SPDX JSON)。

解读结果

软件栈概括了整台服务器:每个区块显示其软件包以及按严重程度划分的未修复漏洞,区块左边缘的颜色取决于其中最严重的一个。点击某个区块即可只查看该部分。

演示服务器的软件栈:操作系统、已安装软件、编程语言、库
演示数据。库直接位于其所属语言的上方。

漏洞列表采用相同的层级结构。位置说明某个软件包属于哪个应用程序,以及它是直接依赖还是传递依赖;修复版本给出修复的版本号和可复制的命令。

按软件栈层级分组的漏洞,附修复版本和升级命令
演示数据:某个 Vite 版本存在一个被列入 CISA KEV 的漏洞。

优先修复什么

  1. 已被利用(KEV)和严重:这些漏洞正被用于攻击真实服务器,请今天就升级。
  2. 应用程序的直接依赖:升级它们通常会同时带来传递依赖的修复版本。
  3. dev 软件包(构建工具)在生产服务器上影响较小,除非构建过程在该服务器上运行。

升级后,重新扫描并上传:列表会显示剩余的问题。若想无需手动操作即可保持最新,请在集成下创建 API 令牌,让 wpsbom 发送扫描结果,例如通过每日 cron 任务:

export WPSBOM_TOKEN=wp_…
sudo -E wpsbom push / --project demo-web-01 \
  --path /srv/shop --path /srv/worker --docker

常见问题

Watchpost 会连接我的服务器吗?不会。扫描由你自己运行;我们只读取你上传的文件。

会发送哪些数据?软件包名称、版本以及锁文件的路径。不包含源代码、配置或密钥。主机名会被替换为哈希值,上传的文件本身不会保留,项目仅对你的账户可见。

支持哪些系统?wpsbom 可读取 Debian、Ubuntu 和 Alpine 软件包,以及 Composer、npm / yarn、PyPI、Go 和 RubyGems 库;若文件来自其他工具,Maven 和 NuGet 库也会进行比对。操作系统软件包会被列出,但暂不与漏洞进行比对。

Kubernetes 呢?wpsbom k8s 在集群内运行,并将每个工作负载关联到其镜像的扫描结果。

本检测工具只回答一个问题。免费扫描可检查 50 多项任何人都能看到的内容——暴露的文件、泄露的密钥、TLS、响应头、DNS——验证域名后还可解锁 200 多项深度检查。

运行完整扫描