拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Anthropic Cybersecurity Skills 实战:用 Slither 与 Mythril 审计以太坊智能合约漏洞

Anthropic Cybersecurity Skills 实战用 Slither 与 Mythril 审计以太坊智能合约漏洞【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文基于 Anthropic Cybersecurity Skills 仓库中的analyzing-ethereum-smart-contract-vulnerabilities技能SKILL.md系统讲解如何在合约部署到以太坊主网之前组合使用 Slither 静态分析与 Mythril 符号执行两种工具完成漏洞挖掘、结果解读、严重级别分级与审计报告生成。读完本文你将掌握一套可直接复制的静态分析 符号执行 交叉去重 输出 SWC 编号报告的完整审计工作流并了解仓库配套 agent.py 是如何把这一流程自动化的。为什么智能合约需要部署前审计智能合约漏洞已在 DeFi 协议中造成数十亿美元的损失。与传统软件不同已部署的智能合约不可变immutable且直接承载真实金融资产一旦上线便无法热修复因此部署前的安全分析至关重要。这也是该技能被映射到 NIST CSF 2.0 的PR.DS-01数据保护、PR.DS-02数据机密性与ID.RA-01资产脆弱性识别以及 MITRE ATTCK 的T1190面向公网的漏洞利用和T1059命令与脚本解释器执行的原因——审计的本质是在攻击者利用之前识别可被利用的弱点。该技能的核心思路是让两种原理互补的工具协同工作Slither基于中间表示intermediate representation的快速静态分析工具可在数秒内扫描90 个内置检测器覆盖重入reentrancy、整数溢出、访问控制、未受保护的 SELFDESTRUCT 等常见漏洞模式同时也输出代码质量与优化建议。Mythril基于符号执行symbolic execution与 SMT 求解器逐条探索执行路径擅长发现重入、未检查的外部调用、算术溢出等需要路径敏感分析的深层漏洞。前置条件依赖说明Python 3.10 与 pip两个工具均为 Python 生态slither-analyzersolcSlither 需要 solc 编译器解析源码mythrilsolc-selectMythril 依赖 solc-select 管理编译器版本Solidity 源码或编译后的字节码分析对象Foundry / Hardhat可选用于项目级分析环境安装与编译器版本管理# Slither需要 solc pip install slither-analyzer solc-select install 0.8.20 solc-select use 0.8.20 # Mythril pip install mythrilsolc-select解决了多版本编译器切换问题不同年代部署的合约使用不同的 Solidity 版本审计时需要用与合约编译版本一致的 solc 才能得到准确的 AST 与中间表示。Step 1运行 Slither 静态分析对合约代码库执行 Slither识别漏洞模式、优化机会与代码质量问题。api-reference.md 给出了常用命令# 基础分析针对目录或单个文件 slither contracts/ # JSON 输出 slither contracts/ --json slither-report.json # 只运行指定检测器 slither contracts/ --detect reentrancy-eth,unprotected-upgrade # 列出全部检测器 slither --list-detectors # 打印合约摘要 slither contracts/ --print human-summary # 生成继承关系图 slither contracts/ --print inheritance-graph其中--detect支持逗号分隔的检测器名称用于在快速迭代时聚焦特定漏洞类--print human-summary能在几秒内给出合约函数分布、继承关系与状态变量概览适合作为审计的第一眼信息。Step 2运行 Mythril 符号执行Mythril 探索执行路径发现需要路径敏感分析的重入、未检查外部调用与算术漏洞# 分析单个合约 myth analyze contracts/Token.sol # JSON 输出 myth analyze contracts/Token.sol -o json # 设置执行超时秒 myth analyze contracts/Token.sol --execution-timeout 300 # 分析已部署的字节码通过 RPC myth analyze --address 0x1234... --rpc infura # 增大分析深度 myth analyze contracts/Token.sol --max-depth 50 --transaction-count 3符号执行以指数级路径爆炸为代价换取精确性因此--execution-timeout、--max-depth与--transaction-count是控制开销的关键旋钮交易数量决定探索多少笔跨交易调用序列深度决定单路径延伸多远超时则防止分析无界运行。Step 3结果分级与 SWC 漏洞分类Slither 检测器严重级别模型Slither 的每个检测结果都由 Impact影响与 Confidence置信度两个维度标注api-reference.md 给出了完整的分级示例ImpactConfidence示例检测器HighHighreentrancy-eth, suicidal, arbitrary-send-ethHighMediumcontrolled-delegatecall, reentrancy-no-ethMediumHighlocked-ether, incorrect-equalityMediumMediumuninitialized-state, shadowing-stateLowHighnaming-convention, solc-versionInformationalHighpragma, dead-codeSWC 注册表关键条目SWC ID漏洞名称工具覆盖SWC-101整数溢出/下溢MythrilSWC-104未检查的调用返回值Slither MythrilSWC-106未受保护的 SELFDESTRUCTSlither MythrilSWC-107重入Slither MythrilSWC-110Assert 违反MythrilSWC-112对不可信地址的 DelegatecallSlitherSWC-115tx.origin 鉴权SlitherSWC-116区块时间戳依赖MythrilSWC-120弱随机源Slither注意工具覆盖列的差异整数溢出与时间戳依赖属于典型路径敏感问题Slither 的静态规则难以准确判定需由 Mythril 的符号执行验证而tx.origin鉴权、Delegatecall 到不可信地址属于结构/数据流特征Slither 的规则扫描更直接高效。解读 Slither 的 JSON 输出{ success: true, results: { detectors: [{ check: reentrancy-eth, impact: High, confidence: Medium, description: Reentrancy in Contract.withdraw(), elements: [{source_mapping: {filename_short: Contract.sol, lines: [42, 43]}}] }] } }字段含义check为检测器 IDimpact/confidence为分级维度description指明受影响的函数如Contract.withdraw()elements[].source_mapping则精确指向源码文件与行号方便审计人员直接跳转定位。Step 4交叉去重与审计报告生成仓库配套的自动化 Agent该技能在 scripts/agent.py 中提供了完整的自动化实现把两个工具 去重 报告封装为一条命令。其内部工作流与 SKILL.md 的四步流程一一对应1. 调用两个工具对应 Step 1/2run_slither执行slither path --json -run_mythril执行myth analyze path --execution-timeout n -o json均通过subprocess捕获 stdout 并解析为 JSON且对解析失败做了容错处理返回空字典并记录日志。2. 结果归类对应 Step 3analyze_slither_results按impact字段统计严重级别分布by_severity按check统计检测器命中排行by_detector并为每条发现拼接文件名:L行号的定位信息analyze_mythril_results将 Mythril 的swc-id字段格式化为SWC-xxx键并通过内置的SWC_REGISTRY字典覆盖 SWC-101/104/106/107/110/112/113/115/116/120 共 10 个条目见 agent.py映射出对应的漏洞标题。3. 交叉去重对应 Step 3 中的去重环节deduplicate_findings对 Slither 结果以(位置, 检测器)为键、对 Mythril 结果以(合约行号, SWC编号)为键建立seen集合合并时跳过重复项并为每条记录标注source: slither或source: mythril保留双工具溯源能力。4. 报告生成对应 Step 4generate_report统计 critical/high 数量并输出最终审计结论{ timestamp: …, contract: …, slither_analysis: { total_findings: 0, by_severity: {}, top_detectors: {} }, mythril_analysis: { total_findings: 0, by_swc: {} }, combined_findings: 0, critical_high_findings: 0, audit_result: FAIL, findings: [] }其中audit_result的判定逻辑在 agent.py只要存在任意 high 或 critical 级别发现即输出FAIL否则为PASS可作为 CI 门禁的准入/拦截依据。使用方式python scripts/agent.py --contract contracts/Token.sol python scripts/agent.py --contract contracts/ --mythril-timeout 600 python scripts/agent.py --contract contracts/Token.sol --skip-mythril --output report.json参数说明见 agent.py 的 main 函数参数默认值说明--contract必填Solidity 合约文件或项目目录路径--mythril-timeout300Mythril 执行超时秒内部同时为 subprocess 增加 60 秒缓冲--skip-mythril关闭跳过耗时的符号执行仅做静态分析--outputsmart_contract_audit_report.json报告输出路径--skip-mythril是快速迭代场景的实用开关开发期先用 Slither 秒级扫描清掉浅层问题合并前再开启 Mythril 做深度符号执行。预期输出技能定义明确要求产出结构化的 JSON 审计报告对应 SKILL.md 的 Expected Output 部分报告需包含SWC 编号每条发现关联 Smart Contract Weakness Classification 标识符如 SWC-107 Reentrancy严重级别High / Medium / Low / Informational 分级受影响的函数与位置函数名 源码文件与行号修复建议针对每个漏洞类的 remediation 指引。audit_resultPASS/FAIL可作为发布门禁信号任何 critical/high 发现都必须修复后才能进入主网部署。适用场景与使用时机安全事件调查中需要分析以太坊智能合约漏洞时为区块链安全领域构建检测规则或威胁狩猎查询时SOC 分析师需要标准化的分析流程时验证安全监控覆盖是否涵盖相关攻击技术ATTCK T1190/T1059时。审计工作流速查1. solc-select use 合约编译版本 2. slither contracts/ --json slither-report.json # 秒级静态扫描 3. myth analyze contracts/ --execution-timeout 300 -o json # 深度符号执行 4. 交叉比对按 (位置检测器) / (合约SWC) 去重过滤误报 5. 依据影响与可利用性、资金影响评估严重级别 6. 生成含 SWC 编号、位置、利用场景与修复建议的报告 7. critical/high 未清零前禁止部署audit_result FAIL 拦截注意事项与局限误报过滤不可省略Slither 的静态规则与 Mythril 的符号执行都会产生误报Step 3 的基于可利用性与资金影响评估严重级别、过滤假阳性是审计质量的关键不应跳过。双工具覆盖互补而非替代从 SWC 表可见SWC-101/110/116 仅由 Mythril 覆盖SWC-112/115/120 仅由 Slither 覆盖单跑任何一个工具都会漏检这也是该技能坚持Slither Mythril双管齐下的原因。审计需人工研判自动化工具输出的是候选清单最终可利用性判断仍依赖审计人员结合业务逻辑、资金流向与调用场景进行人工确认。本技能面向授权场景请仅在你拥有或已获得明确书面许可的合约与链上资产上执行分析。参考文件技能定义 SKILL.mdYAML frontmatter 四步工作流 预期输出CLI 与分级参考 api-reference.mdSlither/Mythril 命令、检测器分级表、SWC 表、JSON 结构自动化 Agent 脚本 agent.py双工具调用、结果归类、去重与报告生成的完整实现NIST CSF 2.0 映射 与 MITRE ATTCK 映射技能在前沿框架中的定位参考【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门