(深圳供电局有限公司广东深圳518000)
摘要:电力企业不断进行智能化升级改造,改造过程中电网移动应用是其中比较重要的一项。然而电网移动应用在开发过程中,不可避免的会出现安全隐患等问题。本文在分析移动应用安全检测技术的基础上,设计了安全检测系统。运用静态和动态等方法对移动应用进行检测,能够及时发现应用的漏洞,产生良好的社会效益。
关键词:电网;移动应用;安全检测
0、引言
随着智能终端的不断普及,应用数量和APP应用种类不断扩大的同时,各类移动应用安全问题也不断涌现,移动应用的安全问题,已经成为整个应用市场发展面临的一个主要问题[1]。同时,电力行业的发展越来越多地与信息网络发展相交融。信息安全在电网中至关重要,它不仅涉及电网利益更关系到社会的生产情况,因此保障电网安全是非常有必要的。
从目前移动应用所处开发平台和移动应用本身存在安全隐患出发,基于移动应用程序包反编译和逆向等技术,构建移动应用安全检测套件。对移动应用程序包进行解压缩及反编译,一方面采用静态分析应用代码来判断是否存在代码隐患;另一方面判断是否存在程序安全隐患。通过移动应用安全检测技术研究,预期形成统一的移动应用安全规范,并能及时发现移动信息化系统存在的安全风险。
1、检测技术概述
APK安全分析,一般采用APP静态安全分析和APP动态安全分析两种方式。APP静态安全分析是指通过对APK包反编译,提炼出APP的基本信息,APK申请权限的情况,以及APK中包含的SDK,APK中使用的资源文件的MD5列表,APK中使用的IP的情况,以及系统关键函数的调用关系和调用逻辑,通过这些信息,能够快速的进行权限漏洞,文件漏洞,恶意程序的识别。他的特点是速度快,覆盖面全[2]。
APP动态安全分析是指使用通过动态渗透的方式攻击修改APK,对APK运行后进行注入攻击测试;对APK包进行文件修改测试等方式,检验APK包有无被攻击或者被篡改的风险,通过这些测试,可以对静态安全检测形成有力的补充。
2、主要检测内容及方法研究
2.1代码函数调用链获取及安全检测方法研究
APK通过反编译工具反编译以后,可以得到APK的smali代码。通过smali代码的扫描解读,可以获取到APP所有运行流程和功能调用的方法[3]。恶意代码片段都有产生恶意行为的调用过程,通对恶意行为的归类总结可以对恶意行文进行识别。运行流程与功能扫描实现方法如图1所示。
图1APP运行流程与功能扫描流程图
图2安全检测系统功能设计
对APK检测的时首先,通过反编译APK文件得到APP的smali源文件群。第二步,对smali代码进行分析,通过搜索smali里边所有的函数调用的顺序生成每一个samli代码段的函数调用链。然后使用积累的恶意行为分析知识库和APP黄赌毒数据识别知识库进行匹配,从而分析出APK中包含的使用VPN、数据存储风险、内部数据交互风险、身份验证风险、组件风险、源文件风险、安全策略风险等各种风险。
2.2APP动态安全分析方法研究
APP动态安全分析方法是检验APP是否健壮,检测是否有被攻击侵害的风险的重要手段,是对APP静态安全分析方法的重要补充。通过APP动态分析方法,可以对评判出APP投入市场以后,是否有被插入广告、恶意代码、修改关键信息的风险[4]。
(1)二次打包APK文件动态检测
Android的APK文件,遇到的常见的风险就是恶意篡改的风险。通过修改文件、二次打包、签名等处理后。将APK包安装到Android手机上去运行测试,检验APK是否能够有效的防范数据篡改,文件增删、二次打包等攻击行径。
(2)APK运行时注入攻击测试
APK在第二个容易被攻击的时候是在Android设备上运行的时候,恶意病毒程序可以在这个时候注入到APP的进程当中。检测流程主要有以下几步:首先在Android运行环境中启动APP应用,然后通过Inject攻击工具组模拟对APP进程进行注入,数据篡改,接口拦截等攻击方式。然后分别观察APP运行中的情况。通过对APP应对各种运行时的攻击的反应情况检测出APK是否有安全方面的漏洞。
3、安全检测系统设计
3.1功能设计
移动应用检测研究内容包括基本信息、通讯传输就、数据存储、内部数据交互、源文件安全、身份验证、组件风险、内容风险、安全策略风险和优化建议10类检测项目,整体的检测准确性达到优秀以上水平。检测项目详细如图2所示。
3.2技术框架设计
系统的技术架构主要包括整体架构、逻辑模块和检测模块等内容,如图2所示。
图3系统技术架构图
整体架构:检测系统是一个独立的移动应用安全检测系统。系统完成后,系统提供检测平台或者通过提供API的形式提供检测开放服务等服务。使用者可以直接通过WEB平台进行移动应用安全检测,也可以通过调用平台API的方式对移动应用进行安全检测。
逻辑架构:整个移动应用检测系统分成对外输出模块、检测平台模块、检测开放服务模块、基础平台服务模块、工具引擎模块和支持硬件模块。
检测平台模块是指对应用层提供支撑的服务体系。提供的服务包含管理服务,检测服务。其中管理服务中又包含资产信息管理、任务管理、账号管理、检测项配置管理等管理服务;检测服务包含APK安全检测服务、检测报告服务和内置的检测项评分服务,其中检测评分服务,可以根据行业的侧重点配置对应的评分模型[5]。
3.3业务框架设计
本文设计的检测系统业务架构如图4所示。
图4业务系统架构图
采用静态反编译技术获取Android移动应用文件源代码,采用静态和动态检测两大类引擎对APP进行安全检测。静态检测引擎包含基本信息检测、数据存储风险检测、内部数据风险、通讯传输风险、组建风险、源文件风险、安全策略检测、内容检测;动态检测引擎包含恶意程序检测、应用完整性检测、动态调试检测。通过检测系统中的任务调度、数据存储、数据分类模块,对检测过程进行分析和管理,最终形成APP检测报告和企业监管报告,检测报告中体现出检测依据以及10种检测类型74个检测项。
4、系统关键技术及效果分析
4.1静态分析
通过反编译技术等相关技术可以获取APP的签名、包名MD5等主要信息,并获取到程序的API调用序列。然后通过爱加密的漏洞知识库,病毒知识库,APP权限知识库等对APP进行静态分析。通过静态漏洞检测技术进行APP安全检测,能够在不运行程序的情况下面检测出APP包含的基本信息风险、数据存储风险、内部数据交互风险等APP风险。
4.2动态分析
动态注入攻击检测就是将应用安装到手机终端设备上并运行,然后向APP中注入SO文件,监测APP是否有注入防护措施。如果APP继续平稳运行,就是说APP被注入了也不会自我保护,则APP就存在动态注入攻击的风险。
应用完整性检测是指进行APP解压缩操作,向解压后的文件中添加若干任意新文件,对修改后的APP文件进行重新签名,将签名后的新的APP文件安装到手机终端设备,若可以正常启动,则存在风险。如果应用没有完整性自检的能力,APP可以随意的被第三方随意的修改,添加各种类型的插件。
4.3效果分析
移动应用安全检测技术最终会形成一套移动应用安全检测系统,可为深圳供电局高效的提供移动应用提供专业的安全检测技术,并即时以报告的形式产生检测结果,为提供安全隐患处理的凭据。经过安全隐患处理后的应用,推广到市场后,会带来一系列收益。
5、结论
电网移动应用的安全性问题是电网智能化改造过程中的一项重要课题,本文设计了移动应用的安全检测系统。通过本文的研究,可以得出以下结论。
移动应用安全检测技术研究以提升电网安全为目标,以攻防体系性对抗为核心,通过移动应用静态检测、动态检测技术研究,覆盖了移动应用业务、开发组件,发布规范,应用管理,完整性,机密性等应用层面和数据输入、储存,传输,输出等数据层面的安全,完善了电网特色的移动应用安全体系,形成了自动化,专业化的移动应用安全检测机制。
参考文献
[1]朱宏宇,田建伟,田峥,乔宏.电力移动应用安全诊断技术研究及应用[J].湖南电力,2018,38(04):15-17.
[2]邰楠.电网企业移动应用平台安全设计研究[J].电子世界,2016(22):10-11+13.
[3]孙侃.移动应用APP全生命周期安全管理[J].现代电视技术,2018(09):140-143.
[4]佘运波,韩晓云.移动终端在电网企业应用中的安全性研究[J].自动化与仪器仪表,2017(09):197-198.
[5]郭静,姜海涛,王梓莹.电力系统移动应用安全测试技术研究[J].电力工程技术,2018,37(04):102-108.