IOS 应用安全测试内容

一、客户端数据安全

1.1、日志信息安全

【测试说明】:日志的暴露会有利于黑客对客户端关键敏感逻辑的逆向分析,检查日志输出的控制是否合理等安全风险点。

1.2、数据存储安全

【测试说明】:检测ios的数据是否明文储存。

1.3、键盘缓存检测

【测试说明】:中文应用弹出的默认键盘是简体中文输入法键盘,在输入用户名和密码的时候,如果使用简体中文输入法键盘,输入英文字符和数字字符的用户名和密码时,会自动启动系统输入法自动更正提示,然后用户的输入记录会被缓存下来。

1.4、系统剪切板数据

【测试说明】:剪切版是IOS系统中程序之间进行数据交互的一个途径。如果将应用中的敏感数据存放到剪切板中,则可能长时间保存在剪切板中并且由于剪切板没有访问控制而造成数据泄露。

二、安全策略设置

2.1、软键盘随机化

【测试说明】:在使用自定义软键盘进行敏感信息输入的情况下,有可能被恶意软件进行屏幕点击位置劫持,获取对应的点击位置,得到其输入内容。

2.2、密码修改验证

【测试说明】:检测是否需要输入就密码验证来修改密码。

2.3、密码复杂度检验

【测试说明】:通常客户端没有设置禁止修改口令的强弱判断,导致用户有时贪图方便修改简单密码使攻击者容易通过弱口令进入账号进行非法操作。检测客户端修改密码能否输入弱口令。

2.4、认证失败锁定

【测试说明】:测试账户在登陆时多次输入密码错误或修改密码时候多次错误是否会导致账号被锁定。

2.5、单点登录限制

【测试说明】:绝大多数APP都不需要数台设备同时在线,允许同时在线则无法及时得知是否账号已经被攻击者获取登录并进行操作,也无法通过紧急措施将恶意登录的一方挤下线,保护账号安全。

三、通信传输安全

3.1、通信协议安全

【测试说明】:APP使用HTTP协议进行通信过程中可能会遭受中间人攻击,威胁数据安全。

3.2、应用传输安全(ATS)

【测试说明】:App Transport Security(ATS)是一项IOS功能,可强制移动应用使用HTTPS连接到后端服务器,而不是HTTP,以加密传输中的数据。 ATS强制最低安全级别要求,支持其功能的移动应用程序和Web服务。 适用于iOS 9.0或更高版本的软件开发套件(SDK)默认情况下是ATS,但开发人员可以通过将应用程序的NSAllowsArbitraryLoads键设置为true来选择退出。

四、客户端静态安全

4.1、编译选项检测

【测试说明】:检测程序中是否开启了相关的安全编译选项,如PIE、stack smashing(栈溢出)、ARC(自动引用计数,ARC由编译器进行内存管理),都可以对二进制攻击起到防护作用。

4.2、栈溢出漏洞检测

【测试说明】:程序中未处理好输入内容长度存放到相对应的长度buf中,一旦输入内容长度大于存储大小,则会发生栈溢出。

4.3、格式化字符串漏洞

【测试说明】:当程序直接将输入内容作为NSLog或者其他相关C语言函数(fpring、print等)的唯一参数时候,则可以通过输入%x或者%p之类信息进行堆栈读取。造成堆栈信息泄漏。

4.4、程序完整性校验

【测试说明】:测试客户端是否对自身完整性校验。客户端程序如果没有自校验机制的话,攻击者有可能通过篡改客户端程序,显示钓鱼信息欺骗用户,窃取用户的隐私信息。备注:该漏洞为低风险。

4.5、二进制程序保护

【测试说明】:编译好的可执行文件可以容易地被Hopper或者IDA这类软件反编译。在没有进行函数名和逻辑混淆的时候,则容易被反汇编得到关键逻辑进而进行破解。

4.6、符号表信息泄露

【测试说明】:符号表是逆向工程中的兵家必争之地。有效的符号表能够极大地方便反汇编和逆行工作的进行,在发布应用的时候未清除掉相关的符号则会辅助逆向分析。

五、客户端运行时安全

5.1、越狱环境检测

【测试说明】:越狱的设备是不安全环境,各种恶意程序都容易运行在越狱环境之中。越狱环境中运行则难以保证程序使用过程中数据的安全性。检测设备是否越狱是一个比较有用的方法。

5.2、动态调试检测

【测试说明】:程序如果没有反动态调试,攻击者能够使用LLDB对程序进行动态调试,修改运行时数据,影响程序正常运行甚至获取程序逻辑。

5.3、输入记录保护

【测试说明】:ios中安装了键盘记录程序(可以在非越狱状态运行),则使用系统键盘输入的内容易被键盘记录程序记录,导致内容泄漏。

5.4、屏幕录像保护

【测试说明】:测试通过截图工具,是否可以捕捉到用户密码输入框的密码。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
应用安全渗透测试是指对iOS应用程序进行安全性评估和漏洞检测的过程。它旨在发现应用程序中的安全漏洞,并提供修复建议,以保护用户的数据和应用程序免受恶意攻击。 在进行iOS应用程序的安全渗透测试时,可以采取以下步骤: 1. 静态分析:通过对应用程序的源代码、二进制文件或反编译代码进行分析,来检测潜在的安全漏洞和弱点。这可能涉及到查找不安全的函数调用、密码存储和数据传输等问题。 2. 动态分析:通过运行应用程序并模拟真实的攻击场景,来发现可能存在的漏洞。这可以包括输入验证不足、认证和授权问题,以及数据泄露等。 3. 漏洞利用:在已确认存在漏洞的情况下,渗透测试人员可以尝试利用这些漏洞来获取未经授权的访问或执行特权操作。这有助于验证漏洞的严重性,并为开发人员提供修复建议。 4. 数据保护和加密:渗透测试人员还应关注应用程序中的数据保护和加密机制。他们应该检查是否正确地使用了加密算法、是否存在数据泄露的风险,并评估应用程序在数据传输和存储方面的安全性。 5. 授权和认证:渗透测试人员应验证应用程序的授权和认证机制是否安全。他们应该检查是否存在弱密码、不安全的用户身份验证、会话管理问题等。 总结来说,iOS应用程序的安全渗透测试是一个综合性的过程,旨在发现并修复应用程序中的安全漏洞。通过进行静态和动态分析,漏洞利用,保护数据和加密,以及验证授权和认证机制,可以提高应用程序的安全性,保护用户的数据免受攻击。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值