ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Anthropic-Cybersecurity-Skills 中的 Android APK 恶意软件静态分析:基于 androguard 的完整流水线与源码详解

Anthropic-Cybersecurity-Skills 中的 Android APK 恶意软件静态分析:基于 androguard 的完整流水线与源码详解 Anthropic-Cybersecurity-Skills 中的 Android APK 恶意软件静态分析基于 androguard 的完整流水线与源码详解【免费下载链接】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本文围绕 SKILL.md 展开讲解如何在 Anthropic-Cybersecurity-Skills 仓库的analyzing-android-malware-with-apktool技能下对可疑 APK 执行不执行样本的静态分析从权限风险评级、Manifest 组件枚举、可疑 API 调用扫描到字符串 IOC 提取与混淆检测。读完本文你可以直接运行该技能自带的分析脚本 agent.py理解其内部 20 项危险权限清单、14 条可疑 API 模式、风险评分模型与 MITRE ATTCK Mobile 技术映射的完整实现逻辑。一、技能定位为什么 APK 静态分析适合静态优先该技能属于仓库 817 个安全技能中的 malware-analysis恶意软件分析子域其 frontmatter 描述见 SKILL.md 头部元数据明确了分析目标Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls.可以概括为三层工具分工工具角色在技能中的定位apktool资源层反编译AndroidManifest.xml、res/、smali人工/流程层面的资源解包jadxJava 源码级还原smali → Java可选用于深度阅读androguard程序化 APK/DEX 分析Python API脚本 agent.py 的实际核心依赖从源码结构看agent.py仅导入 androguardAPK、DEX、AnalyzeAPK说明该技能的自动化流水线完全建立在 androguard 之上apktool/jadx 作为 Prerequisites 中列出的外部工具服务于人工解包与深度逆向场景。这种程序化分析为主、反编译工具为辅的组合可以在不执行样本的前提下完成对可疑 APK 的结构化分诊并进一步沉淀为移动恶意软件检测规则。技能适用的典型场景继承自原文档 When to Use 一节安全事件调查中需要分析 Android 恶意软件样本需要为移动端检测体系编写检测规则或威胁狩猎查询SOC 分析师需要针对此类分析的结构化操作规程校验安全监控对相关攻击技术ATTCK Mobile的覆盖情况。二、前置条件与环境准备原文档给出的 Prerequisites 与 api-reference.md 的 Dependencies 一节共同确定了运行前提Python 3.9并安装androguard 3.4.0安装命令pip install androguard脚本在未安装时会返回{error: androguard not installed: pip install androguard}见 agent.py 的full_analysis()入口检查apktool用于资源反编译jadx用于 Java 源码还原可选隔离分析环境虚拟机或沙箱——分析未知 APK 时必须隔离待分析的样本 APK 文件。脚本顶部对 androguard 采用try/except ImportError兜底导入失败时将APK None使得脚本在没有依赖的环境中也能被解析、只在真正分析时报错这一设计降低了在受限环境中误用脚本导致崩溃的风险。三、CLI 用法与总体分析流程api-reference.md 给出的命令行接口如下python agent.py sample.apk permissions # 仅权限分析 python agent.py sample.apk manifest # 仅 Manifest 组件提取 python agent.py sample.apk apis # 仅可疑 API 扫描 python agent.py sample.apk strings # 仅字符串/IOC 提取 python agent.py sample.apk full # 完整恶意软件评估 python agent.py sample.apk # 缺省即 full 分析参数解析逻辑位于 agent.py 的main()full或缺省命令走full_analysis()其余子命令直接调用AnalyzeAPK()并分别路由到analyze_permissions/analyze_manifest/scan_suspicious_apis/extract_strings。所有结果统一以json.dumps(result, indent2, defaultstr)输出 JSON。原文档 Steps 一节定义的七步流程与脚本函数的一一对应关系是用 androguard 解析 APK、提取 Manifest 元数据 →AnalyzeAPK()analyze_manifest()枚举请求权限并标记危险组合 →analyze_permissions()列出 activities / services / receivers / providers →analyze_manifest()扫描可疑 API 调用反射、加密、短信、电话→scan_suspicious_apis()检测动态代码加载模式DexClassLoader、Runtime.exec→ 同样由scan_suspicious_apis()的模式表覆盖从字符串提取硬编码 URL、IP 与 C2 指标 →extract_strings()生成含 MITRE ATTCK Mobile 映射的风险评估报告 →full_analysis()末尾的mitre_techniques组装四、权限分析20 项危险权限与四级风险评级analyze_permissions()agent.py调用 androguard 的apk.get_permissions()取出全部请求权限与DANGEROUS_PERMISSIONS常量L17-L28求交集。完整清单覆盖六类恶意行为类别权限短信滥用SEND_SMS、READ_SMS、RECEIVE_SMS数据窃取READ_CONTACTS、READ_CALL_LOG、READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE、READ_PHONE_STATE环境监听RECORD_AUDIO、CAMERA、ACCESS_FINE_LOCATION、CHANGE_WIFI_STATE安装/持久化INSTALL_PACKAGES、REQUEST_INSTALL_PACKAGES、RECEIVE_BOOT_COMPLETED界面劫持/无障碍滥用SYSTEM_ALERT_WINDOW、BIND_ACCESSIBILITY_SERVICE设备控制/系统篡改BIND_DEVICE_ADMIN、WRITE_SETTINGS、CALL_PHONE注意BIND_ACCESSIBILITY_SERVICE与BIND_DEVICE_ADMIN这两项它们不是普通 App 直接申请、而是通过绑定被授予的特权权限在恶意软件中分别对应无障碍服务劫持与设备管理锁定勒索型恶意软件常用DevicePolicyManager.lockNow锁屏勒索。权限风险评级规则与 api-reference.md 的 Risk Scoring 描述一致CRITICAL 危险权限数 8 HIGH 危险权限数 5 MEDIUM 危险权限数 2 LOW 危险权限数 2返回结构包含total_permissions、permissions全量、dangerous_permissions命中项、dangerous_count与permission_risk五个字段可直接作为检测规则的特征输入。五、Manifest 组件提取四类组件与版本信息analyze_manifest()L61-L82调用apk.get_activities()、get_services()、get_receivers()、get_providers()四类组件枚举同时输出package_name、app_name包名与应用名伪装识别的第一手线索version_name、version_code版本信息min_sdk、target_sdk目标 SDK 级别——过低的 targetSdk 常伴随弱化的系统安全约束可作为风险信号四类组件的完整列表及各自计数。组件计数本身也参与后文的风险映射源码中当service_count 5时即标记一条 T1418Software Discovery技术因为服务组件异常膨胀往往意味着内置后台驻留模块。六、可疑 API 扫描14 条 DEX 级模式与交叉引用scan_suspicious_apis()L85-L101是脚本中最具检测价值的部分。它遍历SUSPICIOUS_API_PATTERNSL30-L45中 14 条 Dalvik 内部名模式通过dx.find_methods(classname, methodname)定位方法对象再用method.get_xref_from()取交叉引用——只有存在调用方xrefs 非空的方法才会计入发现项这有效过滤了库中定义了但从未被调用的噪声。14 条模式按攻击意图分组攻击意图DEX 模式命令执行Ljava/lang/Runtime;-exec、Ljava/lang/ProcessBuilder;-start动态代码加载Ldalvik/system/DexClassLoader;-loadClass反射调用Ljava/lang/reflect/Method;-invoke、Ljava/lang/Class;-forName加密/解密Ljavax/crypto/Cipher;-getInstance短信滥用Landroid/telephony/SmsManager;-sendTextMessage设备锁定勒索Landroid/app/admin/DevicePolicyManager;-lockNow组件篡改Landroid/content/pm/PackageManager;-setComponentEnabledSetting网络通信Ljava/net/HttpURLConnection;-connect、Lokhttp3/OkHttpClient;-newCall、Landroid/webkit/WebView;-loadUrl设备指纹Landroid/os/Build;-SERIAL、Landroid/provider/Settings$Secure;-getString每条命中的输出结构为{api: 模式, callers: 调用方数量, first_caller_class: 首个调用方类名}其中first_caller_class可直接指引分析师在 jadx 中跳转查看具体调用上下文。七、字符串与 IOC 提取URL、外网 IP 与 Base64 候选extract_strings()L104-L131遍历dx.get_strings()的全部 DEX 字符串用三条正则做提取url_pattern re.compile(rhttps?://[\w\-._~:/?#\[\]!$\()*,;], re.IGNORECASE) ip_pattern re.compile(r\b(?:\d{1,3}\.){3}\d{1,3}\b) b64_pattern re.compile(r[A-Za-z0-9/]{30,}{0,2})实现上有三个值得注意的细节内网 IP 过滤private_ips {10., 192.168., 172.16., 127.0.}前缀匹配剔除私网地址避免把开发期硬编码的本地地址误报为 C2结果截断urls最多保留 30 条、external_ips最多 20 条、每条字符串最多取 5 个 base64 候选且总计 10 条控制报告体积Base64 候选的意义30 字符以上的 base64 片段常是 XOR/Base64 双层编码后的 C2 域名或配置数据属于人工复核的高优先级线索而非确定性 IOC。返回字段urls、external_ips、suspicious_base64及对应计数与external_ip_count直接进入风险评分每条外网 IP 计 5 分上限 15 分。八、混淆检测单字母类、Multi-DEX 与原生库detect_obfuscation()L134-L158检查三类混淆指标单字母类名ProGuard/R8 混淆特征遍历dx.get_classes()将类名按.分段只要任一段为单个字母即计入超过 10 个才标记single_letter_classes小阈值会误报正常代码从源码结构看这是一个经验性阈值Multi-DEXapk.get_files()中.dex文件数大于 1 时标记multi_dex——分片既可能是体积原因也是恶意软件拆分逻辑段的常见做法原生库存在任一.so即列出最多 10 个标记native_libraries提示后续需要用 Ghidra/IDA 做 native 层分析。只要任一指标命中likely_obfuscation置真风险评分即增加 15 分。九、风险评分模型与 ATTCK Mobile 技术映射full_analysis()L161-L198汇总五个模块并计算 0–100 分的风险分评分规则与 api-reference.md 的 Risk Scoring 表一致因子单分上限危险权限每项 8 分840可疑 API 调用每项 10 分1030外网 IP每个 5 分515检出混淆固定—15risk_score min(perm_analysis[dangerous_count] * 8, 40) risk_score min(len(suspicious_apis) * 10, 30) risk_score min(strings[external_ip_count] * 5, 15) risk_score 15 if obfuscation[likely_obfuscated] else 0 risk_score min(risk_score, 100)对应等级CRITICAL 70、HIGH 50、MEDIUM 25、其余LOW。报告的mitre_techniques字段按静态证据映射 ATTCK Mobile 技术映射条件全部来自已提取的结构化证据技术 ID名称触发条件T1418Software Discoveryservice_count 5T1417Input Capture请求了BIND_ACCESSIBILITY_SERVICET1582SMS Control请求了SEND_SMST1404Exploitation for Privilege Escalation可疑 API 中命中DevicePolicyManager这与 SKILL.md frontmatter 中声明的mitre_attack映射T1406、T1407、T1626.001、T1655.001、T1521.001均属 Mobile 矩阵技术形成两层视角frontmatter 面向技能的框架级覆盖声明mitre_techniques面向单个样本的证据级判定。NIST CSF 侧则映射了DE.AE-02分析事件、RS.AN-03分析工件、ID.RA-01业务资产目录与DE.CM-01网络连接监控四个类目说明该技能同时服务于事件响应—工件分析—资产画像—通信监控的完整闭环。十、预期输出与实战工作流按原文档 Expected Output 一节一次完整分析产出JSON 报告含manifest组件与版本、permissions权限风险、suspicious_apis最多 20 条、stringsIOC 候选、obfuscation混淆指标、risk_score/risk_level与mitre_techniques提取的字符串与潜在 IOCURL、外网 IP、base64 候选片段。推荐的实战工作流结合七步流程与工具分工python agent.py sample.apk full得到总体风险分与报告骨架risk_level为 HIGH/CRITICAL 时优先核查suspicious_apis中callers多的条目用 jadx 打开对应first_caller_class查看调用链对suspicious_base64与外网 IP 做解码/域名情报富化确认 C2若检出native_libraries转入 Ghidra 等工具做 native 层分析将external_ips、URL 与包名沉淀为检测规则YARA / 移动端 EDR 规则的 IOC 输入。十一、文件索引与延伸阅读本技能在仓库中的完整文件构成SKILL.md技能定义frontmatter 框架映射 七步流程 预期输出references/api-reference.mdandroguard API 方法表、CLI 用法与评分规则说明scripts/agent.py可直接运行的静态分析脚本LICENSEApache-2.0 许可声明。该技能遵循 agentskills.io 开放标准见仓库 README.md 的整体说明可在 Claude Code、GitHub Copilot、Codex CLI、Cursor、Gemini CLI 等 26 平台中作为技能被 AI Agent 加载由 Agent 按照本文所述流程自主完成可疑 APK 的静态分诊。最后需要强调的适用限制本技能是纯静态分析手段对重度加壳/加密 DEX 的样本字符串与 API 扫描的检出率会显著下降混淆检测指标命中即是信号且脚本中的技术映射、评分权重均为静态启发式规则输出应作为分诊优先级依据而非最终定性结论。涉及样本处理时务必在隔离环境操作并仅用于授权的安全研究与防御场景。【免费下载链接】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),仅供参考
返回列表