CN106909838A - 一种拦截系统调用的方法及装置 - Google Patents

一种拦截系统调用的方法及装置 Download PDF

Info

Publication number
CN106909838A
CN106909838A CN201510969633.8A CN201510969633A CN106909838A CN 106909838 A CN106909838 A CN 106909838A CN 201510969633 A CN201510969633 A CN 201510969633A CN 106909838 A CN106909838 A CN 106909838A
Authority
CN
China
Prior art keywords
target program
program
call
asked
judged result
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.)
Pending
Application number
CN201510969633.8A
Other languages
English (en)
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 Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510969633.8A priority Critical patent/CN106909838A/zh
Publication of CN106909838A publication Critical patent/CN106909838A/zh
Pending legal-status Critical Current

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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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

一种拦截系统调用的方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种拦截系统调用的方法及装置。
背景技术
随着互联网技术的不断发展,计算机在用户的日常生活中也变得越来越重要。但是也有越来越多的恶意程序(如,计算机病毒、后门程序、木马、间谍软件以及广告软件等)在攻击着用户使用的计算机,威胁着用户的个人信息(如,账号信息、身份信息等)安全,极大的影响了用户对互联网的使用。
为了保护用户的计算机不受恶意程序的侵害,越来越多的用户选择在个人电脑(Personal Computer,PC)上安装第三方的安全防御软件,以达到防御恶意程序攻击的目的。
其中,安全防御软件可以提供主动防御技术,该技术是基于程序行为自主分析判断的实时防护技术。安全防御软件在进行主动防御时,首先需要对恶意程序进行行为拦截,然后进行相应处理。因而安全防御软件在进行主动防御时,最重要的一步是对程序行为的拦截。
然而,目前现有的一些计算机操作系统(如,微软的64位Windows操作系统等),禁止第三方安全防御软件对程序行为的拦截,导致第三方安全防御软件无法为用户提供主动防御。
发明内容
本申请实施例提供一种拦截系统调用的方法,用以解决由于计算机操作系统禁止拦截系统调用,而导致第三方安全软件无法为用户提供主动防御的问题。
本申请实施例还提供一种拦截系统调用的装置,用以解决由于计算机操作系统禁止拦截系统调用,而导致第三方安全软件无法为用户提供主动防御的问题。
本申请实施例采用下述技术方案:
一种拦截系统调用的方法,包括:
监控程序对系统调用接口的系统调用请求,并判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序;
当判断结果为否时,屏蔽所述目标程序所请求的系统调用;
当判断结果为是时,向系统调用接口返回模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,并根据所述虚拟值,将所述目标程序所请求的系统调用发送至防护程序驱动;
所述虚拟值,是根据虚拟寄存器中保存的防护程序驱动入口地址,对所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值进行修改而得到的;所述虚拟寄存器是对计算机操作系统进行硬件虚拟化生成得到;
所述虚拟寄存器,还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值。
一种拦截系统调用的装置,包括:
系统调用监控单元,用于监控程序对系统调用接口的系统调用请求,并判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序;
系统调用屏蔽单元,用于当判断结果为否时,屏蔽所述目标程序所请求的系统调用;
系统调用拦截单元,用于当判断结果为是时,向系统调用接口返回模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,并根据所述虚拟值,将所述目标程序所请求的系统调用发送至防护程序驱动;所述虚拟值,是根据所述虚拟寄存器中保存的防护程序驱动入口地址,对所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值进行修改而得到的;所述虚拟寄存器是对计算机操作系统进行硬件虚拟化生成得到;所述虚拟寄存器,还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
由于对于不安全的目标程序,可以直接屏蔽所述目标程序所请求的系统调用,从而避免所述不安全的目标程序通过的系统调用的方式,对计算机进行的攻击;而对于安全的目标程序,可以根据模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,将所述程序所请求的系统调用发送至用于拦截系统调用的防护程序驱动,且虚拟寄存器中还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值,以使得计算机操作系统保护程序成功进行校验,而不会造成计算机蓝屏,从而可以达到利用防护程序驱动成功拦截程序的系统调用的目的。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种拦截系统调用的方法的具体流程示意图;
图2为本申请实施例提供的一种拦截系统调用的装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
本申请实施例1提供了一种拦截系统调用的方法,用以解决由于计算机操作系统禁止拦截系统调用,而导致第三方安全软件无法为用户提供主动防御的问题。
本申请实施例提供的拦截系统调用方法的执行主体,可以但不限于为平板电脑以及个人电脑(Personal Computer,PC)等终端设备中的至少一种。此外,该方法的执行主体,也可以是终端设备上安装的应用程序。
为便于描述,下文以该方法的执行主体为防护程序为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为防护程序只是一种示例性的说明,并不应理解为对该方法的限定。
该方法的具体实现流程示意图如图1所示,主要包括下述步骤:
步骤11,防护程序监控其他程序对系统调用接口的系统调用请求;
所述防护程序,可以为计算机提供病毒查杀、插件清理、漏洞修复、操作行为监控、操作行为拦截、隐私数据保护、垃圾数据清理以及访问痕迹清理,等多种功能。
所述系统调用接口,为应用程序与操作系统之间的接口。通过所述系统调用接口,将应用程序所请求调用的功能可以发送至操作系统,达到应用程序调用操作系统功能的目的。
所述系统调用请求,为应用程序为了调用系统调用接口,而向所述系统调用接口发送的请求。
需要说明的是,目前运行在计算机中的程序有两类,一类是应用程序,另一类是系统程序。其中,应用程序运行在特权级最低的用户模式,而系统程序运行在特权级最高的内核模式。由于用户模式是特权级最低的运行模式,因而运行在用户模式下的应用程序没有权限管理各个进程,且无法进行某些操作(如,访问硬件设备或者无限制的访问系统存储,等等)。因此,运行在用户模式下的应用程序往往需要通过系统调用的方式来调用操作系统的不同功能。
步骤11中所述的其他程序,一般是指运行在用户模式的、除防护程序以外的程序,如,安装在计算机上的视频播放程序、音乐播放程序以及聊天程序,等等。
一般地,用户使用的计算机上可能存在有恶意程序(如,计算机病毒、后门程序、木马、间谍软件以及广告软件等),这些恶意程序往往也可以通过系统调用的方式,对用户使用的计算机进行攻击。因此,对恶意程序的识别,是防护程序保护计算机不受攻击的重要环节,本申请实施例中,防护程序除了监控所述的其他程序对系统调用接口的系统调用请求,还需要判断监控到的对系统调用接口发送系统调用请求的程序(后文称为目标程序)是否为安全程序。
所述安全程序,是相对与恶意程序而言的,是指可以在计算机上安全运行,且不会对计算机进行攻击的程序。
在一种实施方式中,本申请实施例可以通过以下两种方式,判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序:
方式1:根据所述目标程序的特征码,判断所述目标程序是否为安全程序。
比如,防护程序可以保存由已确定的恶意程序的特征码构成的恶意程序特征码集,则防护程序可以将监控到的所述目标程序的特征码与恶意程序特征码集中的特征码进行比对,当所述恶意程序特征码集中存在有所述目标程序特征码相同的特征码时,可以确定所述目标程序为恶意程序,即非安全程序。
方式2:判断所述目标程序是否属于预先设置的安全程序集,根据判断结果确定所述目标程序是否为安全程序。
比如,防护程序可以保存由已确定的安全程序的程序名称(或者其他可以表示该程序的标识)构成的安全程序集。其中,所述已确定的安全程序,可以是防护程序根据计算机程序的运行日志确定的、已在计算机上安全运行的应用程序,也可以为由用户根据需要自行设置的应用程序。
则防护程序可以将监控到的所述目标程序的名称与安全程序集中的名称进行比对,当所述安全程序集中存在有所述目标程序名称相同的名称时,可以确定所述目标程序为安全程序。
步骤12,当判断结果为否时,屏蔽所述目标程序所请求的系统调用;
为了防止恶意程序通过系统调用的方式,对用户使用的计算机进行攻击,在一种实施方式中,当通过执行步骤11,判断出所述目标程序不是安全程序时,防护程序将屏蔽所述目标程序对系统调用接口的系统调用请求,以达到屏蔽所述目标程序所请求的系统调用的目的。
为了避免恶意程序通过其他方式对计算机进行攻击,在一种实施方式中,当判断出所述目标程序为恶意程序后,防护程序可以对所述目标程序进行特定处理,具体的可以包括:确定所述目标程序的类型;在预先设置的处理方式集中,根据所述目标程序的类型,确定所述类型所对应的处理方式;其中,所述处理方式集中存储有至少一种类型的程序所对应的处理方式;根据确定的处理方式,对所述目标程序进行处理。
需要说明的是,所述防护程序保存有预先设置的处理方式集,其中所述处理方式集中存储有不同类型的恶意程序与不同处理方式之间的映射关系,以及不同的处理方式,以使得防护程序可以根据所述映射关系以及确定的恶意程序的类型,在所述处理方式集中查找该类型的恶意程序对应的处理方式。
还需要说明的是,对任意一种类型的恶意程序,可以有一种处理方式,也可以有多种处理方式;而对不同类型的恶意程序,其处理方式也可能是相同的。即,不同类型的恶意程序与其处理方式的对应关系可能是一对一的,也可能是一对多的,还可能是多对一。
在预先设置的处理方式集中查找到恶意程序所对应的处理方式后,防护程序可以根据确定的处理方式,对所述目标程序进行处理。例如,可以根据确定的处理方式,对所述目标程序中的恶意行为代码进行修改,以使得所述目标程序无法执行所述恶意行为;或者防护程序可以根据确定的处理方式,发出所述目标程序为恶意程序的警报信息,以使得用户根据所述警报信息,对所述目标程序进行卸载,等等。
步骤13,当判断结果为是时,向系统调用接口返回模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,并根据所述虚拟值,将所述目标程序所请求的系统调用发送至防护程序驱动;
其中,所述虚拟值,是根据所述虚拟寄存器中保存的防护程序驱动入口地址,对所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值进行修改而得到的。
所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值,包括所述目标程序所请求的系统调用在操作系统内核中对应的调用指令、所述目标程序所需调用的计算机硬件(或程序)的驱动地址以及所述目标程序进入内核模式时采用的调用方式。需要说明的是,本申请实施例中,防护程序对所述真实值的修改,一般是指对目标程序所需调用的计算机硬件(或程序)的驱动地址的修改。
所述虚拟寄存器,是对计算机操作系统进行硬件虚拟化生成得到;具体的,可以是利用中央处理器(Central Processing Unit,CPU)的硬件虚拟化技术生成的。
其中,硬件虚拟化是指借助计算机硬件(主要是主机处理器)的支持来实现的全虚拟化。硬件虚拟化技术的具体原理为:允许物理机器(如,个人电脑、平板电脑等)被分区或共享,以使该机器的底层硬件呈现为一个或多个独立工作的虚拟机。
一般地,当应用程序需要通过系统调用的方式对操作系统的相关功能进行调用时,该应用程序首先需要对模式专用寄存器中保存的、所述应用程序所请求的系统调用对应的真实值进行读取,并将读取到的真实值返回系统调用接口,以使得所述应用程序根据所述真实值中包含的进入内核模式的调用方式,进入内核模式,并通过系统调用接口,向所述真实值中包含的计算机硬件的驱动地址发送调用指令,进而达到将应用程序所请求的系统调用发送至与所述真实值对应的计算机硬件(或程序)驱动进行执行的目的。
为了达到拦截所述目标程序所请求的系统调用的目的,在一种实施方式中,防护程序可以通过对模式专用寄存器中保存的真实值的修改,进而将所述目标程序所请求的系统调用发送至、与修改后的真实值对应的计算机硬件(或程序)驱动,从而达到拦截所述目标程序所请求的系统调用的目的。
具体的,防护程序可以根据所述虚拟寄存器中保存的所述防护程序驱动入口地址,对所述模式专用寄存器中保存的真实值进行修改,具体修改方式为:将真实值中的目标程序所需调用的计算机硬件(或程序)的驱动地址替换为防护程序驱动入口地址的虚拟值。在这种情况下,当应用程序需要通过系统调用的方式对操作系统的相关功能进行调用时,该应用程序将从所述模式专用寄存器中读取到虚拟值,并将读取到的虚拟值返回系统调用接口,以使得所述应用程序根据所述虚拟值中包含的进入内核模式的调用方式,进入内核模式,并通过系统调用接口,根据所述虚拟值中包含的防护程序驱动入口地址,将所述目标程序所请求的系统调用发送至防护程序驱动,进而达到将目标程序所请求的系统调用拦截至防护程序驱动的目的。
通过上述方法,所有被防护程序确定为安全程序的目标程序,在对系统调用接口发送系统调用请求时,所请求的系统调用,都会被转移至防护程序驱动,达到防护程序对其他程序系统调用的目的,从而可以通过防御程序为计算机提供主动防御功能。
然而,一些计算机操作系统开发商为了避免第三方应用程序对操作系统内核代码与关键数据的修改,在其开发的操作系统中引入了计算机操作系统保护程序。
例如,以64位Windows操作系统自带的内核保护程序PatchGuard程序为例,计算机操作系统中的PatchGuard程序会请求读取模式专用寄存器中保存的数据,当PatchGuard程序接收到模式专用寄存器返回的、由防护程序修改得到的虚拟值时,会造成计算机蓝屏。
为了避免由于防护程序对模式专用寄存器中保存的数据的修改,而造成计算机蓝屏的问题,在一种实施方式中,所述虚拟寄存器还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值,则本申请实施例提供的方法还可以包括:响应于计算机操作系统保护程序发送的校验请求,返回所述虚拟寄存器中保存的所述真实值,并拦截所述模式专用寄存器返回的所述虚拟值。
本申请实施例中,响应于PatchGuad程序的校验请求,防护程序拦截所述模式专用寄存器返回的虚拟值,同时读取虚拟寄存器中保存的真实值,并向PatchGuad程序返回读取到的真实值,以使得PatchGuard程序的校验可以正常通过,从而避免了计算机蓝屏的问题。
需要说明的是,仅通过应用程序的特征码或者预先设置的安全程序集,防护程序有可能将恶意程序误判为安全程序,例如,黑客可以对恶意程序的特征码进行修改,以使得防护程序无法根据特征码将该程序确定为恶意程序;或者,预先设置的安全程序集中的某个应用程序中了病毒,此时当防护程序监控到该应用程序对系统调用接口发送系统调用请求,根据预先设置的安全程序集,防护程序会将该应用程序确定为安全程序,等等。
在防护程序确定目标程序为安全程序后,为了避免由于上述情况,而使计算机遭受到该目标程序通过系统调用方式发动的攻击,在一种实施方式中,当防护程序判断目标程序为安全程序,并将所述目标程序所请求的系统调用发送至防护程序驱动后,本申请实施例提供的方法还包括:对所述目标程序所请求的系统调用是否安全进行判断,得到判断结果;当所述判断结果为不安全时,屏蔽所述目标程序所请求的系统调用;当所述判断结果为安全时,执行所述目标程序所请求的系统调用。
一般地,计算机操作系统中往往保存有应用程序的“规范行为库”,所述“规范行为库”中保存有各应用程序的规范行为,应用程序的规范行为包括应用程序正常运行时可能出现的所有系统调用,这些规范的系统调用可以通过分析,如人工分析、软件二进制逆向分析、软件行为记录并基于神经网络等算法的训练和学习等方式确定。
则当所述目标程序所请求的系统调用(后文称实时系统调用)发送至防护程序驱动时,防护程序驱动首先会从应用程序规范行为库中查找到所述目标程序,再找到所述目标程序对应的规范系统调用集合,比较所述实时系统调用是否属于规范系统调用集合,若不属于,则说明所述实时系统调用可能会有潜在的危险,从而确定所述目标程序可能出现异常,进而可以屏蔽所述目标程序所请求的系统调用。
若所述实时系统调用属于规范系统调用集合,则说明所述实时系统调用为规范的系统调用,此时,可以通过防护程序驱动执行所述目标程序所请求的系统调用。通过防护程序驱动执行所述系统调用,具体可以包括:利用CPU的硬件虚拟化技术生成虚拟代码集寄存器,并将用于执行系统调用的代码集写入所述虚拟代码集寄存器,以使得防护程序驱动可以通过对虚拟代码集寄存器的读取,获取所述代码集,并通过所述代码集执行所述目标程序所请求的系统调用。
采用本申请实施例1提供的方法,由于对于不安全的目标程序,可以直接屏蔽所述目标程序所请求的系统调用,从而避免所述不安全的目标程序通过的系统调用的方式,对计算机进行的攻击;而对于安全的目标程序,可以根据模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,将所述程序所请求的系统调用发送至用于拦截系统调用的防护程序驱动,且虚拟寄存器中还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值,以使得计算机操作系统保护程序成功进行校验,而不会造成计算机蓝屏,从而可以达到利用防护程序驱动成功拦截程序的系统调用的目的。
实施例2
本申请实施例1提供了一种拦截系统调用的装置,用以解决由于计算机操作系统禁止拦截系统调用,而导致第三方安全软件无法为用户提供主动防御的问题。该装置的具体结构示意图如图2所示,包括:系统调用监控单元21、系统调用屏蔽单元22以及系统调用拦截单元23。
其中,系统调用监控单元21,用于监控程序对系统调用接口的系统调用请求,并判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序;
系统调用屏蔽单元22,用于当判断结果为否时,屏蔽所述目标程序所请求的系统调用;
系统调用拦截单元23,用于当判断结果为是时,向系统调用接口返回模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,并根据所述虚拟值,将所述目标程序所请求的系统调用发送至防护程序驱动;所述虚拟值,是根据虚拟寄存器中保存的防护程序驱动入口地址,对所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值进行修改而得到的;所述虚拟寄存器是对计算机操作系统进行硬件虚拟化生成得到;所述虚拟寄存器,还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值。
在一种实施方式中,系统调用监控单元21,用于根据所述目标程序的特征码,判断所述目标程序是否为安全程序;或判断所述目标程序是否属于预先设置的安全程序集,根据判断结果确定所述目标程序是否为安全程序。
在一种实施方式中,还包括校验单元,用于响应于计算机操作系统保护程序发送的校验请求,返回所述虚拟寄存器中保存的所述真实值,并拦截所述模式专用寄存器返回的所述虚拟值。
在一种实施方式中,还包括不安全程序处理单元,用于当系统调用监控单元对目标程序的当判断结果为否时,确定所述目标程序的类型;在预先设置的处理方式集中,根据所述目标程序的类型,确定所述类型所对应的处理方式;其中,所述处理方式集中存储有至少一种类型的程序所对应的处理方式;根据确定的处理方式,对所述目标程序进行处理。
在一种实施方式中,还包括系统调用安全判定单元,用于当系统调用拦截单元将所述目标程序所请求的系统调用发送至防护程序驱动后,对所述目标程序所请求的系统调用是否安全进行判断,得到判断结果;当所述判断结果为不安全时,屏蔽所述目标程序所请求的系统调用;当所述判断结果为安全时,执行所述目标程序所请求的系统调用。
采用本申请实施例2提供的方法,由于对于不安全的目标程序,可以直接屏蔽所述目标程序所请求的系统调用,从而避免所述不安全的目标程序通过的系统调用的方式,对计算机进行的攻击;而对于安全的目标程序,可以根据模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,将所述程序所请求的系统调用发送至用于拦截系统调用的防护程序驱动,且虚拟寄存器中还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值,以使得计算机操作系统保护程序成功进行校验,而不会造成计算机蓝屏,从而可以达到利用防护程序驱动成功拦截程序的系统调用的目的。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种拦截系统调用的方法,其特征在于,包括:
监控程序对系统调用接口的系统调用请求,并判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序;
当判断结果为否时,屏蔽所述目标程序所请求的系统调用;
当判断结果为是时,向系统调用接口返回模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,并根据所述虚拟值,将所述目标程序所请求的系统调用发送至防护程序驱动;
所述虚拟值,是根据虚拟寄存器中保存的防护程序驱动入口地址,对所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值进行修改而得到的;所述虚拟寄存器是对计算机操作系统进行硬件虚拟化生成得到;
所述虚拟寄存器,还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值。
2.如权利要求1所述的方法,其特征在于,判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序,包括:
根据所述目标程序的特征码,判断所述目标程序是否为安全程序;或
判断所述目标程序是否属于预先设置的安全程序集,根据判断结果确定所述目标程序是否为安全程序。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于计算机操作系统保护程序发送的校验请求,返回所述虚拟寄存器中保存的所述真实值,并拦截所述模式专用寄存器返回的所述虚拟值。
4.如权利要求1所述的方法,其特征在于,当判断结果为否时,所述方法还包括:
确定所述目标程序的类型;
在预先设置的处理方式集中,根据所述目标程序的类型,确定所述类型所对应的处理方式;其中,所述处理方式集中存储有至少一种类型的程序所对应的处理方式;
根据确定的处理方式,对所述目标程序进行处理。
5.如权利要求1所述的方法,其特征在于,将所述目标程序所请求的系统调用发送至防护程序驱动后,所述方法还包括:
对所述目标程序所请求的系统调用是否安全进行判断,得到判断结果;
当所述判断结果为不安全时,屏蔽所述目标程序所请求的系统调用;
当所述判断结果为安全时,执行所述目标程序所请求的系统调用。
6.一种拦截系统调用的装置,其特征在于,包括:
系统调用监控单元,用于监控程序对系统调用接口的系统调用请求,并判断监控到的对系统调用接口发送系统调用请求的目标程序是否为安全程序;
系统调用屏蔽单元,用于当判断结果为否时,屏蔽所述目标程序所请求的系统调用;
系统调用拦截单元,用于当判断结果为是时,向系统调用接口返回模式专用寄存器中保存的用于指示防护程序驱动所在位置的虚拟值,并根据所述虚拟值,将所述目标程序所请求的系统调用发送至防护程序驱动;所述虚拟值,是根据虚拟寄存器中保存的防护程序驱动入口地址,对所述模式专用寄存器中保存的、与所述目标程序所请求的系统调用对应的真实值进行修改而得到的;所述虚拟寄存器是对计算机操作系统进行硬件虚拟化生成得到;所述虚拟寄存器,还保存有用于提供给计算机操作系统保护程序进行校验的所述真实值。
7.如权利要求6所述的装置,其特征在于,系统调用监控单元,用于:
根据所述目标程序的特征码,判断所述目标程序是否为安全程序;或
判断所述目标程序是否属于预先设置的安全程序集,根据判断结果确定所述目标程序是否为安全程序。
8.如权利要求6所述的装置,其特征在于,还包括校验单元,用于:
响应于计算机操作系统保护程序发送的校验请求,返回所述虚拟寄存器中保存的所述真实值,并拦截所述模式专用寄存器返回的所述虚拟值。
9.如权权利要求6所述的装置,其特征在于,还包括不安全程序处理单元,用于:
当系统调用监控单元对目标程序的当判断结果为否时,确定所述目标程序的类型;
在预先设置的处理方式集中,根据所述目标程序的类型,确定所述类型所对应的处理方式;其中,所述处理方式集中存储有至少一种类型的程序所对应的处理方式;
根据确定的处理方式,对所述目标程序进行处理。
10.如权利要求6所述的装置,其特征在于,还包括系统调用安全判定单元,用于:
当系统调用拦截单元将所述目标程序所请求的系统调用发送至防护程序驱动后,对所述目标程序所请求的系统调用是否安全进行判断,得到判断结果;
当所述判断结果为不安全时,屏蔽所述目标程序所请求的系统调用;
当所述判断结果为安全时,执行所述目标程序所请求的系统调用。
CN201510969633.8A 2015-12-22 2015-12-22 一种拦截系统调用的方法及装置 Pending CN106909838A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510969633.8A CN106909838A (zh) 2015-12-22 2015-12-22 一种拦截系统调用的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510969633.8A CN106909838A (zh) 2015-12-22 2015-12-22 一种拦截系统调用的方法及装置

Publications (1)

Publication Number Publication Date
CN106909838A true CN106909838A (zh) 2017-06-30

Family

ID=59199927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510969633.8A Pending CN106909838A (zh) 2015-12-22 2015-12-22 一种拦截系统调用的方法及装置

Country Status (1)

Country Link
CN (1) CN106909838A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633160A (zh) * 2019-08-22 2019-12-31 浙江大搜车软件技术有限公司 接口调用方法、装置、计算机设备和存储介质
CN112580088A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 数据加载方法、装置、计算机设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493873A (zh) * 2009-03-04 2009-07-29 浪潮电子信息产业股份有限公司 基于内核层技术实现对win平台文件读写操作访问控制方法
CN101901313A (zh) * 2010-06-10 2010-12-01 中科方德软件有限公司 一种Linux文件保护系统及方法
CN102214287A (zh) * 2011-06-09 2011-10-12 北京思创银联科技股份有限公司 Windows系统注册表保护方法
US8099596B1 (en) * 2011-06-30 2012-01-17 Kaspersky Lab Zao System and method for malware protection using virtualization
CN102693394A (zh) * 2012-06-07 2012-09-26 奇智软件(北京)有限公司 一种用于拦截应用程序对服务的调用的方法和装置
CN102693395A (zh) * 2012-06-07 2012-09-26 奇智软件(北京)有限公司 一种用于拦截应用程序对服务的调用的方法和装置
CN103632101A (zh) * 2013-12-09 2014-03-12 北京奇虎科技有限公司 一种拦截系统调用的方法和装置
WO2014077702A1 (en) * 2012-11-13 2014-05-22 Auckland Uniservices Limited Security system and method for operating systems

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493873A (zh) * 2009-03-04 2009-07-29 浪潮电子信息产业股份有限公司 基于内核层技术实现对win平台文件读写操作访问控制方法
CN101901313A (zh) * 2010-06-10 2010-12-01 中科方德软件有限公司 一种Linux文件保护系统及方法
CN102214287A (zh) * 2011-06-09 2011-10-12 北京思创银联科技股份有限公司 Windows系统注册表保护方法
US8099596B1 (en) * 2011-06-30 2012-01-17 Kaspersky Lab Zao System and method for malware protection using virtualization
CN102799817A (zh) * 2011-06-30 2012-11-28 卡巴斯基实验室封闭式股份公司 用于使用虚拟化技术进行恶意软件保护的系统和方法
CN102693394A (zh) * 2012-06-07 2012-09-26 奇智软件(北京)有限公司 一种用于拦截应用程序对服务的调用的方法和装置
CN102693395A (zh) * 2012-06-07 2012-09-26 奇智软件(北京)有限公司 一种用于拦截应用程序对服务的调用的方法和装置
WO2014077702A1 (en) * 2012-11-13 2014-05-22 Auckland Uniservices Limited Security system and method for operating systems
CN103632101A (zh) * 2013-12-09 2014-03-12 北京奇虎科技有限公司 一种拦截系统调用的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633160A (zh) * 2019-08-22 2019-12-31 浙江大搜车软件技术有限公司 接口调用方法、装置、计算机设备和存储介质
CN112580088A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 数据加载方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US11042647B1 (en) Software assurance system for runtime environments
CN105593870B (zh) 用于恶意软件检测的复杂评分
KR102297133B1 (ko) 비동기적 인트로스펙션 예외를 이용한 컴퓨터 보안 시스템들 및 방법들
US9210194B2 (en) Method and system for protecting data flow at a mobile device
CN103500308B (zh) 用于对抗由恶意软件对仿真的检测的系统和方法
US9977895B2 (en) Malicious software identification integrating behavioral analytics and hardware events
US10078752B2 (en) Continuous malicious software identification through responsive machine learning
US11438349B2 (en) Systems and methods for protecting devices from malware
CN108683652A (zh) 一种基于行为权限的处理网络攻击行为的方法及装置
Ho et al. PREC: practical root exploit containment for android devices
CN106055385B (zh) 监控虚拟机进程的系统和方法、过滤page fault异常的方法
US20200374298A1 (en) Systems and methods for malware detection and mitigation
CN107851155A (zh) 用于跨越多个软件实体跟踪恶意行为的系统及方法
CN104750534B (zh) 触发虚拟机自省的方法、装置及系统
CN102799817A (zh) 用于使用虚拟化技术进行恶意软件保护的系统和方法
CN108475217A (zh) 用于审计虚拟机的系统及方法
CN103632101B (zh) 一种拦截系统调用的方法和装置
US20210234877A1 (en) Proactively protecting service endpoints based on deep learning of user location and access patterns
CN110383256A (zh) 一种内核完整性保护方法及装置
CN107729752A (zh) 一种勒索软件防御方法及系统
CN103561045A (zh) 用于Android系统的安全监测系统和方法
CN107944292A (zh) 一种隐私数据保护方法及系统
CN106156621A (zh) 一种检测虚拟机逃逸的方法及装置
CN106909838A (zh) 一种拦截系统调用的方法及装置
CN108388793A (zh) 一种基于主动防御的虚拟机逃逸防护方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170630