苏丹,这个非洲东北部的国家,移动金融服务正在飞速渗透,喀土穆银行、费萨尔伊斯兰银行等机构纷纷推出手机银行App(MBA),用户总数超过160万。然而,当金融科技跑得飞快,安全审计却常常被甩在后面。最近一篇独立研究《Security Evaluation of Mobile Banking Applications in Sudan》,对苏丹四大主流移动银行App——Bankak、Fawry、Okash、Sahil——进行了一次“剖腹产”级的静态代码审计,结果触目惊心。龙哥带大家看看这些App到底有多“裸奔”。
研究采用了MobSF和Quixxi两个静态分析工具,对照OWASP移动应用安全验证标准(MASVS v2.0)进行合规检查,并将发现的漏洞映射到通用弱点枚举(CWE)标识。四大App的下载量和基本版本信息如下图所示。
表1:评估的苏丹移动银行应用范围(包含银行名称、应用别名、版本、下载量、MD5和SHA-1哈希)
研究遵循一个系统化的五阶段静态评估流程:应用获取→静态分析→清单和资源检查→映射国际标准→风险影响综合。流程图如下。
图1:系统静态评估过程(五个阶段:应用获取与完整性验证、自动静态分析、清单与资源检查、映射国际标准、风险影响综合)
静态代码质量分析发现了一个让人哭笑不得的普遍问题:全部四款App的正式发布版APK中都保留了调试信息和详细的执行日志(CWE-215)。这些调试符号简直是一份给逆向工程师的“开发指南”,直接暴露了后端API地址、数据流逻辑和内部函数名。虽然所有App都正确设置了android:debuggable=false来阻止调试器直接附加,但日志残留让攻击者可以轻松分析应用逻辑,找到后端漏洞。
表8:代码质量与构建设置分析(Debugging Information Provision一栏四款App全部为☒,即全部存在调试信息泄露问题)
对比来看,Fawry在平台交互安全方面做得最好(比如没有不必要暴露的组件),而Bankak、Okash、Sahil都存在SQL注入风险以及组件不当导出(CWE-926)。但好消息是,所有App都正确禁用了ADB备份,并且没有出现隐藏的WebView元素。可这些亮点在满屏漏洞面前显得微不足道。
[1] He, B., et al. (2015). A survey of mobile banking security. Journal of Computer Virology and Hacking Techniques, 11(4), 207-222.[2] Yildirim, N., & Varol, A. (2019). Mobile banking security threats and vulnerabilities. In 2019 International Conference on Artificial Intelligence and Data Processing (IDAP).[3] Al-Delayel, S. (2022). Security analysis of Qatari mobile banking applications. Journal of Cybersecurity Research, 10(2), 45-60.[4] OWASP Foundation. (2020). OWASP Mobile Application Security Verification Standard (MASVS) v2.0. Available: https://mas.owasp.org/MASVS/