0
点赞
收藏
分享

微信扫一扫

IOS应用安全测试用例

兵部尚输 2022-04-02 阅读 161

一、客户端安全测试
1.1、安装包签名及校验
【问题描述】
签名证书是对APP开发者身份的唯一标识,开发者可利用签名证书有效降低APP的盗版率。未进行签名证书的APP,可能被反编译后进行二次打包。重新打包签名的应用,可能导致APP被仿冒盗版,影响其合法收入,甚至可能被添加钓鱼代码、病毒代码、恶意代码,导致用户敏感信息泄露或者恶意攻击。
【测试结果】
安全/不安全

1.2、篡改和二次打包
【问题描述】
客户端程序如果没有自校验机制的话,攻击者有可能通过篡改客户端程序,显示钓鱼信息欺骗用户,窃取用户的隐私信息。
【测试结果】
安全/不安全

1.3、进程注入
【问题描述】
成功的进程注入将使得攻击者可以搜索、篡改敏感内存或干涉客户端的执行过程。
【测试结果】
安全/不安全

1.4、远程调试
【问题描述】
检查客户端程序在Entitlements.plist文件或内嵌Entitlements中是否包含调试设置。如果攻击者能够通过xcode对APP进行调试,将可以干涉APP的正常执行。
【测试结果】
安全/不安全

1.5、UI敏感信息
【问题描述】
视具体的泄露信息而定,敏感信息泄露可能会方便恶意程序窃取凭据,或者泄露一些原本不希望被用户看到的内容。
【测试结果】
安全/不安全

1.6、残留敏感信息测试
【问题描述】
移动应用发布包中如果存在残留的手机号、账户、密码信息,可能会被盗取并恶意利用在正式服务器上进行攻击,例如账号重试,攻击安全薄弱的测试服务器以获取服务器安全漏洞或者逻辑漏洞。
【测试结果】
安全/不安全

1.7、密码修改验证
【问题描述】
修改密码过程中若未要求用户输入旧密码进行旧密码认证,则可能造成非用户本人修改密码或者通过CSRF漏洞伪造用户修改密码请求,修改用户密码。
【测试结果】
安全/不安全

1.8、应用更新安全
【问题描述】
更新时将会下载新的安装包,如果此时客户端没有对服务端返回的更新URL进行合法性校验,则攻击者可以将该更新URL替换为恶意链接让客户端打开并下载以及下载后的安装运行,如此将造成严重的安全后果。
【测试结果】
安全/不安全

1.9、安全退出
【问题描述】
账户注销过程应当在后台清除用户token、session;若退出后只在客户端界面进行退出,且攻击者获取到用户的session信息,则攻击者可以长期使用该session信息和服务端进行交互。
【测试结果】
安全/不安全

1.10、本地信息存储
【问题描述】
危害程度视具体的泄露信息而定,敏感信息泄露可能会方便恶意程序窃取凭据,或者泄露一些原本不希望被用户看到的内容。具体体现在:
1、存储文件中、数据库中、安装包中、密钥链中的敏感信息;<br> 2、内存中、日志中的敏感信息。
【测试结果】
安全/不安全

1.11、代码硬编码不合理数据
【问题描述】
代码中如果泄露了公司、员工的敏感信息、或者泄露了应用的敏感信息(比如App Secret Key等),将造成不必要的损失。
【测试结果】
安全/不安全

1.12、加密算法使用
【问题描述】
AES/DES是常用的两种对称加密算法,其工作模式有ECB、CBC、CFB和OFB。当其使用ECB或OFB工作模式时,加密数据可能被选择明文攻击CPA破解。加密方法失效后可能导致客户端隐私数据泄露,加密文件破解,传输数据被获取,中间人攻击等后果,造成用户敏感信息被窃取。
RSA算法是最为典型的非对称加密算法,也是当今应用范围最为广泛的非对称加密算法,也是第一个能用于数据加密也能用于数字签名的算法。使用RSA加密算法时,应注意以下两点:
1、密钥长度过短,会导致密钥被破解,通常小于512bit的密钥即存在破解的风险;<br> 2、加密算法没有使用正确的工作模式和填充方式,容易导致部分加密数据被破解或者遭到选择明文攻击(CPA)。
RSA加密算法的不安全使用,可能导致客户端隐私数据泄露,加密文件破解,传输数据被获取,中间人攻击等后果,造成用户敏感信息被窃取,甚至造成财产损失。
【测试结果】
安全/不安全

1.13、全局可读写漏洞
【问题描述】
为了实现不同软件之间的数据共享,设置内部文件为全局可读或全局可写,导致其他应用可以读取和修改该文件。如果此类文件包含了关键配置信息,账户信息数据等敏感信息,可能会被盗取或者恶意篡改,导致如程序无法运行,业务逻辑被修改等问题。
【测试结果】
安全/不安全

1.14、用户枚举
【问题描述】
不断的尝试注册数据(如手机号、邮箱等),然后利用系统的返回逻辑,判断出哪些用户名是存在的,再对合法存在的用户名做进一步攻击。
【测试结果】
安全/不安全

1.15、密码复杂度限制
【问题描述】
如果对用户注册的密码没有做复杂度限制,则可能有用户使用弱密码,导致口令被轻而易举的猜解。
【测试结果】
安全/不安全

1.16、越狱环境检测
【问题描述】
越狱环境下运行APP是不安全的,如果用户在越狱环境下运行APP,可能会到来较大的安全隐患,因此,APP需要检测运行环境,如果是越狱环境,需要给出弹窗提示。
【测试结果】
安全/不安全

1.17、SSL Pinning测试
【问题描述】
如果证书没有做强校验,则有可能会通过导入第三方证书(如fiddler的证书或burpsuite的证书),来实现中间人攻击。
【测试结果】
安全/不安全

二、通信安全测试
2.1、中间人攻击
【问题描述】
中间人攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。攻击方式主要有信息篡改和信息窃取。
【测试结果】
安全/不安全

 2.2、信息传输安全
【问题描述】
敏感数据传输时没有对其进行加密或只对其进行了较弱的加密,这样容易被窃听者直接窃听到或分析到敏感内容,造成敏感信息泄漏。
如果HTTP请求和响应的内容没有做加密,则通过中间人攻击可以看到请求和响应的内容,从而开展进一步的攻击。
【测试结果】
安全/不安全

2.3、会话劫持
【问题描述】
在通过数据包分析出特定的设备信息后,如果服务端校验存在纰漏,可以利用这些特定的设备信息构造请求并向指定的接口发送,从而劫持设备。
【测试结果】
安全/不安全

2.4、通信加密算法安全
【问题描述】
如果对通信中数据的加密使用了不安全的加密算法或不合理的加密算法方式,容易造成通信被窃听者破译,使得敏感信息泄漏。
【测试结果】
安全/不安全

2.5、APP客户端TLS加密通信
【问题描述】
APP客户端与web服务器之间的通信如果没有使用加密或使用了低版本的SSL加密,会使得通信数据容易被破译从而泄露或被篡改,因此形成安全隐患。
建议使用安全的TLS-1.2或以上版本对通信进行加密。
【测试结果】
安全/不安全

2.6、APP通信证书校验
【问题描述】
如果APP与服务端未对双方证书做安全校验或校验不安全,会使得无需在手机设备中导入抓包工具证书也能抓取到https明文数据包,以此利用中间人攻击等手段进行攻击。
【测试结果】
安全/不安全

2.7、APP客户端数据重放
【问题描述】
服务端如果对客户端发起的敏感请求(如添加账号、设备等)没有做好安全校验,攻击者将抓取的敏感请求数据包进行重放,服务端持续处理该请求,造成的后果是非常严重的。
【测试结果】
安全/不安全

2.8、数据跨境传输
【问题描述】
如果有欧美业务的话。美国区或欧洲区产生的数据,应全部存储在美国区或欧洲区,不应该存在中国区域名,如果存在中国区域名,将可能导致产生数据合规纠纷,引发不必要的麻烦。
【测试结果】
安全/不安全

举报

相关推荐

0 条评论