CN103971055B - 一种基于程序切片技术的安卓恶意软件检测方法 - Google Patents

一种基于程序切片技术的安卓恶意软件检测方法 Download PDF

Info

Publication number
CN103971055B
CN103971055B CN201410176158.4A CN201410176158A CN103971055B CN 103971055 B CN103971055 B CN 103971055B CN 201410176158 A CN201410176158 A CN 201410176158A CN 103971055 B CN103971055 B CN 103971055B
Authority
CN
China
Prior art keywords
android
application
program
factor
detection method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410176158.4A
Other languages
English (en)
Other versions
CN103971055A (zh
Inventor
张迎周
孙韦翠
仉雪玲
孙健
高海燕
汪洋
�龙昊
丁磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201410176158.4A priority Critical patent/CN103971055B/zh
Publication of CN103971055A publication Critical patent/CN103971055A/zh
Application granted granted Critical
Publication of CN103971055B publication Critical patent/CN103971055B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出一种基于程序切片技术的安卓恶意软件检测方法的设计方案。该方案从安装应用的安装文件APK出发,利用程序切片技术对应用的源代码进行分析,找出影响该应用安全性的关键结点,检测Android恶意软件,以达到减少人工操作的目的。经检验证明本专利技术1.能够可靠地检测Android恶意软件;2.基于程序切片的方法在准确性方面比传统的检测方法更具优势;3.从源代码的角度分析Android恶意软件,对于不断更新的病毒、木马变种,灵活性更强。

Description

一种基于程序切片技术的安卓恶意软件检测方法
技术领域
本发明给出了一种基于程序切片技术的安卓恶意软件检测方法的设计方案,主要解决程序切片技术应用于安卓平台所涉及到的关键结点发现问题,属于安卓系统的信息安全领域。
背景技术
随着移动互联网的飞速发展,具有移动操作系统的智能手机已成为目前移动终端发展的主流。智能手机不再是传统的通讯工具,像掌上电脑一样,智能手机已具有独立的操作系统,可以由用户自行安装或卸载如QQ、百度地图、手机安全卫士等第三方开发商提供的应用,不断地对手机的功能进行扩充。其中,基于Linux内核的Android移动终端操作系统发展最为迅速,由于其开源性,任何组织或个人编写的软件都可以上传到系统的应用商店,供用户随意下载并安装使用。因此,恶意软件也把用户的智能终端作为潜在的攻击目标。目前,恶意扣费、隐私窃取、系统破坏成为恶意软件的主要危害。
目前恶意软件检测方案主要有,基于特征代码的检测方案和基于行为的检测方案。基于特征代码的检测方案,通过检测文件是否拥有已知恶意软件的特征代码(如,一段特殊代码或字符串)来判断其是否为恶意软件。而基于行为的检测方案则依靠监视程序的行为(如,通过动态拦截或静态分析的方法获取程序的系统调用序列),与已知的恶意行为模式(如,恶意软件的系统调用序列)进行匹配,来判断目标文件是否具备恶意趋向。
根据检测时机的不同,基于行为的检测方法可分为动态、静态和混合三种。动态行为检测在程序运行的过程中执行,静态行为检测在程序运行之前执行,混合检测则包括动态检测和静态检测。
由于需要在程序运行时执行检测,动态检测对实时性要求较高,必须确保在恶意程序对系统产生损害前检测出威胁。通常的解决方法是利用沙盒、虚拟机来模拟执行程序,但这也带来更大的能耗。静态行为检测通过逆向工程手段,抽取程序的特征,如二进制序、操作码序列、函数调用序列等,在此基础上构建和还原程序的行为。与动态行为检测相比,静态行为检测能耗更低(无须沙盒、虚拟机),风险更小,对实时性要求更低(在程序执行前进行检测)。
程序切片作为一种分析和理解程序的技术,通过分析程序语句之间的依赖性关系自动分解源程序。程序切片技术在软件工程领域有广泛的应用,例如程序理解、调试、维护、测试以及反向工程等,在信息安全方面也发挥着非常重要的作用。
参考文献:
[1]A-DSchmidt,R.Bye,H-GSchmidt,J.Clausen,O.Kiraz,K.A.Yüksel, S.A.Camtepe,S.Albayrak.StaticAnalysisofExecutablesforCollaborativeMalwareDete ctiononAndroid[C].The9thIEEEInternationalConferenceonCommunications,Dresden, Germany,2009:1-5.
[2]ZhengqiangChen,BaowenXu.SlicingObject-OrientedJavaPrograms[M].ACMSIGPLANNotice,2001,33-40.
[3]ZhengqiangChen,BaowenXu.AnApproachtoAnalyzingDependencyofConcurrentPrograms[C].TheFirstAsia-PacificConferenceonQualitySoftware,APAQS2000HongKong,2000,34-39.
发明内容
技术问题:本发明提出一种基于程序切片技术的安卓恶意软件检测方法的设计方案。该方案从安卓应用的APK文件出发,利用程序切片技术对应用的源代码进行分析,找出影响该应用安全性的关键结点,检测安卓恶意软件,以达到减少人工操作的目的。最终目的是设计一种基于程序切片技术的安卓恶意软件检测方法。
技术方案:本发明结合程序切片技术,对Android应用的APK文件进行源代码分析。通过分析程序语句之间的依赖性关系,结合AndroidSDK类和函数字典,查询源代码中是否包含影响该应用安全性的API调用,并判断相应的函数调用参数,定义安全评价指标,寻找影响该应用安全性的关键结点,从而检测该Android应用中是否包含恶意行为,得出是否为恶意软件的结论。
该技术方案主要有如下几个步骤:
该检测方法从安卓应用的安装文件APK出发,利用程序切片技术分析应用的源代码,找出影响该应用安全性的关键结点,检测Android恶意软件,以达到减少人工操作的目的,该方法包含的步骤如下:
1)获取Android应用的APK文件;
2)反编译步骤1中的APK文件,得到.class文件;
3)利用Java程序切片技术,获取步骤2)中生成的class文件的系统依赖图;
4)设计安全评价指标,评估步骤3)中得到的系统依赖图中所有结点的重要性,安全评价指标包括权限控制m1、API调用m2、插件管理m3,对上述指标进行加权,计算所有结点的安全影响因子m,其中m=αm1+βm2+γm3,系数α、β、γ表示安全评价指标对安全因子的影响程度,满足α+β+γ=1;
5)设定安全影响因子的域值M,从目前的Google官方应用市场和第三方Android应用市场上已知安全性的应用中,随机选择50个安全应用和50个恶意软件,根据步骤4)的方法计算它们的安全影响因子,取其平均值设置为域值M;
6)比较待测安卓应用的安全影响因子m与域值M,对步骤1中的Android应用进行安全分析。如果安全影响因子m大于域值M,则认为该应用存在恶意行为,即为恶意软件。
有益效果:作为Android恶意软件的检测方法,该方案弥补了传统恶意代码检测技术的不足,提出了基于程序切片的源代码分析检测思想,证明了对Android应用程序反编译后的Java源代码经过程序切片、安全评价指标分析、关键结点分析以及安全分析,可以准确检测出耗费、隐私数据窃取等常见恶意行为,解决了对Android应用程序的逆向分析、恶意代码的语义理解,相关敏感数据的数据流追踪,用户提交行为的判别等关键问题。
本发明与已有技术对比具有以下的一些特点和创新之处:
高准确率:本发明的检测方法,通过程序切片的方法得到系统依赖图,进而分析该应用影响安全性的关键结点。系统依赖图是由一个程序依赖图和一组过程依赖图构成的有向、带标记的多重图,描述了程序的结构以及各种依赖关系,图中的结点表示程序的元素,边表示元素之间的关系。因此,由系统依赖图判断结点的安全性,相比于传统的检测方法更为准确。
强灵活性:本发明的检测方法是从Android应用反编译后的源代码出发,由于源代码逻辑结构更为清晰,查找更精确,而引起恶意行为发生是相关的API系统调用导致的,而无论恶意行为如何变种,在源代码中都必须调用关键的底层系统API。对源代码进行检测,只需查找关键的系统API调用进行判断,对于不断更新的病毒、木马变种,并不需要频繁地更新相应的查找规则,灵活性强。
附图说明
图1是本发明的恶意软件检测方法的整体流程框图。
图2是本发明的程序切片的系统依赖图的结构图。
具体实施方式
基于程序切片的恶意软件检测方法,从源代码分析开始,利用复杂网络的思想,结合AndroidSDK类和函数字典,具体实现步骤如下:
步骤1获取Android应用的APK文件。APK文件是Android应用的安装文件,可以直接从Google官方应用市场和第三方Android应用市场(如安卓市场、应用汇等)下载。
步骤2反编译步骤1中的APK文件,得到.class文件。利用Eclipse插件JadClipse将APK文件反编译,得到.class文件,即可方便地查看Android应用的源代码。
步骤3利用Java程序切片技术,获取步骤2中生成的.class文件的系统依赖图。系统依赖图是由一个程序依赖图和一组过程依赖图构成的有向、带标记的多重图,描述了程序的结构以及各种依赖关系,包括数据依赖和控制依赖,并能表示参数传递。
步骤4设计安全评价指标,评估步骤3中得到的依赖图中所有结点的重要性。安全评价指标包括权限控制m1、API调用m2、插件管理m3,对上述指标进行加权,计算所有结点的安全影响因子m,其中m=αm1+βm2+γm3,系数α、β、γ表示安全评价指标对安全因子的影响程度,满足α+β+γ=1。
步骤5设定安全影响因子的域值M。从目前的Google官方应用市场和第三方Android应用市场上已知安全性的应用中,随机选择50个安全应用和50个恶意软件,根据步骤4的方法计算它们的安全影响因子,取其平均值设置为域值M。
步骤6比较待测安卓应用的安全影响因子m与域值M,对步骤1中的Android应用进行安全分析。如果安全影响因子m大于域值M,则认为该应用存在恶意行为,即为恶意软件。

Claims (1)

1.一种基于程序切片技术的安卓恶意软件检测方法,其特征在于该检测方法从安卓应用的安装文件APK出发,利用程序切片技术分析应用的源代码,找出影响该应用安全性的关键结点,检测Android恶意软件,以达到减少人工操作的目的,该方法包含的步骤如下:
1)获取Android应用的APK文件;
2)反编译步骤1中的APK文件,得到.class文件;
3)利用Java程序切片技术,获取步骤2)中生成的class文件的系统依赖图;
4)设计安全评价指标,评估步骤3)中得到的系统依赖图中所有结点的重要性,安全评价指标包括权限控制m1、API调用m2、插件管理m3,对上述指标进行加权,计算所有结点的安全影响因子m,其中m=αm1+βm2+γm3,系数α、β、γ表示安全评价指标对安全因子的影响程度,满足α+β+γ=1;
5)设定安全影响因子的阈值M,从目前的Google官方应用市场和第三方Android应用市场上已知安全性的应用中,随机选择50个安全应用和50个恶意软件,根据步骤4)的方法计算它们的安全影响因子,取其平均值设置为阈值M;
6)比较待测安卓应用的安全影响因子m与阈值M,对步骤1中的Android应用进行安全分析,如果安全影响因子m大于阈值M,则认为该应用存在恶意行为,即为恶意软件。
CN201410176158.4A 2014-04-28 2014-04-28 一种基于程序切片技术的安卓恶意软件检测方法 Expired - Fee Related CN103971055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410176158.4A CN103971055B (zh) 2014-04-28 2014-04-28 一种基于程序切片技术的安卓恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410176158.4A CN103971055B (zh) 2014-04-28 2014-04-28 一种基于程序切片技术的安卓恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN103971055A CN103971055A (zh) 2014-08-06
CN103971055B true CN103971055B (zh) 2016-09-14

Family

ID=51240537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410176158.4A Expired - Fee Related CN103971055B (zh) 2014-04-28 2014-04-28 一种基于程序切片技术的安卓恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN103971055B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105022959B (zh) * 2015-07-22 2018-05-18 上海斐讯数据通信技术有限公司 一种移动终端恶意代码分析设备及分析方法
CN105787369B (zh) * 2016-02-29 2018-08-17 南京邮电大学 基于切片度量的Android软件安全分析方法
US10586045B2 (en) 2016-08-11 2020-03-10 The Mitre Corporation System and method for detecting malware in mobile device software applications
CN111611583B (zh) * 2020-04-08 2023-07-18 国家计算机网络与信息安全管理中心 恶意代码同源性分析方法和恶意代码同源性分析装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873323A (zh) * 2010-06-21 2010-10-27 南京邮电大学 基于程序切片技术的Web服务平台
CN102622556A (zh) * 2011-12-22 2012-08-01 南京邮电大学 基于程序切片技术的Web服务安全分析方法
CN103685251A (zh) * 2013-12-04 2014-03-26 电子科技大学 一种面向移动互联网的Android恶意软件检测平台

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873323A (zh) * 2010-06-21 2010-10-27 南京邮电大学 基于程序切片技术的Web服务平台
CN102622556A (zh) * 2011-12-22 2012-08-01 南京邮电大学 基于程序切片技术的Web服务安全分析方法
CN103685251A (zh) * 2013-12-04 2014-03-26 电子科技大学 一种面向移动互联网的Android恶意软件检测平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Slithice_一个基于系统依赖图的Java程序切片工具》;钱巨等;《计算机工程与应用》;20140123;第50卷(第2期);第31-34页 *

Also Published As

Publication number Publication date
CN103971055A (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
CN102622536B (zh) 一种恶意代码捕获方法
CN105989283B (zh) 一种识别病毒变种的方法及装置
Crussell et al. Andarwin: Scalable detection of android application clones based on semantics
KR102017756B1 (ko) 이상행위 탐지 장치 및 방법
Rathnayaka et al. An efficient approach for advanced malware analysis using memory forensic technique
CN107992751B (zh) 一种基于分支行为模型的实时威胁检测方法
CN104123493A (zh) 应用程序的安全性检测方法和装置
CN107659570A (zh) 基于机器学习与动静态分析的Webshell检测方法及系统
Chaba et al. Malware detection approach for android systems using system call logs
CN103971055B (zh) 一种基于程序切片技术的安卓恶意软件检测方法
CN106599688A (zh) 一种基于应用类别的安卓恶意软件检测方法
CN102012988B (zh) 自动二进制恶意代码行为分析方法
CN105354496B (zh) Android平台自动生成的恶意程序的检测方法及系统
Alrawi et al. Forecasting malware capabilities from cyber attack memory images
WO2020019485A1 (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN106326737A (zh) 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法
WO2017177003A1 (en) Extraction and comparison of hybrid program binary features
US11200317B2 (en) Systems and methods for protecting a computing device against malicious code
CN105488414A (zh) 一种防止恶意代码探测虚拟环境的方法及系统
CN106687979A (zh) 交叉视图恶意软件检测
US11620129B1 (en) Agent-based detection of fuzzing activity associated with a target program
CN109684837A (zh) 一种面向电力企业的移动应用恶意软件检测方法及系统
US20200026856A1 (en) Systems and methods for protecting a computing device against malicious code
KR101324691B1 (ko) 모바일 악성 행위 어플리케이션 탐지 시스템 및 방법
Ismail et al. Design and implementation of an efficient framework for behaviour attestation using n-call slides

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140806

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: 2016320000214

Denomination of invention: Android malicious software detection method based on program slicing technology

Granted publication date: 20160914

License type: Common License

Record date: 20161117

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: 2016320000214

Date of cancellation: 20180116

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160914

Termination date: 20190428