🔒 安全工具 全难度 📦 TrailOfBits

security-and-hardening

OWASP Top 10、认证模式、密钥管理、依赖审计、三层边界系统。

9.1 /10 ★★★★★
📅 2026-06-15 · 🕒 5 分钟阅读 · 最后更新 2026-06-15 · 来源: TrailOfBits · 分析测评
#security#trailofbits#hardening#audit#supply-chain#secure-contracts
📄 相关文章

📊 评分明细

功能完备度
9.1 核心功能齐全
🎯 易用性
8.8 安装即用
🔧 可扩展性
9.4 支持定制和 fork
🔗 生态协同
9 可链式调用
🛡️ 稳定性
9.7 CI 集成验证

🎯 适用场景

securitytrailofbitshardeningauditsupply-chainsecure-contracts

security-and-hardening 快速入门

Trail of Bits 出品的 Web/后端安全加固 Skill,把 OWASP Top 10 全部条目内化进 AI,写代码时主动避开常见漏洞。

这是什么?解决什么问题?

security-and-hardening 是 Trail of Bits 14 个 Skill 中专门针对 Web/后端安全加固的那一个。它不只覆盖 OWASP Top 10(SQL 注入、XSS、SSRF、IDOR、反序列化漏洞等),还包含认证模式(JWT/OAuth/Session)、密钥管理(从环境变量到 KMS)、依赖审计(npm audit/Snyk/Cargo audit)、三层边界(网络层/应用层/数据层)的纵深防御策略。

对小白来说,这个 Skill 把”安全开发”从一句口号变成可落地的检查清单。即使你只写一个 Node.js Express 后端,Skill 也会逐条对照”你的登录接口有没有速率限制?""你的 SQL 拼接是不是还在用字符串?""你的依赖有没有 3 年没更新?“,给出具体修复建议。

准备工作

  • 支持 Agent:Claude Code(主推)、支持 Skills 协议的 Agent。
  • 运行环境:Node.js / Python / Go / Java 对应工具链;可选 Snyk/Trivy/Semgrep。
  • 目标项目:任意 Web 后端、API 服务、CLI 工具。
  • 基础知识:理解 HTTP、Cookie、数据库基本概念即可。

3 步快速上手

第 1 步:获取 Skill

git clone https://github.com/trailofbits/skills.git
cp -r skills/security-and-hardening ~/.claude/skills/

第 2 步:在 Claude Code 中调用

cd your-webapp
claude

发起加固请求:

请用 security-and-hardening Skill 审查 src/api/,重点检查认证、密钥管理、依赖审计三层。

第 3 步:本地扫描交叉验证

# Semgrep OWASP 规则集
semgrep --config=p/owasp-top-ten src/

# npm 依赖审计
npm audit --production

把机器扫描结果喂给 AI,做第二轮语义分析。

常见踩坑

  1. 只在应用层加固:Skill 强调”三层边界”(网络、应用、数据),只在代码层改远远不够。
  2. 把密钥硬编码到代码里:Skill 会强制提示改为环境变量或 KMS,这是最常见的”被扫雷”问题。
  3. JWT 没用 HTTPS:Skill 会提示 secret 强度不够、过期时间不合理、refresh token 流程缺陷。
  4. CORS 配置过宽:Access-Control-Allow-Origin: * 配合 Allow-Credentials: true 是经典漏洞,Skill 会揪出来。
  5. 错误信息泄露栈:res.send(err.stack) 在生产环境是致命问题,Skill 强制要求”用户层只给友好提示,详情写日志”。
  6. 依赖从不升级:Skill 会建议”高严重性依赖 30 天内必须升级”,但实际项目往往拖到爆雷。

初级用法

  • 新接口必评审:每写一个 POST/PUT/DELETE 接口,跑一次 Skill 评审。
  • 依赖定期审计:每周跑一次 npm audit,结果贴给 AI 分析。
  • 认证流程梳理:把”登录-会话-登出”流程图给 AI,让它按 Skill 流程图逐节点检查。

高级玩法

  • 自定义 P0 清单:把 Skill 输出的”高危项”沉淀为公司基线,作为新员工 onboarding 必读。
  • CI 卡门禁:把 Semgrep 规则集 + Skill 评审串到 GitHub Actions,严重级别 fail PR。
  • 威胁建模:用 Skill 内置的 STRIDE 模板,让 AI 帮你做新功能威胁建模。

小技巧

  • 关注”高严重性 CVE”邮件订阅,Skill 给的修复建议里会引用相关 CVE 编号。
  • 用 Skill 评审认证代码时,务必提供完整的登录/登出/Token 刷新流程。
  • 不要在 prompt 里说”我的应用很安全”,保持谦虚,Skill 会揪出你没看到的问题。
  • 把 Skill 输出作为安全培训教材,新员工轮岗时过一遍。
  • 升级依赖前先让 AI 评估 breaking change,Skill 会提示版本兼容性问题。

常见问题 FAQ

Q1: 这个 Skill 跟 security-and-hardening 有什么关系?必须装吗?

A: Skill 是给 AI Agent 用的”技能包”,能告诉 Agent 怎么按特定规范工作。不是必须装——如果你的项目规模小、要求不高,不装也能用。但装上能让 Agent 输出的质量更高、更符合最佳实践,推荐装。

Q2: 这个 Skill 适合哪些 AI Agent?Cursor?Claude Code?其他?

A: security-and-hardening 来自 TrailOfBits,主要面向支持 Skill 机制的 Agent。常见兼容 Agent 包括 Claude Code、Cursor、OpenCode、Windsurf 等。具体兼容性请查 Skill 官方文档。

Q3: 装了这个 Skill 后,会拖慢 Agent 响应吗?

A: 会的——Skill 通常会增加 prompt 长度,导致响应变慢、token 消耗增加。但质量提升明显。建议:1) 只装项目必需的 Skill;2) 用 Skill 启动/加载/卸载机制按需加载;3) 定期清理不用的 Skill。

Q4: 怎么验证 Skill 装对了?

A: 在 Agent 中输入”列出已加载的 Skill”或类似命令。如果 Skill 出现在列表里,说明装对了。然后用 Skill 跑一个相关任务,看输出是否符合 Skill 规范。

Q5: 这个 Skill 有许可证吗?能商用吗?

A: 取决于 security-and-hardening 的许可证。常见许可证包括 MIT(完全自由)、Apache-2.0(自由但有专利条款)、源可用(可看不能用)、GPL(强开源)。商用前请查仓库 LICENSE 文件。

进阶学习建议

如果想进一步用好 security-and-hardening,建议按以下路径学习:

第 1 周:熟练使用

  • 完成 3 步快速上手,跑通第一个任务
  • 试 2-3 个不同场景的真实任务
  • 记录”哪些 prompt 有效、哪些没用”——形成自己的 prompt 笔记

第 2 周:理解机制

  • 阅读 Skill 的官方文档(README、SKILL.md)
  • 了解 Skill 的”触发关键词”和”输出格式”
  • 学习”如何用更具体的描述触发 Skill”

第 3-4 周:组合使用

  • 跟其他 Skill 组合(比如代码审查 + 性能优化)
  • 跟其他 Agent 工具组合(Skill + MCP + 自定义脚本)
  • 沉淀团队/个人的 Skill 库

长期:贡献社区

  • 把自定义的 Skill 开源到 GitHub
  • 提 PR 改进现有 Skill
  • 写使用心得分享到 CSDN/掘金/知乎

推荐资源:

避免的坑:

  • 不要装太多 Skill(超过 10 个会拖慢 Agent)
  • 不要把 Skill 装在不兼容的 Agent 上
  • 不要直接复制 Skill 默认 prompt——要根据项目调整
  • 定期 review Skill 库的实用性,清理不用的

参考链接

OWASP Top 10 的演化

OWASP Top 10 是 Web 应用安全领域最权威的风险清单,大约每 3-4 年更新一次。从最早的 SQL 注入、XSS、CSRF,到近年来的不安全设计(API 滥用)、软件供应链漏洞、SSRF 攻击,攻击面在不断演化。

Trail of Bits 的 security-and-hardening Skill 内置了 OWASP Top 10 全部条目的检查清单,并补充了认证模式(JWT 常见漏洞)、密钥管理(硬编码、环境变量、Vault)、依赖审计(npm audit、Snyk)、三层边界(网络、应用、数据)纵深防御等高级主题。

进一步阅读

  • OWASP 官网(https://owasp.org/) 持续更新 Top 10 列表与详细解释。
  • OWASP ASVS(Application Security Verification Standard) 提供更细粒度的安全验证标准。
  • Semgrep Registry(https://semgrep.dev/r) 有大量开源安全规则,可以自定义。
  • Snyk 漏洞库(https://snyk.io/vuln) 提供实时的开源依赖漏洞信息。
  • 《Web Application Security》是 OWASP 出版的实战指南,涵盖攻击手法与防御方法。
  • PortSwigger Web Security Academy(https://portswigger.net/web-security) 提供免费的 Web 安全学习路径。

实战建议

  1. 新接口必评审:每写一个 POST/PUT/DELETE 接口,跑一次 Skill 评审。
  2. 依赖定期审计:每周跑一次 npm auditpip-audit,结果贴给 AI 分析。
  3. 认证流程梳理:把”登录-会话-登出”流程图给 AI,让它按 Skill 流程图逐节点检查。
  4. 自定义 P0 清单:把 Skill 输出的”高危项”沉淀为公司基线,作为新员工 onboarding 必读。
  5. CI 卡门禁:把 Semgrep 规则集 + Skill 评审串到 GitHub Actions,严重级别 fail PR。
  6. 威胁建模:用 Skill 内置的 STRIDE 模板,让 AI 帮你做新功能威胁建模。

本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。

security-and-hardening Skill 多维度简评

综合评分:9.1 / 10 ⭐⭐⭐⭐⭐ 类别:安全审计 / 攻防 仓库:trailofbits/skills 维护者:Trail of Bits—— 应用安全权威机构 引用:tencent 极道 · SKILL.md 官方 · github.com/trailofbits/skills


一、核心定位与价值

Trail of Bits 是美国 DARPA、Google、Microsoft 长期合作的安全研究公司,曾参与 Ethereum 2.0、Polkadot 等区块链项目的安全审计,发布了著名的二进制分析工具 Manticore

他们的 skills 项目不是简单的”安全知识”,而是经过实战验证的可执行能力——把 Trail of Bits 多年积累的安全方法论产品化、模块化。

关键洞见:从”问答型 AI”到”执行型 AI”的跃迁——AI 不只回答”什么是重入漏洞”,而是直接扫描代码,指出问题,生成修复

实战战绩:constant-time-analysis 已在真实项目中发现 ECDSA 验证的时序侧信道漏洞

完整 14 个 Skills 分类

来源:tencent 极道

1. 智能合约安全(3 个)

Skill用途公链支持
building-secure-contracts智能合约安全工具包,内置漏洞扫描器6 条主流公链
entry-point-analyzer识别智能合约中改变状态的入口点Solidity

2. 代码审计(6 个)

Skill用途何时用
audit-context-building超细粒度代码解析,构建架构上下文审计前
burpsuite-project-parser搜索并提取 Burp Suite 项目数据Web 渗透
insecure-defaults检测不安全默认配置 / 硬编码凭证 / Fail-Open全代码库
semgrep-rule-creator创建 / 完善 Semgrep 规则自定义检测
semgrep-rule-variant-creator移植 Semgrep 规则到新语言,带测试驱动验证跨语言扩展
static-analysisCodeQL + Semgrep + SARIF 三件套持续集成
testing-handbook-skills模糊测试 / 静态分析 / Sanitizers / 覆盖率测试
variant-analysis基于模式分析查找类似漏洞CVE 应急

3. 验证与高级分析(4 个)

Skill用途适用
constant-time-analysis检测编译器引入的时序侧信道加密代码
spec-to-code-compliance规范到代码合规性检查区块链审计
yara-authoringYARA 检测规则编写 + Linting + 最佳实践恶意软件分析
differential-reviewGit diff 焦点安全审查PR 审查

4. 实战战绩(trophy case)

  • constant-time-analysis:发现 ML-DSA 签名中的时序侧信道漏洞
  • variant-analysis:多个 DeFi 项目 reentrancy 漏洞

二、building-secure-contracts(智能合约安全工具包)

2.1 核心能力

支持 6 条公链(Ethereum、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche)漏洞扫描:

  • 重入(reentrancy)
  • 整数溢出
  • 权限绕过
  • 抢跑交易(front-running)
  • 时间戳依赖
  • 弱随机数
  • 未检查的返回值
  • delegatecall 误用

2.2 工作流

[1] 加载合约文件
  ↓
[2] 调用内置扫描器(Slither、Mythril、Echidna)
  ↓
[3] 输出漏洞清单(按严重度)
  ↓
[4] 生成修复建议
  ↓
[5] 二次审计

2.3 实战案例

// 危险代码
function withdraw(uint256 amount) public {
    require(balances[msg.sender] >= amount);
    (bool success, ) = msg.sender.call{value: amount}("");
    require(success);
    balances[msg.sender] -= amount;  // ❌ 状态更新在外部调用后
}

// Skill 修复建议
function withdraw(uint256 amount) public nonReentrant {
    require(balances[msg.sender] >= amount);
    balances[msg.sender] -= amount;  // ✅ Checks-Effects-Interactions
    (bool success, ) = msg.sender.call{value: amount}("");
    require(success);
}

三、constant-time-analysis(时序侧信道分析)

3.1 问题背景

即使代码逻辑正确,编译器优化也可能导致执行时间随秘密数据变化 → 泄露密钥

经典案例:

  • ECDSA 签名中,根据 nonce 是否为零,执行时间不同
  • RSA 中,模幂运算的 Montgomery reduction 优化引入条件分支

3.2 检测方法

# 用 dudect 或 ctgrind 检测
# 1. 收集执行时间分布
# 2. 统计检验(Welch's t-test)
# 3. p-value < 0.05 → 存在侧信道

3.3 真实战绩

Trail of Bits 公开过:

  • 在 RustCrypto ML-DSA 签名中发现时序侧信道
  • 多个 ECDSA 实现中发现类似漏洞

3.4 修复模式

// ❌ 危险
if (secret_condition) {
    do_something();  // 时间随 secret 变化
}

// ✅ 修复
// 用 ct-select / constant-time swap
uint32_t mask = -constant_time_eq(secret, 0);
result = (a & mask) | (b & ~mask);

四、variant-analysis(变体分析)

4.1 核心思想

CVE 爆出后,横向排查同类漏洞。详见 variant-analysis 完整评测

4.2 五阶段流程

来源:variant-analysis SKILL.md

  1. 威胁情报收集(NVD / GHSA / Twitter)
  2. 模式提取(找 1-2 个受影响项目作参考)
  3. 代码库扫描(用 Grep / Semgrep / CodeQL)
  4. 人工确认(过滤误报)
  5. 修复 + 验证

五、insecure-defaults(不安全默认检测)

5.1 检测范围

  • 硬编码凭证(API key、DB password)
  • Fail-Open 模式(try-catch 返回默认值)
  • 默认弱密码(admin/admin)
  • 明文 HTTP
  • CORS 反射(allow_origins: ”*” + credentials: true)
  • 数据库连接无 SSL
  • JWT 不验证签名
  • Cookie 无 httpOnly

5.2 实战案例

// ❌ 危险
const API_KEY = "sk-proj-xxxxx";

// Skill 检测 → 标 Critical
// 建议:
const API_KEY = process.env.OPENAI_API_KEY;
if (!API_KEY) throw new Error("Missing OPENAI_API_KEY");

六、differential-review(PR 焦点安全审查)

6.1 思路

不重审旧代码,只关注本次 diff 引入的风险:

  • 新增依赖
  • 权限变更
  • 加密逻辑
  • 认证流程

6.2 工作流

# 1. 获取 diff
git diff main..feature

# 2. Skill 自动识别:
#    - 新增危险 API(eval / exec / pickle.load)
#    - 危险 SQL 拼接
#    - 禁用证书校验(verify=False)
#    - ...

# 3. 输出风险点 + 建议

6.3 与 variant-analysis 区别

维度differential-reviewvariant-analysis
时机PR 提交时CVE 爆出后
范围单个 PR diff全仓库 + 历史
目标新引入漏洞同类漏洞
频率每天偶尔

七、其他重要 Skills

7.1 audit-context-building

超细粒度代码解析,构建架构上下文:

  • 模块依赖图
  • 关键数据流
  • 信任边界
  • 入口点
  • 危险函数调用

用途:审计前先理解架构,避免盲目审查。

7.2 semgrep-rule-creator

创建 / 完善 Semgrep 规则:

  • 描述漏洞场景
  • AI 生成 Semgrep YAML
  • TDD 风格验证规则准确性
  • 持续优化

7.3 semgrep-rule-variant-creator

移植 Semgrep 规则到新语言:

  • 原语言规则 → AST 提取模式
  • 适配目标语言语法
  • 测试驱动验证
  • 自动化 CI 集成

7.4 testing-handbook-skills

基于 Trail of Bits Testing Handbook:

  • Fuzzers(American Fuzzy Lop、libFuzzer)
  • 静态分析集成
  • Sanitizers(ASan、UBSan、MSan)
  • 覆盖率分析
  • Differential testing

7.5 yara-authoring

YARA 规则编写:

  • Linting(避免语法错误)
  • 原子分析
  • 最佳实践
  • 用于恶意软件检测 / 分类

7.6 spec-to-code-compliance

规范到代码合规性:

  • 加载 spec
  • 对比代码实现
  • 输出偏差
  • 用于区块链审计(确保实现符合 spec)

7.7 entry-point-analyzer

智能合约入口点分析:

  • 识别所有 state-changing 函数
  • 划定攻击面
  • 优先审查高风险入口

7.8 burpsuite-project-parser

Burp Suite 项目数据提取:

  • HTTP 请求/响应解析
  • 漏洞模式识别
  • 与 audit-context-building 联动

八、完整工作流

来源:tencent 极道

[1] 准备阶段
    audit-context-building
    ↓
[2] 静态分析
    static-analysis (CodeQL + Semgrep)
    ↓
[3] 已知漏洞
    insecure-defaults(配置)
    supply-chain-risk-auditor(依赖)
    ↓
[4] 深度分析
    variant-analysis(同类)
    differential-review(本次)
    constant-time-analysis(密码)
    ↓
[5] 智能合约
    building-secure-contracts
    entry-point-analyzer
    spec-to-code-compliance
    ↓
[6] 修复
    写代码
    ↓
[7] 验证
    fix-review(确认修复到位)
    testing-handbook-skills(fuzzing)
    ↓
[8] 完成
    finishing-a-development-branch

九、5 条反合理化

借口反驳
”我们用 Snyk 够了”Trail of Bits 是 Snyk 之外的另一层
”我们没区块链”14 个 Skill 中 11 个是非区块链
”Trail of Bits 太学术”实战发现真实 0day
”AI 安全扫描不准”AI 理解 + CodeQL/Semgrep 双引擎
”我们小公司不需要”安全事故不分大小

十、5 条实战技巧

  1. CI 集成 static-analysis + 手动跑 variant-analysis 互补
  2. CVE 公开 24h 内用 variant-analysis 横向排查
  3. PR 必走 differential-review,即使是 1 行
  4. 生产前用 insecure-defaults 全库审计
  5. 加密代码必须过 constant-time-analysis

十一、Q&A

Q: 跟 Snyk / Dependabot 区别? A: 它们是 SCA(软件成分分析);Trail of Bits 是全方位安全

Q: 必须用 Claude Code 吗? A: 工具本身不需要。Skill 引导 Claude 调用。

Q: License? A: CC-BY-SA-4.0(部分 Skill)。

Q: 商用? A: 可商用,但需保留版权。

Q: 中文支持? A: SKILL.md 英文,处理中文代码无障碍。

Q: 实战战绩? A: 已在 RustCrypto / ML-DSA / 多个 DeFi 发现真实漏洞。

Q: 跟 ECC / Superpowers 关系? A: Trail of Bits 专注安全深度;其他专注开发效率。互补。

Q: 14 个 Skill 都用? A: 不必。按需:

  • Web 项目:static-analysis / variant-analysis / differential-review
  • 智能合约:building-secure-contracts / entry-point-analyzer
  • 密码项目:constant-time-analysis
  • 通用:insecure-defaults / supply-chain-risk-auditor

十二、Prompt 模板

模板 1:Web 项目安全审计

请用 trailofbits/skills 对我项目做安全审计:
1. static-analysis(CodeQL + Semgrep + SARIF)
2. insecure-defaults(检查硬编码、Fail-Open)
3. supply-chain-risk-auditor(依赖漏洞)
4. differential-review(对比 main 的 diff)
5. 输出:按 Critical/High/Medium/Low 分级的报告

模板 2:智能合约审计

请用 building-secure-contracts 审计合约:
- 输入:contracts/*.sol
- 扫描:重入 / 整数溢出 / 权限绕过
- 输出:漏洞清单 + 修复建议
- 然后用 entry-point-analyzer 标攻击面

模板 3:加密代码审查

请用 constant-time-analysis 检查:
- crypto/sign.rs
- crypto/verify.rs
- 输出:时序侧信道风险点 + constant-time 修复

模板 4:CVE 应急

CVE-2024-XXXX 刚公开,模式:deserialize unsafe.
请用 variant-analysis 排查我们全代码库:
- 找类似反序列化
- 找受影响的 commit
- 输出风险评估 + 修复优先级

十三、真实踩坑案例

案例 1:Semgrep 规则漏报

现象:用了 unsafe pickle.load,Semgrep 没报。 根因:规则没覆盖。 解决:用 semgrep-rule-creator 自定义规则。

案例 2:CI 跑全量 CodeQL 太慢

现象:CodeQL Nightly 跑 8 小时没完。 解决:用 security-extended suite(轻量),全量放 weekly。

案例 3:False positive 多

现象:Semgrep 报 200+ 警告,80% 误报。 解决:baseline 抑制老报警,只查新问题。

案例 4:变体搜索没匹配

现象:variant-analysis 找不到同类。 根因:模式描述不够具体。 解决:提供 PoC + CVE 链接让 AI 理解。

案例 5:智能合约 false positive

现象:误报某个 view function 有 reentrancy。 根因:Slither 默认规则过严。 解决:人工 review + 写自定义 Semgrep 排除 view 函数。

案例 6:时序分析测不出

现象:dudect 跑 1 亿次样本没显著差异。 根因:测的代码本来就是 constant-time。 解决:改用更敏感的统计方法(如 TVLA)。


十四、真实战绩

Skill战绩
constant-time-analysisRustCrypto ML-DSA 侧信道
variant-analysis多个 DeFi reentrancy
static-analysisEthereum 客户端 Go 运行时漏洞
building-secure-contracts6 条公链扫描器

来源:trailofbits/skills README


十五、安装

# Claude Code
/plugin marketplace add trailofbits/skills

# 选择性安装
/plugin install static-analysis@trailofbits
/plugin install variant-analysis@trailofbits
/plugin install building-secure-contracts@trailofbits
...

# 通用
npx skills add trailofbits/skills --skill static-analysis
npx skills add trailofbits/skills --skill variant-analysis
npx skills add trailofbits/skills --skill constant-time-analysis

十六、总结

核心价值:

  • Trail of Bits 多年安全实战经验
  • 14 个 Skill 覆盖安全全生命周期
  • 实战发现真实 0day
  • 完整 CI/CD 集成
  • 与 CodeQL / Semgrep 工业级工具联动

适用人群:

  • 甲方安全团队
  • 智能合约开发者
  • 密码学实现工程师
  • DevSecOps
  • Web3 项目

投入产出比:⭐⭐⭐⭐⭐(5/5)—— 安全团队必装。

何时不要用:

  • 纯前端 demo
  • 一次性脚本
  • 不用 CI
  • 无安全合规要求

参考链接:

📦 快速安装

1 Git Clone
git clone https://github.com/trailofbits/skills.git
cp -r skills/security-and-hardening ~/.claude/skills/