使用 Objection 对 iOS 应用进行运行时安全评估与报告撰写Anthropic-Cybersecurity-Skills 实战指南【免费下载链接】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-ios-app-security-with-objection技能及其报告模板为核心系统讲解如何借助基于 Frida 的 Objection 工具对 iOS 应用开展 Keychain、数据存储、网络安全、二进制保护与内存敏感信息的运行时评估并按照结构化模板产出一份可直接交付的专业安全评估报告。读完本文你将掌握 Objection 的完整评估工作流、核心命令语义以及每个报告章节应采集的证据与填写方法。一、报告模板总览评估报告的骨架结构仓库中的 模板文件 定义了一份完整的 iOS Objection 安全评估报告结构包含 8 个核心章节恰好与一次标准运行时评估的取证路径一一对应章节关注维度对应 MASVS 类别Engagement Information评估范围与元数据—Executive Summary结论摘要—Keychain Analysis钥匙串敏感数据MASVS-STORAGEData Storage Assessment本地存储NSUserDefaults / SQLite / 文件系统MASVS-STORAGENetwork SecuritySSL 证书绑定与 ATS 配置MASVS-NETWORKBinary Protection Assessment越狱检测 / Frida 检测 / 反调试 / 混淆MASVS-RESILIENCE、MASVS-CODEMemory Analysis内存中的口令、令牌、密钥MASVS-CRYPTORecommendations分级修复建议—该模板与同技能目录下的 SKILL.md 互为表里模板回答报告里写什么SKILL.md 回答每一步用什么命令取证。下文将结合两者按报告章节顺序讲解评估过程与写作要点。二、评估前置条件与测试环境准备在动笔填写报告之前必须先搭建可复现的测试环境。根据 SKILL.md 的 Prerequisites 与 Workflow Step 1评估前需满足Python 3.10 与 pip安装 Objectionpip install objection安装 Frida 工具链pip install frida-tools目标 iOS 设备越狱设备需运行 Frida server非越狱设备需使用重打包的 IPA非越狱设备需执行objection patchipa将 Frida Gadget 注入 IPA推荐使用 macOS配合 Xcode、ideviceinstaller通过 USB 连接目标设备或使用网络 Frida server。越狱设备环境准备# 通过 Cydia/Sileo 在设备上安装 Frida server然后 SSH 到设备并启动 ssh rootdevice_ip /usr/sbin/frida-server -D # 验证 Frida 连通性列出 USB 设备上的进程 frida-ps -U非越狱设备环境准备仅限授权测试# 使用 Frida Gadget 修补 IPA objection patchipa --source target.ipa --codesign-signature Apple Development: testexample.com # 安装修补后的 IPA ideviceinstaller -i target-patched.ipa决策依据可参考 workflows.md 中的决策矩阵设备状态IPA 可用性推荐方案越狱无需直接启动 Frida server Objection 附加非越狱可用使用objection patchipa修补 IPA非越狱不可用向客户索取 IPA 或通过设备管理方案获取模拟器N/A受限仅在 Corellium 等平台上使用 Frida权限红线切勿在未获明确授权的生产设备上使用本技能——Objection 会修改应用运行时行为可能触发安全监控告警。三、填写 Engagement Information锁定评估范围报告第一张表用于界定评估的边界与身份信息模板字段如下FieldValueApplication[APP_NAME]Bundle ID[BUNDLE_ID]iOS Version[IOS_VERSION]Device[DEVICE_MODEL]Device State[Jailbroken/Non-Jailbroken]Assessment Date[DATE]Analyst[ANALYST]Objection Version[VERSION]其中 Bundle ID 是整个评估的关键参数它将贯穿所有 Objection 附加命令。获取二进制基本信息可用ios info binary # 查看目标二进制信息 env # 显示应用环境路径Bundle ID 的写法直接影响附加方式。根据 api-reference.mdObjection 支持两种启动形态objection -g com.example.app explore # 附加到正在运行的应用 objection -g com.example.app explore -s command # 附加并执行启动命令而 SKILL.md 推荐的挂载方式为--gadget参数# 按 Bundle ID 附加到运行中的应用 objection --gadget com.target.app explore # 或重新拉起应用并在启动阶段执行类枚举 objection --gadget com.target.app explore --startup-command ios hooking list classesDevice State 的取证意义越狱/非越狱直接影响测试方法与部分结论的适用范围。非越狱测试因依赖 Frida Gadget 注入某些系统级 keychain 项的可见范围与越狱场景不同报告应在该字段如实标注避免结论被误用。四、Keychain Analysis钥匙串敏感数据取证Keychain 是 iOS 的凭证安全存储系统。Objection 能够导出目标应用访问组keychain access group内可访问的 keychain 条目这是检测不当凭证使用OWASP M1与不安全数据存储M9的核心取证手段。核心命令# 导出应用可访问的 Keychain 条目 ios keychain dump # JSON 格式输出便于自动化解析 ios keychain dump --json报告表格字段ServiceAccountData TypeProtection ClassRisk[SERVICE][ACCOUNT][TYPE][CLASS][RISK]填写要点Service / Account标识 keychain 条目的归属服务与账号用于定位凭证对应哪项业务功能Data Type标注数据类型如密码、令牌、证书、通用机密Protection Class对应kSecAttrAccessible的值是判定保护等级的直接依据。依据 standards.md 中的 Apple 平台安全要求需重点核验 keychain 条目的访问控制属性Risk结合敏感度与保护等级给出高/中/低。Findings 段落应描述发现了哪些敏感数据、存放方式是否合规、是否存在明文口令或弱保护等级条目。范围限制重要Objection 只能导出应用访问组内的 keychain 条目系统级 keychain 条目需要单独的越狱级工具处理。此限制应在报告中注明避免高估或低估暴露面。五、Data Storage Assessment本地数据存储审计对应 OWASP M9Insecure Data Storage与 MASVS-STORAGE 控制域。模板将其细分为三个子表NSUserDefaults、SQLite 数据库、文件系统。NSUserDefaultsKeyContains Sensitive DataRisk[KEY][YES/NO][RISK]取证命令# 读取 NSUserDefaults 全部键值 ios nsuserdefaults getNSUserDefaults 以明文 plist 形式存放于沙箱的/Library/Preferences目录任何存入口令、令牌、会话信息的做法都属于不安全存储。报告中应逐键标记是否包含敏感数据并给出风险评级。SQLite 数据库DatabaseEncryptedSensitive TablesRisk[DB_NAME][YES/NO][TABLES][RISK]取证命令# 连接沙箱内的 SQLite 数据库 sqlite connect app_data.db # 对敏感表执行查询示例查找凭证表 sqlite execute query SELECT * FROM credentials评估要点数据库是否加密未加密即高风险是否存在敏感表用户、凭证、交易、消息等敏感字段是否以明文存储。文件系统PathContentsProtectionRisk[PATH][DESCRIPTION][ATTRIBUTE][RISK]取证命令ls / # 列出沙箱根目录 ls /Documents # 列出 Documents 目录 file download /path/to/file local.out # 下载文件到本地分析 file upload local.file /remote/path # 上传文件到沙箱沙箱路径含义对照来自 api-reference.md路径内容/Documents用户生成的数据/Library/Caches缓存数据/Library/Preferencesplist 设置/tmp临时文件/Library/CookiesCookie 存储Protection 字段对应 iOS 数据保护 APIData Protection的文件保护属性。依据 standards.md 的 MASTG-TEST-0057还应检查敏感文件是否设置了备份排除属性backup exclusion防止数据经备份泄露。附加取证剪贴板# 监控剪贴板访问与内容 ios pasteboard monitor六、Network Security传输安全与 SSL Pinning 评估对应 OWASP M5Insecure Communication与 MASVS-NETWORK。模板要求记录三项关键结论CheckResultDetailsSSL Pinning Present[YES/NO][IMPLEMENTATION_DETAILS]SSL Pinning Bypass[SUCCESS/FAIL][METHOD_USED]ATS Configuration[STRICT/RELAXED][EXCEPTIONS]取证命令# 禁用 SSL/TLS 证书绑定 ios sslpinning disable # 静默模式输出更精简 ios sslpinning disable --quiet # 挂接网络类方法观察证书校验与请求行为 ios hooking watch class NSURLSession ios hooking watch class NSURLConnectionSSL Pinning Bypass的验证闭环在 workflows.md 的 Workflow 2 中有完整定义配置 Burp Suite 代理 → 设置设备代理 → 附加 Objection → 执行ios sslpinning disable→ 在应用 UI 中触发网络请求 → 在 Burp 中捕获 HTTPS 流量 → 分析 API 端点、测试认证流程、检查传输中的敏感数据。ATS Configuration的取证方式检查 Info.plist 中的 ATS 配置尤其是NSAllowsArbitraryLoads例外依据 standards.md 的 MASTG-TEST-0066 与 Apple 平台要求# 读取 Info.plist检查 ATS 例外与不安全的 HTTP 豁免 ios plist cat Info.plist如果应用启用了 ATS 例外RELAXED报告中必须逐条列出例外项及受影响域。七、Binary Protection Assessment二进制防护强度评估对应 OWASP M7Insufficient Binary Protections与 MASVS-RESILIENCE。模板列出四类防护ProtectionStatusDetailsJailbreak Detection[Present/Absent][BYPASS_DIFFICULTY]Frida Detection[Present/Absent][DETAILS]Debug Detection[Present/Absent][DETAILS]Code Obfuscation[Yes/No][DETAILS]越狱检测评估命令# 绕过越狱检测 ios jailbreak disable # 模拟越狱设备环境 ios jailbreak simulateworkflows.md 的 Workflow 4 给出了标准评估流程附加 Objection → 执行ios jailbreak disable→ 在应用内导航观察功能是否正常 → 若绕过失败说明存在额外的检测方法需挂接检测方法、监控文件检查如 Cydia 相关路径与 Cydia URL scheme编写针对性 Frida 脚本深度绕过。报告中应记录发现的检测方法清单并评估绕过难度BYPASS_DIFFICULTY。Frida 检测与反调试评估通过枚举运行时模块与已加载框架判断是否存在 Frida/调试器检测库# 列出已加载的模块与框架 memory list modules ios bundles list_frameworks代码混淆评估结合运行时类枚举与二进制信息判断混淆程度。依据 standards.md 的 MASVS-CODE 控制域还应检查二进制调试符号、PIE、ARC、栈金丝雀stack canary等防护特性对应 OWASP M7 的检测项。八、Memory Analysis内存敏感信息检索对应 MASVS-CRYPTO密钥存储、算法选择与 OWASP M9。模板按四类模式进行检索Search PatternFoundRiskDetailsPasswords[YES/NO][RISK][DETAILS]Auth Tokens[YES/NO][RISK][DETAILS]API Keys[YES/NO][RISK][DETAILS]JWTs[YES/NO][RISK][DETAILS]取证命令# 在内存中检索敏感字符串 memory search password --string memory search api_key --string memory search Bearer --string # 转储指定内存区域 memory dump all dump_output/ # 列出模块导出用于分析加密实现 memory list exports libModule.dylibJWT 的检索可结合eyJ前缀特征JWT 的 Base64 头部固定前缀。发现内存中存在口令、令牌、密钥的明文即构成高优先级发现——无论其在存储层是否加密运行时内存中的明文暴露都会扩大攻击面。九、Authentication 与 Platform Interaction 的补充取证虽然模板未单列章节但 SKILL.md 的 Workflow Step 5 与 Step 7 分别覆盖 MASVS-AUTH 与 MASVS-PLATFORM其发现应汇总进报告的相关章节认证问题并入 Network/Recommendations平台问题并入 Keychain/存储。认证与授权取证MASVS-AUTH# 列出全部 Objective-C 类 ios hooking list classes # 检索认证相关类 ios hooking search classes Auth ios hooking search classes Login ios hooking search classes Token # 挂接认证方法观察参数与返回值 ios hooking watch method [AuthManager validateToken:] --dump-args --dump-return # 监控生物认证调用如 Face ID / Touch ID ios hooking watch class LAContext平台交互取证MASVS-PLATFORM# 列出应用注册的 URL scheme ios info binary ios bundles list_frameworks # 挂接 URL scheme 处理入口 ios hooking watch method -[AppDelegate application:openURL:options:] --dump-args # 检查自定义键盘限制等输入控件 ios hooking search classes UITextFieldDeep Link / URL scheme 的安全性对应 MASTG-TEST-0060以及剪贴板暴露对应模板的 pasteboard 取证都应在报告中体现。十、方法挂接Hooking的底层原理与进阶用法Objection 的 hooking 能力源于 Frida 的动态插桩。理解其原理有助于在报告中准确描述测试方法与绕过细节。常用 Objection hooking 命令族# 过滤类列表 ios hooking list classes --include Auth # 列出类的所有方法 ios hooking list class_methods ClassName # 挂接并观察方法调用 ios hooking watch method -[Class method] # 覆盖方法返回值如将越狱检测结果强制改为 false ios hooking set return_value -[Class isJB] falseFrida 脚本形态当 Objection 内置命令无法覆盖场景时可直接编写 Frida 脚本。仓库 api-reference.md 给出标准脚本模板// 挂接类方法并记录参数 ObjC.choose(ObjC.classes.ClassName, { onMatch: function(instance) { Interceptor.attach(instance[- methodName:].implementation, { onEnter: function(args) { console.log(arg1:, ObjC.Object(args[2])); } }); }, onComplete: function() {} });Frida CLI 的常用形态frida -U -n AppName # 按名称附加 frida -U -f com.app.id # 重新拉起并附加 frida -U -n AppName -l script.js # 加载脚本 frida-ps -U # 列出运行进程 frida-ls-devices # 列出连接设备仓库 agent.py 中预置了三个可直接复用的 Frida 脚本片段可作为高级取证的起点ssl_pinning_bypass降级 TLS 最低协议版本、jailbreak_bypass对NSFileManager - fileExistsAtPath:的越狱特征路径检查返回 false、keychain_dump构造kSecClass查询。Swift 命名注意Swift 方法在运行时存在名称修饰name mangling。应使用ios hooking list classes配合 grep 查找反修饰后的类名避免挂接失败。十一、源码级自动化用仓库脚本一键生成评估证据仓库提供了两个可直接运行的 Python 脚本可将上述手工命令流程化为可复现的评估证据链并自动生成 JSON 报告——这正是向 template.md 各表格填充原始数据的来源。process.py面向完整评估流程的自动化脚本。python process.py --bundle-id com.target.app [--device-id UDID] [--output report.json] [--checks keychain nsuserdefaults ssl jailbreak memory]其核心类ObjectionAssessor提供以下方法与报告章节一一对应方法对应报告章节底层 Objection 命令check_frida_connectivity()环境可用性frida-ps -Udump_keychain()Keychain Analysisios keychain dumpcheck_nsuserdefaults()NSUserDefaults 子表ios nsuserdefaults get并正则匹配 password/token/secret 等敏感模式check_ssl_pinning()Network Securityios sslpinning disablecheck_jailbreak_detection()Binary Protectionios jailbreak disablesearch_sensitive_memory()Memory Analysismemory search pattern --stringpattern 含 password、Bearer、eyJ、api_key、secretget_app_info()Engagement Informationios info binaryenv脚本自动为每项检查标注 severityHIGH/MEDIUM/INFO/PASS、关联的 MASVS 类别与 OWASP Mobile 编号如 keychain 检查映射为MASVS-STORAGE/M9并汇总生成含严重级别统计的objection_report.json——这些字段可直接对应模板表格中的 Risk 列。agent.py面向 OWASP Mobile Top 10 维度组织的轻量评估代理。python agent.py com.example.app其OWASP_MOBILE_CHECKS字典定义了各 OWASP 类别对应的 Objection 检查组合M1不当平台使用ios keychain dump、ios plist cat Info.plistM2不安全数据存储ios keychain dump、ios cookies get、ios nsuserdefaults getM3不安全通信ios sslpinning disableM4不安全认证ios hooking list classes --include Auth/LoginM5加密不足ios hooking list classes --include Crypto/AESM8代码篡改ios jailbreak disableM9逆向工程ios hooking list classes。run_owasp_assessment()会逐条执行并记录每条命令的退出状态与输出预览generate_report()输出符合 OWASP Mobile Top 10 框架维度的结构化结果。执行前请先安装依赖脚本在 Objection 未安装时会返回objection not installed (pip install objection)提示。十二、标准映射让报告对接行业框架为了让报告具备合规参考价值standards.md 提供了完整的标准映射表可直接复用于报告正文或附录OWASP Mobile Top 10 2024 覆盖矩阵OWASP ID风险Objection 测试覆盖M1Improper Credential UsageKeychain 转储、内存字符串检索硬编码凭证M3Insecure Authentication/Authorization挂接认证方法、绕过生物识别检查M5Insecure CommunicationSSL Pinning 绕过、网络类挂接M7Insufficient Binary Protections越狱检测绕过、Frida 检测评估M8Security MisconfigurationInfo.plist 审查、URL scheme 分析、ATS 配置M9Insecure Data StorageNSUserDefaults 检查、SQLite 访问、文件系统审查OWASP MASVS v2.0 控制映射MASVS 类别Objection 命令评估领域MASVS-STORAGEios keychain dump、ios nsuserdefaults get、sqlite connectKeychain、NSUserDefaults、数据库敏感数据MASVS-CRYPTOmemory search、挂接加密框架调用密钥存储、算法选择MASVS-AUTH挂接 LAContext、认证类生物识别绕过、会话管理MASVS-NETWORKios sslpinning disable、挂接 NSURLSession证书绑定、明文流量MASVS-PLATFORM挂接 URL scheme 处理器、剪贴板监控Deep Link 安全、剪贴板暴露MASVS-CODEmemory list modules、二进制检查调试符号、框架分析MASVS-RESILIENCEios jailbreak disable、Frida 检测挂接反篡改、反调试OWASP MASTG 测试用例对应关系节选Test ID描述Objection 方法MASTG-TEST-0053本地存储敏感数据测试ios keychain dump、文件系统检查MASTG-TEST-0057备份敏感数据测试检查备份排除属性MASTG-TEST-0060自定义 URL scheme 测试挂接application:openURL:options:MASTG-TEST-0063日志敏感数据测试通过挂接监控 NSLog 调用MASTG-TEST-0066强制 ATS 测试检查 Info.plist ATS 配置Apple 平台安全要求要求评估方法Keychain 访问控制通过 keychain dump 核验kSecAttrAccessible值App Transport Security检查 Info.plist 中NSAllowsArbitraryLoads例外Data Protection API核验敏感文件保护属性Secure Enclave 使用挂接 SecKey 操作以检查生物识别保护密钥十三、Executive Summary 与 Recommendations 的写作要点模板的 Executive Summary 与 Recommendations 是报告的门面直接决定读者的第一印象与后续行动优先级。Executive Summary用一段话凝练 Objection 运行时分析的总体结论建议按以下逻辑组织目标应用整体安全态势 → 已确认的高危问题如 Keychain 明文凭证、SSL Pinning 可被绕过、内存中出现 JWT→ 防护措施的强度判断越狱检测是否可绕过、混淆是否有效→ 需要优先处置的方向。Recommendations严格按模板分为三级Critical可被直接利用且影响巨大的问题如 keychain 中存在明文口令且保护等级过弱、SSL Pinning 完全缺失、API 密钥硬编码High显著扩大攻击面的问题如认证流程可被运行时篡改、敏感数据明文存储于 NSUserDefaults、越狱检测可被一行命令绕过Medium加固与最佳实践类问题如 ATS 例外过多、剪贴板过度暴露、缺少反调试措施。建议依据来自 workflows.md 的 Workflow 1所有发现需在评估过程中即时记录SKILL.md 特别强调 Objection 的一切修改均为运行时态、应用重启即失效再在报告撰写阶段统一分级。十四、常见陷阱与报告准确性守则基于 SKILL.md 的 Common Pitfalls报告写作时需特别留意附加时应用崩溃部分应用实现了 Frida 检测崩溃本身即为存在 Frida 检测的证据应记录在 Binary Protection Assessment 的 Frida Detection 行中可用--startup-command在应用生命周期早期挂接反 Frida 检查绕过后再继续评估Keychain 访问范围Objection 只能转储应用访问组内的条目切勿将未发现系统级条目误报为系统级 keychain 安全Swift 名称修饰方法名在运行时被修饰挂接失败不代表方法不存在需先反修饰类名改动非持久化所有运行时修改在应用重启后重置报告中引用的每条证据都应注明取证时的运行时状态并即时落盘记录。结语从环境准备、运行时附加到 Keychain、存储、网络、二进制防护与内存的逐项取证再到按结构化模板输出报告本技能为 iOS 应用的授权安全评估提供了一条完整、可复现的路径。报告模板 template.md 是交付骨架SKILL.md 提供命令工作流api-reference.md 与 standards.md 提供参数细节与标准映射而 process.py 与 agent.py 则可将取证过程自动化、证据结构化。任何评估都必须建立在授权范围内并始终遵循即时记录、如实分级、注明限制的原则。【免费下载链接】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),仅供参考