返回目录:财经要闻
全球一站式测试服务领导者Testin发布2017年Q1移动安全监测报告,发现移动安全高危风险五项,所在细分领域涉及18类。
五项高危风险分别是:
代码安全:反编译
代码安全:代码混淆
公开漏洞webview远程代码执行
公开漏洞Https弱校验
数据传输中间人劫持
高危风险涉及领域金融理财类居首,占总体数据的17.32%,排在前五的细分领域分别为:出行类、生活服务类、购物类、社交类、金融理财类。
各项高危风险涉及细分领域,最高频次如下:
代码反编译—常用工具领域
公开漏洞webview远程代码执行—金融理财领域
代码混淆—金融理财领域
公开漏洞Https弱校验—金融理财领域
数据传输中间人劫持—金融理财领域
Testin移动安全专家整理了以上五大高危风险的具体解释,潜在风险和修复建议,以下建议仅供参考:
高危风险—代码安全:反编译
风险解释:
反编译是指通过对他人软件的目标软件(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,一些情况下可直接推导出源代码,如使用Java开发的安卓apk程序,可以直接被导出源代码。
风险危害:
泄露软件核心代码流程,可能被竞争对手直接窃取。
黑产人员可插入恶意代码后进行二次打包,冒充原程序,进行恶意行为。
源码暴露更加容易被黑产人员挖掘软件漏洞,更易受到攻击。
修复建议:
通过对目标DEX文件进行整体加密或压缩方式把整个dex转换为另外一个文件存放在assets文件夹中或者其它地方,然后利用类加载器技术进行内存解密并加载运行。
抽取DexCode中的字节码指令后用零去填充,或者修改方法属性等操作,运行时在内存中做修正、修复等处理工作。
使用第三方加固程序进行加固
高危风险—代码安全:代码混淆
风险解释:
代码混淆是将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量等。打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等。增大黑客直接分析代码的难度。
风险危害:
程序未经过代码混淆处理,开发时原始代码完全会被暴露给黑客,降低黑客的入侵成本
更加容易被进行分析,复制,盗取功能代码。
修复建议:
通过ProGuard对代码进行混淆处理
使用第三方收费产品进行加固
高危风险—公开漏洞:webview远程代码执行解析
漏洞分析:
android的sdk中封装了webView控件。这个控件主要用开控制的网页浏览。WebView组件中使用addJavascriptInterface方法用于实现本地Java和JavaScript的交互,但是该函数并没有对方法调用进行限制,导致攻击者可以调用任何JAVA类,最终导致JavaScript代码对设备进行任意代码执行攻击。
风险危害:
攻击者可以构建恶意WEB页,诱使用户解析,可以应用程序上下文执行任意命令。
攻击者可以利用该漏洞远程控制受害者手机,植入木马
修复建议:
Android 4.2 (api17)已经开始采用新的接口函数,@JavascriptInterface 代替addjavascriptInterface, 有些android 2.3不再升级,浏览器需要兼容。
在使用js2java的bridge时候,需要对每个传入的参数进行验证,屏蔽攻击代码。
控制相关权限或者尽可能不要使用js2java的bridge。
高危风险—公开漏洞:Https弱校验解析
漏洞分析:
自定义实现的X509TrustManager子类中,没有对服务器端证书做验证,默认接受任意服务端证书,会存在安全风险,可能会导致恶意程序利用中间人攻击绕过证书校验。
风险危害:
中间人攻击风险,所有流量可以被黑客直接明文读取。
被黑客恶意篡改访问或返回数据。
修复建议:
利用X509TrustManager子类中的checkServerTrusted函数,校验服务器端证书的合法性。
高危风险—数据传输:中间人劫持解析
风险分析:
由于客户端没有校验服务端的证书,因此攻击者就能与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。
风险危害:
攻击者可通过中间人攻击,盗取账户密码明文、聊天内容、通讯地址、电话号码以及信用卡支付信息等敏感信息,甚至通过中间人劫持将原有信息替换成恶意链接或恶意代码程序,以达到远程控制、恶意扣费等攻击意图。
修复建议:
建议对SSL证书进行强校验(签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等)
Testin是全球“一站式移动应用云测试服务”领导者,为移动应用、游戏、VR/AR、可穿戴、物联网、人工智能开发者提供必需的一站式应用测试服务和质量保证。Testin云测通过深度机器学习的人工智能自动化脚本完成移动应用在云部署真机上的功能、兼容性、回归、安全的自动化测试、真机调试、A/B测试及Bug缺陷管理,Testin众测通过遍布全球的共享测试专家对应用进行功能、用户体验、场景和可用性测试,Testin Pro自动化测试私有云集成兼容、真机调试、功能测试、性能拨测、应用及测试管理进行私有化部署。Testin目前已经持续服务超过80万开发者,为超过200万个应用进行了超过1.5亿次测试,累计3轮融资超过8000万美元,与ARM、Intel、Google、IBM、微软、阿里、腾讯、360、小米以及全球众多的移动互联网生态企业建立了良好的合作与沟通关系,先后被评为清科2014年、2015年中国最具投资价值企业50强,德勤2015年、2016年中国高科技高成长50强,Red Herring红鲱鱼2014年亚洲100强和2015年全球100强。更多安全资讯与服务,请持续关注Testin 安全,面向开发、QA团队的持续渗透人工智能机器学习安全测试验证服务。
Testin的主要服务包括:
Testin 云测真机自动化云测试,面向开发、QA团队,中国、北美、全球热点和高覆盖率机型的真机兼容、功能和回归测试
Testin 云测远程真机调试,面向开发团队,通过浏览器、开发工具远程连接真实终端,7×24实时操作、快速定位问题
Testin 众测,面向开发、QA团队,遍布中国、北美及全球热点地区的测试专家共享测试服务
Testin Pro私有云,面向企业开发者的一站式自动化测试服务私有云平台
Testin A/B测试,面向产品、运营团队,用科学实验和人工智能数据分析驱动产品演进的迭代测试
Testin Bugout,面向开发、QA团队Bug缺陷管理系统
Testin 安全,面向开发、QA团队的持续渗透人工智能机器学习安全测试验证
Testin AppBase,企业开发者的移动应用市场、运营、产品、研发综合基准数据库