mcpField
D
Draugr

Draugr

本地服务
draugr.dev安全8今天更新

关于 Draugr

Draugr 是面向 CI 和发布流程的安全扫描工具,适合需要汇总应用与基础设施风险的团队。它调用既有扫描器,并结合暴露度、重要性、可利用性和可达性为发现项排序。

主要功能

  1. 01覆盖 SAST、SCA、密钥与 IaC 扫描
  2. 02支持 DAST、镜像、云与 Kubernetes 检查
  3. 03按风险上下文排列发现项
  4. 04仅以新增发现项阻止变更
  5. 05输出 SARIF、JSON、HTML 等报告

适用场景

  1. 01在发布前检查应用及其运行环境
  2. 02让 CI 仅因新增安全问题失败
  3. 03将扫描结果提交至代码扫描平台

MCP 相关

通过 `draugr mcp` 将 Draugr 作为 MCP 服务提供给 AI 客户端。扫描使用已提交的项目描述文件;探测在线主机或向第三方发送数据等操作会先征求许可。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbdraugr-0.157.0.mcpb0.157.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Draugr

通过单个文件在 CI 中进行安全扫描,并根据暴露程度、严重性、可利用性和可达性对每项发现进行排序。

CI OpenSSF Scorecard OpenSSF Best Practices Latest release License

描述你的应用。Draugr 会处理其余一切。

每个应用都存在一些没人刻意引入的问题:一个后来发现有漏洞的库、一条意外提交的密码,或一个敞开大门的服务器设置。Draugr 会找出这些问题,判断哪些问题对你的应用真正重要,并在发布前回答你真正想问的问题:这样发布安全吗?

它会替你运行 Trivy、Semgrep、Gitleaks 等成熟的开源扫描器,因此你不必在它们之间做选择、逐一配置,或阅读五份扫描结果。你只需在一个文件中描述一次你构建的内容:仓库所在位置、构建的镜像、对外开放的内容,以及运行所依托的基础设施。Draugr 会选择适用的检查,为每项检查运行合适的工具,并生成可交给他人查阅的证据。你可以接入已有的付费扫描器,也可以使用开源默认配置。

发现会排序,而不是简单列出。扫描器标注的“严重”描述的是漏洞在抽象情况下可能有多糟。对于你应用中可被陌生人访问的服务,同一漏洞可能需要立即处理;而在只有三人使用的内部工具中,它可能只需排入待办事项。扫描器无法区分这两者,因为差异不在代码里,而在你编写的文件中。并且,draugr diff 只会因新发现而阻止拉取请求,因此继承两百个已有问题不会让每次变更都无法合并。

快速入门 · 查看实际效果 · 检查内容 · 接入流水线 · 文档 · Draugr 不作何种保证 · 安全

查看实际效果

对演示沙盒进行 Draugr 扫描:结果为 FAIL,显示四个优先级区间、已运行的两项控制及其优先级计数、每项控制的评估依据、各组件的结果、可达性分析结论、一项已接受的风险,以及按优先级排序的发现。第五项是 jQuery 1.8.3,标记为列入 CISA 的已遭利用漏洞目录。

**优先级(P1–P4)并非严重性。**严重性描述的是漏洞在最坏情况下可能有多糟。优先级会结合漏洞所在应用部分的暴露程度和重要性进行权衡,而扫描器无法判断这些因素,因为它们不在代码里。

draugr-dev/draugr-demo 是一个刻意设置为易受攻击、并接入 Draugr 的应用:每项控制都会触发,发现会显示在仓库的 Security → Code scanning 标签页中,示例拉取请求则展示新增与修复的差异。

快速入门

curl -fsSL https://draugr.dev/install.sh | sh

安装到 ~/.local/bin,无需 sudo。安装前会进行验证,并说明运行了哪些检查:检查归档文件的 SHA-256 是否与发行版的 checksums.txt 一致;如果 PATH 中有 cosign,还会验证该文件的 cosign 签名。任何检查失败时都不会安装任何内容。脚本可在仓库中查看;其他安装方式,包括 Homebrew 和 go install,请参阅安装指南。

draugr init            # describe this project in a draugr.saga.yaml
draugr tools install   # fetch the scanners it needs, pinned and verified
draugr scan            # scan what the descriptor describes

tools install 会根据旁边的描述文件选择安装内容,因此小型服务只会安装三个扫描器,而不是 Draugr 能配置的所有扫描器。为多个项目准备机器时,可使用 --all。

接下来,描述你实际交付的内容:

project: my-app
release:
  version: "1.0"
config:
  controls:
    images:
      enabled: true
components:
  - name: web
    images:
      - image: alpine:3.19
draugr scan draugr.saga.yaml            # console summary; exits non-zero on fail
draugr scan draugr.saga.yaml -o out/    # also writes report.json + results.sarif
draugr scan draugr.saga.yaml --format markdown   # or html, junit, json, sarif

你的编辑器已经认识这个文件。 Draugr 的 JSON Schema 已在 SchemaStore 中注册,因此打开任何 *.saga.yaml 文件时,无需任何配置即可获得自动补全、悬停文档和拼写错误警告。

也可以让发现功能为你编写描述文件:

draugr survey github repos --org my-org -o draugr.saga.yaml
draugr survey k8s images --namespace prod -o draugr.saga.yaml

完整流程:快速入门。

要在真实仓库中设置吗? 请在置顶讨论中回复,说明仓库的内容以及你运行的扫描器;我们会与你一起编写描述文件,包括需要判断的暴露程度和关键性。

检查内容

每项控制都由 Draugr 调用的工具提供支持,而非打包在 Draugr 中,因此每个扫描器都遵循自己的许可证,你也可以替换它。

控制项检查内容默认配置
sca你所依赖的库中已知的漏洞Trivy、Grype;Mend 可选
secrets意外提交的密码和密钥,包括历史记录Gitleaks
sast你编写的代码中可能让他人入侵的模式Semgrep;Go 可选 gosec
iacTerraform、Kubernetes 和 Dockerfile 中可能造成安全隐患的设置Trivy
images容器镜像中包含的内容Trivy;Grype 可选
licenses你未编写的代码所附带的许可条款Trivy
dast只能从运行中的应用外部发现的问题Nuclei;经身份验证,并根据 OpenAPI 规范运行
headers网站如何响应浏览器原生
tls证书和加密原生
kubernetes对照 CIS 基准检查你的 Kubernetes 集群原生;kube-bench 可选
cloud对照 CIS 基准检查你的云账户当前状态Prowler
threats你交互的对象是否列在公开的阻止列表中abuse.ch URLhaus
provenance镜像是否由你预期的构建工具签名Sigstore cosign

所有扫描器、它们发送的数据及其适用的许可条款: 集成目录。

此外还包括:内容哈希缓存、每个仓库和镜像的 SBOM、KEV/EPSS 丰富信息、各控制项的门槛,以及保留在报告中的抑制项,并附上提交者给出的原因,而非直接消失。

在你的流水线中

第一方 GitHub Action 会安装 Draugr、配置扫描器,并将合并后的 SARIF 交给代码扫描,在 Security 选项卡中显示一个简洁的 Draugr 工具:

permissions:
  contents: read
  security-events: write

steps:
  - uses: actions/checkout@v4
  - id: draugr
    uses: draugr-dev/draugr@v0     # pin @vX.Y.Z for reproducible CI
    with:
      saga: draugr.saga.yaml
      tools: true                  # provision the scanners the controls need
  - if: always()                   # publish findings even when the gate fails
    uses: github/codeql-action/upload-sarif@v3
    with:
      sarif_file: ${{ steps.draugr.outputs.sarif }}

GitHub Actions · GitLab,包含 include、GitLab 自有的报告格式,以及固定的合并请求评论 · Azure Pipelines,步骤模板

来自 AI 编码助手。 让它检查一项更改,它就会用自己找到的扫描器,在自己选择的范围内执行检查。draugr mcp 会通过 Model Context Protocol 提供 Draugr,因此它会读取你已提交的描述文件。对于读取代码检出内容以外的扫描操作,例如探测在线主机或向第三方发送数据,会先征求你的同意。

claude mcp add draugr -- draugr mcp

请参阅在 AI 编码助手中使用 Draugr。

Draugr MCP 服务的 Glama 评分

文档

文档索引 →

Draugr 不作何种承诺

通过判定意味着你配置的控制项未发现其要查找的问题。这并不代表你的软件是安全的。对于描述文件未声明的内容、你未启用的控制项,以及底层扫描器遗漏的内容,它不会作出任何说明。许可证发现结果仅供参考,不构成法律建议。Draugr 根据 Apache-2.0 许可提供,不附带任何保证。

详情包括扫描器适用的条款,以及扫描在线端点时你对授权所负的责任:范围与免责声明。

安全与供应链

安全工具应以身作则,接受自身检查。Draugr 做到了:

  • 标准输出。每项发现都会规范化为 SARIF 2.1.0(OASIS),因此结果可流入 GitHub / GitLab / Azure DevOps 代码扫描,以及任何支持 SARIF 的工具。

  • 签名发布版本 + 来源证明。发布归档中的 checksums.txt 会使用 cosign(Sigstore)进行无密钥签名,并生成 checksums.txt.sigstore.json 捆绑包;每次发布都会提供 SLSA 构建来源证明(gh attestation verify …);安装前请先验证(操作指南)。

  • SBOM。每个发布归档都会附带 Syft SBOM。

  • 经过验证的工具。draugr tools install 会下载通过 SHA-256 固定版本的扫描器;如果上游提供签名,也会验证 cosign 签名。此外,cosign 本身也可安装,因此验证过程无需依赖外部工具。

  • 我们也会扫描自身。每次 PR 中,Draugr 都会扫描自己的仓库(自用测试);我们还通过 OpenSSF Scorecard(上方徽章)跟踪供应链安全状况。

    该评分卡显示 SAST: 0,值得说明我们为何保留这个分数。本仓库确实会运行静态分析:每次扫描都会通过 Draugr 自带的 sast 控制运行 Semgrep 和 gosec;每个拉取请求还会通过 golangci-lint 再次运行 gosec。Scorecard 会检查一组它所识别的特定工具,而我们的工具不在其中。

    纯粹为了提高分数而添加第三个静态分析器,就像编写只触及代码、却不验证任何内容的测试:指标提高了,指标背后的实际属性却没有改善。我们宁愿分数不准确,也要确保分析真实有效。如果你想检查分析结果而非分数,可在仓库的 Security 选项卡中查看由扫描本身上传的发现。

  • 报告漏洞。请参阅 SECURITY.md。

开发

需要 Go 1.26+。make build 会构建 ./bin/draugr;make gate 会运行完整的本地检查,包括 fmt、vet、lint、带覆盖率的竞态测试和 govulncheck。请参阅 CONTRIBUTING.md。

许可证

Draugr 根据 Apache License 2.0 授权。

评论

支持 Markdown

第一次接触 MCP?

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

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