👻
security
  • 计算机技术
  • OWASP TOP 10
  • 名词解释
  • 1
    • 常见端口利用
    • F5 big-ip从环境搭建到漏洞复现
    • 红队资源
  • About
    • APT
      • 海莲花(APT-C-00)
        • 样本分析
      • 毒云藤(APT-C-01)
        • 大规模钓鱼攻击活动披露
        • 2020上半年针对我重要机构定向攻击活动揭秘
      • 响尾蛇(T-APT-04)
        • 利用WebSocket隧道的新型攻击活动披露
      • 蔓灵花(APT-C-08)
        • 移动平台攻击活动揭露
      • 蓝宝菇(APT-C-12)
        • 组织使用云存储技术发起的最新攻击活动披露
      • 双尾蝎组织(APT-C-23)
        • 针对中东地区的最新攻击活动
      • Lazarus(APT-C-26)
        • 暴风行动 -利用MATA框架针对数字货币行业的攻击活动揭秘
      • Fancy Bear(APT-C-28)
        • 携小众压缩包诱饵对北约、中亚目标的定向攻击分析
      • 肚脑虫组织(APT-C-35)
        • 使用升级版数字武器针对周边地区的攻击活动
        • 针对巴基斯坦的攻击活动
      • 拍拍熊(APT-C-37)
      • 军刀狮(APT-C-38)
      • 蓝色魔眼(APT-C-41)
        • 组织首次针对我国重要机构定向攻击活动披露
      • 美人鱼(Infy)
        • 使用最新的Foudre后门进行攻击活动的分析
    • 各类靶场讲解
      • sqli-labs
      • upload-labs
      • xss-labs
    • CISP题库
    • Docker
      • Docker基线
        • docker基线-概述
        • 推荐一
        • 推荐二
        • 推荐三
        • 推荐四
        • 推荐五
        • 推荐六
      • 命令与选项
      • 基于Docker的固件模拟
      • 固件相关
      • Docker 私有仓库搭建
      • 基础命令的背后
      • 渗透思路调研
      • Docker容器环境检测方法【代码】
    • 浏览器
    • markdown
    • 密码学
    • 内网渗透TIPS
    • 网络扫描
    • 正则表达式
  • 操作系统
    • Android
      • APK终端安全分析法
      • 应用审计指南
        • 通用审计方法
    • IOS
      • 应用审计指南
    • Linux
      • 反弹shell
      • 基线检查
      • SHELL编程
      • 实战技能
    • windows
      • BACKDOOR with 权限维持
      • 磁盘取证实验
      • 基线检查
      • 免杀抓取明文
      • payload下载方式
      • powershell
      • 日志分析
        • 分析工具
      • Untitled
  • 数据库
    • db2
    • mysql
      • webshell写入
      • 基础知识
      • 核心技术
      • 高级应用
    • oracle
      • webshell写入
    • SQLserver
      • webshell写入
  • 中间件
    • apache
      • 基线检查
      • 日志审计
    • iis
      • 基线检查
      • 7.5解析绕过漏洞
    • nginx
      • 基线检查
    • tomcat
      • 基线检查
  • 编程语言
    • C
    • Java
      • webshell
        • 查杀Java web filter型内存马
        • Filter/Servlet型内存马的扫描抓捕与查杀
        • 基于内存 Webshell 的无文件攻击技术研究
        • 基于tomcat的内存 Webshell 无文件攻击技术
        • Tomcat 内存马检测
      • 代码审计
      • 代码审计指南
      • 浅析Java命令执行
      • 相关框架简介及漏洞
    • PHP
      • 代码审计
      • 破解DVWA-admin密码
      • webshell
        • 常见php一句话webshell解析
        • PHP Webshell Hidden Learning
        • Webshell免杀研究
        • Webshell那些事-攻击篇
        • 过D盾webshell分享
      • 相关框架简介及漏洞
    • python
      • 安全编码规范-代码审计
      • 编码规范
      • fishc
      • 某教程涉及脚本
      • POC编写相关
      • python秘籍
        • 上半部分
        • 下半部分
      • 安全方面的内容
        • Python Opcode逃逸笔记
        • 虚拟机逃逸
      • with-EXCEL
      • 相关框架简介及漏洞
      • 源码剖析
        • 多线程和GIL锁
        • Set容器
        • 统一内存管理
        • 信号处理机制
        • 循环垃圾回收器
        • 字符串对象PyStringObject
        • 整数对象PyIntObject
        • 字节码和虚拟机
    • 汇编
    • Javascript
      • Tampermonkey Script
  • AIGC
    • howtouse
  • 网络
    • CCNA
  • 漏洞类型及讲解
    • 综合
    • 技术分享
      • 暴力破解与信息泄露
      • 信息泄露漏洞_java
      • sqli-with-java
      • python远程命令执行与SSRF
    • SQL-Injectoin
    • Cross-Site Scripting
      • 跨站的艺术-XSS入门与介绍
      • 跨站的艺术-XSS Fuzzing 的技巧
      • 给开发者的终极XSS防护备忘录
      • AngularJS特性的 XSS
    • 文件操作
      • 文件包含
  • how-to-use
    • Acunetix(AWVS)
      • 安装到使用
      • 编写AWVS脚本探测web services
      • 简单分析-web方面
      • 流量分析特征
    • burpsuite
      • 导出报告方式
      • captcha-killer
      • FAKE-IP
      • JSFind
      • 编写插件绕过WAF
    • Cobalt Strike
      • Cobalt Strike Powershell过360+Defender上线
    • FOFA
    • GDB
    • PowerSh
      • 获得Powershell命令的历史记录
      • 深入分析PowerShell的两面性
      • 内网渗透利器之PowerSploit
      • PoC:滥用PowerShell Core
      • 如何绕过PowerShell访问限制并实现PowerShell代码执行
      • 工具包
      • 无powershell运行powershell方法总结
    • sheji
    • sqlmap
      • Atlas修改SQLMap tampers 绕过WAF/IDS/IPS
      • 内核分析
      • 检测剖析
      • tamper
      • UDF
      • --os-shell
      • sqlmapapi
      • with burp
      • 网络特征
    • Matlab
    • Metasploit
      • 与Powershell
    • NESSUS
      • 流量分析特征
      • Untitled
    • Network MapTools
      • 流量特征修改
      • 识别主机指纹
    • waf
      • ngx-lua-waf
      • modsecurity
由 GitBook 提供支持
在本页
  • 一. 概述
  • 1.1 前言
  • 1.2 适用范围和对象
  • 二. iOS APP 通用审计方法
  • 2.1 静态检测
  • 2.2 动态检测
  • 三. 常见逆向工具使用
  • 3.1 frida
  • 3.2 Cycript
  • 四. CheckList
  • 4.1 静态检测项
  • 4.2 动态检测项

这有帮助吗?

  1. 操作系统
  2. IOS

应用审计指南

一. 概述

1.1 前言

提高安全测试的效率,配合业务方自查。在开发以及 QA 阶段就消除常见的安全 问题,提高安全审计的效率。

1.2 适用范围和对象

本文档用于 iOS 客户端的日常审计参考,提升安全审计的效率。

二. iOS APP 通用审计方法

2.1 静态检测

静态检测主要是指通过扫描工具对 IPA 文件进行静态扫描和检查,尽快发现可 能存在的安全隐患。

2.1.1 配置文件完整性

检测 Info.plist 和 embedded.mobileprovision 等配置文件中的关键项,判断 各项是否存在配置错误,缺失等。

测试点:

① 各项配置信息 人工审计,或通过静态审计工具获取配置文件的完整性信息,进 行核对。

2.1.2 二进制文件的安全性

检测二进制文件中的基本安全保护机制是否开启。

测试点:

① 是否开启 PIE ② 是否开启 ARC ③ 是否开启 Stack Canary

2.1.3 存在安全隐患的函数

检测 iOS APP 是否用到了存在安全隐患的函数

测试点:

① 纯 C 运行时库函数:如 gets,strcpy,vsprintf,memcpy 等。 ② 弱伪随机数生成函数:如 srand,random,arc4random 等。 ③ 弱哈希函数:CC_MD5,CC_MD4,CC_MD2 等。 ④ 弱加密算法:Rc4

测试方法: 通过静态检测工具或命令行工具,直接在二进制文件中搜索以上危险函数。

2.1.4 检测 URL

检测 iOS APP 中硬编码的所有 URL,检测其是否包含恶意或敏感信息。

测试方法: 通过静态检测工具或脚本,遍历出当前 APP 包含的所有 URL,查看 UR 中是否有 例如 password 等敏感字段。

2.1.5 第三方 SDK

检测第三方 SDK 是否存在安全隐患

测试方法:

① 通过获取第三方 SDK 的版本等信息,结合当前已经存在的一些 SDK 的漏 洞,检测当前版本是否是有风险有漏洞的。

2.1.6 敏感数据

检测敏感数据,包括但不限于 IPA 配置文件,IPA 中非必要的文本文件等是否 有敏感信息。

测试方法:

② 通过解压 IPA 文件,查看 Info.plist,以及是否有一些涉及敏感信息 的 txt 等文本文件内容。

2.1.7 冗余代码检测

检测方法:

③ 检测当前代码中存在的但是没有被使用的类和函数。

2.1.8 恶意软件

检测 IPA 文件中是否有被恶意软件或恶意 SDK 感染的风险。

检测点:

④ xcodeGhost ⑤ 有米 SDK 检测方法: ⑥ 通过静态扫描工具或以上恶意软件的标志,来判断是否感染病毒。

2.1.9 私有 api

检测当前 APP 中是否调用了苹果官方不允许使用的私有 api。

检测方法: ⑦ 人工审计或通过私有 api 的检测工具来进行。

2.2 动态检测

动态检测指 iOS APP 在运行时可能会存在某些安全隐患,弥补了静态审计的不 足,需要测试人员将 APP 安装在测试机上,进行常规操作后对产生的数据进行 分析,发现可能存在的更深层次的安全问题。

2.2.1 应用日志

检测 iOS APP 在运行时有无包含敏感信息的日志输出。

检测方法: ⑧ 通过 Mac 自带的控制台。 ⑨ xcode 自带的日志打印、 ⑩ 手机本地安装 syslog 日志收集工具。

2.2.2 网络请求

检测 APP 在网络请求中是否涉及到敏感未加密的参数以及一些常见的 web 漏 洞。

检测项:

11 OWASP TOP10 漏洞 12 敏感明文信息或敏感的弱加密信息

检测方法:

13 通过 Charles 等工具抓包,(有证书检测的,需要安装 ssl-kill-switch 插件),或通过动态审计工具拦截 APP 所有网络请求,检测是否有未加密的敏感 字段。 14 在用户登录、找回密码、注册等处,通过拦截修改返回包,检测其有无常见的逻辑漏洞。 15 通过在 web 请求页面输入文本的地方,通过构造 xss 代码,检测其是否 有 xss 漏洞。 16 通过抓包修改,构建 SQL 注入指令,来检测是否有 SQL 注入漏洞。 17 结合当前网络请求的签名验证情况,修改其网络请求参数,查看其是否 有越权漏洞。

2.2.3 后台快照

检测是否存在后台快照泄露敏感信息的情况。

检测方法:

18 在沙盒路径”Library/caches/snapshots”下,存放着当前 APP 切换进 程时当前界面的截图。在包含敏感信息界面切换后台,查看其保存的敏感截图。

2.2.4 数据存储

检测 APP 存储的敏感信息,例如沙盒目录、keychain 下面等。

检测方法:

19 在路径”/private/var/mobile/containers/data/application”下,存放当前所有 APP 的沙盒文件,在沙盒文件中,主要查看 Document 和 Library 目录下是否存 放一些含有敏感数据的 web 缓存、数据库文件,以及 plist 文件。

20 通过工具 keychain dump,可以把 keychain 中的数据 dump 下来,用来 检测是否在 keychain 中明文存储了密码账号等敏感信息。

21 检测沙盒文件中可以的敏感字段是否用到通用加密算法,以及秘钥是否 硬编码。

2.2.5 数据加密算法

主要检测涉及敏感信息的加密算法的安全性。

检测方法:

① 通过抓包等方法,找到加密参数,然后通过逆向分析等方法,检测是否 为弱加密算法。 ② 通过逆向分析等方法,检测其加密算法是否有硬编码秘钥的风险。

2.2.6 WebView&JS

原生代码通过注册接口提供 web 界面中的 js 调用,调用者可能存在问题。

检测方法:

③ 检测其 webview 是否有涉及敏感信息的接口,如发送短信、获取定位、 付款等。 ④ webview 加载第三方内容时,检测其是否对 native 接口的合法性做校 验。

2.2.7 权限绕过

APP 登录弱验证的问题 ,如果登录的基础采用读取沙盒内的问题件,就会在登 录等功能上有安全风险。

检测方法:

⑤ 通过文件查找的软件(pp 助手等),将 APP 的沙盒文件直接移植到另 一个手机上,查看其是否会自动登录,以此来检验 APP 是否设置合理的检验登录 标志。

2.2.8 旧数据未清除

用户登录 APP 后未清除旧数据,导致 APP 卸载,重新下载后还能继续保持登录 状态。

检测方法:

⑥ 登录 APP,然后直接卸载。 ⑦ 重新安装 APP,如果还能自动登录 APP,就存在安全隐患。 ⑧ keychain 中的密码等信息未清除,假设 APP 有手势密码等功能,用上 述方法,可直接读取手势密码进行登录。

2.2.9 功能性安全问题

APP 中如果有扫描二维码等功能,假设没有对特殊二维码做处理,就可能导致 扫描了畸形二维码而发生拒绝服务。

检测方法:

⑨ 扫描畸形或恶意构造的二维码,看是否做了处理。

2.2.10 解压缩问题

APP 中如果有对 rar、zip 等文件的解压缩功能,若未对特殊压缩包做校验,可 导致构造恶意压缩包直接覆盖本地文件。

检测方法:

⑩ 抓包,若发现请求中有下载 zip 等压缩文件,可直接构造恶意压缩包, 在指定路径直接覆盖原文件。

2.2.11 解析 word 字体

APP 中如果有对 word、pdf 等文档的解析功能,若开发人员未对要解析的文件 进行解析校验,可导致恶意文档文件执行的问题。

检测方法:

11 分析 APP,构造恶意的文档文件,看 APP 打开时是否出错。

三. 常见逆向工具使用

3.1 frida

是一款轻量级的 hook 框架,除了 frida 本身,还包含 frida-ps,frida-trace 等工具。

frida-ps 用来查看当前 pid 以及进程名

frida-trace 用来动态 hook 指定的类,打印函数调用栈。

frida 可以用来加载 js 脚本,hook 指定的类和方法,打印目标参数以及寄存器 里的值。

Frida-dump 可以在运行时 dump 解密后的内存,一般用来砸壳。 先在 Mac 上做端口转发

手机解锁,pc 端直接通过指令“dump.py <进程名>” ,进行脱壳

3.2 Cycript

可以打印当前 APP 的沙盒路径,UI 层级,动态修改 UI 界面等。

四. CheckList

4.1 静态检测项

1) 文件完整性

① 配置项缺失 ② 配置项错误

2) 二进制文件安全性

① 是否开启 PIE ② 是否开启 Stack Canary ③ 是否开启 ARC

3) 危险函数

① 危险的纯 C 运行时库函数 ② 弱伪随机数生成函数 ③ 弱加密函数 ④ 弱哈希函数

4) URL 检测

① URL 包含敏感信息 ② 恶意 URL

5) 第三方 SDK

① 第三方 SDK 是否存在安全问题 ② 是否有更新版本

6) 敏感数据检测

① 是否包含常量敏感字符串 ② 是否包含敏感类

7) 冗余代码检测

① 冗余类和函数

8) IPA 包文件检测

① 是否包含非必要的文本文件

9) 恶意软件感染

① 是否感染 xcodeGhost ② 是否包含恶意 SDK

10) 私有 api 调用

① 是否存在私有 api 调用

4.2 动态检测项

11) 日志输出

① 日志文件是否包含敏感信息

12) 网络请求

① 是否全部使用 https ② 是否做双向证书校验 ③ 网络请求中是否包含敏感未加密数据 ④ 是否含有 OWASP TOP10 漏洞

13) 后台快照

① 敏感页面是否做了处理

14) 数据存储

① 沙盒文件是否具有包含敏感信息的 db。Plist,web 缓存文件 ② keychain 有无明文存储敏感信息

上一页IOS下一页Linux

最后更新于4年前

这有帮助吗?