首页> 安全资讯 > 天翼网信安全产业联盟专刊|移动安全在运营商行业的应用与分析

天翼网信安全产业联盟专刊|移动安全在运营商行业的应用与分析

发布时间:2021-07-06


近日,天翼网信安全产业联盟发布了总第1期专刊,北京智游网安科技有限公司(爱加密)《移动安全在运营商行业的应用与分析》解决方案成为专刊亮点。作为联盟首批成员单位及重要合作伙伴,爱加密一方面将通过领先的专业技术、优质的服务体系助力电信行业移动应用安全生态的建设;另一方面,将继续协助联盟构建安全生态、联合推动创新、护航信息化发展,实现市场共拓、价值共创与合作共赢。以下为方案全文:

 

 

 

移动互联网为运营商行业带来了颠覆性的影响,抓住移动互联网入口,围绕移动端给用户以优质体验是运营商公司需要首要解决的问题。目前,大多数运营商及其子公司都开发了自有的移动应用,但是对于这种新的工作模式和业务接口,一个不容忽视的问题越来越重要:安全。因此,为了提高移动应用的安全性,本文结合当前运营商行业的特点、移动应用所面临的安全风险以及相对应等技术手段进行分析,就如何保障移动应用的安全性展开分析。

 

 

 

01

运营商行业业务发展概述

 

随着信息技术的发展和移动终端的普及,运营商移动业务迎来了迅猛发展。运营商通过接入信息化来作为提高竞争力的手段,运营商类移动应用一般都具备用户信息绑定、业务更新快、具备交易、开户、信息查询等特点。不仅为用户提供了丰富多样、可定制化的便捷服务,提升用户体验,同时在人力成本上也获得了明显优势。移动应用已成为连接运营商企业与用户的重要接口。

 

近几年,运营商行业移动业务飞速发展,移动端业务开通、交易量等功能已经较为普及。运营商行业加速核心业务的互联网化进程和数字化转型的重要前提是网络安全的保障。习近平总书记曾在网络安全与信息化工作座谈会上的讲话中提到,网络安全和信息化是相辅相成的。安全是发展的前提,发展是安全的保障,安全和发展要同步推进。要树立正确的网络安全观,加快构建关键信息基础设施安全保障体系,全天候全方位感知网络安全态势,增强网络安全防御能力和威慑能力。

 

目前,运营商类移动应用面临着盗版软件、隐私泄露、用户密码被窃取、数据被修改等诸多风险。近些年,各类移动应用被盗版、被破译、数据失窃的事件屡见不鲜,一旦移动应用遭遇黑客攻击,将会给企业和用户带来直接的经济损失。

 

移动端的兴起也带来了与PC时代割裂的新难题,包括移动安全、兼容性等问题。在经历过几年的高速发展之后,运营商类移动应用的功能在渐趋完善的同时也造成了同质化极其严重的问题。面对这样的现象,不少运营商选择了从技术上进行突破以提升用户的使用黏性。

 

基于移动操作系统多样性和终端类型的庞杂使得现在一些智能终端还存在着不能正常安装、意外错误、强制退出等严重影响用户体验的缺陷,移动应用的兼容问题将是运营商企业亟待解决的一个大问题。相比较几年前,运营商类移动应用的兼容性已经有了翻天覆地的变化,尤其是一些大型运营商类移动应用基本能够兼容市面上所有主流的机型,实现全面的“开放”、“共享”。

 

02

运营商行业移动应用安全风险

 

总体看来,安卓平台应用安全形势仍不容乐观,由于安卓应用安全问题频出,造成影响范围广、程度深,安卓应用安全越来越重要;运营商及其子公司的移动应用不管是自主研发和还是第三方公司研发的,没有专业的移动应用安全防护技术支持,均无法有效保障移动应用的安全性。

 

根据目前移动应用的相关安全特性,以下8类安全风险最为突出:

 

1. 通信数据明文发送:客户端APP与服务器端交互的数据通过明文的通信信道传输。

 

2. 敏感数据本地可破解:客户端APP将敏感数据(如登录密码,手势密码等)以明文存储在本地,或加密存储但通过逆向分析程序可以破解该数据。

 

3. 调试信息泄漏:客户端APP将开发时帮助调试的信息打印出来,这些信息通常包含一些敏感的参数,消息的明文等。

 

4. 敏感信息泄漏:客户端APP代码中泄漏敏感数据,如对称加密密钥,非对称加密中的私钥,认证使用的共享密钥,不应被暴露的后台服务器管理地址等等。

 

5. 可二次打包:客户端APP可被修改代码后,重新打包发布在市场上供用户下载。

 

6. 可调试:客户端APP能够被调试,动态的提取、修改运行时的程序数据和逻辑。

 

7. 代码可逆向:客户端APP的逻辑能够被轻易获取和逆向,得到代码和程序中的敏感数据。

 

 

在这7类安全隐患中,通过调研发现动态调式、代码注入、反编译、内容篡改、二次打包这五个风险等级是最高的,也是被各移动安全论坛提到次数最多的。结合运营商行业,这些风险也极有可能导致具备交易属性的APP被植入恶意程序后再传播,导致用户的密码或其它信息被盗,导致黑客利用漏洞攻瘫运营商的移动服务端,导致客户被钓鱼而钱款被恶意转账等风险。

 

结合运营商业移动应用的安全现状分析,目前移动应用主要面临的移动安全风险包括:源码反编译、文件(代码、资源及签名)篡改、本地数据泄露、动态调试、进程调试、内存DUMP、页面数据泄漏、数据传输保护不足、不可信的执行环境等。

 

03

运营商行业移动应用安全分析

 

移动应用面临的安全风险很多,目前有很多安全厂商专注于移动应用安全领域,为运营商行业提供了很好的安全服务和保障;随着移动安全技术的不断发展,已逐步形成了完整的移动安全解决方案,内容涵盖:应用安全、代码安全、本地数据安全、通信安全、内存安全、页面数据安全、运行环境安全等多个方面。

 

结合运营商行业的特点,移动应用的高可用性是非常重要的,移动应用安全建设必须首先关注安全防护的兼容性和性能,考虑到信息及密码传输明文的风险,以及木马和病毒对移动交易类APP的威胁,在移动交易安全方面就需要做一体化安全防护。具体如下:

 

首先,保证传输的协议的安全,APP加壳不解决传输协议的安全,所以需要协议加密尤其是传输的密码加密。其次,针对需要发布的APP进行加壳处理,不仅可以有效防范众多安全风险,还可以做到所发布的APP包,在任何修改后即无法执行,也保证了程序完整性。最后,在发布的APP交易软件中,嵌入防病毒快速检测插件,提供用户在输入密码和交易前可对内存中的木马或病毒进行查杀,而这插件也只有防病毒安全厂商可以做的很好。

 

下文就主要从移动应用安全加固、通信数据加密、移动应用运行环境保护三大防护体系对移动应用安全进行探讨。

 

04

移动应用安全技术分析

 

综观整个移动应用安全加固发展历程,历经了代码混淆(一代加密技术)、整体加壳(二代加密技术)、代码分离及动态加载(三代加密技术)、虚拟机保护(四代加密技术)四个阶段的发展,每代的技术在其存在阶段均有其意义及优势,但随着技术的不断革新,单纯的一种技术已经不能很好的防范新的破解技术,下面来详细分析一下各个阶段的实现原理及缺点:

 

● 安全加固技术

● 代码混淆

 

代码混淆实现原理基本上是通过删除代码中的调试信息、无用类、方法并使用无意义的字符序列来替换类名、方法名,同时对代码流程进行乱序混淆要达到防护目的;它在一定程序下降低了反编译出来的代码的阅读性,提升逆向难度,但是已经很难防范动态调试,并且破解者也可通过阅读功能代码来自行标记类名、方法名等,然后逆向破解,故一代防护技术的单独使用已经起不到实质的防护用。

 

● 整体加壳

 

整体加壳实现原理基本上是将dex文件整体加密,然后将密文打包保存其它目录下,修改AndroidManifest.xml配置文件将程序入口指向壳代码,程序启动后,由壳代码把加密后的dex交给类加载执行;由于程序在运行时,会将解密的代码连续释放在内存空间,所以不能有效的防范内存dump获取dex。

 

● 代码分离及动态加载

 

实现原理将代码中的方法名和方法体进行分离,对分离出的方法体进行加密并且Hook虚拟机的部分接口,在应用使用到具体方法时,对方法进行解密并动态加载执行;该方法是基于二代破解技术提出的,在一定程度上防范了内存dump的风险,但是部分破解者可以通过自定义手机rom等方式,获取所有方法的明文后对数据进行组装还原明文dex,虽然破解难度极大,但是仍存在理论上的可能性。

 

● 虚拟机保护技术

 

结合先前安全加固各个阶段发展的优点、最新的黑客破解技术移动安全提供商提出新一代的虚拟机保护及混合加密技术,全方位保护源码安全;那么虚拟机保护及混合加密应该怎么实现的呢?这边提供一个理论模型供参考:

 

首先,提取dex中方法的虚拟机指令,并使用自定义指令集进行替换;其次,把提取过的方法改为native方法并在底层进行注册;然后结合代码混淆、整体加密、代码分离功能进行防护;最后在程序运行时调用native方法时在底层使用自定义解释器解释虚拟机指令;整个加固过程不在内存中进行代码还原操作也就无法通过内存dump的方式获取明文dex,由于使用了自定义指令集,破解还原明文dex成本极高,并且对程序中存在的H5及JS脚本文件同时进行加固操作,可以最大程序防范黑客对源码的编译操作。

 

 整体加固体系

 

目前移动应用安全加固一般采用四种加密技术的混合技术,极大的提供了移动应用的安全性,可以有效的为运营商业移动应用的提供静态及动态防护,提升移动应用的整体安全性。

 

● 针对代码、资源及签名文件篡改

 

可采取对程序中dex、so、h5代码,图片、脚本、文档等文件进行完整性校验,防止其被非法篡改,考虑到校验对程序加载时间的影响,可仅对关键代码、资源文件进行验证,避免影响最终用户体验,确保其完整性,若校验失败,直接中止APP运行;在对签名文件进行防篡改时,重新签名或篡改签名后,APP无法正常安装;从而有效的防范了文件被篡改的风险。

 

● 针对本地数据泄漏

 

APP运行过程中,经常会存储许多重要的信息,包括用户名、密码、搜索记录等,在方便用户直接登录、快速获取历史信息的同时,也不可避免的存在本地数据被泄漏的安全隐患;对此可采取多种加密算法,包括国际通用算法(RSA、MD5、DES…)、国密算法及其它自主研发的加密算法对程序中用户隐私信息、开发者加密算法及密钥、本地shared preference类型数据等存储信息进行加密操作,防止本地数据泄漏。

 

● 针对程序调试

 

黑客在静态分析程序无法得到有用信息后,通常会通过使用IDA、GDB之类调试工具实现动态及进程调试从而进一步对源程序的进行逆向破解,由于APK在运行时,会在内存中释放源码,故内存dump对任何加密后在内存中进行释放源代码的应用均可将源码组装还原成明文。所以有效的防止黑客对程序的调试至关重要,对此可以在程序运行时通过对ptrace函数进行监测防护,防止gdb之类的调试工具对其进行附着,使其无法调试和动态注入及内存代码dump等操作,除此之外黑客可能会通过模拟器自定义rom对程序进行调试,故也需对模拟器调试进行防范,结合虚拟设备与真实设备的硬件差别,有效识别模拟器,一旦识别到模拟器,则APP退出所在的模拟器环境,最大程序的增加黑客动态破解程序的综合成本。

 

● 针对页面数据泄漏

 

黑客可以在用户填写姓名、电话、账户、密码、邮箱、地址等敏感信息时对页面及键盘输入进行截屏、劫持操作,盗取用户信息,对此,可通过对敏感页面进行底层截屏函数hook,阻止相关函数的调用,防止被截屏操作。并且在客户端运行时监控Activity,发现被覆盖(劫持)时,提示用户有安全风险存在,不要输入敏感信息;针对键盘,应该使用一些键盘字符混排、输入无明文显示及字符放大、键盘防截屏、键盘防劫持等安全措施,防止黑客对信息输入进行攻击。

 

● 兼容性保障

 

在安全领域,安全和性能一定是相悖,如何使二者达到一个平衡,也是需要非常重视的。移动应用加固一定会涉及到代码注入及SDK集成等流程,不可避免的会对原有APK造成影响,包括:包体大小、安装时间、启动时间、兼容性、性能等,尤其是针对碎片化最严重安卓应用,兼容性的保障是必不可少的。

 

兼容性的保障需要移动安全提供商具备更专业的技术和实力来解决兼容性问题,一般采用的手段及技术包括:包体优化技术、真机测试、人工复检、加固系统更新等。

 

● 通信数据加密技术

 

在开发运营商类移动应用APP的产品时,整个业务逻辑通常都会放在服务端,客户端大部分仅用来展示,在客户端与服务端的交互过程中,报文的安全及流量的节约相对来说就显得比较重要;数据传输保护不足,最终都会导致用户隐私及交易数据的泄露。

 

据分析,目前大部分APP未使用HTTPS加密连接,已启用HTTPS连接的页面中,也有很大一部分不校验证书链和证书颁发者,有些甚至不验证证书域名是否匹配,更有甚者APP都只在部分页面启用HTTPS,其它页面均为明文传输,黑客可以通过欺骗手段,利用自签SSL证书和虚假服务器获取到用户APP传输的加密数据。

 

故在客户端与服务器进行数据传输过程,需要为APP服务器部署全球信任的SSL证书对数据传输进行加密操作,并采用压缩技术将交互流量压缩至最小,并在客户端嵌入可以验证数据完整性及解密的SDK便于数据本地调用,通过自定义加密算法防止数据泄露、中间人欺骗和劫持,保护用户数据传输安全。

 

● 运行环境保护技术

 

由于无法预知最终用户手机系统的安全,当客户端在不可信执行环境运行时,会存在手机ROOT、病毒、钓鱼程序等威胁,而目前针对交易类APP的窃取账号和密码的病毒泛滥,确保运营商业APP金融交易在安全意识参差不齐的客户群体里的安全性至关重要。

 

根据传统PC端的成熟的系统环境检测解决方案,可以在运营商业移动客户端引入清场保护机制,在APP中嵌入清场的安全检测SDK,调用智能分析引擎,并结合传统的病毒特码库及移动威胁感知系统进行辅助,对系统存在的病毒及其它安全风险进行检测,为后续的业务逻辑提供支撑,若检测到有异常情况,则可对用户进行提示,全程守护运营商移动应用的运行,给用户带来最安全的保障。

 

05

总结

 

鉴于运营商行业的特有属性,子公司和第三方合作伙伴较多,很多移动应用均是由第三方及其子公司进行外包研发,移动应用开发以业务为核心,对应用的安全防护体系建设比较淡薄,并且用户的年龄层分布较广,绝大多数人的安全防范意识较差,所以主动引入移动应用安全防范体系至关重要,同时为了保证应用的高可用,需通过严格的兼容性、性能测试保证移动应用安全加固程序能够在不同版本的移动操作系统环境下正常运行。

 

同时,近几年国家及监管单位越来越关注个人隐私保护,作为APP运营企业需要进行自查自纠工作。APP个人信息安全保护不仅是监管部门的任务,它涉及多个主体,需要政府部门、APP企业、SDK企业、手机企业、应用商店企业、行业组织、研究机构共同努力,形成个人信息保护的良好生态和强大合力。与此同时,作为APP开发和运营企业要做好自查自纠,企业是维护网络安全的主体,为实现一些功能,在收集个人信息收集时要做好平衡,把握好度,在相关功能实现后,企业应当将如何保护个人信息作为核心竞争力。

 

因此,作为APP运营企业,在追求流量、功能的同时也应关注用户的个人隐私信息的保护,这不仅是应用运营企业应履行的职责,也是维护企业自身形象不可忽视的一环。

 

网络安全离不开安全技术和产业的支撑,没有网络安全就没有国家安全,就没有经济社会稳定运行,广大人民群众利益也难以得到保障。当前,各种形式的网络攻击、黑客入侵、恶意代码、安全漏洞层出不穷,对关键信息基础设施安全、数据安全、个人信息安全构成严重威胁。网络安全的本质是技术对抗,保障网络安全离不开网络安全技术和产业的有力支撑。

 

 

文章来自:www.ijiami.cn

加入收藏