algorand-vulnerability-scanner
作者 trailofbitsalgorand-vulnerability-scanner 是一款面向 Algorand TEAL 和 PyTeal 的安全审计技能。它可帮助发现 11 类常见问题,包括 rekeying 攻击、费用校验缺口、字段检查缺失以及访问控制缺陷。建议在手动审计前,先用 algorand-vulnerability-scanner 技能做一轮实用的初筛复查。
该技能得分 84/100,说明它很适合作为目录用户寻找 Algorand 专用安全扫描器时的候选条目。这个仓库提供了足够清晰的结构、触发条件和漏洞覆盖范围,便于智能体使用时比泛化提示更少猜测;不过,如果能补充更明确的运行说明和工具集成细节,实际落地会更顺畅。
- 针对 TEAL/PyTeal 审计、审计前检查以及 Algorand 合约修复验证,触发范围明确且具体。
- 操作性内容较充实:包含 11 种漏洞模式、检测特征,以及配套清单中的缓解建议。
- 仓库对智能体使用的支撑较好,包含多个标题、代码块,以及对 Tealer 和仓库/文件标记的引用。
- 未提供安装命令或可执行脚本,用户可能需要自行推断如何将该工作流落地。
- 证据更多偏文档而非自动化,这可能会限制追求即开即用执行的智能体的重复性。
algorand-vulnerability-scanner 技能概览
algorand-vulnerability-scanner 是一个面向 Algorand 智能合约的专注型安全审计技能,适用于 TEAL 和 PyTeal。它能帮助你捕捉通用代码审查常常漏掉的平台特有错误,尤其是在交易校验、rekeying、手续费,以及有状态应用逻辑方面。需要在进行人工审计前做一次实用的安全初筛,或者想把某个修复对照已知的 Algorand 攻击模式做验证时,就该使用 algorand-vulnerability-scanner 技能。
这个技能适合谁
最适合:审计人员、智能合约工程师,以及正在评审 Algorand 项目的安全团队。它在代码库包含 .teal 文件、PyTeal 导入、基于 Beaker 的应用,或者依赖 Txn、Gtxn、Global、InnerTxnBuilder 的高交易密度逻辑时尤其有用。
它擅长什么
这个技能围绕 11 种常见的 Algorand 漏洞模式构建,因此它在平台特有缺陷识别上强于泛化的架构审查。也正因为如此,它很适合用来发现诸如缺少 RekeyTo 检查、不安全的交易假设、以及薄弱的字段校验这类问题。
什么时候不要只依赖它
它不是完整审计,也不能替代协议知识、不变量推理或第二位人工复核。如果你的合约依赖特殊的交易组、自定义授权逻辑,或者复杂的跨合约流程,那么应把输出当作安全检查清单,而不是最终结论。
如何使用 algorand-vulnerability-scanner 技能
安装并加载该技能
在安装 algorand-vulnerability-scanner 时,先从 Trail of Bits skills repo 添加它,然后在上下文中打开技能文件:
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner
安装后,先阅读技能说明,再查看配套的模式参考,了解扫描器实际在检查什么。
先看对的文件
优先阅读这些文件:
SKILL.md:范围、工作流和平台识别方式resources/VULNERABILITY_PATTERNS.md:11 项模式清单,以及具体的漏洞/安全示例
这个组合很重要,因为 SKILL.md 说明什么时候该用这个技能,而 resources/VULNERABILITY_PATTERNS.md 展示了在 algorand-vulnerability-scanner 使用流程中你应期待的具体检查项。
给技能一个“安全审计型”提示词
要想得到更好的结果,提示词里要明确合约类型、代码范围和审查目标。输入越具体,就越能说明你是在审单文件、整个应用,还是某个修复。
示例提示:
Review this PyTeal approval program for Algorand security issues. Focus on rekeying, fee validation, transaction group assumptions, and access control. Flag concrete lines or patterns that match the algorand-vulnerability-scanner checklist and explain the exploit path.
如果你已经知道关注点,也要直接说出来:
Audit this TEAL smart signature for unchecked fee exposure and missing sender validation. Prioritize issues that could drain funds or allow unauthorized execution.
更容易产出高质量结果的工作流
- 先判断目标是 TEAL、PyTeal、smart signature,还是有状态应用。
- 确认代码里有该技能预期的 Algorand 标记,例如
Txn、Gtxn、Global或InnerTxnBuilder。 - 让模型按漏洞模式清单做核查式审查,而不是泛泛的代码点评。
- 如果发现问题,再用包含确切函数或交易组的提示词重新跑一次,锁定那条高风险路径。
algorand-vulnerability-scanner 技能 FAQ
这个技能能替代完整的安全审计吗?
不能。algorand-vulnerability-scanner 最适合作为高信号的预审和分流工具。它能快速暴露已知的 Algorand 漏洞类别,但不能证明合约绝对安全。
对新手有用吗?
有用,前提是你的目标是理解在 Algorand 代码里该检查什么。模式清单能教你在这个生态里“安全”通常意味着什么,尤其是在 RekeyTo、手续费和交易分组方面。
它和普通提示词有什么不同?
普通提示词可能只会给出泛化的代码审查建议。这个技能则锚定在 Algorand 特有的漏洞模式上,因此更擅长把你引向与安全审计真正相关的交易字段和合约行为。
什么情况下不适合用这个技能?
如果你不是在审 Algorand 合约、代码库里没有 TEAL/PyTeal 逻辑,或者你只需要对合约做表层说明,那就不必用它。它对功能设计或 UX 评审这类非安全任务也不太合适。
如何改进 algorand-vulnerability-scanner 技能
先把合约上下文说清楚
最大的质量提升,来自于先说明你审查的合约类型,以及它使用的执行模型。例如,要指出这是 smart signature、有状态应用,还是交易分组工作流。这样 algorand-vulnerability-scanner 技能才能优先检查对的内容。
直接说明你要问的安全问题
如果你已经知道风险点,就不要只说“帮我审一下”。更明确的问题通常会得到更精准的发现:
- “Check for unprotected rekeying in all payment paths.”
- “Look for missing fee caps in this smart signature.”
- “Verify that grouped calls cannot bypass authorization through
Gtxnordering.”
附上相关代码片段
如果可以,尽量提供 approval program、可疑函数,或交易处理分支,而不是整个仓库。algorand-vulnerability-scanner 技能在能够检查那段精确逻辑时最有效,因为那段逻辑决定了谁能调用什么、带哪些字段、按什么顺序执行。
在第一轮结果上继续迭代
如果输出太宽泛,就再发一次提示词,把范围收窄到一种漏洞、一个入口点,或者一组交易。如果输出太窄,则要求补充与模式清单相邻的检查项,尤其是 rekeying、交易字段和状态校验方面。
