mcpField
S
Stackurity

Stackurity

远程服务
stackurity.dev其他0今天更新

关于 Stackurity

Stackurity 是面向安全与基础设施团队的开源、可自托管软件清单和升级情报系统。它汇总主机、代码库、容器、云服务与 Kubernetes 中的组件,并关联漏洞、生命周期和修复信息,同时明确标出覆盖缺口。

主要功能

  1. 01汇总主机、代码库和镜像清单
  2. 02漏洞与生命周期情报
  3. 03基于证据的升级建议
  4. 04覆盖缺口与风险告警
  5. 05团队修复工作流

适用场景

  1. 01发现资产中的漏洞或生命周期终止组件
  2. 02依据暴露面和利用信号排列事件优先级
  3. 03为受影响组件选择修复版本
  4. 04跟踪修复进度和覆盖缺口

MCP 相关

Stackurity 在 `/mcp` 提供远程 MCP 服务,供 AI 助手使用。客户端可查询漏洞、优先级、升级目标和修复状态;获准后也可分配或暂缓问题等。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://app.stackurity.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Stackurity

开源、可自托管的软件清单与升级情报平台。Stackurity 可发现主机、代码仓库、容器和 SBOM 中的软件,为每个组件保留证据,并清晰展示未检查的内容。

**状态:**目前处于早期发布阶段,仍在积极开发中;请参阅最新版本和更新日志。社区版包含清单、情报、警报与团队工作流、堆栈包、Kubernetes、Jira 和工作区;有关 Pro 和 Enterprise 的新增功能,请参阅下方的已知限制和版本。

当前功能

  • **主机:**面向 Linux(dpkg、rpm 和 apk)和 Windows(注册表)的只读、非特权 Agent。在 Linux 上,它还会查找通过包管理器以外方式安装的运行时和服务(例如通过 nvm 安装的 Node.js、下载的数据库二进制文件),并标记需要重启才能运行已修补代码的主机。它还可以读取已部署应用实际安装的库(node_modules、Python 虚拟环境、Composer vendor,以及从 CDN 加载或复制到网站中的前端库),因此每个应用都会在同一个堆栈视图中显示其主机、Web 服务、运行时和代码库。使用 --docker(可选启用)时,它还会读取主机上运行的 Docker 容器所用镜像,包括本地构建的镜像,但不会在容器中运行任何内容(详情)。
  • **代码库:**npm、yarn、pnpm、Composer、Poetry、Pipenv、pip(固定版本)、Go 模块、Bundler、NuGet 和 Dart/Flutter pub,包括直接依赖和传递依赖。更多技术以堆栈包的形式提供:由管理员在其资产环境需要时安装的、经过签名并在沙箱中运行的 WebAssembly 读取器,例如 Java(Maven 和 Gradle)和 Rust(Cargo)。扫描在服务器端从 Git 或 CI 中运行,可根据严重性、优先级或已知漏洞利用阈值使流水线失败。锁文件按数据解析,不会执行任何内容。
  • **托管云服务:**通过只读插件获取 AWS RDS、Aurora、ElastiCache、EKS、Lambda 和 OpenSearch 的版本,并跟踪其生命周期。
  • **Kubernetes:**通过一个命令(Helm chart 或 kubectl apply)连接;该命令会在集群中运行一个轻量级只读报告器,通过 HTTPS 向 Stackurity 推送数据(或使用从 API 服务器拉取数据的插件)。它会映射各工作负载运行的镜像(依据节点拉取的摘要)、集群外部可访问的工作负载(LoadBalancer、NodePort、Ingress、主机网络),以及用于生命周期跟踪的控制平面、kubelet、运行时和节点操作系统版本。运行中的镜像使用内置的 Syft 扫描,暴露情况会纳入风险评分。无法读取的命名空间和无法拉取的镜像会标记为未评估。请参阅 docs/kubernetes.md。
  • **插件:**公开、语言无关的插件契约,并提供一致性检查器。请参阅 docs/plugins.md。
  • **容器镜像:**通过内置的 Syft,从镜像仓库引用生成清单。无需 Docker 守护进程。
  • **SBOM:**导入 CycloneDX 和 SPDX JSON,导出 CycloneDX 1.6。
  • **VEX:**导入 OpenVEX 和 CycloneDX VEX(独立文件、嵌入 SBOM,或作为带签名的证明),并按包 URL、镜像摘要或 CPE 匹配组件;只有在安全用户批准,或由绑定到密钥或令牌的来源应用后,not_affected 声明才会隐藏发现项;版本或镜像发生变化时,该声明将不再生效。决策(误报、缓解措施、导入的声明)可导出为 OpenVEX 或 CycloneDX VEX。请参阅 docs/vex.md。
  • **漏洞情报:**适用于 npm、Packagist、PyPI、Go、Maven、RubyGems、crates.io、NuGet、Pub、Debian、Ubuntu、Alpine、Rocky、Alma、Red Hat Enterprise Linux、SUSE Linux Enterprise 和 openSUSE Leap 的 OSV 数据,以及 Amazon 为 Amazon Linux 2 和 2023 发布的自有公告(ALAS)。版本会按照各生态系统自身的规则进行比较,因此能正确处理发行版回移补丁。CVSS v3 和 v4 向量在本地评分(v4 与 FIRST 参考计算器的评分方式一致)。不同来源的公告会去重,CISA KEV 会标记已知漏洞利用,FIRST EPSS 会预测漏洞利用可能性;数据每小时增量刷新。
  • **版本和生命周期:**获取 npm、Packagist、PyPI、Go 模块、crates.io、RubyGems、NuGet、Maven Central 和 pub.dev 的最新稳定版本(补丁、次要或主要版本,以及已弃用的软件包和已撤回、已撤销或未列出的版本),并从 endoflife.date 获取操作系统、运行时和框架的生命周期终止数据。
  • **升级建议:**对于每个存在未解决发现项的已安装组件,提供最低修复版本、建议升级到的版本(同一主要版本线中能修复所有未解决发现项的最新稳定版本,或操作系统软件包对应发行版的修复版本)、是否属于主要版本升级、已撤回的版本和发行线支持情况,并说明原因。建议仅基于已存储的数据生成;缺失的数据会明确报告为缺失。
  • **统一清单:**提供稳定的资产标识、冲突检测与合并,以及资产间的关系。每个组件都会记录其来源、时间戳、置信度和证据。
  • **全局搜索:**输入 CVE 或公告 ID、带或不带版本号的软件包、主机名、镜像摘要或代码库 URL、团队、发现项标题中的词语或工作区成员,即可跳转到受影响的资产、组件和发现项。
  • **覆盖率台账:**不受支持、已跳过、失败、部分覆盖和数据过期的区域会与覆盖正常的区域分开显示,绝不会被视为覆盖正常。
  • **基于风险的告警:**可配置 P1–P4 优先级,并说明各项影响因素(KEV、EPSS、暴露情况、生产环境、关键性、修复可用性、置信度);SOS 规则绝不单独依赖严重性;事件会将发现项分组,因此同一个 CVE 出现在 50 台服务器上时只会生成一个告警。docs/risk.md 说明优先级的判定方式、证据缺失时的处理方式,以及评分测试所依据的场景和不变量。
  • **团队工作流:**支持确认、分配、风险接受(需要安全角色、填写原因、设置受策略限制的有效期,并已采取缓解措施)和截止日期,并保留完整历史记录。Pro 支持多个团队、按团队路由以及升级处理逾期问题。
  • **修复成效:**按优先级统计修复耗时、相对于风险策略的 SLA 合规情况、通过新鲜清单解决的发现项与通过公告数据变更解决的发现项、解决后再次出现的发现项,以及修复成功、失败和回滚情况;始终提供各项比率所依据的数量。
  • **证据(Pro):**用于审计和安全问卷的定期补丁管理报告:覆盖率、未解决和逾期发现项、解决耗时、有效例外情况以及副本偏差。
  • **AI 助手:**设置 STACKURITY_BASE_URL 为服务器的公开 https:// 地址后,将 https://<your server>/mcp 粘贴到 Claude、ChatGPT 或任何支持远程 MCP 服务的助手中并登录,无需安装任何内容。助手可以查询哪些内容存在漏洞、为何具有该优先级、应升级到哪个版本,以及某项更改是否修复了问题,并提供引用 ID 和来源;如果允许更改,还可以创建项目、添加服务器、分配、暂缓或忽略问题,并再次检查修复情况(docs/ai-assistants.md)。
  • **通知:**支持电子邮件、Slack、Microsoft Teams 和带签名的 Webhook:发送少量消息,引导用户前往仪表板(紧急问题立即通知、按资产和修复方案分组通知、每日或每周摘要,以及新服务器首次扫描时发送简短的“已连接”消息);支持按优先级、团队和环境路由,设置免打扰时段、每小时上限、重试,并提供投递日志。馈送、采集器和覆盖率故障也会触发告警。
  • **Jira:**在 Jira Cloud 或 Data Center 中为每个事件创建一个问题;随着发现项加入和优先级变化持续更新,事件解决时添加评论并可选择转换状态,并在仪表板中提供链接。
  • **受控修复(Pro):**可选启用、受策略范围限制的升级,支持审批关卡、维护窗口、先进行金丝雀发布再分阶段推广、依据新采集的清单和运行状况检查进行验证,以及失败时停止并在软件包管理器支持的情况下尽力回滚。主机逐台注册,并绑定令牌和本地允许列表。代码库会创建 Renovate 拉取请求,以保留代码审查流程。请参阅 docs/remediation.md。
  • **工作区:**一个安装实例可供多个组织使用,并通过 PostgreSQL 行级安全和应用本身实现彼此隔离。
  • **仪表板、API 和 CLI:**支持基于角色的访问控制(查看者、工程师、安全、管理员、采集器)、API 令牌、完整的审计日志,以及单点登录(Pro)。

快速开始

Stackurity 可自托管:清单和发现结果保留在你自己的服务器上,主机和流水线会向其发送数据。无需允许外部访问你的机器。

如果你不想运行服务器,Stackurity Cloud 可为你运行相同版本,地址为 app.stackurity.dev:注册即可享受 14 天免费试用,无需信用卡,然后选择一个方案。自行托管 Community 版始终免费,无需账户,也没有资产数量限制;以下步骤均不需要 Stackurity Cloud。

有两种运行方式。两种方式都会像生产环境一样保留会话 Cookie Secure 属性:Chrome、Edge 和 Firefox 会将 http://localhost 视为安全来源,因此在自己的机器上试用无需更改任何安全设置。

在自己的机器上试用

1. 运行服务器(Docker Compose):

git clone https://github.com/stackurity/stackurity.git
cd stackurity/deploy
./init-secrets.sh
docker compose up -d   # pulls the signed ghcr.io/stackurity/stackurity image; add --build to build from source
docker compose logs stackurity | grep -A2 "one-time token"

在同一台机器上的 Chrome、Edge 或 Firefox 中打开 http://localhost:8080,并使用日志中的令牌创建首个管理员。Safari 不会向 http://localhost 发送 Secure Cookie,因此无法在 Safari 中保持登录状态:请使用其他浏览器;或者,仅用于本地评估,切勿用于生产环境,使用 STACKURITY_PORT=127.0.0.1:8080 STACKURITY_COOKIE_SECURE=false STACKURITY_BASE_URL=http://localhost:8080 docker compose up -d 启动,这样也能让端口不暴露到网络上(原因)。

2. 五分钟内查看运行效果:使用带标签的演示环境:一台安装了过时软件包和生命周期结束运行时的服务器、部署在该服务器上的应用,以及两个代码库。漏洞源同步完成后,就会显示发现结果:

docker compose exec stackurity stackurity admin load-demo        # --remove deletes it again

3. 接入自己的环境:

  • **服务器:**在 Assets → Add server 中创建安装命令,并在每台 Linux 主机上运行。Agent 以只读、非特权方式运行,并报告操作系统软件包、运行时,以及已部署应用安装的库。
  • **代码:**在 Settings → Integrations 下添加代码库,或在 CI 中运行 stackurity scan . --fail-on critical,以阻止包含漏洞的更改。
  • **云:**AWS 插件使用只读角色读取托管服务版本;Kubernetes 报告器(在集群中运行)或插件则使用只读服务账户读取集群的工作负载、镜像和暴露情况。
  • **人员和工具:**邀请团队成员(或通过 Pro 启用单点登录),将告警发送到 Slack、Teams 或电子邮件,并将 AI 助手连接到 /mcp,并选择所需的组织、项目和角色。

**4. 采取行动:**Fixes 会将发现结果归纳为具体的升级方案,Dashboard 会显示当前需要你处理的事项。使用 Pro 时,可选择启用修复功能,在已纳管的主机上应用经批准的升级,并为代码库创建 Renovate 拉取请求。

生产环境安装

将 Stackurity 放在提供 HTTPS 的反向代理(Caddy、nginx、Traefik)后面,设置 STACKURITY_BASE_URL=https://stackurity.example.com,并保持 STACKURITY_COOKIE_SECURE 为默认值。安装步骤、Kubernetes(Helm)、备份和升级检查清单见 docs/install.md。切勿在其他人可以访问的服务器上设置 STACKURITY_COOKIE_SECURE=false:如果这样设置,服务器日志会发出警告,Platform health 也会显示警告。

有关 TLS、备份、升级、Kubernetes(Helm)、Agent 和插件,请参阅 docs/install.md。docs/compatibility.md 列出了支持的平台及其可评估的内容,docs/verification.md 介绍了各项声明的测试方式,CHANGELOG.md 记录了每个版本的变更。docs/security-audit.md 介绍了威胁模型以及版本签名方式,docs/operations.md 则列出了推荐的告警、对应的操作手册和运维演练。API 说明见 docs/api.md,所有出站连接均列于 docs/network.md。

已知限制

  • 多个服务副本可以共用一个数据库,但不能混用不同版本:升级时会先停止所有副本,然后再启动新版本(升级检查清单)。如果数据库已由更新版本迁移,服务将拒绝启动;已在运行的服务则会无法通过 /readyz 检查。
  • 漏洞匹配涵盖语言包、Debian、Ubuntu(不包括 Pro)、Alpine、Rocky、Alma、RHEL、Oracle Linux、SUSE、openSUSE Leap,以及 Amazon Linux 2 和 2023。CentOS、Fedora 和 Amazon Linux 1 软件包会列入清单,但仍属于待评估范围。
  • Red Hat 公告会与各主版本的主流版本线匹配;Extended Update Support(EUS、AUS)版本线不在建模范围内,因此,停留在 EUS 次版本上的主机可能会显示其已通过 EUS 获得的修复。SUSE 的公告数据不提供严重性,因此 SUSE 发现项的严重性会显示为“未知”,并根据其他风险因素确定优先级。
  • 只有当主题名称包含版本线时,才会读取 Amazon Linux 2 extras 主题(kernel-5.10、php8.2、postgresql14);其他主题(docker、epel 等)中的软件包仅与核心公告匹配。
  • 发行版(latest-version)数据涵盖上述语言包注册表,不涵盖操作系统软件包。Maven Central 不提供发行日期,RubyGems 会隐藏已撤回的版本,因此这两者都不会显示发行信息。生命周期数据涵盖 endoflife.date 跟踪的所有内容。
  • 升级建议会从完整的稳定版本列表中选取主版本线中的最新发行版;从本次发行版起,发行版同步会记录这些信息。在某个组件的发行版数据下次刷新(每天一次)之前,只会显示已知发行日期的版本。主版本线由开头的版本号确定,0.x 软件包也适用。
  • 重新打开的发现项从开始记录它们的那次升级起计数;更早发生的重新打开不会被记录。
  • 在软件包管理器之外发现的运行时只会进行生命周期(停止支持)跟踪,不会匹配漏洞。
  • 当上游已停止支持的发行版软件包(例如 Ubuntu 22.04 上的 nginx 1.18)所在的发行版仍受支持时,不会产生停止支持发现项。Agent 不会记录软件包来自哪个仓库:Ondřej Surý 的 PHP 仓库、nginx.org、NodeSource、PGDG、Remi 和 MySQL 的 APT 仓库中的构建版本会根据其版本识别,并保留上游日期;其他第三方构建则视为发行版自带软件包。Ubuntu universe 软件包只能通过 Ubuntu Pro 获得安全修复,因此不会与 main 区分(详情)。
  • Java 需要 Java stack pack;仅凭 pom.xml 只能发现直接依赖项。Windows 热修复和 Microsoft Store 应用会报告为不受支持的覆盖范围。
  • 单点登录(OpenID Connect 或 SAML)允许用户加入每个安装实例中的一个工作区;不支持 SAML 单点注销。
  • Kubernetes 暴露检测涵盖 Services、Ingresses 和主机网络,不涵盖 Gateway API 路由或服务网格。扫描运行中的镜像时不会使用注册表凭据,因此使用拉取密钥的镜像会显示为覆盖范围扫描失败,除非将其添加为容器镜像集成。Kubernetes CVE 不会进行匹配(仅进行生命周期跟踪)。
  • 修复适用于 Linux 软件包(apt、dnf、yum、zypper、apk),也适用于通过 Renovate 管理的代码仓库。在 rpm 系统上,不会自动升级以多个版本并存方式安装的内核及其他软件包。

版本

Community 免费提供,功能完整,可用于查找问题并确定修复优先级。Pro 增加自动修复、多团队工作流、证据报告和单点登录;Enterprise 则增加企业技术包。docs/editions.md 提供了包含限制和前提条件的完整对照表;许可证信息请参阅版本与许可证。

原则

  • 可自托管,无需供应商账户,也不收集遥测数据。项目唯一的自动请求是检查是否有新版本:匿名读取公开的版本发布列表,不会发送任何关于你的信息,在本地进行比对,并可通过 STACKURITY_UPDATE_CHECK=off 关闭。仪表板中的发送反馈只会在用户按下发送时发送其填写的内容;设置 STACKURITY_FEEDBACK_URL= 可将其关闭。
  • 每条发现都附有来源、时间戳和可信度。
  • 缺失或过时的数据会标记为缺失或过时,绝不会被视为正常。
  • 刷新威胁情报绝不会更改你的软件。任何更改都需要明确的策略。

试点与报告错误结果

docs/pilot.md 介绍了为期两到四周的试点,可托管,也可部署在自己的服务器上。如果 Stackurity 报告了不适用的内容、遗漏了已知漏洞,或无法检查你需要检查的内容,请使用问题表单;经确认的错误发现和遗漏发现会成为永久测试用例。

贡献与安全

请参阅 CONTRIBUTING.md 和 SECURITY.md。

许可证

Apache-2.0。请参阅 LICENSE 和 NOTICE。版权所有 2026 OUTDO INC。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。