CN103020526A - 恶意程序主动拦截方法和装置及客户端设备 - Google Patents

恶意程序主动拦截方法和装置及客户端设备 Download PDF

Info

Publication number
CN103020526A
CN103020526A CN201210563985XA CN201210563985A CN103020526A CN 103020526 A CN103020526 A CN 103020526A CN 201210563985X A CN201210563985X A CN 201210563985XA CN 201210563985 A CN201210563985 A CN 201210563985A CN 103020526 A CN103020526 A CN 103020526A
Authority
CN
China
Prior art keywords
program
key
interception
input data
information
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.)
Granted
Application number
CN201210563985XA
Other languages
English (en)
Other versions
CN103020526B (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 Qihoo Technology 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 CN201210563985.XA priority Critical patent/CN103020526B/zh
Publication of CN103020526A publication Critical patent/CN103020526A/zh
Application granted granted Critical
Publication of CN103020526B publication Critical patent/CN103020526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种恶意程序主动拦截方法和装置及客户端设备。该恶意程序主动拦截装置包括:拦截对象选取单元,适于根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象;拦截信息设置单元,适于在应用层和/或驱动层中设置针对拦截对象的拦截执行信息;拦截点监测单元,适于当监测到按键输入数据时,获取访问按键输入数据的程序的信息;拦截执行单元,适于根据程序的信息判断该程序是否为安全程序,若是,允许该程序调用按键输入数据,若否,对该程序进行拦截;其中,拦截点监测单元适于在获取访问按键输入数据的程序的信息之前,判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问其的程序的信息,若否,结束操作。

Description

恶意程序主动拦截方法和装置及客户端设备
技术领域
本发明涉及计算机应用技术领域,特别涉及一种恶意程序主动拦截方法和装置及客户端设备。
背景技术
恶意程序通常指任何故意创建用来执行未经授权并通常是有害行为的软件程序。计算机病毒、后门程序、键盘记录器、密码盗取者、Word和Excel宏病毒、引导区病毒、脚本病毒(如batch,windows shell,java等)、木马、犯罪软件、间谍软件和广告软件等等,都是一些可以称之为恶意程序的例子。
传统的恶意程序防杀主要依赖于特征库模式。特征库是由厂商收集到的恶意程序样本的特征码组成,而特征码则是分析工程师从恶意程序中找到和正当软件的不同之处,截取一段类似于“搜索关键词”的程序代码。在查杀过程中,引擎会读取文件并与特征库中的所有特征码“关键词”进行匹配,如果发现文件程序代码被命中,就可以判定该文件程序为恶意程序。特征库匹配是查杀已知恶意程序很有效的一项技术。但是现今全球恶意程序数量呈几何级增长,基于这种爆发式的增速,特征库的生成与更新往往是滞后的,很多时候杀毒软件无法防杀层出不穷的未知恶意程序。
主动防御随之应运而生,其是基于程序行为自主分析判断的实时防护技术,不以特征码作为判断恶意程序的依据,而是从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,从而一定程度上达到保护用户电脑的目的。
现有的主动防御方案在针对一些关键拦截比如Windows全局钩子、原始输入(RawInput)设备扫描技术时,大多采用在注册时拦截并报警的方式,这种方式至少具有如下缺陷:
1.由于Windows全局钩子等一经注册则针对系统中的绝大多数进程程序有效,现有方案无法对窃取按键行为的不同程序分别实现防护,易于造成误杀现象;
2.现有方案由于采用了注册时拦截的方式,由于在注册阶段程序的运行通常展开的不够充分,比如游戏在通过接口DirectX注册RawInput设备时尚未进入游戏全屏状态,这往往给程序类型判断造成困难,查杀的准确率较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种恶意程序主动拦截方法和装置及客户端设备。
依据本发明的一个方面,本发明实施例提供了一种恶意程序主动拦截方法,包括:
根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象;
在应用层和/或驱动层中设置针对拦截对象的拦截执行信息;
当监测到按键输入数据时,获取访问按键输入数据的程序的信息;
根据程序的信息判断该程序是否为安全程序,若是,允许该程序调用按键输入数据,若否,利用拦截执行信息对该程序进行拦截;
其中,在获取访问按键输入数据的程序的信息之前,该方法还包括:判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问按键输入数据的程序的信息,若否,结束操作。
其中,上述判断监测到的按键输入数据是否为需要保护的数据包括:判断监测到的按键输入数据是否为通过预定按键输入的数据,若是,确认该按键输入数据为需要保护的数据,若否,确认该按键输入数据为不需要保护的数据。
其中,选取的拦截对象包括:同步获取按键状态GetKeyState事件、异步获取按键状态GetAsyncKeyState事件、获取键盘状态GetKeyboardState事件、获取设备输入数据GetRawInputData事件、批量获取设备输入数据GetRawInputBuffer事件、和/或挂钩KeUserModeCallback事件。
其中,在应用层中设置针对拦截对象的拦截执行信息包括:通过内联钩子方式在应用层中设置针对拦截对象的拦截执行信息;和/或,通过修改各程序的导入表中的内容在应用层中设置针对拦截对象的拦截执行信息。
其中,在驱动层中设置针对拦截对象的拦截执行信息包括:通过修改拦截对象所对应的函数在系统服务描述符表中的地址信息,将拦截执行信息设置在驱动层中。
其中,程序的信息包括程序所在的进程名称、程序的路径和程序中文件的哈希值,上述根据程序的信息判断该程序是否为安全程序包括:
判断程序的信息是否存在于获知的安全程序列表中,若是,确认该程序为安全程序,若否,确认该程序不是安全程序;和/或,根据程序的信息判断该程序的进程链的等级是否为安全等级,若是,确认该程序为安全程序,若否,确认该程序不是安全程序。
根据本发明的另一方面,本发明实施例提供了一种恶意程序主动拦截装置,包括:
拦截对象选取单元,适于根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象;
拦截信息设置单元,适于在应用层和/或驱动层中设置针对拦截对象的拦截执行信息;
拦截点监测单元,适于当监测到按键输入数据时,获取访问按键输入数据的程序的信息;
拦截执行单元,适于根据程序的信息判断该程序是否为安全程序,若是,允许该程序调用按键输入数据,若否,利用拦截执行信息对该程序进行拦截;
其中,拦截点监测单元,适于在获取访问按键输入数据的程序的信息之前,判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问按键输入数据的程序的信息,若否,结束操作。
其中,拦截点监测单元,还适于判断监测到的按键输入数据是否为通过预定按键输入的数据,若是,确认该按键输入数据为需要保护的数据,若否,确认该按键输入数据为不需要保护的数据。
其中,拦截对象选取单元选取的拦截对象包括:同步获取按键状态GetKeyState事件、异步获取按键状态GetAsyncKeyState事件、获取键盘状态GetKeyboardState事件、获取设备输入数据GetRawInputData事件、批量获取设备输入数据GetRawInputBuffer事件、和/或挂钩KeUserModeCallback事件。
其中,拦截信息设置单元,适于通过内联钩子方式在应用层中设置针对拦截对象的拦截执行信息;和/或,通过修改各程序的导入表中的内容在应用层中设置针对拦截对象的拦截执行信息。
其中,拦截信息设置单元,适于通过修改拦截对象所对应的函数在系统服务描述符表中的地址信息,将拦截执行信息设置在驱动层中。
其中,程序的信息包括程序所在的进程名称、程序的路径和程序中文件的哈希值,拦截执行单元,适于判断程序的信息是否存在于获知的安全程序列表中,若是,确认该程序为安全程序,若否,确认该程序不是安全程序;和/或,根据程序的信息判断该程序的进程链的等级是否为安全等级,若是,确认该程序为安全程序,若否,确认该程序不是安全程序。
本发明又一实施例还提供了一种客户端设备,包括如上述的恶意程序主动拦截装置,
客户端设备,适于通过键盘接收来自用户的按键输入数据,以及利用恶意程序主动拦截装置对客户端上访问按键输入数据的恶意程序进行拦截。
由上所述,本发明实施例通过根据客户端对按键输入数据的访问方式选取拦截对象的技术手段,从而将拦截点设置在了用户触发按键时进行实时拦截,有利于结合程序的运行情况对程序类型进行判断,避免了现有方案在程序的注册阶段拦截时无法准确判断程序类型而造成的查杀准确率较低的问题,以及,通过对访问按键输入数据的程序进行识别的技术手段,能够对不同的程序进行区分并分别处理,达到了分程序防护的效果。本发明实施例提供了一种对恶意程序主动防御的新方案,能够实现更加有效地拦截和报警,提高报警和查杀的准确率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的恶意程序主动拦截装置结构示意图;
图2示出了根据本发明又一个实施例的恶意程序主动拦截方法流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明一个实施例提供了一种恶意程序主动拦截装置100,参见图1,该装置100包括拦截对象选取单元111、拦截信息设置单元112、拦截点监测单元113和拦截执行单元114。下面分别对这些单元进行说明。
拦截对象选取单元111适于根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象。本发明实施例主要针对键盘记录类恶意程序的防护场景,所以拦截对象主要针对恶意获取按键数据的程序而选取,通过选取的拦截对象将拦截点设置在用户触发按键时进行实时拦截以及报警,解决了在程序的注册阶段拦截时无法准确判断程序类型而造成的查杀准确率较低的问题。
本实施例中拦截对象选取单元111选取的拦截对象包括但不局限于如下:同步获取按键状态(GetKeyState)事件、异步获取按键状态(GetAsyncKeyState)事件、获取键盘状态(GetKeyboardState)事件、获取设备输入数据(GetRawInputData)事件、批量获取设备输入数据(GetRawInputBuffer)事件、和/或挂钩(KeUserModeCallback)事件。
拦截信息设置单元112,适于在应用层和/或驱动层中设置针对拦截对象的拦截执行信息。拦截信息设置单元112可以同时将拦截执行信息设置在应用层和驱动层中,或者,拦截信息设置单元112也可以仅将拦截执行信息设置在应用层和驱动层中的一个,例如,拦截信息设置单元112仅将拦截执行信息设置在驱动层中,由驱动层负责进行拦截,而由应用层负责逻辑分析和报警显示等。
当需要在应用层中对拦截对象进行拦截时,拦截信息设置单元112通过内联钩子(inline hook)方式在应用层中设置针对拦截对象的拦截执行信息;和/或,通过修改各程序的导入表中的内容在应用层中设置针对拦截对象的拦截执行信息。该拦截执行信息指示对在应用层中监测到的调用拦截对象的行为的处理方式,如禁止对拦截对象进行调用,或者,将拦截对象自动导向至一个安全的对象,对拦截对象的调用会自动转向至对该安全的对象的调用。
当需要在驱动层中对拦截对象进行拦截时,拦截信息设置单元112通过修改拦截对象所对应的函数在系统服务描述符表(System Services DescriptorTable,SSDT)中的地址信息,将拦截执行信息设置在驱动层中。
SSDT相当于系统内部应用接口(API)的指向标,SSDT指示系统需要调用的API的位置。Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2和RING3。Windows系统只使用RING0和RING3,RING0只给操作系统用,RING3各种程序都能使用。SSDT是一个把RING3的Windows API和RING0的内核API联系起来的信息表。并且,SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。
通过修改SSDT表的函数地址可以对常用windows函数及API进行hook,从而实现对一些关注的事件进行过滤、监控的目的。例如,修改GetKeyState事件对应的函数在SSDT中的地址,以使恶意程序在驱动层中调用GetKeyState事件时会自动转换为调用一个安全的对象。
拦截点监测单元113,适于当监测到按键输入数据时,获取访问按键输入数据的程序的信息。本实施例中可以对所有的按键输入数据进行监控,也可以将按键输入数据进行分类,仅对关注的一类按键输入数据进行监控,则拦截点监测单元113适于在获取访问按键输入数据的程序的信息之前,判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问按键输入数据的程序的信息,若否,结束操作。
可以通过对按键进行区分来识别需要保护的按键输入数据,由于正常的程序会对一些按键,如回车键等,进行监控,且这些按键通常不会导致用户信息的泄露,可以无需对这些按键的输入数据进行保护。本实施例在按键中选取部分关注的按键作为预定的需要保护的按键,如字母键、数字键、常用标点符号键等,则拦截点监测单元113还适于判断监测到的按键输入数据是否为通过预定按键输入的数据,若是,确认该按键输入数据为需要保护的数据,若否,确认该按键输入数据为不需要保护的数据。通过这种处理方式,在保护数据安全,对恶意程序进行有效拦截的前提下,降低了监控需要处理的数据量,减轻了系统负担。
拦截执行单元114,适于根据程序的信息判断该程序是否为安全程序,若是,允许该程序调用按键输入数据,若否,利用拦截执行信息对该程序进行拦截。根据拦截执行信息中的设置,拦截的具体方式可以是不同的,例如,拦截执行单元114可以禁止程序对拦截对象进行调用,关闭程序,或者,对拦截对象的调用自动转换为对一个安全的对象的调用。
其中,上述程序的信息包括程序所在的进程名称、程序的路径和程序中文件的哈希值,拦截执行单元114可以在应用层根据程序的信息利用安全程序列表(如白名单)和/或进程链信息来判断程序是否安全。安全程序列表中记录了所有安全的程序的信息,进程链信息中记录了各进程的等级,该等级可以包括安全等级、危险等级、可疑等级和未知等级。
例如,拦截执行单元114判断程序的信息(包括程序所在的进程名称、程序的路径和程序中文件的哈希值)是否存在于获知的安全程序列表中,若是,确认该程序为安全程序,若否,确认该程序不是安全程序;和/或,
拦截执行单元114根据程序的信息判断该程序的进程链的等级是否为安全等级,若是,确认该程序为安全程序,若否,确认该程序不是安全程序。进程链包括发起程序的所有父子进程,例如,一种进程链的示例为:进程1→进程2→进程3,即进程2为进程3的父进程,进程1为进程2的父进程,进程2为进程1的子进程,进程3为进程2的子进程。可以利用设置的进程链管理功能取得程序的整个父子进程关系,该进程链管理功能可以在进程链信息中保存进程创建的父子关系,进程对应的文件的名称和安全等级属性,如安全、危险、可疑和未知等。
进程链管理功能可以使用API来获取程序的进程链,例如,使用NtQueryInformationProcess(NTDLL.DLL中的一个函数,用于将指定类型的进程信息拷贝到某个缓冲)可以取得父进程的身份标识(PID),然后逐级向上找到该程序所有的进程。根据需要可以采用不同的拦截设置,一种方式下,当程序对应的进程为安全等级时,允许该程序运行,当程序对应的进程不是安全等级时或程序对应的进程的父进程及更高级别的进程不是安全等级时,禁止该程序的运行;又一种方式下,可以为进程链维护记录安全进程的信息的进程白名单,记录危险进程的信息的进程黑名单和记录未知(或可疑)进程的信息的进程灰名单,当程序对应的进程位于进程白名单时,允许该程序运行,当程序对应的进程位于进程黑名单时,阻止该程序的运行并查杀,当程序对应的进程位于进程灰名单时,记录该进程和/或该进程中文件的名称、安全属性的信息等,并将该程序的信息向用户显示,根据接收到的用户的指令允许该程序的运行或查杀该程序。
拦截执行单元114在对程序进行拦截的同时,可以向用户发送报警信息。
本发明又一实施例还提供了一种客户端设备,包括如上述的恶意程序主动拦截装置,该客户端设备通过键盘接收来自用户的按键输入数据,以及利用恶意程序主动拦截装置对客户端上访问按键输入数据的恶意程序进行拦截。
本发明又一实施例还提供了一种服务器设备,利用服务器设备和客户端设备的配合来实现对恶意程序的拦截,该服务器设备包括:通信单元、拦截控制单元和数据库,
数据库,适于记录安全程序的信息,如包括安全程序的所在的进程名称、程序的路径、程序名称和程序中文件的哈希值等,还可以包括记录了各进程的等级的进程链信息等。
通信单元,适于接收客户端侧上报的访问按键输入数据的待识别程序的信息,以及,将允许指令或拦截指令发送至客户端侧,以使客户端侧允许程序调用相应的按键输入数据,或者,使客户端侧根据设置的拦截执行信息对程序进行拦截;
拦截控制单元,适于根据待识别程序的信息和记录的安全程序的信息判断待识别程序是否为安全程序,若是,生成允许该程序调用按键输入数据的允许指令,若否,生成禁止该程序调用按键输入数据的拦截指令。
可以理解,数据库中还可以记录危险程序或未知程序的信息等,这时,拦截控制单元根据记录的危险程序或未知程序的信息判断出待识别程序为危险程序或未知程序时,可以生成拦截指令,禁止程序的运行,或生成通知信息,将该程序的信息告知客户端侧的用户,以根据用户输入的指令执行相应的操作。
本发明又一实施例还提供了一种恶意程序主动拦截方法,参见图2,该方法包括如下步骤:
本方案始于步骤S200:根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象。选取的拦截对象包括但不局限于如下:同步获取按键状态(GetKeyState)事件、异步获取按键状态(GetAsyncKeyState)事件、获取键盘状态(GetKeyboardState)事件、获取设备输入数据(GetRawInputData)事件、批量获取设备输入数据(GetRawInputBuffer)事件、和/或挂钩(KeUserModeCallback)事件。
S202:在应用层和/或驱动层中设置针对拦截对象的拦截执行信息。
其中,在应用层中设置针对拦截对象的拦截执行信息包括:通过内联钩子方式在应用层中设置针对拦截对象的拦截执行信息;和/或,通过修改各程序的导入表中的内容在应用层中设置针对拦截对象的拦截执行信息。
其中,在驱动层中设置针对拦截对象的拦截执行信息包括:通过修改拦截对象所对应的函数在系统服务描述符表中的地址信息,将拦截执行信息设置在驱动层中。
S204:当监测到按键输入数据时,获取访问按键输入数据的程序的信息;
S206:根据程序的信息判断该程序是否为安全程序,若是,允许该程序调用按键输入数据,若否,利用拦截执行信息对该程序进行拦截。
在步骤S206中,利用拦截执行信息对该程序进行拦截时,还可以同时向用户发送报警信息。至此,一次对恶意程序的拦截操作执行完毕,重复上述过程,实现对恶意程序的持续实时地拦截。
其中,在S204的获取访问按键输入数据的程序的信息之前,上述方法还包括:判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问按键输入数据的程序的信息,若否,结束操作。上述判断监测到的按键输入数据是否为需要保护的数据包括:判断监测到的按键输入数据是否为通过预定按键输入的数据,若是,确认该按键输入数据为需要保护的数据,若否,确认该按键输入数据为不需要保护的数据。
其中,程序的信息包括程序所在的进程名称、程序的路径和程序中文件的哈希值,步骤S206中具体包括:判断程序的信息是否存在于获知的安全程序列表中,若是,确认该程序为安全程序,若否,确认该程序不是安全程序;和/或,根据程序的信息判断该程序的进程链的等级是否为安全等级,若是,确认该程序为安全程序,若否,确认该程序不是安全程序。
本发明方法实施例中各步骤的具体执行方式可以参见本发明的装置实施例在此不再赘述。
下面以具体的场景对本方案的具体应用进行举例说明。
一个场景下,恶意程序A使用SetWindowsHook函数注册一个JournalRecord钩子,以在用户通过键盘输入文字时获取文字信息。采用本方案时在恶意程序A注册时时并没有进行拦截或报警,而是在用户利用被保护按键进行数据输入时拦截该恶意程序A,并报警A意图取得被保护进程中的输入内容。
又一个场景下,未知游戏程序B使用SetWindowsHook函数注册一个JournalRecord钩子进行游戏,在程序B注册时并未拦截或报警。在后续用户执行数据输入时由于B是游戏,其窗口始终处于前台,是安全的可以获取按键输入数据的接口,因此根据安全允许列表和/或进程链信息对程序B的判定结果为安全程序,则不对程序B进行拦截或报警,允许游戏程序的运行。
由上所述,本发明实施例通过根据客户端对按键输入数据的访问方式选取拦截对象的技术手段,从而将拦截点设置在了用户触发按键时进行实时拦截,有利于结合程序的运行情况对程序类型进行判断,避免了现有方案在程序的注册阶段拦截时无法准确判断程序类型而造成的查杀准确率较低的问题,以及,通过对访问按键输入数据的程序进行识别的技术手段,能够对不同的程序进行区分并分别处理,达到了分程序防护的效果。本发明实施例提供了一种对恶意程序主动防御的新方案,能够实现更加有效地拦截和报警,提高报警和查杀的准确率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的恶意程序主动拦截装置以及客户端设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (15)

1.一种恶意程序主动拦截方法,包括:
根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象;
在应用层和/或驱动层中设置针对所述拦截对象的拦截执行信息;
当监测到按键输入数据时,获取访问所述按键输入数据的程序的信息;
根据所述程序的信息判断该程序是否为安全程序,若是,允许该程序调用所述按键输入数据,若否,利用所述拦截执行信息对该程序进行拦截;
其中,在获取访问所述按键输入数据的程序的信息之前,所述方法还包括:
判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问所述按键输入数据的程序的信息,若否,结束操作。
2.根据权利要求1所述的方法,其中,所述判断监测到的按键输入数据是否为需要保护的数据包括:
判断监测到的按键输入数据是否为通过预定按键输入的数据,若是,确认该按键输入数据为需要保护的数据,若否,确认该按键输入数据为不需要保护的数据。
3.根据权利要求2所述的方法,其中,所述预定按键包括字母键、数字键和/或常用标点符号键。
4.根据权利要求1所述的方法,其中,所述选取的拦截对象包括:
同步获取按键状态GetKeyState事件、异步获取按键状态GetAsyncKeyState事件、获取键盘状态GetKeyboardState事件、获取设备输入数据GetRawInputData事件、批量获取设备输入数据GetRawInputBuffer事件、和/或挂钩KeUserModeCallback事件。
5.根据权利要求1所述的方法,其中,所述在应用层中设置针对所述拦截对象的拦截执行信息包括:
通过内联钩子方式在应用层中设置针对所述拦截对象的拦截执行信息;和/或,通过修改各程序的导入表中的内容在应用层中设置针对所述拦截对象的拦截执行信息。
6.根据权利要求1所述的方法,其中,所述在驱动层中设置针对所述拦截对象的拦截执行信息包括:
通过修改拦截对象所对应的函数在系统服务描述符表中的地址信息,将拦截执行信息设置在驱动层中。
7.根据权利要求1所述的方法,其中,所述程序的信息包括程序所在的进程名称、程序的路径和程序中文件的哈希值,所述根据所述程序的信息判断该程序是否为安全程序包括:
判断所述程序的信息是否存在于获知的安全程序列表中,若是,确认该程序为安全程序,若否,确认该程序不是安全程序;和/或,
根据程序的信息判断该程序的进程链的等级是否为安全等级,若是,确认该程序为安全程序,若否,确认该程序不是安全程序。
8.一种恶意程序主动拦截装置,包括:
拦截对象选取单元,适于根据客户端对按键输入数据的访问方式选取需要拦截的拦截对象;
拦截信息设置单元,适于在应用层和/或驱动层中设置针对所述拦截对象的拦截执行信息;
拦截点监测单元,适于当监测到按键输入数据时,获取访问所述按键输入数据的程序的信息;
拦截执行单元,适于根据所述程序的信息判断该程序是否为安全程序,若是,允许该程序调用所述按键输入数据,若否,利用所述拦截执行信息对该程序进行拦截;
其中,所述拦截点监测单元,适于在获取访问所述按键输入数据的程序的信息之前,判断监测到的按键输入数据是否为需要保护的数据,若是,获取访问所述按键输入数据的程序的信息,若否,结束操作。
9.根据权利要求8所述的装置,其中,所述拦截点监测单元,还适于判断监测到的按键输入数据是否为通过预定按键输入的数据,若是,确认该按键输入数据为需要保护的数据,若否,确认该按键输入数据为不需要保护的数据。
10.根据权利要求9所述的装置,其中,所述拦截点监测单元监测的预定按键包括字母键、数字键和/或常用标点符号键。
11.根据权利要求8所述的装置,其中,所述拦截对象选取单元选取的拦截对象包括:
同步获取按键状态GetKeyState事件、异步获取按键状态GetAsyncKeyState事件、获取键盘状态GetKeyboardState事件、获取设备输入数据GetRawInputData事件、批量获取设备输入数据GetRawInputBuffer事件、和/或挂钩KeUserModeCallback事件。
12.根据权利要求8所述的装置,其中,所述拦截信息设置单元,适于通过内联钩子方式在应用层中设置针对所述拦截对象的拦截执行信息;和/或,通过修改各程序的导入表中的内容在应用层中设置针对所述拦截对象的拦截执行信息。
13.根据权利要求8所述的装置,其中,所述拦截信息设置单元,适于通过修改拦截对象所对应的函数在系统服务描述符表中的地址信息,将拦截执行信息设置在驱动层中。
14.根据权利要求8所述的装置,其中,所述程序的信息包括程序所在的进程名称、程序的路径和程序中文件的哈希值,所述拦截执行单元,适于判断所述程序的信息是否存在于获知的安全程序列表中,若是,确认该程序为安全程序,若否,确认该程序不是安全程序;和/或,根据程序的信息判断该程序的进程链的等级是否为安全等级,若是,确认该程序为安全程序,若否,确认该程序不是安全程序。
15.一种客户端设备,包括如权利要求8至14任一项所述的恶意程序主动拦截装置,
所述客户端设备,适于通过键盘接收来自用户的按键输入数据,以及利用所述主动拦截恶意程序的装置对客户端上访问所述按键输入数据的恶意程序进行拦截。
CN201210563985.XA 2012-12-21 2012-12-21 恶意程序主动拦截方法和装置及客户端设备 Active CN103020526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210563985.XA CN103020526B (zh) 2012-12-21 2012-12-21 恶意程序主动拦截方法和装置及客户端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210563985.XA CN103020526B (zh) 2012-12-21 2012-12-21 恶意程序主动拦截方法和装置及客户端设备

Publications (2)

Publication Number Publication Date
CN103020526A true CN103020526A (zh) 2013-04-03
CN103020526B CN103020526B (zh) 2016-04-13

Family

ID=47969121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210563985.XA Active CN103020526B (zh) 2012-12-21 2012-12-21 恶意程序主动拦截方法和装置及客户端设备

Country Status (1)

Country Link
CN (1) CN103020526B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653947A (zh) * 2014-11-11 2016-06-08 中国移动通信集团公司 一种评估应用数据安全风险的方法及装置
CN106022133A (zh) * 2016-05-31 2016-10-12 北京金山安全软件有限公司 一种信息处理方法及装置
CN106022096A (zh) * 2016-05-23 2016-10-12 北京金山安全软件有限公司 信息处理方法、装置及终端
CN106529353A (zh) * 2016-10-26 2017-03-22 努比亚技术有限公司 一种对按键输入信息进行防窃听处理的方法和装置
CN106778229A (zh) * 2016-11-29 2017-05-31 北京瑞星信息技术股份有限公司 一种基于vpn的恶意应用下载拦截方法及系统
CN107545198A (zh) * 2017-05-18 2018-01-05 紫光华山信息技术有限公司 一种按键管理方法和装置
CN108537668A (zh) * 2018-04-11 2018-09-14 北京奇虎科技有限公司 基于智能合约的数字货币交易方法及装置、计算设备
CN108897993A (zh) * 2018-06-11 2018-11-27 山东华软金盾软件股份有限公司 一种Windows注册表隐藏的方法
CN109190366A (zh) * 2018-09-14 2019-01-11 郑州云海信息技术有限公司 一种程序处理方法以及相关装置
CN109472140A (zh) * 2017-12-29 2019-03-15 北京安天网络安全技术有限公司 基于窗体标题校验阻止勒索软件加密的方法及系统
CN109800577A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 一种识别逃逸安全监控行为的方法及装置
CN110392887A (zh) * 2017-03-09 2019-10-29 西门子股份公司 具有防止网络犯罪威胁的安全措施的方法和计算机
CN110532773A (zh) * 2018-05-25 2019-12-03 阿里巴巴集团控股有限公司 恶意访问行为识别方法、数据处理方法、装置和设备
CN111191270A (zh) * 2019-10-09 2020-05-22 浙江中控技术股份有限公司 一种基于白名单防护的敏感文件访问控制方法
CN111428234A (zh) * 2020-03-27 2020-07-17 深圳融安网络科技有限公司 应用程序的进程拦截方法、终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983296A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 用于防止非法程序窃取用户信息的方法及装置
CN101114323A (zh) * 2006-07-28 2008-01-30 上海山丽信息安全有限公司 监控键盘钩子的装置
US20090271866A1 (en) * 2008-04-23 2009-10-29 Lloyd Liske System and Method for Protecting Against Malware Utilizing Key Loggers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983296A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 用于防止非法程序窃取用户信息的方法及装置
CN101114323A (zh) * 2006-07-28 2008-01-30 上海山丽信息安全有限公司 监控键盘钩子的装置
US20090271866A1 (en) * 2008-04-23 2009-10-29 Lloyd Liske System and Method for Protecting Against Malware Utilizing Key Loggers

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653947A (zh) * 2014-11-11 2016-06-08 中国移动通信集团公司 一种评估应用数据安全风险的方法及装置
CN106022096A (zh) * 2016-05-23 2016-10-12 北京金山安全软件有限公司 信息处理方法、装置及终端
CN106022133A (zh) * 2016-05-31 2016-10-12 北京金山安全软件有限公司 一种信息处理方法及装置
CN106529353A (zh) * 2016-10-26 2017-03-22 努比亚技术有限公司 一种对按键输入信息进行防窃听处理的方法和装置
CN106778229A (zh) * 2016-11-29 2017-05-31 北京瑞星信息技术股份有限公司 一种基于vpn的恶意应用下载拦截方法及系统
CN106778229B (zh) * 2016-11-29 2020-02-14 北京瑞星网安技术股份有限公司 一种基于vpn的恶意应用下载拦截方法及系统
US11093615B2 (en) 2017-03-09 2021-08-17 Siemens Aktiengesellschaft Method and computer with protection against cybercriminal threats
CN110392887A (zh) * 2017-03-09 2019-10-29 西门子股份公司 具有防止网络犯罪威胁的安全措施的方法和计算机
CN107545198A (zh) * 2017-05-18 2018-01-05 紫光华山信息技术有限公司 一种按键管理方法和装置
CN109472140B (zh) * 2017-12-29 2021-11-12 北京安天网络安全技术有限公司 基于窗体标题校验阻止勒索软件加密的方法及系统
CN109472140A (zh) * 2017-12-29 2019-03-15 北京安天网络安全技术有限公司 基于窗体标题校验阻止勒索软件加密的方法及系统
CN108537668A (zh) * 2018-04-11 2018-09-14 北京奇虎科技有限公司 基于智能合约的数字货币交易方法及装置、计算设备
CN110532773A (zh) * 2018-05-25 2019-12-03 阿里巴巴集团控股有限公司 恶意访问行为识别方法、数据处理方法、装置和设备
CN110532773B (zh) * 2018-05-25 2023-04-07 阿里巴巴集团控股有限公司 恶意访问行为识别方法、数据处理方法、装置和设备
CN108897993A (zh) * 2018-06-11 2018-11-27 山东华软金盾软件股份有限公司 一种Windows注册表隐藏的方法
CN109190366A (zh) * 2018-09-14 2019-01-11 郑州云海信息技术有限公司 一种程序处理方法以及相关装置
CN109190366B (zh) * 2018-09-14 2021-11-19 郑州云海信息技术有限公司 一种程序处理方法以及相关装置
CN109800577A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 一种识别逃逸安全监控行为的方法及装置
CN109800577B (zh) * 2018-12-29 2020-10-16 360企业安全技术(珠海)有限公司 一种识别逃逸安全监控行为的方法及装置
CN111191270A (zh) * 2019-10-09 2020-05-22 浙江中控技术股份有限公司 一种基于白名单防护的敏感文件访问控制方法
CN111428234A (zh) * 2020-03-27 2020-07-17 深圳融安网络科技有限公司 应用程序的进程拦截方法、终端及存储介质
CN111428234B (zh) * 2020-03-27 2023-07-04 深圳融安网络科技有限公司 应用程序的进程拦截方法、终端及存储介质

Also Published As

Publication number Publication date
CN103020526B (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
CN103020526B (zh) 恶意程序主动拦截方法和装置及客户端设备
CN103020527B (zh) 主动拦截恶意程序的方法、装置、系统
US9323931B2 (en) Complex scoring for malware detection
CN1983296B (zh) 用于防止非法程序窃取用户信息的方法及装置
CN102088379B (zh) 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置
US20140096236A1 (en) Apparatus and method for securing mobile terminal
CN104484599A (zh) 一种基于应用程序的行为处理方法和装置
CN103116722A (zh) 一种通知栏消息的处理方法、装置和系统
CN108664793B (zh) 一种检测漏洞的方法和装置
CN103617395A (zh) 一种基于云安全拦截广告程序的方法、装置和系统
KR101899589B1 (ko) 안전 소프트웨어 인증 시스템 및 방법
CN103198255A (zh) 一种Android软件敏感行为监控与拦截方法及系统
AU2014330136A1 (en) Complex scoring for malware detection
CN102932329A (zh) 一种对程序的行为进行拦截的方法、装置和客户端设备
CN103632101B (zh) 一种拦截系统调用的方法和装置
CN105408911A (zh) 硬件和软件执行概况分析
CN102902919A (zh) 一种可疑操作的识别处理方法、装置和系统
EP3958153A1 (en) Detecting script-based malware
CN103577750A (zh) 隐私权限管理方法和装置
CN104811453B (zh) 主动防御方法及装置
KR20230002436A (ko) 거짓 양성 멀웨어 탐지율을 감소시키기 위한 머신 러닝 시스템 및 방법
CN110290114A (zh) 一种基于预警信息的漏洞自动化防护方法及系统
Tang et al. Towards dynamically monitoring android applications on non-rooted devices in the wild
CN102446253B (zh) 一种网页木马检测方法及系统
CN102857519A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.