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之类信息进行堆栈读取。造成堆栈信息泄漏。

五、客户端运行时安全

5.1、越狱环境检测

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

5.2、动态调试检测

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

5.3、输入记录保护

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

5.4、屏幕录像保护

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

六、客户端静态安全

6.1、程序完整性校验

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

6.2、二进制程序保护

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

6.3、符号表信息泄露

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

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读