2019 年 10 月,00 后田某因非法获取计算机信息系统数据罪判处有期徒刑三年,并处罚金人民币一万元。当事人田某只有初中文化,但却拥有极强的计算机天赋,在 2019 年 1 月 5 日到 1 月 15 日期间,通过软件抓包、PS 身份证、重放攻击等手段,在某银行手机银行 App 内使用虚假身份信息注册银行Ⅱ、Ⅲ类账户非法销售获利。
「案例分析」
很多人会好奇银行 App 是如何被一步步通过抓包、入侵、重放攻击,从而让黑客有利可图。让我们具体分析下作案过程:
· 首先,田某通过本人身份证信息,在注册账号正常流程中,通过「软件抓包」技术将银行系统下发的人脸识别身份认证数据包进行拦截并保存。
· 其次,在输入开卡密码环节,田某将 App 返回到第一步(上传个人身份证照片),并输入伪造的身份证信息,并在此进入人脸识别身份认证环节。
· 最后,田某使用先前拦截的身份认证数据包(含本人信息)进行上传验证,使得银行系统误以为此环节需比对本人身份信息,遂而成功验证本人人脸,使得其能够成功利用虚假身份证信息注册到银行账户。
「客户端 App 数据安全刻不容缓」
我们应当如何重新审视客户端的数据安全问题?通过解析支付宝目前在"端上安全"的设计机制,也许能够带给我们一些新的启发。
· App 开发期的安全机制设计
支付宝通过打造多层次的端上安全机制从而防止 App 被黑客或木马攻击,具体主要分为"本地域"、"线上运行"以及"App 端"三个层面。在本地域方面,通过代码混淆、加密等手段实现二进制防护;线上运行时,通过"安全黑匣子"打造的数据安全环境以及加密等手段实现数据防泄露;在 App 端,借助数据安全存储、安全签名等手段充分确保业务功能的稳定运行。
· 客户端 App 数据安全传输、安全存储
针对客户端的数据传输与验签,要做到精细化的安全一直是老大难的挑战。借助"安全黑匣子",目前支付宝已实现针对应用级别数据如 AppSecret 采用加密存储,通过数据加签接口实现各类上层业务的封装。
借助安全黑匣子,客户端通过应用公钥和秘钥加密针对生成的数据进行离散存储,保证加密秘钥的安全性。而安全黑匣子本身的代码混淆、多重反调试机制,使其安全性能极大提升保障。
除此之外,安全黑匣子基于反调试技术使得常见的调试工具如 GDB、IDA Pro 的动态调试分析技术失效,基于导出表混淆、垃圾指令等手段充分提升攻击者静态分析应用的难度。如此动静结合,客户端数据传输及存储安全能够充分保障。
· 用户信息验证
随着终端设备算力的持续增强,目前移动端设备借助强大的 CPU 和 GPU 完全可以进行非常复杂的运算。而由此催生出的一系列移动端 AI 引擎,如支付宝的 xNN,帮助我们能够进一步加强用户信息验证的智能化。
结合端上金融业务属性,如银行卡及身份证 OCR 识别、人脸识别、活体检测等智能服务,已经过近 2 亿用户验证,具备识别准确率高、速度快、模块丰富等特点,同时在支付宝小程序中也已开放。
· App 全生命周期防护
关于客户端 App 安全,实际上是一套从 App 开发、上线及使用的一站式解决方案。在 App 开发阶段,提供代码混淆、数据加密、数据库加密等安全开发以及数据安全能力;在上线阶段,提供 App 加固的能力,通过 DEX 加壳、SO 加壳、防反编译、防重打包等能力,提升 App 的整体安全水位;在使用阶段,通过 API 签名、API 数据加密等手段来保障数据的完整性及安全性,同时借助安全加密键盘从而保护用户输入的信息安全性。
「mPaaS 客户端 App 安全能力」
作为源自支付宝的移动开发平台,mPaaS 目前已完成支付宝金融级的端上安全能力沉淀,不仅能够提升 App 应对高峰带宽下的服务质量挑战,同时在弱网情况下的可用性、针对网络请求的危险识别能力均属于行业前列。目前,借助 mPaaS 客户端的加固技术与黑匣子,能够保障移动端的代码安全和网络层的数据安全,提供加签、加密等方式,同时网关能够识别出客户端环境,并有能力针对可疑请求做拦截。