往期精华文章:
作者简介:马老师,等保咨询师( CIIP、CISP、PIPP、ISO/IEC27001 认证) 前言:等保测评环节中,APP是测评环节不可缺少的一部分(除非被测系统中不涉及APP应用)分析多次APP测评案例,作者梳理出了iOS常见测评漏洞及修复方案 |
WebView组件跨域漏洞
评估目的 |
评估WebView是否存在跨域风险 |
威胁描述 |
WebView是iOS用于显示网页的控件,是一个基于Webkit引擎、展现web页面的控件。WebView控件功能除了具有一般View的属性和设置外,还可对URL请求、页面加载、渲染、页面交互进行处理。iOS平台的WebView组件(UIWebView/WKWebView)存在控件跨域访问漏洞(CNNVD-201801-515),漏洞源UIWebView 默认允许“file://” 域发起跨域请求,而WKWebView可通过手动设置允许“file://”域发起跨域请求。攻击者可利用App文件下载机制将恶意文件写入沙盒内并诱导用户打开,当用户打开恶意文件时,其中的恶意代码可通过AJAX向“file://”域发起请求,从而远程获取App沙盒内所有的本地敏感数据。成功利用该漏洞的攻击者,可以远程获取手机应用沙盒内所有本地文件系统内容,包括浏览器的Cookies、用户的配置文件、文档等敏感信息。 |
修复方案 |
避免开启文件域的全局访问; 避免在WebView中加载来自外部传入的“file://”域页面; 对于敏感信息数据,建议进行加密处理后存储,或使用iOS平台推荐的KeyChain服务进行存储,可缓解漏洞可能造成的破坏; |
URL Schemes中间人攻击
评估目的 |
评估应用是否存在中间人攻击风险 |
威胁描述 |
URL Schemes的设计之初是为了方便APP之间通讯。通过URL Schemes可以在应用间相互唤起,而产生漏洞的根源在于这个URL并非是应用唯一的。apple并没有任何限制或者审核这个URL的任何措施,也就是说,如果两个App有着相同的URL Schemes,那么系统唤起的App可能并不是你想唤起的。如果这些回调的数据被截获,那么就等于说登录信息,用户信息甚至支付订单信息都会暴漏在他人眼下,对于截获者来说,他可以用你的信息进行登录,从而盗取登录后用户信息 |
修复方案 |
应确认被调用方是否为已验证的发送者,避免其他应用伪 装被调用方发送信息,构成中间人攻击 |
弱HASH算法风险
评估目的 |
评估是否使用了弱HASH算法 |
威胁描述 |
弱HASH 算法指安全级别低的HASH 算法,包括SHA1 和MD5。 程序中使用弱HASH 算法时,HASH 算法可能被黑客攻击导致 HASH 校验方法失效。HASH 校验方法失效可能造成客户端隐私数据泄露、文件被篡改、传输数据被获取等后果,导致用户敏感信息被窃取。 |
修复方案 |
使用SHA256、SHA51加密算法 |
日志数据泄露风险
评估目的 |
评估应用中是否存在日志数据泄露风险 |
威胁描述 |
调试信息函数NSLog 和printf 可能输出重要的调试信息,其中包含的信息可能导致用户信息泄露,泄露核心代码逻辑等,为发起攻击提供便利,例如:本地读写文件的路径,可能暴露关键数据的存储位置;通信交互的日志;跟踪的变量值,可能泄露输入账号、密码等。 |
修复方案 |
在发布正式应用时,移除通过NSLog 和printf 输出程序日志的代码,防止输出敏感日志信息暴露程序逻辑 |
缓冲区溢出漏洞
评估目的 |
是否存在缓冲区溢出漏洞 |
威胁描述 |
缓冲区溢出指系统对接收的输入数据长度没有进行有效检测,向缓冲区内填充数据超过了缓冲区本身的容量,导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据。利用缓冲区溢出漏洞发起攻击,可以导致程序运行失败、系统关机重新启动,或者执行攻击者的命令,比如非法提升权限等,窃取用户的敏感信息等。gets、memcpy、sprintf、strcat、strcpy、strlen 等C 标准库中的API 均存在缓冲区溢出漏洞。 |
修复方案 |
使用苹果推荐的替代函数,如strlcpy、strlcat |
APP安全交流
原文始发于微信公众号(京数安APP安全实验室):等保APP测评漏洞修复方案 – iOS篇