第163篇:借助AI + Claude + Skills 构建 APK 自动化安全分析工作流

张开发
2026/4/13 9:48:23 15 分钟阅读

分享文章

第163篇:借助AI + Claude + Skills 构建 APK 自动化安全分析工作流
Part1 前言大家好我是ABC_123。做过Android APK的安全审计的同行们都有这样的体验一个apk甩过来我们得手工打开jadx分析、手工检查是否加壳、手动查找AndroidManifest关键字手工逐个看代码分析是否存在硬编码密钥手工调试分析SO文件......所以分析一个apk是特别耗费时间和精力的。问题不在于这个APK分析有多难而在于步骤多生成结果散落各处从而造成人是流程中最慢的环节。今天我们尝试通过Claude Code Skills的方式让 AI 按工程化流程自动执行apk检测任务最后生成报告全部SKILLS由IDM1k3编写。Part2 技术研究过程SKILLS简单介绍与使用Skill 就是把“怎么把一件事做好”打包成一个可以反复用的能力而不只是临时写一段更长的 Prompt 让 AI 进行回答。 它更像一个随时能调用的小工具而不是一次性的对话指令。 一个Skill大致包括以下结构最主要的是SKILL.md文件SKILL.md 就是全部文档AI 读完就知道怎么执行apk分析任务。.claude/skills/skill-name/├── SKILL.md # 技能定义入口├── references/ # 参考知识库├── tools/ # 配套工具脚本└── rules/ # 规则集接下来将我们做好的SKILLS文件夹放在我们要分析的apk文件所在目录的.claude\skills\目录中如下图所示输入/skills命令查看我们自己写的skill是否被claude正确识别如果不能被正常识别可能是配置文件位置或者格式错误。分析APK的5个SKILLS介绍该SKILLS的技能全景图如下是一个流水线架构串行入口对APK进行初步分析包括加固检查、加壳检测及反编译后续再进行4个并行分析模块最后统一输出报告。阶段 1串行 阶段 2并行分析 阶段 3汇总┌──────────────┐ ┌────────────────────────────┐ ┌──────────────────────────┐│ 加固检测 │ │ 并行分析模块 │ │ 综合安全报告 ││ 反编译 │───────▶│ │───────▶│ comprehensive_analysis.md ││ │ │ ┌──────────────────────┐ │ │ ││ │ │ │ Semgrep 扫描 │ │ │ │└──────────────┘ │ ├──────────────────────┤ │ └──────────────────────────┘ │ │ H5 分析器 │ │ │ ├──────────────────────┤ │ │ │ Manifest 分析器 │ │ │ ├──────────────────────┤ │ │ │ SO 分析器 │ │ │ └──────────────────────┘ │ └──────────────┬─────────────┘ │ ▼如下图所示加固apk需要走不同的工作流程。串行入口加固检测是所有后续分析的前提必须先完成并行分析四个分析任务相互独立并行执行可以节省 60% 以上时间统一输出所有报告汇聚到一个目录便于归档和对比。if (已加固) { 跳过 Semgrep 扫描; // 源码被加密扫描无意义 跳过 H5 分析; // JSBridge 代码不可读 执行 Manifest 分析; // XML 资源未被加密 执行 SO 分析; // SO 文件通常不在加固范围} else { 执行全部四项分析;}参考知识库 references 机制每个SKILL技能都可以携带自己的参考知识库如so-analyzer这个SKILL。SKILL.md 控制在 100 行以内保持简洁篇幅太长的话Claude不会严格按照其内容执行详细知识通过references/引用按需加载。这避免了一个超长 Prompt 淹没上下文窗口的问题。so-analyzer/├── SKILL.md # 精简的执行指令├── references/│ ├── sdk_functions.md # SDK 函数映射表AI 知识增强│ ├── so_auto_analyzer.md # SO 分析方法论│ └── example_targets.py # 目标模式示例└── scripts/ └── so_auto_analyzer.py # 核心分析脚本Part3 五个分析APK的SKILLS技能一加固检测与反编译apk-decompile-check这是整个流水线的入口技能它主要做两件事1. 加固检测。调用ApkCheckPack识别 APK 是否被加固360加固、腾讯乐固、梆梆安全等2. JADX 反编译。将 APK 反编译为 Java 源码和资源文件并输出分析报告。apk加固与否会自动影响后续技能的选择加固处理的APK源码是加密的所以需要跳过代码级分析只执行 Manifest 和 SO 文件分析这是一个关键的条件分支设计。加固状态: 已加固加固厂商: 360加固安全检测特征:- ROOT检测: 有- 模拟器检测: 有- 反调试检测: 有技能二Semgrep 安全扫描semgrep-scanner该技能用 16 条自定义规则扫描 Java 源码中的安全漏洞它不依赖 AI 的主观判断而是用 Semgrep 静态分析引擎 自定义规则集做确定性检测。扫描结果由 JSON 自动转换为 Markdown 报告semgrep_report_converter.py按高/中/低危分类方便阅读。rules/├── crypto/│ ├── keys/ # AES、DES、HMAC 等硬编码密钥检测│ ├── cloud/ # 阿里云/AWS/腾讯云 AK/SK 泄露检测│ ├── certificates/ # 硬编码证书检测│ ├── iv/ # 硬编码 IV 检测│ ├── salt/ # 硬编码盐值检测│ └── keystore/ # KeyStore 密码硬编码检测└── webview/ ├── webview_insecure_config.yaml # WebView 不安全配置 ├── jsbridge_sensitive_data.yaml # JSBridge 敏感数据传输 ├── ssl_pinning_bypass.yaml # SSL Pinning 绕过 └── intent_url_injection.yaml # Intent URL 注入技能三AndroidManifest 安全分析android-manifest-analyzer该技能从 Manifest 和网络安全配置中挖掘攻击面主要检查APK的AndroidManifest.xml 文件。该技能不只是罗列问题而是标注风险等级并给出修复建议。例如导出 Activity 无权限保护会标记为「高危」。检查维度具体内容安全标志debuggable、allowBackup、usesCleartextTraffic网络安全network_security_config.xml的明文策略、证书信任URL Scheme自定义协议、Deep Link、潜在的劫持风险组件导出四大组件的exported状态及权限保护权限声明危险权限、自定义权限保护级别技能四H5/JS 数据返回路径分析android-app-h5-data-return-analyzer该技能追踪 Native 到 H5 的数据通道发现跨边界安全风险。现代 Android App 大量使用混合开发WebView H5数据在 Native 和 Web 之间流转。这个技能追踪所有数据通道如下所示不仅找出数据通道还分析可导出 Activity 的 Intent Filter拼出完整的 URL Scheme 攻击路径如myapp://h5/open直接可用于渗透测试。检查清单:├── WebView JSBridgeaddJavascriptInterface / JavascriptInterface├── Cordova Plugin 回调├── evaluateJavascript / loadUrl(javascript:...)├── URL Scheme / shouldOverrideUrlLoading├── Unity 通信UnitySendMessage└── React Native BridgeReactMethod技能五SO 文件敏感信息提取so-analyzer该技能用 CPU 仿真器执行 SO 库中的函数捕获运行时产生的密钥和 Token。这是技术含量最高的技能。它不是简单的字符串搜索而是模拟执行置信度阈值--threshold可调低阈值会分析更多函数适合深度审计。这让技能可以在「快速扫描」和「深度分析」之间灵活切换。执行流程:1. 解析 ELF 结构 → 提取导入/导出符号2. 生成 Stub → 为外部依赖创建仿真桩3. 签名解析 → 从 JNI 函数签名推断参数类型4. 仿真执行 → 用 Unicorn Engine 运行 ARM64 代码5. 生成报告 → 输出发现的密钥、Token、证书它配备了专门的参考知识库1. sdk_functions.md常见 SDK 的敏感函数映射表2. so_auto_analyzer.md详细的 SO 文件逆向分析方法论 3. example_targets.py典型敏感函数的目标模式。技能六最佳实践检查器skill-best-practices-checker该技能可以去检查技能的执行是否符合预期输出报告是否能达到质量。它从 Claude Code 官方文档拉取最佳实践标准对任意技能做自动化审查检查项:├── Frontmatter 格式是否规范├── 参数是否使用 $ARGUMENTS 语法├── SKILL.md 是否控制在 100 行以内├── 执行步骤是否清晰可执行├── 是否有验证方式└── 有副作用的操作是否标记 disable-model-invocation输出结果汇总报告所有技能设计完成后使用过程如下# 1. 反编译自动检测加固/skill: apk-decompile-check /path/to/target.apk # 2. 并行安全分析AI 自动根据加固状态选择/skill: semgrep-scanner/skill: android-manifest-analyzer/skill: so-analyzer/skill: android-app-h5-data-return-analyzer # 3. 综合报告AI 自动汇总所有分析结果最终在reports/目录下获得一份完整的安全评估报告reports/2026-04-12-143000-target-app/├── semgrep_report.md # 硬编码凭据扫描结果├── manifest_analysis.md # Manifest 安全配置分析├── so_analysis.md # SO 文件敏感信息├── h5_analysis.md # H5/JS 数据通道分析└── comprehensive_analysis.md # 综合安全评估含风险汇总和修复建议Part4 总结1. SKILL工作流编排非常强大节省很多人力成本、时间成本日常工作生活中一定要把它用起来。2. 欢迎大家扫码加入知识星球一起学习进步。知识星球分为以下几个板块知识星球的每一个工具都是精心筛选都附带有实测评价及使用说明。知识星球的每一篇PDF文档、PPT文档都细心整理配有3到9张关键截图。欢迎大家扫码加入知识星球一起学习进步公众号专注于网络安全技术分享包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等每周一篇99%原创敬请关注。Contact me: 0day123abc#gmail.comOR 2332887682#qq.com(replace # with )

更多文章