CN103839005B - 移动操作系统的恶意软件检测方法和恶意软件检测系统 - Google Patents

移动操作系统的恶意软件检测方法和恶意软件检测系统 Download PDF

Info

Publication number
CN103839005B
CN103839005B CN201310598132.4A CN201310598132A CN103839005B CN 103839005 B CN103839005 B CN 103839005B CN 201310598132 A CN201310598132 A CN 201310598132A CN 103839005 B CN103839005 B CN 103839005B
Authority
CN
China
Prior art keywords
software
malware
sensory system
sequence
calling sequence
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.)
Active
Application number
CN201310598132.4A
Other languages
English (en)
Other versions
CN103839005A (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.)
Beijing Zhigu Ruituo Technology Services Co Ltd
Original Assignee
Beijing Zhigu Ruituo Technology Services Co Ltd
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 Beijing Zhigu Ruituo Technology Services Co Ltd filed Critical Beijing Zhigu Ruituo Technology Services Co Ltd
Priority to CN201310598132.4A priority Critical patent/CN103839005B/zh
Publication of CN103839005A publication Critical patent/CN103839005A/zh
Application granted granted Critical
Publication of CN103839005B publication Critical patent/CN103839005B/zh
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

本发明提供了一种安卓移动操作系统的恶意软件检测方法。所述方法包括:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。本发明根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,这样可以有效的解决现有技术中检测技术所面临的问题,实现恶意软件本质行为的检测,提高了恶意软件的检测效率。

Description

移动操作系统的恶意软件检测方法和恶意软件检测系统
技术领域
本发明涉及移动互联网安全领域,尤其涉及一种移动操作系统的恶意软件检测方法和系统。
背景技术
近年来,以安卓(Android)为代表的开源智能移动操作系统得到了广泛的应用,同时伴随功能强大的智能移动终端一同出现的是各种恶意软件的攻击。目前,网络上针对安卓移动终端的恶意软件有上千种之多,其主要涉及垃圾短信、恶意扣费、窃取用户个人信息等诸多方面。虽然从危害程度和影响范围而言,针对安卓移动终端的恶意软件还无法和个人电脑安全隐患相比,但是从发展的角度来看,移动终端在社会领域的推广和普及必将进一步加深和扩大恶意软件的影响。
目前,针对安卓移动终端平台的恶意软件的防范技术主要包括恶意软件的特征值扫描和虚拟机技术两种。
特征值扫描是目前最常用的恶意软件防范技术,其基本原理在于分析已知恶意软件,识别出其中恶意部分的代码标识,将该代码标识存入一恶意代码特征库,而后对待检测的软件实行扫描匹配,查找其中是否有符合恶意软件的代码标识的部分。该技术从本质上说属于软件的静态检测,其不足之处是当恶意软件变形或参杂有其他成分后,特征值匹配会受到很大的影响;此外特征扫描需要有实时的恶意代码特征库的支持,移动终端需要消耗大量的通信流量下载最新的特征库数据。
虚拟机技术则采用动态检测的方式,让需要检测的软件在特殊环境下被执行,以此来检测软件是否具备恶意的行为。该技术对恶意软件的检测率较高,特别适用于多态和变形的恶意软件,但由于软件执行过程中具有多分支的特点,虚拟机技术只能检查软件中一部分流程中恶意代码的存在与否,不能够实现对软件全部流程的恶意代码的检测。
发明内容
本发明的目的是要提供一种针对安卓移动操作系统的恶意软件检测技术,以解决现有技术中采用的恶意软件检测技术所面临的诸多技术问题中的至少一个。
为解决上述技术问题,根据本发明的一个方面,提供一种安卓移动操作系统的恶意软件检测方法,所述方法包括:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测系统,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测方法,所述方法在移动终端执行,包括如下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送步骤,发送所述敏感系统调用序列。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测系统,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送设备,用于发送所述敏感系统调用序列。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意代码检测方法,所述方法在服务器执行,包括如下步骤:
敏感调用序列接收步骤,接收敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送步骤,发送所述恶意软件检测结果。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意代码检测系统,所述系统包括:
敏感调用序列接收设备,用于接收敏感系统调用序列;
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送设备,用于发送所述恶意软件检测结果。
本发明的方法和系统根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,这样可以有效的解决现有技术中检测技术所面临的问题,实现恶意软件本质行为的检测,提高了恶意软件的检测效率。
提供上述发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有技术问题的实现。
附图说明
图1是本发明一个具体实施方式中恶意软件检测方法的步骤流程图;
图2是本发明一个具体实施方式的恶意软件检测方法中敏感调用序列生成步骤的具体流程图;
图3是本发明一个具体实施方式的恶意软件检测方法中调用关系图生成步骤的具体流程图;
图4是本发明中一个功能模块调用关系子图的示意图;
图5是本发明一个具体实施方式的恶意软件检测方法中序列生成步骤的具体流程图;
图6是本发明中一个标识了敏感系统调用的功能模块调用关系子图的示意图;
图7是本发明一个具体实施方式中恶意软件检测系统的结构图;
图8是本发明另一个具体实施方式中恶意软件检测方法的步骤流程图;
图9是本发明中对系统调用序列进行编码的协议格式示意图;
图10是本发明另一个具体实施方式中恶意软件检测方法的步骤流程图;
图11是本发明中一个恶意软件检测结果的格式示意图;
图12是本发明另一个具体实施方式中恶意软件检测系统的结构图;
图13是本发明另一个具体实施方式中恶意软件检测系统的结构图;
图14是本发明另一个具体实施方式中恶意软件检测系统的硬件结构示意图。
具体实施方式
下面结合附图(若干附图中相同的标号表示相同的元素)和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
本领域技术人员可以理解,本发明中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
在本发明中,“入口函数”是指软件中的初始化函数和触发函数,这两部分函数一般会声明软件所使用的对象和所调用的系统函数。
在本发明中,“功能模块”是指软件中除入口函数之外的其他程序模块,其各自实现特定功能。
在本发明中,“功能模块调用关系图”是指从入口函数开始,分别对功能模块中的内容进行调用,依照其调用的顺序来描述软件运行流程的、由各功能模块所组成的调用关系图。
发明人通过研究发现,首先,安卓移动终端平台之上的恶意软件主要依靠平台自身提供的系统调用来实现,因此对软件源代码中系统调用的分析可以有效的实现恶意代码的检测;第二,安卓软件作为面向对象的语言,均采用事件触发机制实现软件的运行,因此软件中具有多个入口函数,每个入口函数通过声明和引用其他的功能模块来实现自身的功能,因此对功能模块调用顺序的分析可以有效的掌握软件的运行流程。
如图1所示,本发明具体实施方式中提供了一种安卓移动操作系统的恶意软件检测方法,所述方法包括:
S110:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
S120:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
下面,根据附图1-6来具体介绍上述恶意软件检测方法中各步骤的功能。
S110:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列。
在一具体实施方式中,如图2所示,该敏感调用序列生成步骤S110可进一步包括如下步骤:
S111:调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
S112:序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
在一具体实施方式中,如图3所示,该调用关系图生成步骤S111可进一步包括如下步骤:
S1111:获取所述软件的源代码。
由于本具体实施方式中的方法是基于软件源代码中的系统调用对恶意软件进行检测的,因此首先需要获取软件的源代码。具体地,可通过反编译来得到安卓软件(APK文件)的java源代码,这为软件的静态分析提供了可能。
S1112:抽取软件中所有的入口函数,即软件中的所有初始化函数和触发函数。
其中,初始化函数的主要功能在于实现整个软件的基本参数设置,后台的服务进程会在初始化函数中启动;触发函数主要实现系统对用户事件的响应操作。从软件运行的角度看,初始化函数和触发函数是软件运行的入口位置,各种功能模块的调用均是在这里直接或间接实现的。
在本步骤中,根据S1111中所获取的软件源代码确定出该软件中所有的入口函数。
S1113:确定每个入口函数所调用的各功能模块以及相应的调用顺序。
软件功能模块中的程序一般是恶意代码有可能运行的区域。因此在本步骤中,可以先抽取软件中声明构建的各个功能模块,然后从软件的每个入口函数开始,对软件中所声明的各个功能模块进行遍历,确定每个所述入口函数所调用的各功能模块以及相应的调用顺序,所确定的结果可以通过下表1的形式来体现:
表1
如表1所示,表的首行中列出了软件中的各入口函数,包括一个初始函数和多个触发函数,表的首列则列出了软件中声明的各功能模块。表中的数字用于表示对应功能模块在对应入口函数执行流程中被调用的次序编号,例如功能模块1在第一触发函数中的标号为1,即表示该功能模块在第一触发函数中第1个被调用,而功能模块2则在第一触发函数中第3个被调用,功能模块3在第一触发函数中第2个被调用。
S1114:生成功能模块调用关系图。
表1体现了各入口函数所调用的各功能模块以及相应的调用顺序,根据表1可生成所述功能模块调用关系图。具体地,例如针对第一触发函数,可根据其调用的功能模块和顺序形成关于第一触发函数的一个功能模块调用关系子图:功能模块1—>功能模块3—>功能模块2,如图4所示。
综合所有入口函数的功能模块调用关系子图便可生成该软件的功能模块调用关系图,即,每个入口函数可对应一个功能模块调用关系子图,而整个功能模块调用关系图中可包括一个或多个类似于图4的功能模块调用关系子图。
在针对安卓移动操作系统的恶意软件中,所使用的系统调用类型主要与网络操作和系统资源访问有关,可以包括开启网络通信接收器(短信服务、网络套接字等)、向指定网址发送指定信息、下载定制软件、读取用户SIM卡或移动终端相关信息、启动后台进程等。在本发明一个具体实施方式中,可以基于上述系统调用类型预先定义部分系统调用为敏感系统调用,以形成一敏感系统调用库。也就是说,敏感系统调用库中的系统调用是一些存在恶意代码可能性较大的系统调用。
在一个具体实施方式中,如图5所示,该序列生成步骤S112可进一步包括如下步骤:
S1121:查找该功能模块调用关系图中各功能模块中出现的所有系统调用。
软件中的每个功能模块有可能出现一个或多个系统调用,在本步骤中,将功能模块调用关系图中涉及的所有功能模块中出现的所有系统调用都查找出来。
S1122:根据上述预定义的敏感系统调用库,确定所查找出的各系统调用中的敏感系统调用,并标识敏感系统调用在所述功能模块调用关系图的出现位置。
在本步骤中,可以将查找出的各系统调用逐一与敏感系统调用库中所定义的敏感系统调用进行匹配,从而判断是否属于预定义的敏感系统调用。当判断一系统调用属于敏感系统调用时,标识出其在功能模块调用关系图中出现的位置。
例如,在图6所示的功能模块调用关系图中,功能模块1—>功能模块3—>功能模块2构成了一个功能模块关系调用子图。在该子图中,在功能模块1中出现了敏感系统调用S1,功能模块3中出现了敏感系统调用S2和S3,在功能模块2中出现了敏感系统调用S4。
S1123:根据所述敏感系统调用出现的顺序位置生成所述敏感系统调用序列。
由于存在恶意代码的系统调用函数需要通过一系列组合来实现其恶意功能,因此将这些系统调用按照一定的顺序组合而成的调用序列,可以有效的描述恶意代码的实现机制。在本步骤中,针对所述功能模块调用关系图中的每个子图,按照敏感系统调用出现的先后顺序形成多个敏感系统调用子序列。例如根据图5所示的,获得一个敏感系统调用子序列:S1—>S2—>S3—>S4。综合所有的敏感系统调用子序列就生成了敏感系统调用序列,即每个功能模块调用关系子图可生成一个敏感系统调用子序列,而整个敏感系统调用序列中可包括一个或多个敏感系统调用子序列。
优选地,在生成敏感系统调用序列的同时,还可以从源代码中提取出所出现的各敏感系统调用所调用的参数。
S120:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配,以得到一恶意软件检测结果。
在本发明一个具体实施方式中,可以分析已知的恶意软件,基于先验知识抽取恶意软件中的系统调用序列,预先形成用于检测恶意软件的一恶意软件特征库,该恶意软件特征库中包括描述恶意代码的实现机制的多个调用序列作为样本。优选地,可在抽取恶意软件中的系统调用序列时,同时抽取恶意软件中各系统调用所调用的参数,将系统调用序列和相应参数共同形成该恶意软件特征库,即,该恶意软件特征库中包括描述恶意代码的实现机制的多个调用序列与相应参数的组合作为样本。
在该检测步骤S120中,可具体将在S110中生成的敏感系统调用序列中的所有敏感系统调用子序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果,将所有匹配结果作为所述恶意软件检测结果。
优选地,当在敏感调用序列生成步骤S110中同时提取调用参数时,将各敏感系统调用子序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及相应参数同时进行匹配以得到匹配结果,并将所有匹配结果作为所述恶意软件检测结果。这样,结合敏感系统调用序列中对于敏感系统调用的顺序以及所调用的参数进行综合检测,可以提高检测结果的准确程度。本领域技术人员可以理解,此时考虑到敏感系统调用中参数类型和个数的变化,可以对匹配程度做一定的模糊化处理,当匹配结果达到某一阈值时即认为该敏感系统调用属于恶意软件的范畴。
与现有技术中的检测技术相比,本发明的上述方法可直接运行于手机等移动终端中,其从源代码分析入手,根据目前恶意代码主要依靠系统调用实现这一特点,对恶意代码所使用的系统调用进行有效的检测,这样可以有效的避免传统的特征值匹配无法解决的代码变形的问题,从源代码一级实现恶意代码本质行为的检测,提高了恶意代码的检测效率。同时相比于虚拟机检测技术相比,本发明从程序的入口函数分析入手,通过功能模块间的调用关系可以获得整个程序的执行流程,继而全面的分析程序的代码执行过程,避免了虚拟机方式检测时只能检查代码的一条执行流程的问题。
与上述方法对应,如图7所示,本发明具体实施方式中还提供了一种安卓移动操作系统的恶意软件检测系统200,所述系统200包括:
敏感调用序列生成设备210,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
检测设备220,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
上述系统200中各设备分别用于实现图1所示的上述恶意软件检测方法中的各步骤功能,各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能,此处不再赘述。
如图8所示,本发明具体实施方式中提供了一种安卓移动操作系统的恶意软件检测方法,该方法可在移动终端中执行,具体可包括如下步骤:
S310:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
S320:敏感调用序列发送步骤,发送所述敏感系统调用序列。
在图8所示的该方法中,上述敏感调用序列生成步骤S310的功能和执行细节与图1所示方法中敏感调用序列生成步骤S110完全一致,此处不再赘述。
在调用序列发送步骤S320中,可将所生成的敏感系统调用序列发送至服务器端。这样,将得到的敏感系统调用序列上传到服务器,有可能由服务器根据后台的恶意软件特征库中的系统调用序列进行匹配,并将检测结果返还给移动终端,避免了移动终端维护庞大的恶意软件特征库所需要耗费的时间和数据流量,并保证了对最新恶意软件检测的实时性。
在一个具体实施方式中,在调用序列发送步骤S320中,将所获得的敏感系统调用序列按照某种预定协议格式实现编码,并将编码后的敏感系统调用序列发送到服务器端。优选地,当在敏感调用序列生成步骤S310中同时提取了调用参数时,可将所获得的敏感系统调用序列和对应调用参数一起进行编码并发送。
例如,图9中示出了对敏感系统调用序列及其参数进行编码的某协议格式,其中:
协议的头部是字段调用序列数目,长度为1字节,记录范围0-255,表示该部分报文内装载的敏感系统调用子序列的个数;
协议的第二个字段为编号字段,长度为1字节,记录范围0-255,表示当前字段后加载的是第几个敏感系统调用子序列;
协议的第三个字段为长度字段,长度为4个字节,表示后续加载的敏感系统调用子序列的长度;
协议的第四个字段是调用序列的内容,由若干个系统调用字段和参数字段组合而成,其中系统调用字段主要用于记录系统调用的编号,参数字段则主要记录调用中所使用的各个参数。若干个系统调用字段和参数字段的组合既可以描述完整的系统调用过程。
当所获得的敏感系统调用序列中包括多个敏感系统调用子序列时,协议的二三四字段可重复加载在报文后,以扩展描述的内容。
与图8中所示方法对应,如图12所示,本发明具体实施方式中还提供了一种安卓移动操作系统的恶意软件检测系统400,所述系统400可实现于移动终端中,具体包括:
敏感调用序列生成设备410,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送设备420,用于发送所述敏感系统调用序列。
上述系统400中各设备分别用于实现图8所示的恶意软件检测方法中的各步骤功能,各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能,此处不再赘述。
与图8中所示的执行于移动终端的方法对应,如图10所示,本发明具体实施方式中提供了一种安卓移动操作系统的恶意代码检测方法,所述方法在服务器执行,包括如下步骤:
S510:敏感调用序列接收步骤,接收敏感系统调用序列;
S520:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
S530:检测结果发送步骤,发送所述恶意软件检测结果。
在敏感调用序列接收步骤S510中,服务器从移动终端接收所生成的敏感系统调用序列。在一个具体实施方式中,所接收的是移动终端按照某种协议格式进行编码后的敏感系统调用序列,此时进一步包括一相应的解码步骤,从而得到原始的敏感系统调用序列。优选地,在移动终端同时提取了调用参数的情况下,服务器解码后的内容也同时包括相应的调用参数。
在检测步骤S520中,服务器根据预定义的恶意软件特征库对该敏感系统调用序列进行匹配并得到一恶意软件检测结果。与图9中所示的敏感系统调用序列对应,该恶意软件检测结果可包括与各敏感系统调用子序列相应的检测结果,如图11所示。
可见,该检测步骤S520的具体过程与上文方法中所介绍的检测步骤S120相近,区别在于该检测操作在服务器端执行,这样避免了移动终端维护庞大的恶意软件特征库所需要耗费的时间和数据流量,并保证了对最新恶意软件检测的实时性。
在检测结果发送步骤S530中,服务器将最终的恶意软件检测结果发送至移动终端,通知移动终端的用户对于恶意软件的检测结果。
与图10所示方法对应,如图13所示,本发明具体实施方式中还提供了一种安卓移动操作系统的恶意软件检测系统600,所述系统600可实现于移动终端中,具体包括:
敏感调用序列接收设备610,用于接收敏感系统调用序列;
检测设备620,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送设备630,用于发送所述恶意软件检测结果。
上述系统600中各设备分别用于实现图10所示的上述恶意软件检测方法中的各步骤功能,各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能,此处不再赘述。
与现有技术中的检测技术相比,本发明的上述方法和系统从源代码分析入手,根据目前恶意代码主要依靠系统调用实现这一特点,对恶意代码所使用的系统调用进行有效的检测,这样可以有效的避免传统的特征值匹配无法解决的代码变形的问题,从源代码一级实现恶意代码本质行为的检测,提高了恶意代码的检测效率。相比于虚拟机检测技术相比,本发明从程序的入口函数分析入手,通过功能模块间的调用关系可以获得整个程序的执行流程,继而全面的分析程序的代码执行过程,避免了虚拟机方式检测时只能检查代码的一条执行流程的问题。同时,本发明上述方法和系统采用特殊的协议格式,将得到的系统调用序列上传到服务器,有可能由服务器根据后台的恶意软件特征库中的系统调用序列进行匹配,并将检测结果返还给移动终端,避免了移动终端维护庞大的恶意软件特征库所需要耗费的时间和数据流量,并保证了对最新恶意软件检测的实时性。
本领域技术人员可以理解,在本发明具体实施方式的上述各方法中,各步骤的序号大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明具体实施方式的实施过程构成任何限定。
图14为本发明实施例提供的一种恶意软件检测系统800的硬件结构示意图,本发明具体实施例并不对恶意软件检测系统800的具体实现做限定。如图14所示,该恶意软件检测系统800可以包括:
处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830、以及通信总线840。其中:
处理器810、通信接口820、以及存储器830通过通信总线840完成相互间的通信。
通信接口820,用于与比如客户端等的网元通信。
处理器810,用于执行程序832,具体可以实现附图所示的系统实施例中恶意软件检测系统的相关功能。
具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。
处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器830,用于存放程序832。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序832具体可以具体实现以下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
或者,程序832具体可以具体实现以下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送步骤,发送所述敏感系统调用序列。
或者,程序832具体可以具体实现以下步骤:
敏感调用序列接收步骤,接收敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送步骤,发送所述恶意软件检测结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述装置实施例中的对应描述,在此不再赘述。
尽管此处所述的主题是在结合操作系统和应用程序在计算机系统上的执行而执行的一般上下文中提供的,但本领域技术人员可以认识到,还可结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。本领域技术人员可以理解,此处所述的本主题可以使用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等,也可使用在其中任务由通过通信网络连接的远程处理设备执行的分布式计算环境中。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备的两者中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对原有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读取存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方式或技术来实现的物理易失性和非易失性、可移动和不可因东介质。计算机可读取存储介质具体包括,但不限于,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(DVD)、HD-DVD、蓝光(Blue-Ray)或其他光存储设备、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机访问的任何其他介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (22)

1.一种安卓移动操作系统的恶意软件检测方法,其特征在于,所述方法包括:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果,
其中,所述敏感调用序列生成步骤进一步包括:
调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
2.根据权利要求1所述的方法,其特征在于,所述调用关系图生成步骤进一步包括:
获取所述软件的源代码;
抽取所述软件中的所述入口函数;
确定每个所述入口函数所调用的功能模块以及相应的调用顺序;以及
生成所述功能模块调用关系图。
3.根据权利要求1所述的方法,其特征在于,所述序列生成步骤进一步包括:
查找所述功能模块调用关系图中各功能模块中出现的系统调用;
根据所述敏感系统调用库,确定所查找出的各系统调用中的敏感系统调用,并标识敏感系统调用在所述功能模块调用关系图的出现位置;以及
根据所述敏感系统调用的出现位置的顺序生成所述敏感系统调用序列。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括定义所述敏感系统调用库的步骤。
5.根据权利要求1所述的方法,其特征在于,在所述检测步骤中,将所述敏感系统调用序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果,作为所述恶意软件检测结果。
6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括定义所述恶意软件特征库的步骤。
7.根据权利要求3所述的方法,其特征在于,在所述序列生成步骤中,还提取出各敏感系统调用所调用的参数。
8.根据权利要求7所述的方法,其特征在于,所述恶意软件特征库包括系统调用所调用的参数,
在所述检测步骤中,将所述敏感系统调用序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及所调用的参数同时进行匹配以得到匹配结果,作为所述恶意软件检测结果。
9.一种安卓移动操作系统的恶意软件检测系统,其特征在于,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果,
其中,所述敏感调用序列生成设备具体用于:
针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
10.一种安卓移动操作系统的恶意软件检测方法,其特征在于,所述方法在移动终端执行,包括如下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送步骤,发送所述敏感系统调用序列,
其中,所述敏感调用序列生成步骤进一步包括:
调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
11.根据权利要求10所述的方法,其特征在于,所述调用关系图生成步骤进一步包括:
获取所述软件的源代码;
抽取所述软件中的所述入口函数;
确定每个所述入口函数所调用的功能模块以及相应的调用顺序;以及
生成所述功能模块调用关系图。
12.根据权利要求10所述的方法,其特征在于,所述序列生成步骤进一步包括:
查找所述功能模块调用关系图中各功能模块中出现的系统调用;
根据所述敏感系统调用库,确定所查找出的各系统调用中的敏感系统调用,并标识敏感系统调用在所述功能模块调用关系图的出现位置;以及
根据所述敏感系统调用的出现位置的顺序生成所述敏感系统调用序列。
13.根据权利要求10所述的方法,其特征在于,所述方法进一步包括定义所述敏感系统调用库的步骤。
14.根据权利要求12所述的方法,其特征在于,在所述序列生成步骤中,还提取出各敏感系统调用所调用的参数。
15.根据权利要求10所述的方法,其特征在于,在所述敏感调用序列发送步骤中,将所生成的敏感系统调用序列按照预定协议进行编码之后进行发送。
16.根据权利要求14所述的方法,其特征在于,在所述敏感调用序列发送步骤中,将所生成的敏感系统调用序列和所提取的所述参数按照预定协议进行编码之后进行发送。
17.一种安卓移动操作系统的恶意软件检测系统,其特征在于,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送设备,用于发送所述敏感系统调用序列,
其中,所述敏感调用序列生成设备具体用于:
针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
18.一种安卓移动操作系统的恶意代码检测方法,其特征在于,所述方法在服务器执行,包括如下步骤:
敏感调用序列接收步骤,接收敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送步骤,发送所述恶意软件检测结果,
其中,所述敏感调用序列是首先针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图,然后根据预定义的敏感系统调用库,基于所述功能模块调用关系图而生成的。
19.根据权利要求18所述的方法,其特征在于,在所述检测步骤中,将所述敏感系统调用序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果,作为所述恶意软件检测结果。
20.根据权利要求18所述的方法,其特征在于,所述方法进一步包括定义所述恶意软件特征库的步骤。
21.根据权利要求18所述的方法,其特征在于,所述恶意软件特征库包括系统调用所调用的参数,
在所述检测步骤中,将所述敏感系统调用序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及所调用的参数同时进行匹配以得到匹配结果,作为所述恶意软件检测结果。
22.一种安卓移动操作系统的恶意代码检测系统,其特征在于,所述系统包括:
敏感调用序列接收设备,用于接收敏感系统调用序列;
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送设备,用于发送所述恶意软件检测结果,
其中,所述敏感调用序列是首先针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图,然后根据预定义的敏感系统调用库,基于所述功能模块调用关系图而生成的。
CN201310598132.4A 2013-11-22 2013-11-22 移动操作系统的恶意软件检测方法和恶意软件检测系统 Active CN103839005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310598132.4A CN103839005B (zh) 2013-11-22 2013-11-22 移动操作系统的恶意软件检测方法和恶意软件检测系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310598132.4A CN103839005B (zh) 2013-11-22 2013-11-22 移动操作系统的恶意软件检测方法和恶意软件检测系统

Publications (2)

Publication Number Publication Date
CN103839005A CN103839005A (zh) 2014-06-04
CN103839005B true CN103839005B (zh) 2016-09-28

Family

ID=50802490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310598132.4A Active CN103839005B (zh) 2013-11-22 2013-11-22 移动操作系统的恶意软件检测方法和恶意软件检测系统

Country Status (1)

Country Link
CN (1) CN103839005B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105303112B (zh) * 2014-06-24 2018-11-06 腾讯科技(深圳)有限公司 组件调用漏洞的检测方法及装置
CN105989283B (zh) 2015-02-06 2019-08-09 阿里巴巴集团控股有限公司 一种识别病毒变种的方法及装置
CN104794399A (zh) * 2015-04-23 2015-07-22 北京北信源软件股份有限公司 一种基于海量程序行为数据的终端防护系统及方法
CN104866764B (zh) * 2015-06-02 2017-10-03 哈尔滨工业大学 一种基于对象引用图的Android手机恶意软件检测方法
CN106709352B (zh) * 2015-11-12 2019-09-24 阿里巴巴集团控股有限公司 样本处理方法、装置及系统
CN105760761A (zh) * 2016-02-04 2016-07-13 中国联合网络通信集团有限公司 软件行为分析方法和装置
CN106778270B (zh) * 2016-12-12 2020-07-21 Tcl科技集团股份有限公司 一种恶意应用程序的检测方法及系统
CN106682516A (zh) * 2016-12-23 2017-05-17 宇龙计算机通信科技(深圳)有限公司 应用程序的检测方法、检测装置和服务器
CN108256325A (zh) * 2016-12-29 2018-07-06 中移(苏州)软件技术有限公司 一种恶意代码变种的检测的方法和装置
CN106709359A (zh) * 2017-01-05 2017-05-24 中国电子科技网络信息安全有限公司 一种Android应用漏洞检测方法
CN108959938B (zh) * 2018-07-05 2020-06-26 腾讯科技(深圳)有限公司 检测漏洞利用的方法、装置、存储介质及设备
CN109635565A (zh) * 2018-11-28 2019-04-16 江苏通付盾信息安全技术有限公司 恶意程序的检测方法、装置、计算设备及计算机存储介质
CN109800569A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 程序鉴别方法及装置
CN109815701B (zh) * 2018-12-29 2022-04-22 奇安信安全技术(珠海)有限公司 软件安全的检测方法、客户端、系统及存储介质
CN109800568B (zh) * 2018-12-29 2021-01-15 360企业安全技术(珠海)有限公司 文档文件的安全防护方法、客户端、系统及存储介质
WO2021189257A1 (zh) * 2020-03-24 2021-09-30 深圳市欢太科技有限公司 恶意进程的检测方法、装置、电子设备及存储介质
CN111444506B (zh) * 2020-05-22 2023-08-18 南京大学 一种同源恶意代码的细粒度分类识别方法
CN112989347B (zh) * 2021-04-15 2023-06-09 重庆大学 一种用于识别恶意软件的方法及装置、设备
CN114969731B (zh) * 2022-03-28 2022-12-02 慧之安信息技术股份有限公司 基于操作系统的恶意软件检测方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737722A (zh) * 2005-08-03 2006-02-22 珠海金山软件股份有限公司 一种检测和防御计算机恶意程序的系统和方法
CN101266550A (zh) * 2007-12-21 2008-09-17 北京大学 一种恶意代码检测方法
KR20110057297A (ko) * 2009-11-24 2011-06-01 한국인터넷진흥원 악성 봇 동적 분석 시스템 및 방법
CN102567674A (zh) * 2012-02-10 2012-07-11 联信摩贝软件(北京)有限公司 基于行为判断软件是否含有病毒的方法和设备
CN102902538A (zh) * 2012-09-21 2013-01-30 哈尔滨工业大学深圳研究生院 移动互联网智能终端应用中间件安全开发方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737722A (zh) * 2005-08-03 2006-02-22 珠海金山软件股份有限公司 一种检测和防御计算机恶意程序的系统和方法
CN101266550A (zh) * 2007-12-21 2008-09-17 北京大学 一种恶意代码检测方法
KR20110057297A (ko) * 2009-11-24 2011-06-01 한국인터넷진흥원 악성 봇 동적 분석 시스템 및 방법
CN102567674A (zh) * 2012-02-10 2012-07-11 联信摩贝软件(北京)有限公司 基于行为判断软件是否含有病毒的方法和设备
CN102902538A (zh) * 2012-09-21 2013-01-30 哈尔滨工业大学深圳研究生院 移动互联网智能终端应用中间件安全开发方法

Also Published As

Publication number Publication date
CN103839005A (zh) 2014-06-04

Similar Documents

Publication Publication Date Title
CN103839005B (zh) 移动操作系统的恶意软件检测方法和恶意软件检测系统
CN106951780B (zh) 重打包恶意应用的静态检测方法和装置
Li et al. Deeppayload: Black-box backdoor attack on deep learning models through neural payload injection
CN108595955B (zh) 一种安卓手机恶意应用检测系统及方法
CN106682505B (zh) 一种病毒检测方法、终端、服务器及系统
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
US9652601B2 (en) Method for plagiarism detection of multithreaded program based on thread slice birthmark
TW201426381A (zh) 惡意程式偵測方法與系統
CN102592080B (zh) flash恶意文件检测方法及装置
CN105205396A (zh) 一种基于深度学习的安卓恶意代码检测系统及其方法
Gao et al. Android malware detection via graphlet sampling
CN105446741B (zh) 一种基于api比对的移动应用程序辨识方法
CN105357204B (zh) 生成终端识别信息的方法及装置
CN103106365A (zh) 一种移动终端上的恶意应用软件的检测方法
CN103473346A (zh) 一种基于应用程序编程接口的安卓重打包应用检测方法
CN105653947B (zh) 一种评估应用数据安全风险的方法及装置
CN107103237A (zh) 一种恶意文件的检测方法及装置
CN105205398B (zh) 一种基于apk加壳软件动态行为的查壳方法
Sanz et al. Instance-based anomaly method for Android malware detection
CN113506045A (zh) 基于移动设备的风险用户识别方法、装置、设备及介质
CN107294981B (zh) 一种认证的方法和设备
CN111143858B (zh) 数据检查方法及装置
CN113419971A (zh) 安卓系统服务漏洞检测方法及相关装置
CN110210215B (zh) 一种病毒检测的方法以及相关装置
CN111107074A (zh) 一种防止网络爬虫窃取隐私数据的方法、训练方法及装置

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