是的,很遗憾,你可能给别人充值了。但是,叫天天不应,叫地地不灵,运营商也没收到你这笔钱。
专注移动应用安全的娜迦信息公司 CTO 阎文斌(花名:玩命)告诉正在阅读的读者你,不要不相信,这是最近一年来支付、游戏行业 App 最常见的 bug 。
【阎文斌在2017中国移动支付年会上】
一款 App 如何安全地来到你面前
这是支付行业最敏感的地带,在 2017 移动支付年会的演讲中,他没好意思当众揭伤疤,只好在采访中和雷锋网提出了这一现象。
除了上面这种和人们息息相关的漏洞。在游戏行业,有些可以使用虚拟金币的游戏 App,在程序设计时被预留了一些接口,这些接口一旦被黑客发现,就可以做外挂、刷金币。
每个 App 都不一样,但多多少少会有可利用的点,能够达到不公平的效果,尤其像金币这些东西。以前我和厂商说过,我们只是不想搞,这种东西是没钱搞的,太累了,不想花时间在这上头,但是我们只要想花,你们没有任何一款东西能防得住我们。
只要你敢把自家的 App 拿给玩命试一试,在网络安全江湖闯荡近 10 年,曾担任 2008 奥运会网络安全技术顾问的他就敢开干,攻下你家看似严丝密合的“堡垒”。
玩命太了解 App 的薄弱地带了,正因为太了解攻击手段,所以他才想要研究如何给 App 穿上铠甲,走向明枪暗箭的战场 。
在一款 App 正式上战场前,玩命和他技术团队会先对 App 进行一次“全面体检”,就像入职一家新公司,你需要交一份体检报告,只不过玩命做的并非提交体检报告,而是在App 要被相关机构检阅,能提交合格的体检报告前先为 App 查漏补缺;或者在一款 App 版本迭代时,实时跟进检测,充当忠实的卫兵。
玩命采用静态和动态相结合方式针对客户端 App 进行分析。
所谓静态分析,就是分析应用源代码中存在的安全风险,检测包含 Android 组件安全、应用程序安全、数据安全;
动态分析,就是运行应用于安卓模拟器中,检测包含客户端自身安全,Android 组件增强检测,应用通信安全,数据安全。动态分析还要模拟用户和手机交互行为,检测交互过程中应用存在的通信安全风险,抓取应用通信过程中的资源地址,检测应用与服务器通信接口是否存在 SQL 注入,XSS 跨站,中间人攻击等安全问题。
静态分析就像解剖,研究 App 的程序编写是否规范,审核相应权限,它也像新手学车,先在驾校操练,没有面对车水马龙、真枪实弹的环境。
对玩命而言,动态分析才是“练车”的关键:把 App 放在电脑虚拟机和真实手机两个环境中“演练”,考察是否其是否能在真实的环境中正常运行,安全通信。
但是,动态分析会消耗极大的资源,因此,对玩命而言,目前大量开展的还是利用自家服务器进行线下部署。
除了让 App 能够以符合标准的姿态面对这个枪林弹雨的市场,对待一些银行、游戏领域的 App ,玩命还要为其加固,套上一层又一层的铠甲。
在 2016 年的 XPwn 未来安全探索盛会上,一个黑客团队对国内 20 家银行提供给消费者的、基于安卓系统的 20 个手机银行 App 进行攻击,发现 17 家银行的 App 存在漏洞,消费者的手机一旦被黑,无论转账给“张三”还是“李四”,在输入正确账号与密码的情况下,钱最终都会转给“王五”。
在该会议上,攻击者还表示,全国 90 %多的银行 App 都可被劫持,由此可见,互联网金融漏洞对用户造成影响。所以,当时会上专家建议厂商能够避免 App 中存在低级错误,重视产品加固,重视逻辑漏洞,不定时的进行渗透测试。
玩命的烦恼
在娜迦的官网上,雷锋网(公众号:雷锋网)发现了近 20 种加固种类。雷锋网宅客频道的编辑很疑惑:这么多服务项目,到底哪些才是玩命主推的项目?
玩命坦诚地告诉雷锋网,
很多很多,但是很多我们后来都放弃了,因为教育成本太高了。技术好实现,更难的是,教育用户这段时间很难,用户市场不接纳。
用户为什么不接纳?一是涉及到 App 安全加固项目,尤其是金融类,服务对象相当谨慎;二是有些项目实在很难解释,就算是经过专业技术培训的销售人员,除非直接派出纯技术研发人员。
于是,很多不错的加固项目不得不在“性价比”下被舍弃。
玩命还有一个烦恼,自己是“出卖安全技术而生”,是一家安全技术公司,而非提倡“免费”的互联网公司。
玩命说,
如果论打架,我们没在怕的,就是防御力不敢说,因为大家都是差不多的产品嘛,你自吹自擂就没意思了。
这些都属于“防守”范畴。一个严峻的形势是,如果大家产品真的都“差不多”,压价怎么办?
在这种情况下,一些大型的互联网公司也有相应的提供安全服务的部门,他们不以此技术为生,可能仅服务自己的企业。
比如,它也做加固市场,就是维护一个小团队去来做这块,服务于自己的市场或开发部门就行了,但我们就是自己要去拼这个企业市场,一定要拿下某个单子时,这个市场上就会出现可怕的压价行为,这个东西本身价值一万元,现在卖一百,按正常来讲我就不服务来了,但是我们这个行业不服务还不行,你不服务,别人会服务,并不利于安全企业的生存与发展。
“把一个2B 的市场做成一个走量的市场,它现在肯定是畸形的。”玩命感叹。
玩命的实验
在玩命的烦恼下,有一个优势,他从未忘记过。
娜迦公司的创始人团队都是做技术出身,他们很了解安全研发或者检测人员自身的需求,虽然玩命多次强调,就这个领域而言,甚至称不上“市场”,只能说是小众的需求。
比如,一个成熟的逆向人员平时工作量很大,技术要求高。而且,培养一名逆向人员的成本比开发人员高,有没有可能让初级的逆向人员能迅速做到和成熟逆向人员一样的事情?
玩命和团队成员试图为这部分人员研发一款辅助工具——自动逆向辅助工具。
一个白帽子分析一个目标,可能出于两种目的:
1.纯研究功能如何实现、支付规则等,但是原始的汇编代码实在太多,上千类别,一时间根本找不到要的东西,如何撇开无用的部分,找到最关键的线头?
2.找bug。一个逆向人员挖漏洞,从输入到结尾,数据流怎么走,支付发到服务器,要做哪些东西?如何找到一个关键点来修改?
黑客的艺术包括两个:第一,劫持,第二,篡改。无论找什么 bug,主要考虑如何劫持它,在哪劫持它,这是最主要的,其次再考虑如何修改它,修改成什么。所以,开发这项工具最主要的目的是把主线梳理出来,让逆向人员可以顺着这条主线,来找需要的点。
虽然,这款工具还需要几个月才能上市,但玩命已经在娜迦内部开始试用,比如,在为某个客户服务防盗链时,玩命需要研究当前已经对该客户造成影响的 App。这次,应用自己研发出来的“武器”,他派出去“作战”的就可以是“经验不那么丰富的人”。
也许,这款看起来受众面不是那么大的工具,正是玩命的一块试验田,这个自认为“攻无不克”、攻击力极强的 CTO 相当了解他所属的这个人群需要什么,他的实验能否成功?未来娜迦是否还会按照这个思路走,研发出“打架、防御都不怕”,同时还能不让他这么烦恼“拼走量市场”的工具?值得期待。