CN106709343B - 病毒监测方法及装置 - Google Patents
病毒监测方法及装置 Download PDFInfo
- Publication number
- CN106709343B CN106709343B CN201610597422.0A CN201610597422A CN106709343B CN 106709343 B CN106709343 B CN 106709343B CN 201610597422 A CN201610597422 A CN 201610597422A CN 106709343 B CN106709343 B CN 106709343B
- Authority
- CN
- China
- Prior art keywords
- sample
- virus
- simulator
- module
- analog
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
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)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开了一种病毒监测方法及装置,属于病毒监测领域。所述方法包括:运行安装在模拟器上需要进行病毒监测的应用样本,模拟应用样本运行时需要的操作;在模拟应用样本运行时需要的操作的过程中,在模拟器上监控预置的关键系统函数,输出动态日志,关键系统函数是预先配置的与行为相关的系统函数;利用预定脚本对动态日志进行判定,输出判定结果。本发明解决了相关技术中因在每次增加需要监测的病毒时都需要修改模拟器源码,导致迭代速度无法跟上病毒变化的速度的问题,达到了即使增加新病毒的情况下,仍旧可以对其进行监测,较大程度上适应病毒变化的速度的效果。
Description
技术领域
本发明涉及病毒监测领域,特别涉及一种病毒监测方法及装置。
背景技术
病毒监测是预防病毒的一种常用方式,由于病毒通常是针对系统的特征来进行攻击或者截获私密信息的,因此针对不同的系统,病毒监测的方式也可能不同。
针对安卓(英文:Android)系统的病毒监测,常采用一种动态特征监测平台,在该监测平台上设置一Android模拟器,以用来模拟Android系统的环境。当需要监测某种新增加类型的病毒时,则需要在该监测平台上修改Android模拟器源码,来实现该病毒的监测。
上述方式在每次增加需要监测的病毒时都需要修改模拟器源码,重新编译后才能对病毒进行监测,因此迭代速度无法跟上病毒变化的速度。
发明内容
为了解决相关技术中因在每次增加需要监测的病毒时都需要修改模拟器源码,导致迭代速度无法跟上病毒变化的速度的问题,本发明实施例提供了一种病毒监测方法及装置。所述技术方案如下:
第一方面,提供了一种病毒监测方法,所述方法包括:运行安装在模拟器上需要进行病毒监测的应用样本,模拟所述应用样本运行时需要的操作;在模拟所述应用样本运行时需要的操作的过程中,在所述模拟器上监控预置的关键系统函数,输出动态日志,所述关键系统函数是预先配置的与行为相关的系统函数;利用预定脚本对所述动态日志进行判定,输出判定结果,所述判定结果用于指示所述应用样本是否具备病毒,或者用于指示所述应用样本所具备病毒的行为信息。
第二方面,提供了一种病毒监测装置,所述装置包括:运行模块,用于运行安装在模拟器上需要进行病毒监测的应用样本;第一模拟模块,用于模拟所述运行模块运行的所述应用样本运行时需要的操作;监控模块,用于在所述模拟模块模拟所述应用样本运行时需要的操作的过程中,在所述模拟器上监控预置的关键系统函数,输出动态日志,所述关键系统函数是预先配置的与行为相关的系统函数;输出模块,用于利用预定脚本对所述监控模块得到的所述动态日志进行判定,输出判定结果,所述判定结果用于指示所述应用样本是否具备病毒,或者用于指示所述应用样本所具备病毒的行为信息。
本发明实施例提供的技术方案带来的有益效果是:
通过在模拟器上预先配置与应用程序运行时产生的行为相关的关键系统函数,在对任一应用样本进行监控时,模拟应用样本运行时需要的操作,监控这些关键系统函数,输出动态日志,根据动态日志确定与病毒判定相关的判定结果;由于关键系统函数可以预先全部导入,在利用模拟器模拟应用样本的操作行为时,直接监控这些关键系统函数即可,即使病毒类型不同或增加新的病毒类型,也同样可以通过对这些关键系统函数的监控确定被监控应用样本的行为,因此解决了相关技术中因在每次增加需要监测的病毒时都需要修改模拟器源码,导致迭代速度无法跟上病毒变化的速度的问题,达到了即使增加新病毒的情况下,仍旧可以对其进行监测,较大程度上适应病毒变化的速度的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中提供的病毒监测平台的结构示意图;
图2是本发明一个实施例中提供的病毒监测方法的方法流程图;
图3A是本发明另一个实施例中提供的病毒监测方法的方法流程图;
图3B是本发明一个实施例中提供的模拟用户的界面交互操作时的流程图;
图4是本发明一个实施例中提供的病毒监测方法执行时的流程示意图;
图5是本发明一个实施例中提供的病毒监测装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了实现对应用程序中病毒的监控,本申请提供一种病毒监测平台,该病毒监测平台提供一种模拟器,该模拟器可以模拟智能系统,比如模拟Android系统的模拟器,将需要进行病毒监测的应用样本安装在该模拟器上,对该应用样本进行监测,这里的模拟器可以被称为模拟智能系统的监测设备。
以下结合图1对病毒监测平台的结构进行说明。图1是本发明一个实施例中提供的病毒监测平台的结构示意图。该病毒监测平台100为实现病毒监测方法的网络侧设备。
病毒监测平台100包括中央处理单元(英文:central processing unit,CPU)101、包括随机存取存储器(英文:random-access memory,RAM)102和只读存储器(英文:read-only memory,ROM)103的系统存储器104,以及连接系统存储器104和中央处理单元101的系统总线105。病毒监测平台100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出(英文:input/output,I/O)系统106,和用于存储操作系统113、应用程序114和其他程序模块115的大容量存储设备107。
基本输入/输出系统106包括有用于显示信息的显示器108和用于用户输入信息的诸如鼠标、键盘之类的输入设备109。其中显示器108和输入设备109都通过连接到系统总线105的输入/输出控制器110连接到中央处理单元101。基本输入/输出系统106还可以包括输入/输出控制器110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器110还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备107通过连接到系统总线105的大容量存储控制器(未示出)连接到中央处理单元101。大容量存储设备107及其相关联的计算机可读介质为病毒监测平台100提供非易失性存储。也就是说,大容量存储设备107可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括静态随机存取存储器(英文:static random access memory,SRAM),电可擦除可编程只读存储器(英文:electrically erasable programmable read-only memory,EEPROM),可擦除可编程只读存储器(英文:erasable programmable read only memory,EPROM),可编程只读存储器(英文:programmable read only memory,PROM)、RAM、ROM、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(英文:digital versatile disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器104和大容量存储设备107可以统称为存储器。
根据本发明的各种实施例,病毒监测平台100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即病毒监测平台100可以通过连接在系统总线105上的网络接口单元111连接到网络112,或者说,也可以使用网络接口单元111来连接到其他类型的网络或远程计算机系统(未示出)。
上述系统存储器104还包括一个或者一个以上的程序,这些程序经配置以由一个或者一个以上处理器执行。
在实际实现时,病毒监测平台还可以是终端设备,比如智能手机、台式电脑、平板电脑以及其他可以安装应用程序的设备等。
病毒监测平台在进行病毒监测时,可以对应用样本的相关操作或信息进行模拟,以模拟该应用样本被用户实际使用的情景,通过对应用样本对模拟的内容进行响应时调用的系统函数,判定应用样本是否存在病毒以及病毒的具体行为,病毒监测方法的具体可以参见如图2、图3A、图3B中进行的解释说明。
图2是本发明一个实施例中提供的病毒监测方法的方法流程图,该病毒监测方法应用于图1所示的病毒监测平台中,该病毒监测方法包括如下步骤:
步骤201,运行安装在模拟器上需要进行病毒监测的应用样本,模拟应用样本运行时需要的操作。
应用样本一般是需要运行在智能系统上的应用程序。这里的应用样本可以是需要运行在智能系统上的任一种应用程序。
在实际应用中,用户如果想要知道某种应用程序是否具备病毒,均可以向病毒监测平台提交该应用程序,病毒监测平台会将用户提交的应用程序作为应用样本,并在模拟器上安装该应用样本。
在模拟器上安装该应用样本,并运行该应用样本后,则可以执行模拟该应用样本运行时需要的操作。
模拟器在运行该应用样本时,可以开启该应用样本的应用程序组件Activity,即实现该应用样本的开启。一般的,应用程序组件Activity为用于提供与用户交互的组件,这里可以认为模拟用户点击该应用样本的图标,以控制该应用样本进行运行。
模拟器在模拟该应用样本运行时需要的操作时,可以根据该应用样本的相关信息模拟相关操作,或者可以模拟运行该应用样本时,模拟智能系统上其他应用执行的操作。
步骤202,在模拟应用样本运行时需要的操作的过程中,在模拟器上监控预置的关键系统函数,输出动态日志。
这里所讲的关键系统函数通常是预先配置的与应用程序运行时产生的行为相关的系统函数。在实际实现时,可以通过病毒监测平台的研发人员对大量的样本进行分析,得到样本运行时需要调用的系统函数,将这些系统函数作为关键系统函数。据分析统计,总结出约121个关键系统函数,这些关键系统函数基本可以覆盖样本的大部分行为。
在实际应用中,根据样本分析,这些关键系统函数可以预先确定,并被导入至病毒监测平台,当应用样本在运行时,由于被模拟了一些操作,应用样本会对这些操作进行响应,而在响应这些操作时则会调用到这些关键系统函数,因此在模拟应用样本运行时需要的操作的过程中,病毒监测平台hook这些关键系统函数,即可得知该应用样本的行为,也即动态日志。动态日志可以用于表示应用样本运行响应模拟操作时产生的行为,比如截获用户的密码、篡改用户的数据等。
步骤203,利用预定脚本对动态日志进行判定,输出判定结果,判定结果用于指示应用样本是否具备病毒,或者用于指示应用样本所具备病毒的行为信息。
这里的预定脚本可以根据动态日志以及预先设定的规则池中的规则,判定动态日志所对应的判定结果,这里的判定结果可以用于指示该应用样本是否具备病毒,更进一步的,还可以用于指示该应用成本所具备病毒的行为信息。这里的行为信息用于指示病毒具体的攻击行为,比如盗取用户密码、监控用户输入、篡改用户信息等。
综上所述,本发明实施例提供的病毒监测方法,通过在模拟器上预先配置与应用程序运行时产生的行为相关的关键系统函数,在对任一应用样本进行监控时,模拟应用样本运行时需要的操作,监控这些关键系统函数,输出动态日志,根据动态日志确定与病毒判定相关的判定结果;由于关键系统函数可以预先全部导入,在利用模拟器模拟应用样本的操作行为时,直接监控这些关键系统函数即可,即使病毒类型不同或增加新的病毒类型,也同样可以通过对这些关键系统函数的监控确定被监控应用样本的行为,因此解决了相关技术中因在每次增加需要监测的病毒时都需要修改模拟器源码,导致迭代速度无法跟上病毒变化的速度的问题,达到了即使增加新病毒的情况下,仍旧可以对其进行监测,较大程度上适应病毒变化的速度的效果。
图3A是本发明另一个实施例中提供的病毒监测方法的方法流程图,该病毒监测方法应用于图1所示的病毒监测平台中,该病毒监测方法包括如下步骤:
步骤301,运行安装在模拟器上需要进行病毒监测的应用样本。
应用样本一般是需要运行在智能系统上的应用程序。这里的应用样本可以是需要运行在智能系统上的任一种应用程序。
在实际应用中,用户如果想要知道某种应用程序是否具备病毒,均可以向病毒监测平台提交该应用程序,病毒监测平台会将用户提交的应用程序作为应用样本,并在模拟器上安装该应用样本。
在模拟器上安装该应用样本,并运行该应用样本后,则可以执行模拟该应用样本运行时需要的操作。
模拟器在运行该应用样本时,可以开启该应用样本的应用程序组件,即实现该应用样本的开启。一般的,应用程序组件为用于提供与用户交互的组件,这里可以认为模拟用户点击该应用样本的图标,以控制该应用样本进行运行。
模拟器在模拟该应用样本运行时需要的操作时,可以根据该应用样本的相关信息模拟相关操作,或者可以模拟运行该应用样本时,模拟智能系统上其他应用执行的操作,具体可以至少包括如下步骤302至步骤304中所列出的至少一种方式。
步骤302,根据该应用样本的配置文件模拟该应用样本需要调用的系统消息,广播模拟的系统消息。
一般的,当运行某应用样本后,除了开启Activity,还需要开启运行应用样本所需的其他组件,比如服务组件Service、内容提供组件Content Provide、广播接收器Broadcast Receiver。
当应用样本被运行后,为了保证应用样本的正常运行,需要根据应用样本的配置文件获取系统中的相关消息,此时则可以根据应用样本的配置文件模拟系统的相关消息,广播这些相关消息。
若应用样本需要获取这些消息,则会接收到广播的这些消息,此时则可以监控应用样本响应这些消息时调用的关键系统函数。这时被调用的关键系统函数输入的日志则可以表示应用样本是否存在攻击行为。
步骤303,在运行的该应用样本上模拟用户的界面交互操作。
在实际应用中,应用样本在开启后,通常需要用户与应用样本进行交互,因此为了模拟用户与应用样本进行交互,以判定该应用样本是否因用户的操作执行相应的攻击行为,此时则可以在运行应用样本的过程中,模拟用户与该应用样本的界面交互操作。
这里所讲的界面交互操作包括点击操作和/或输入操作。用户在使用应用样本时,通常需要与该应用样本进行交互,比如用户可以点击应用样本界面上的控件,或者可以向应用样本界面上的输入框中输入文本、图片、音频、视频等格式的信息,或者通过语音输入的方式将语音信息输入至应用样本,或者按照预定方式移动或摇动应用样本所在的设备,将产生的运动数据输入至应用样本,或者利用与设备对接的遥控设备控制信息输入至应用样本等。
病毒监测平台在运行的该应用样本上模拟用户的界面交互操作,可以参见图3B中的如下步骤:
步骤303a,镜像出该应用样本的窗口信息。
病毒监测平台在应用样本展示窗口信息后,则镜像dump出应用样本的窗口信息。当应用样本根据用户的操作可能会展示若干个不同的窗口信息时,对用户的操作进行模拟,在模拟用户操作后,镜像根据用户操作后展示的窗口信息。也即对于应用样本可能展示的窗口信息,均进行镜像,从而可以避免遗漏对病毒行为的监测。
步骤303b,分析该窗口信息,获取该窗口信息所涉及的可输入控件和按钮。
窗口信息中通常包含可供用户操作的可输入控件或按钮。这里的可输入控件一般用于提供给用户输入文本、图片、音频、视频等信息,按钮一般提供给用户进行触发。
可选的,可以将该窗口信息所涉及的可输入控件和按钮打上标签。比如,将窗口信息中的可操作元素(即可输入控件和按钮等)进行分类或者标记。
步骤303c,根据可输入控件模拟输入相应内容,根据各个按钮的预定优先级,模拟用户点击按钮。
在可输入控件模拟输入相应内容,比如,在需要输入用户名的可输入控件中,模拟输入合法的用户名;还比如,在需要输入密码的可输入控件中,模拟输入与该用户名对应的合法密码。
一般的,窗口信息中可能会出现若干个供用户触发的按钮,此时则可以根据各个按钮的预定优先级(也即被用户操作的先后顺序),模拟用户点击按钮。
很显然,当窗口信息中仅存在一个按钮时,则直接模拟用户点击该按钮。
步骤304,在模拟器上模拟电话呼入操作,广播模拟的电话呼入操作所涉及的消息。
在实际应用中,当运行应用样本时,应用样本所运行的设备可能会接收到来电,此时应用样本中的病毒可以会阻止该来电,或者监听该来电等非法操作,因此为了能够对这类病毒行为的监测,本实施例中在模拟器上模拟电话呼入操作,将模拟电话呼入操作所涉及的消息进行广播,若该应用样本对电话呼入操作进行了监控,则会获取到该应用样本。此时应用样本在接收模拟的电话呼入操作所涉及的消息,或者响应这些消息时,均会调用相关的关键系统函数,因此,此时监控到的关键系统函数输入的日志则可以反映应用样本的病毒攻击行为。
应用样本在获取到电话呼入操作时,则可能会其执行非法操作,而应用样本的操作会调用关键系统函数,因此根据应用样本对关键系统函数的监控,则可以监测到应用样本的这些非法操作。
步骤305,在模拟过程中,在模拟器上监控预置的关键系统函数,输出动态日志。
这里所讲的关键系统函数通常是预先配置的与应用程序运行时产生的行为相关的系统函数。在实际实现时,可以通过病毒监测平台的研发人员对大量的样本进行分析,得到样本运行时需要调用的系统函数,将这些系统函数作为关键系统函数。据分析统计,总结出约121个关键系统函数,这些关键系统函数基本可以覆盖样本的大部分行为。
在实际应用中,根据样本分析,这些关键系统函数可以预先确定,并被导入至病毒监测平台,当应用样本在运行时,由于被模拟了一些操作,应用样本会对这些操作进行响应,而在响应这些操作时则会调用到这些关键系统函数,因此在模拟应用样本运行时需要的操作的过程中,病毒监测平台hook这些关键系统函数,即可得知该应用样本的行为,也即动态日志。动态日志可以用于表示应用样本运行响应模拟操作时产生的行为,比如截获用户的密码、篡改用户的数据等。
步骤306,利用预定脚本对动态日志进行判定,输出判定结果。
这里的预定脚本可以根据动态日志以及预先设定的规则池中的规则,判定动态日志所对应的判定结果,这里的判定结果可以用于指示该应用样本是否具备病毒,更进一步的,还可以用于指示该应用成本所具备病毒的行为信息。这里的行为信息用于指示病毒具体的攻击行为,比如盗取用户密码、监控用户输入、篡改用户信息等。
综上所述,本发明实施例提供的病毒监测方法,通过在模拟器上预先配置与应用程序运行时产生的行为相关的关键系统函数,在对任一应用样本进行监控时,模拟应用样本运行时需要的操作,监控这些关键系统函数,输出动态日志,根据动态日志确定与病毒判定相关的判定结果;由于关键系统函数可以预先全部导入,在利用模拟器模拟应用样本的操作行为时,直接监控这些关键系统函数即可,即使病毒类型不同或增加新的病毒类型,也同样可以通过对这些关键系统函数的监控确定被监控应用样本的行为,因此解决了相关技术中因在每次增加需要监测的病毒时都需要修改模拟器源码,导致迭代速度无法跟上病毒变化的速度的问题,达到了即使增加新病毒的情况下,仍旧可以对其进行监测,较大程度上适应病毒变化的速度的效果。
通过模拟用户的输入和点击操作,可以有效判定应用样本中病毒的具体行为信息,使病毒的监测结果在供用户参考时,更便于指导用户进行信息的保密。
通过预先设置可以覆盖各个行为的关键系统函数,在利用这些关键系统函数进行监测时,可以适应对各类病毒的监测,适应范围广,更便于病毒监测平台的维护。此外,通过hook技术实现关键系统函数的监控,不需要对系统镜像进行编译与维护,大大加快了迭代速度。
在实际应用中,应用样本中若存在病毒时,为了避免病毒监控设备能够监控到应用样本中的病毒,应用样本中通常会进行防监测测试,比如获取应用样本运行环境的特征文件,以用于防监测分析,还比如获取应用样本运行环境所处于的网络状态,以用于防监测分析等。因此,为了避免应用样本因测试到应用样本所运行的环境被监控,而采取暂停病毒代码的执行的情况,本申请中针对这种情况进行了反对抗设计,具体实现如下:
首先,检测应用样本是否在进行防监测测试,然后,在该应用样本在进行防监测测试时,执行反对抗操作。这里所讲反对抗操作用于对防监测测试需要的信息进行隐藏和模拟,以阻止该应用样本测试出被监测。
在检测应用样本是否在进行防监测测试时,可以检测该应用样本是否需要获取系统的特征文件,或者检测该应用样本需要获取系统的网络状态,或者检测该应用样本需要获取系统的设备特征信息等。
比如,当检测到应用样本需要获取系统的特征文件时,表明该应用样本可能在执行防监测测试,此时则隐藏该模拟器的特征文件,或者将模拟的特征文件发送至应用样本,模拟的特征文件为模拟的运行应用样本的设备上的特征文件。这样,应用样本在拿到该特征文件之后,通过对特征文件的分析,通常会认为该应用样本当前所运行的环境为常规的使用环境,进而可能继续执行病毒所对应的代码,这样,病毒监测平台则可以继续对病毒行为进行监测。
还比如,当检测到应用样本需要获取系统的网络状态时,表明该应用样本可能在执行防监测测试,此时则在模拟器上模拟网络状态,将模拟后的网络状态发送给该应用样本,模拟的网络状态为正常设备上网时的一些网络状态。这样,应用样本在拿到该网络状态之后,通过对网络状态的分析,通常会认为该应用样本当前的联网情况属于常规联网,进而可能继续执行病毒所对应的代码,这样,病毒监测平台则可以继续对病毒行为进行监测。
还比如,当检测到应用样本需要获取系统的设备特征信息时,表明该应用样本可能在执行防监测测试,此时则在模拟器上模拟设备特征信息,将模拟后的设备特征信息发送给该应用样本,模拟的设备特征信息为正常设备上特征信息,比如客户识别模块(英文Subscriber Identification Module,SIM)的标识等。这样,应用样本在拿到该设备特征信息之后,通过对设备特征信息的分析,通常会认为该应用样本所在的设备属于常规设备,进而可能继续执行病毒所对应的代码,这样,病毒监测平台则可以继续对病毒行为进行监测。
显然,在实际应用中,应用样本还可以存在其他的防监测测试方式,针对其他的防监测测试方式,病毒监测平台还可以模拟其他对应的信息,以执行反对抗操作,这里就不再赘述。
综上所述,本实施例所提供的病毒监测方法,通过在确定应用样本进行防监测测试时,仿造正常的数据输入给应用样本,使得应用样本的病毒认为应用样本所处的环境并没有被监控,从而会正常直接攻击行为,这样病毒监测平台则可以对病毒的行为进行监控。
在一种可能的实现方式中,承载有病毒的应用样本中为了避免病毒代码被监控,可能会进行加壳处理,也即在应用样本原有的基础上,加上一层保护代码。可选的,应用样本还可能会该保护代码进行隐藏,针对这种情况,病毒监测平台还可以进一步的在运行应用样本的过程中,对该应用样本进行脱壳处理,对脱壳处理得到的保护代码进行静态分析,分析该保护代码所涉及的行为等。
下面结合用户、研发人员、病毒监测平台,对病毒监测方法进行如下举例说明,请参见图4所示:
预处理过程:
步骤411,研发人员将关键系统函数预先配置在病毒监测平台上;
研发人员会统计能够覆盖各种行为的关键系统函数,也即只要应用执行操作,均会调用这些关键系统函数中的部分函数,研发人员将统计的关键系统函数预先配置在病毒监测平台上。
步骤412,开发人员将判定规则添加至规则池;
这里所讲的规则可以根据实际需要进行设定,比如频繁的网络攻击、密码篡改等非法行为所对应的规则。
样本提交过程:
步骤421,用户向病毒监测平台提交应用样本;
实际应用中,用户可以利用终端,向病毒监测平台提交应用样本。
病毒监测过程:
步骤431,病毒监测平台上的模拟器安装该应用样本;
步骤432,模拟器启动该应用样本;
模拟器启动该应用样本的Activity后,则启动了该应用样本。
步骤433,病毒监测平台对该应用样本进行脱壳处理;
病毒监测平台对该应用样本进行脱壳处理,获取对应用样本加壳处理时的保护代码,可以对保护代码进行分析,获取应用样本加壳处理的内容。
步骤434,病毒监测平台根据该应用样本的配置文件,模拟并广播系统消息;
被模拟和广播的系统消息包括该应用样本运行需要的消息。当广播系统消息后,如果应用样本需要获取这些消息,则会接收到广播的这些系统消息。
步骤435,病毒监测平台模拟该应用样本的用户输入、点击操作;
步骤436,病毒监测平台模拟呼入电话,广播该呼入电话消息。
如果应用样本中的病毒会监控呼入电话,则会接收到广播的该呼入电话消息,并执行相应处理,此时应用样本会调用处理该呼入电话时的一些关键系统函数,根据关进系统函数的运行,则可以得知该应用样本针对呼入电话的攻击行为。
在实际实现时,步骤433至步骤436的执行顺序并不局限于上述的顺序,还可以为其他的顺序,比如先执行步骤435再执行步骤436,或者并列执行步骤435和步骤436,步骤433也可以在步骤434之后、或者步骤435之后、或者步骤436之后,本实施例中不对步骤433至步骤436的执行顺序进行限定。
病毒判定过程:
步骤441,在运行应用样本的过程中,监控关键系统函数,输出动态日志;
在运行应用样本的过程中,执行步骤433至步骤436中的至少一个步骤,若应用样本在根据模拟的操作进行关键系统函数调用时,根据对关键系统函数调用的监控,输出动态日志。
步骤442,结合动态日志以及规则池,输入判定结果。
对这些动态日志进行分析,即可得知该应用样本是否存在病毒,以及在存在病毒时病毒所对应的行为信息。
图5是本发明一个实施例中提供的病毒监测装置的框图,在图5中,该病毒监测装置包括:运行模块510、第一模拟模块520、监控模块530和输出模块540。
运行模块510可以用于运行安装在模拟器上需要进行病毒监测的应用样本。
第一模拟模块520可以用于模拟该运行模块510运行的该应用样本运行时需要的操作。
监控模块530可以用于在该第一模拟模块520模拟该应用样本运行时需要的操作的过程中,在该模拟器上监控预置的关键系统函数,输出动态日志,该关键系统函数是预先配置的与行为相关的系统函数。
输出模块540可以用于利用预定脚本对该监控模块530得到的该动态日志进行判定,输出判定结果,该判定结果用于指示该应用样本是否具备病毒,或者用于指示该应用样本所具备病毒的行为信息。
在一种可选的实现方式中,该第一模拟模块520还可以包括第一模拟单元。
该第一模拟单元可以用于根据该运行模块运行的该应用样本的配置文件模拟该应用样本需要调用的系统消息,广播模拟的系统消息。
在另一种可选的实现方式中,该第一模拟模块520还可以包括第二模拟单元。
第二模拟单元可以用于在该运行模块运行的该应用样本上模拟用户的界面交互操作,该界面交互操作包括点击操作和/或输入操作。
在实际应用中,该第一模拟模块520可以包括第一模拟单元和第二模拟单元中的任一种或全部。
在再一种可选的实现方式中,第一模拟单元可以包括:镜像子单元、分析子单元和模拟子单元。
镜像子单元可以用于镜像出该应用样本的窗口信息。
分析子单元可以用于分析该镜像子单元镜像得到的该窗口信息,获取该窗口信息所涉及的可输入控件和按钮。
模拟子单元可以用于根据该分析子单元分析出的该可输入控件模拟输入相应内容,根据各个按钮的预定优先级,模拟用户点击该按钮。
在再一种可选的实现方式中,该病毒监控装置还可以包括:第二模拟模块。
该第二模拟模块可以用于在该运行模块运行的该应用样本的过程中,在该模拟器上模拟电话呼入操作,广播模拟的电话呼入操作所涉及的消息。
在再一种可选的实现方式中,该病毒监控装置还可以包括:检测模块和执行模块。
该检测模块可以用于检测该应用样本是否在进行防监测测试。
该执行模块可以用于在该检测模块检测到该应用样本在进行防监测测试时,执行反对抗操作,该反对抗操作用于对防监测测试需要的信息进行模拟,以阻止该应用样本测试出被监测。
在再一种可选的实现方式中,该执行模块可以包括第一执行单元、第二执行单元和第三执行单元中的至少一种。
第一执行单元,用于在该应用样本需要获取系统的特征文件时,隐藏该模拟器的特征文件,或将模拟的特征文件发送至该应用样本。
第二执行单元,用于在该应用样本需要获取系统的网络状态时,在该模拟器上模拟网络状态,将模拟后的网络状态发送给该应用样本。
第三执行单元,用于在该应用样本需要获取系统的设备特征信息时,在该模拟器上模拟设备特征信息,将模拟后的设备特征信息发送给该应用样本。
在再一种可选的实现方式中,该病毒监测装置还包括脱壳模块。
该脱壳模块可以用于在该运行模块运行该应用样本的过程中,对该应用样本进行脱壳处理,对脱壳处理得到的保护代码进行静态分析。
综上所述,本发明实施例提供的病毒监测装置,通过在模拟器上预先配置与应用程序运行时产生的行为相关的关键系统函数,在对任一应用样本进行监控时,模拟应用样本运行时需要的操作,监控这些关键系统函数,输出动态日志,根据动态日志确定与病毒判定相关的判定结果;由于关键系统函数可以预先全部导入,在利用模拟器模拟应用样本的操作行为时,直接监控这些关键系统函数即可,即使病毒类型不同或增加新的病毒类型,也同样可以通过对这些关键系统函数的监控确定被监控应用样本的行为,因此解决了相关技术中因在每次增加需要监测的病毒时都需要修改模拟器源码,导致迭代速度无法跟上病毒变化的速度的问题,达到了即使增加新病毒的情况下,仍旧可以对其进行监测,较大程度上适应病毒变化的速度的效果。
通过模拟用户的输入和点击操作,可以有效判定应用样本中病毒的具体行为信息,使病毒的监测结果在供用户参考时,更便于指导用户进行信息的保密。
通过预先设置可以覆盖各个行为的关键系统函数,在利用这些关键系统函数进行监测时,可以适应对各类病毒的监测,适应范围广,更便于病毒监测平台的维护。此外,通过hook技术实现关键系统函数的监控,不需要对系统镜像进行编译与维护,大大加快了迭代速度。
通过在确定应用样本进行防监测测试时,仿造正常的数据输入给应用样本,使得应用样本的病毒认为应用样本所处的环境并没有被监控,从而会正常直接攻击行为,这样病毒监测平台则可以对病毒的行为进行监控。
需要说明的是:上述实施例中提供的病毒监测装置在进行病毒监测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将模拟器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的病毒监测装置与病毒监测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种通过病毒监测平台进行病毒监测的方法,其特征在于,所述方法包括:
运行安装在模拟器上需要进行病毒监测的应用样本;
根据所述应用样本的配置文件模拟所述应用样本需要调用的系统消息,广播模拟的系统消息;
在运行的所述应用样本上模拟用户的界面交互操作,包括:镜像出所述应用样本的窗口信息;分析所述窗口信息,获取所述窗口信息所涉及的可输入控件和按钮;根据所述可输入控件模拟输入相应内容,根据各个按钮的预定优先级,模拟用户点击所述按钮;
在模拟器上模拟电话呼入操作,广播模拟的电话呼入操作所涉及的消息;
在模拟所述应用样本运行时需要的操作的过程中,在所述模拟器上监控预置的关键系统函数,输出动态日志,所述关键系统函数是预先配置的与应用程序运行时产生的行为相关的系统函数;
利用预定脚本对所述动态日志进行判定,输出判定结果,所述判定结果用于指示所述应用样本是否具备病毒,或者用于指示所述应用样本所具备病毒的行为信息。
2.根据权利要求1所述的方法,其特征在于,所述界面交互操作包括点击操作和/或输入操作。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述应用样本是否在进行防监测测试;
在所述应用样本在进行防监测测试时,执行反对抗操作,所述反对抗操作用于对防监测测试需要的信息进行隐藏或模拟,以阻止所述应用样本测试出被监测。
4.根据权利要求3所述的方法,其特征在于,所述执行反对抗操作,包括:
在所述应用样本需要获取系统的特征文件时,隐藏所述模拟器的特征文件,或将模拟的特征文件发送至所述应用样本;
在所述应用样本需要获取系统的网络状态时,在所述模拟器上模拟网络状态,将模拟后的网络状态发送给所述应用样本;
在所述应用样本需要获取系统的设备特征信息时,在所述模拟器上模拟设备特征信息,将模拟后的设备特征信息发送给所述应用样本。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述方法还包括:
在运行所述应用样本的过程中,对所述应用样本进行脱壳处理,对脱壳处理得到的保护代码进行静态分析。
6.一种通过病毒监测平台进行病毒监测的装置,其特征在于,所述装置包括:
运行模块,用于运行安装在模拟器上需要进行病毒监测的应用样本;
第一模拟模块,包括:第一模拟单元,用于根据所述运行模块运行的所述应用样本的配置文件模拟所述应用样本需要调用的系统消息,广播模拟的系统消息;
所述第一模拟模块,还包括:第二模拟单元,用于在所述运行模块运行的所述应用样本上模拟用户的界面交互操作;
所述第二模拟单元,包括:镜像子单元,用于镜像出所述应用样本的窗口信息;分析子单元,用于分析所述镜像子单元镜像得到的所述窗口信息,获取所述窗口信息所涉及的可输入控件和按钮;模拟子单元,用于根据所述分析子单元分析出的所述可输入控件模拟输入相应内容,根据各个按钮的预定优先级,模拟用户点击所述按钮;
第二模拟模块,用于在所述运行模块运行的所述应用样本的过程中,在所述模拟器上模拟电话呼入操作,广播模拟的电话呼入操作所涉及的消息;
监控模块,用于在所述第一模拟模块模拟所述应用样本运行时需要的操作的过程中,在所述模拟器上监控预置的关键系统函数,输出动态日志,所述关键系统函数是预先配置的与行为相关的系统函数;
输出模块,用于利用预定脚本对所述监控模块得到的所述动态日志进行判定,输出判定结果,所述判定结果用于指示所述应用样本是否具备病毒,或者用于指示所述应用样本所具备病毒的行为信息。
7.根据权利要求6所述的装置,其特征在于,所述界面交互操作包括点击操作和/或输入操作。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测所述应用样本是否在进行防监测测试;
执行模块,用于在所述检测模块检测到所述应用样本在进行防监测测试时,执行反对抗操作,所述反对抗操作用于对防监测测试需要的信息进行隐藏或模拟,以阻止所述应用样本测试出被监测。
9.根据权利要求8所述的装置,其特征在于,所述执行模块,包括:
第一执行单元,用于在所述应用样本需要获取系统的特征文件时,隐藏所述模拟器的特征文件,或将模拟的特征文件发送至所述应用样本;
第二执行单元,用于在所述应用样本需要获取系统的网络状态时,在所述模拟器上模拟网络状态,将模拟后的网络状态发送给所述应用样本;
第三执行单元,用于在所述应用样本需要获取系统的设备特征信息时,在所述模拟器上模拟设备特征信息,将模拟后的设备特征信息发送给所述应用样本。
10.根据权利要求6至9中任一所述的装置,其特征在于,所述装置还包括:
脱壳模块,用于在所述运行模块运行所述应用样本的过程中,对所述应用样本进行脱壳处理,对脱壳处理得到的保护代码进行静态分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610597422.0A CN106709343B (zh) | 2016-07-26 | 2016-07-26 | 病毒监测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610597422.0A CN106709343B (zh) | 2016-07-26 | 2016-07-26 | 病毒监测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106709343A CN106709343A (zh) | 2017-05-24 |
CN106709343B true CN106709343B (zh) | 2019-05-07 |
Family
ID=58939710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610597422.0A Active CN106709343B (zh) | 2016-07-26 | 2016-07-26 | 病毒监测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106709343B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970224B (zh) * | 2019-05-20 | 2023-08-22 | 奇安信科技集团股份有限公司 | 终端设备的环境状态感知方法、装置和计算机设备 |
CN112580025A (zh) * | 2019-09-30 | 2021-03-30 | 奇安信安全技术(珠海)有限公司 | 基于虚拟机的报毒方法及装置、存储介质、计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685251A (zh) * | 2013-12-04 | 2014-03-26 | 电子科技大学 | 一种面向移动互联网的Android恶意软件检测平台 |
CN104134041A (zh) * | 2014-07-31 | 2014-11-05 | 北京奇虎科技有限公司 | 终端模拟器系统的反检测方法和反检测装置 |
CN104331662A (zh) * | 2013-07-22 | 2015-02-04 | 深圳市腾讯计算机系统有限公司 | Android恶意应用检测方法及装置 |
-
2016
- 2016-07-26 CN CN201610597422.0A patent/CN106709343B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331662A (zh) * | 2013-07-22 | 2015-02-04 | 深圳市腾讯计算机系统有限公司 | Android恶意应用检测方法及装置 |
CN103685251A (zh) * | 2013-12-04 | 2014-03-26 | 电子科技大学 | 一种面向移动互联网的Android恶意软件检测平台 |
CN104134041A (zh) * | 2014-07-31 | 2014-11-05 | 北京奇虎科技有限公司 | 终端模拟器系统的反检测方法和反检测装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106709343A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581894B2 (en) | Assessing effectiveness of cybersecurity technologies | |
US10534906B1 (en) | Detection efficacy of virtual machine-based analysis with application specific events | |
US9923900B2 (en) | Online privacy management system with enhanced automatic information detection | |
US9195829B1 (en) | User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications | |
CN102088379B (zh) | 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置 | |
US9219787B1 (en) | Stateless cookie operations server | |
WO2019048858A1 (en) | DETECTION OF EVENTS IN REAL TIME | |
CN109145603A (zh) | 一种基于信息流的Android隐私泄露行为检测方法和技术 | |
WO2017213400A1 (en) | Malware detection by exploiting malware re-composition variations | |
US8914890B2 (en) | Determining the vulnerability of computer software applications to privilege-escalation attacks | |
EP3497609A1 (en) | Detecting scripted or otherwise anomalous interactions with social media platform | |
US20170337372A1 (en) | Maliciousness Categorization of Application Packages Based on Dynamic Analysis | |
CN104361285B (zh) | 移动设备应用程序的安全检测方法及装置 | |
US11811824B2 (en) | Security system for detecting malicious actor's observation | |
US20220046030A1 (en) | Simulating user interactions for malware analysis | |
CN110381026B (zh) | 一种富客户端的业务服务封装和访问系统、方法和装置 | |
CN106709343B (zh) | 病毒监测方法及装置 | |
AU2014233889A1 (en) | Online privacy management | |
Akhuseyinoglu et al. | AntiWare: An automated Android malware detection tool based on machine learning approach and official market metadata | |
US20200067985A1 (en) | Systems and methods of interactive and intelligent cyber-security | |
Sharma et al. | Survey for detection and analysis of android malware (s) through artificial intelligence techniques | |
US20230075004A1 (en) | Machine learning based on functional testing | |
Zhong et al. | Design for a cloud-based hybrid Android application security assessment framework | |
CN115859278B (zh) | 软件操作行为审计方法、系统、设备及存储介质 | |
US11874924B2 (en) | Malicious JS detection based on automated user interaction emulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230627 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |