CN102932375A - 网络访问行为的防护方法和装置 - Google Patents

网络访问行为的防护方法和装置 Download PDF

Info

Publication number
CN102932375A
CN102932375A CN2012104792617A CN201210479261A CN102932375A CN 102932375 A CN102932375 A CN 102932375A CN 2012104792617 A CN2012104792617 A CN 2012104792617A CN 201210479261 A CN201210479261 A CN 201210479261A CN 102932375 A CN102932375 A CN 102932375A
Authority
CN
China
Prior art keywords
program
access request
network access
domain information
packet
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
CN2012104792617A
Other languages
English (en)
Other versions
CN102932375B (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 Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group 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 CN201210479261.7A priority Critical patent/CN102932375B/zh
Publication of CN102932375A publication Critical patent/CN102932375A/zh
Application granted granted Critical
Publication of CN102932375B publication Critical patent/CN102932375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网络访问行为的防护方法和装置。其中方法包括:驱动层截获程序发起的网络访问请求的数据包,解析数据包,获取数据包中的至少一种域信息,然后将数据包及其至少一种域信息发送到应用层;应用层查询本地数据库中是否保存有至少一种域信息中的任一种,若是,则在至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止程序的网络访问请求;在至少一种域信息都不属于本地数据库的黑名单但至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行程序的网络访问请求。本发明直接利用这些高层协议的目标来判断网络访问请求是否安全,更能有效地拦截恶意程序的网络访问行为。

Description

网络访问行为的防护方法和装置
技术领域
本发明涉及网络通信安全技术领域,具体涉及一种网络访问行为的防护方法和装置。
背景技术
随着互联网技术的飞速发展与上网成本的普遍降低,互联网已经成为了大多数普通民众日常生活中不可或缺的一个重要组成部分。但是一些程序员为了表现自己和证明自己的能力或者其他方面(如政治,军事,宗教,民族,专利等)的需求,往往会编写出一些影响电脑正常运行的恶意程序,从而使得被这些恶意程序侵扰的用户并不能实现自己上网的目的,甚至会使得整个***出现瘫痪。因而,网络安全就成为了现今关注的焦点。
现有的网络防护方法都是基于TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,因特网协议)或UDP(User Datagram Protocol,用户数据报协议)的IP地址和端口来放行或阻止某个程序的网络访问行为。具体地,当某个程序发起网络访问请求时,首先发起建立连接的请求(socket connect),在socket connect中可以获取待访问目标的IP地址和端口,根据待访问目标的IP地址和端口查询本地保存的数据库来确定是否放行或阻止该程序的网络访问行为。对于未知程序,可提示用户选择是否放行。
但是,现有程序使用的网络协议大多数是基于TCP/IP或UDP协议而实现的高层协议,例如HTTP(Hypertext Transport Protocol,超文本传送协议)、SMTP(Simple Mail TransferProtocol,简单邮件传输协议)、DNS(Domain Name System,域名***)和FTP(File TransferProtocol,文件传输协议)等。当程序使用这些高层协议进行网络访问请求时,单纯靠IP地址和端口无法确定网络访问请求的目的;而且,在网络中IP地址和端口的变动非常频繁,如网络供应商更换时IP地址就会随之改变,然而本地数据库的更新都需要一定的时间,因此采用现有的网络防护方法不能及时有效地拦截恶意程序的网络访问行为。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网络访问行为的防护方法和相应的网络访问行为的防护装置。
根据本发明的一个方面,提供了一种网络访问行为的防护方法,包括:
驱动层截获程序发起的网络访问请求的数据包,解析数据包,获取数据包中的至少一种域信息,然后将数据包及其至少一种域信息发送到应用层;
应用层查询本地数据库中是否保存有至少一种域信息中的任一种,若是,则在至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止程序的网络访问请求;在至少一种域信息都不属于本地数据库的黑名单但至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行程序的网络访问请求。
根据本发明的另一方面,提供了一种网络访问行为的防护装置,包括:驱动层模块和应用层模块;
驱动层模块包括:截获模块,适于截获程序发起的网络访问请求的数据包;驱动层解析模块,适于解析数据包,获取数据包中的至少一种域信息;第一发送模块,适于将数据包及其至少一种域信息发送给应用层模块;
应用层模块包括:第一接收模块,适于接收第一发送模块发送的数据包及其至少一种域信息;查询模块,适于查询本地数据库中是否保存有至少一种域信息中的任一种;阻止模块,适于在查询模块查询到至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止程序的网络访问请求;放行模块,适于在查询模块查询到至少一种域信息都不属于本地数据库的黑名单但至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行程序的网络访问请求。
根据本发明提供的方案,通过驱动层截获程序发起的网络访问请求的数据包,解析数据包获取其包含的域信息,应用层根据该域信息查询本地数据库来确定阻止或放行该程序的网络访问请求。对于程序使用的基于TCP/IP或者UDP实现的高层协议来说,网络访问请求的数据包中的域信息反映了网络访问请求的目标,本发明直接利用这些高层协议的目标来判断网络访问请求是否安全,更能有效地拦截恶意程序的网络访问行为。而且,网络访问请求的数据包中的域信息不经常变动,所以本地数据库不需要经常更新,从而能更加及时地拦截恶意程序的网络访问行为。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明第一个实施例的网络访问行为的防护方法的流程图;
图2示出了根据本发明第二个实施例的网络访问行为的防护方法的流程图;
图3示出了根据本发明第三个实施例的网络访问行为的防护方法的流程图;
图4示出了根据本发明第四个实施例的网络访问行为的防护方法的流程图;
图5示出了根据本发明第五个实施例的网络访问行为的防护方法的流程图;
图6示出了根据本发明第六个实施例的网络访问行为的防护装置的结构示意图;
图7示出了根据本发明第七个实施例的网络访问行为的防护装置的结构示意图;
图8示出了根据本发明第八个实施例的网络访问行为的防护装置的结构示意图;
图9示出了根据本发明第九个实施例的网络访问行为的防护装置的结构示意图;
图10示出了根据本发明第十个实施例的网络访问行为的防护***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
程序是一个普通的文件,是一个机器代码指令和数据的集合,是一个静态的概念。进程是程序在计算机上的一次执行过程,是一个动态的概念。同一个程序可以同时运行于若干个数据集合上,也就是说同一程序可以对应多个进程。网络访问行为是由运行中的程序(也即进程)所发起的。程序的当前网络访问行为即是由属于该程序的进程所发起的网络访问行为。网络访问行为的种类繁多,包括HTTP访问(常见的有下载文件或上传信息),SMTP请求(例如收发电子邮件),DNS请求(解析域名对应的IP地址等信息)等等。
图1示出了根据本发明第一个实施例的网络访问行为的防护方法100的流程图。如图1所示,方法100始于步骤S101,其中驱动层(ring0)截获程序发起的网络访问请求的数据包。驱动层截获的数据包是程序发起的发送数据的请求(socket send)和接收数据的请求(socketreceive)中的数据包。
通常一个程序如果需要连接网络,需要通过操作***(如Windows)提供的API(Application Program Interface,应用程序接口)接口发送网络访问请求,操作***接收到程序的这种网络访问请求后,会接收程序要发送的数据包,并对接收到的数据包进行封装,之后将封装的数据包发送给物理设备(如网卡等),最后由硬件设备将数据包传出。基于这样的程序访问网络的流程,在该流程的任一环节对网络行为的相关信息进行截获都可以实现监控程序的当前网络行为的目的。可选地,驱动层截获程序发起的网络访问请求的数据包可以采用以下几种方式:
(1)通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包。
在程序访问网络的过程中,操作***在处理相关数据时,会使用一些协议驱动或过滤驱动来获取网络访问行为的数据,所以可通过在客户端注册协议驱动或者创建与操作***相似的过滤驱动,截获程序发起的网络访问请求的数据包。具体地,可通过向NDIS(Network DriverInterface Specification,网络驱动程序接口规范)注册协议驱动,或者在Afd.sys(AncillaryFunction Driver for winsock,winsock的辅助功能驱动)的驱动设备栈、Tdi.sys(TransportDispatch Interface,传输分配接口)的驱动设备栈或Tcpip.sys(Transmission ControlProtocol/Internet Protocol,传输控制/网络通讯协议)的驱动设备栈上创建与操作***相似的过滤驱动,截获程序发起的网络访问请求的数据包。
以在Afd.sys的驱动设备栈上创建过滤驱动为例,当发送网络访问请求的数据包时,***原本调用的Afd.sys的驱动分发函数会先调用创建的过滤驱动的分发函数,利用这种方法来截获数据包。
(2)利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包。
以应用程序编程接口函数为钩子(hook)函数为例,利用操作***提供的hook函数截获Windows SSDT(System Services Descriptor Table,***服务描述符表)提供的接口函数(如NtDeviceIoControl函数)、或者Tcpip.sys驱动提供的服务函数、或者NDIS.sys提供的导出函数,获得程序发起的网络访问请求的数据包。
(3)通过接管程序调用网络编程接口函数(Winsock)的请求,截获程序发起的网络访问请求的数据包。
(4)利用注册防火墙回调的方式,截获程序发起的网络访问请求的数据包。
随后,方法100进入步骤S102,其中驱动层解析截获的数据包,获取数据包中的至少一种域信息,将数据包及其至少一种域信息发送到应用层。本方法中,驱动层(ring0)具有解析socket send和socket receive中的数据包的功能,获取该数据包所包含的一种或多种域信息,将数据包及其域信息发送到应用层(ring3)进行处理。
随后,方法100进入步骤S103,其中应用层查询本地数据库中是否保存有至少一种域信息中的任一种,若是,则执行步骤S104;否则执行步骤S106。客户端的本地数据库中存储有大量的域信息以及这些域信息属于黑名单或白名单的标记。可选地,本地数据库中的数据存储格式可以为域信息的md5(Message Digest Algorithm 5,消息摘要算法第五版)值和扩展字节,扩展字节中写入域信息属于黑名单或白名单的标记。
在步骤S104中,应用层判断至少一种域信息中的任一种是否属于本地数据库的黑名单,若是,则执行步骤S105;否则执行步骤S106。应用层通过域信息属于黑名单或白名单的标记,判断至少一种域信息中的任一种是否属于本地数据库的黑名单。
在步骤S105中,阻止程序的网络访问请求。如果某程序发起的网络访问请求的数据包中至少一种域信息中的任一种属于本地数据库的黑名单,表明该程序为恶意程序,则阻止该程序的网络访问请求,也即阻止该程序的网络访问行为。
在步骤S106中,放行程序的网络访问请求。如果某程序发起的网络访问请求的数据包中至少一种域信息都不属于本地数据库的黑名单,但其中任一种属于本地数据库的白名单,表明该程序为正常程序,则放行该程序的网络访问请求,也即放行该程序的网络访问行为。如果应用层查询到本地数据库没有保存至少一种域信息中的任一种,表明该程序为未知程序,可以放行该程序的网络访问请求。作为另一种实施方式,如果程序为未知程序,也可以提示用户进行选择,根据用户的选择的方式阻止或放行该程序的网络访问请求。
根据本实施例提供的方法,通过驱动层截获程序发起的网络访问请求的数据包,解析数据包获取其包含的域信息,应用层根据该域信息查询本地数据库来确定阻止或放行该程序的网络访问请求。对于程序使用的基于TCP/IP或者UDP实现的高层协议来说,网络访问请求的数据包中的域信息反映了网络访问请求的目标,本方法直接利用这些高层协议的目标来判断网络访问请求是否安全,更能有效地拦截恶意程序的网络访问行为。而且,网络访问请求的数据包中的域信息不经常变动,所以本地数据库不需要经常更新,从而能更加及时地拦截恶意程序的网络访问行为。
图2示出了根据本发明第二个实施例的网络访问行为的防护方法200的流程图。如图2所示,方法200始于步骤S201,其中驱动层(ring0)截获程序发起的网络访问请求的数据包。驱动层截获的数据包是程序发起的发送数据的请求(socket send)和接收数据的请求(socketreceive)中的数据包。驱动层截获数据包的方法可以参见方法100的相关描述,在此不再赘述。
随后,方法200进入步骤S202,其中驱动层解析截获的数据包,获取数据包中的至少一种域信息,将数据包及其至少一种域信息发送到应用层。本方法中,驱动层(ring0)具有解析socket send和socket receive中的数据包的功能,获取该数据包所包含的一种或多种域信息,将数据包及其域信息发送到应用层(ring3)进行处理。
随后,方法200进入步骤S203,其中应用层查询本地数据库中是否保存有至少一种域信息中的任一种,若是,则执行步骤S204;否则执行步骤S205。客户端的本地数据库中存储有大量的域信息以及这些域信息属于黑名单或白名单的标记。可选地,本地数据库中的数据存储格式可以为域信息的md5值和扩展字节,扩展字节中写入域信息属于黑名单或白名单的标记。
在步骤S204中,应用层判断至少一种域信息中的任一种是否属于本地数据库的黑名单,若是,则执行步骤S209;否则执行步骤S210。应用层通过域信息属于黑名单或白名单的标记,判断至少一种域信息中的任一种是否属于本地数据库的黑名单。
在步骤S205中,应用层将至少一种域信息发送到网络侧设备。网络侧设备的云端数据库中也存储有大量的域信息以及这些域信息属于黑名单或白名单的标记。网络侧设备判断至少一种域信息中的任一种是否属于云端数据库,如果属于云端数据库,则进一步根据域信息属于黑名单或白名单的标记,判断该域信息属于云端数据库的黑名单或白名单,由此得到查询结果返回给客户端。
在步骤S205之后,方法200进入步骤S206,其中应用层接收网络侧设备查询云端数据库中是否保存有至少一种域信息中的任一种的查询结果。
在步骤S206之后,方法200进入步骤S207,应用层判断查询结果是否表明云端数据库中保存有至少一种域信息中的任一种,若是,执行步骤S208;否则,执行步骤S210。
在步骤S208中,应用层判断查询结果是否表明云端数据库保存有至少一种域信息中的任一种且属于黑名单,若是,执行步骤S209;否则,执行步骤S210。
在步骤S209中,阻止程序的网络访问请求。如果某程序发起的网络访问请求的数据包中至少一种域信息中的任一种属于本地数据库或云端数据库的黑名单,表明该程序为恶意程序,则阻止该程序的网络访问请求,也即阻止该程序的网络访问行为。
在步骤S210中,放行程序的网络访问请求。如果某程序发起的网络访问请求的数据包中至少一种域信息都不属于本地数据库的黑名单但其中任一种属于本地数据库的白名单,或者都不属于云端数据库的黑名单但其中任一种属于云端数据库的白名单,表明该程序为正常程序,则放行该程序的网络访问请求,也即放行该程序的网络访问行为。如果应用层查询到本地数据库和云端数据库都没有保存至少一种域信息中的任一种,表明该程序为未知程序,可以放行该程序的网络访问请求。作为另一种实施方式,如果程序为未知程序,也可以提示用户进行选择,根据用户的选择的方式阻止或放行该程序的网络访问请求。
根据本实施例提供的方法,通过驱动层截获程序发起的网络访问请求的数据包,解析数据包获取其包含的域信息,应用层根据该域信息首先查询本地数据库来确定阻止或放行该程序的网络访问请求,如果本地数据库没有保存数据包中包含的域信息,则继续去网络侧查询云端数据库来确定阻止或放行该程序的网络访问请求。对于程序使用的基于TCP/IP或者UDP实现的高层协议来说,网络访问请求的数据包中的域信息反映了网络访问请求的目标,本方法直接利用这些高层协议的目标来判断网络访问请求是否安全,更能有效地拦截恶意程序的网络访问行为。而且,网络访问请求的数据包中的域信息不经常变动,所以本地数据库不需要经常更新,也能及时地拦截恶意程序的网络访问行为。本方法结合本地数据库和云端数据库判断网络访问请求是否安全,进一步的提高了拦截恶意程序的网络访问行为的效率。
图3示出了根据本发明第三个实施例的网络访问行为的防护方法300的流程图。在本方法300中,以网络访问请求为HTTP访问请求为例进行说明。如图3所示,方法300始于步骤S301,其中驱动层(ring0)截获程序发起的HTTP访问请求的数据包。驱动层截获的数据包是程序发起的发送数据的请求(socket send)和接收数据的请求(socket receive)中的数据包。驱动层截获数据包的方法可以参见方法100的相关描述,在此不再赘述。
随后,方法300进入步骤S302,其中驱动层解析截获的数据包,获取数据包中的域名(host)。驱动层在解析截获的socket send和socket receive中的数据包之前或同时,也可以获取socket connect中的IP地址和端口。
随后,方法300进入步骤S303,其中驱动层判断驱动层内存(ring0 cache)中是否记录有与本次程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次该程序的处理状态信息,若是,执行步骤S304;否则执行步骤S306。在本方法中,在处理完一个HTTP访问请求之后,ring0 cache都会记录下这次HTTP访问请求的IP地址和端口以及域名,并记录下该程序针对这次HTTP访问请求的处理状态信息,这里的处理状态信息是指该程序这次HTTP访问请求的域名属于黑名单或白名单,或者在这次HTTP访问请求中该程序被认定为未知程序。基于ring0 cache所做的记录,在步骤S303中,驱动层会先判断ring0 cache是否记录有与本次程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次该程序的处理状态信息。
在步骤S304中,驱动层判断上一次该程序的处理状态信息是否为该程序为未知程序,若是,执行步骤S306;否则执行步骤S305。
在步骤S305中,驱动层判断上一次该程序的处理状态信息为上一次该程序的HTTP访问请求的域名是否属于黑名单,若是,则执行步骤S314;否则执行步骤S315。
在步骤S306中,驱动层将数据包以及域名、IP地址和端口发送到应用层。
在步骤S306之后,方法300进入步骤S307,应用层进一步解析数据包,获取更多的域信息,包括网址(URL)、代理程序标识(User-Agent)和父页面信息(Referer)。
HTTP访问请求的数据包的示例如下:
GET/index.html HTTP/1.1\r\n
Host:www.360.cn\r\n
User-Agent:IE\r\n
Referer:http://www.qihoo.net/\r\n
对于该示例,驱动层解析数据包获得域名为:www.360.cn;应用层进一步解析数据包获得URL:http://www.360.cn/index.html,User-Agent:IE\r\n,以及Referer:http://www.qihoo.net/\r\n。
在步骤S307之后,方法300进入步骤S308,其中应用层查询本地数据库中是否保存有域名、IP地址和端口、URL、User-Agent和Referer等域信息中的任一种,若是,则执行步骤S309;否则执行步骤S310。
在步骤S309中,应用层判断域名、IP地址和端口、URL、User-Agent和Referer等域信息中的任一种是否属于本地数据库的黑名单,若是,则执行步骤S314;否则执行步骤S315。
在步骤S310中,应用层将域名、IP地址和端口、URL、User-Agent和Referer等域信息发送到网络侧设备。网络侧设备的云端数据库中也存储有大量的域信息以及这些域信息属于黑名单或白名单的标记。网络侧设备判断上述域信息中的任一种是否属于云端数据库,如果属于云端数据库,则进一步根据域信息属于黑名单或白名单的标记,判断该域信息属于云端数据库的黑名单或白名单,由此得到查询结果返回给客户端。
在步骤S310之后,方法300进入步骤S311,其中应用层接收网络侧设备查询云端数据库的查询结果。
在步骤S311之后,方法300进入步骤S312,应用层判断查询结果是否表明云端数据库中保存有域名、IP地址和端口、URL、User-Agent和Referer等域信息中的任一种,若是,执行步骤S313;否则,执行步骤S315。
在步骤S313中,应用层判断查询结果是否表明云端数据库保存有域名、IP地址和端口、URL、User-Agent和Referer等域信息中的任一种且属于黑名单,若是,执行步骤S314;否则,执行步骤S315。
在步骤S314中,阻止程序的HTTP访问请求。
在步骤S315中,放行程序的HTTP访问请求。
在步骤S314和步骤S315之后,方法300进入步骤S316,其中在ring0 cache中记录本次程序的HTTP访问请求的IP地址和端口以及域名(对于上述示例,记录的内容为:IP:220.181.24.100,port:80,Host:www.360.cn),并记录本次程序的处理状态信息,本次程序的处理状态信息为本次程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者本次程序为未知程序。
本方法中,在驱动层将数据包和域信息发送到应用层之前,先判断ring0cache中是否记录有同一个程序上一次HTTP访问请求的处理状态信息,上一次HTTP访问请求是指域名以及IP地址和端口与本次HTTP访问请求相同的最近一次的HTTP访问请求,如有记录且处理状态信息为域信息属于黑名单或白名单,则直接按照上一次的处理状态信息做同样的处理,无需将数据包和域信息再发送到应用层做查询本地数据库和云端数据库的处理,这样能大大减少查询量,降低后台的负担,提高网络访问的效率。而且,本方法中ring0 cache记录的是HTTP访问请求的域名以及IP地址和端口,并未记录URL,对于具有相同域名以及IP地址和端口但具有不同的URL的HTTP访问请求,都可按照上一次的处理状态信息做同样的处理,这样减少了未知URL的查询数据库次数,进一步提高了网络访问的效率。
为了进一步提高本方法的处理效率,在上述实施例的基础上,ring0 cache还可以记录同一程序被确认为未知程序的累计次数。在步骤S304中,如果驱动层判断上一次该程序的处理状态信息为该程序为未知程序,那么驱动层进一步判断该程序被确认为未知程序的累计次数是否大于或等于预设值,该预设值优选为4,如果累计次数大于或等于预设值,则放行该程序的网络访问请求;否则,执行步骤S306。对应的,在步骤S316中,如果本次程序的处理状态信息为本次程序为未知程序,那么ring0 cache还需更新程序被确认为未知程序的累计次数,即在原累计次数基础上加1。通过这样的处理,如果某程序被多次确认为未知程序,那么直接放行该程序的网络访问行为,提高了网络访问的效率。
本方法中,在应用层接收到数据包后,进一步解析数据包,获得更多的域信息。由于在后续查询本地数据库和云端数据库的过程中,如果这些域信息中的任一种属于黑名单或白名单,对应地就可以确定程序为恶意程序或正常程序,因此域信息越多,网络访问行为的拦截效率也就越高。
但也应当可以理解的是,步骤S307是可选步骤。即,应用层在接收到数据包时,可以不再对数据包进行解析,在后续步骤中,应用层处理的域信息包括域名、IP地址和端口,不包括URL、User-Agent和Referer等域信息。
上述第三实施例提供的方法是以HTTP访问请求为例进行说明的,但是该方法不仅限应用于HTTP访问请求,其它与HTTP访问请求类似的网络访问请求也可采用第三实施例提供的防护方法。
图4示出了根据本发明第四个实施例的网络访问行为的防护方法400的流程图。在本方法400中,以网络访问请求为DNS访问请求为例进行说明。如图4所示,方法400始于步骤S401,其中驱动层(ring0)截获程序发起的DNS访问请求的数据包。驱动层截获的数据包是程序发起的发送数据的请求(socket send)和接收数据的请求(socket receive)中的数据包。驱动层截获数据包的方法可以参见方法100的相关描述,在此不再赘述。
随后,方法400进入步骤S402,其中驱动层解析截获的数据包,获取数据包中的DNS域名。
DNS访问请求的数据包的示例如下:
Domain Name System(query)
Transaction ID:0x276b
Questions:1
Answer RRs:0
Authority RRs:0
Additional RRs:0
Queries www.360.cn:type A,class IN
对于该示例,驱动层解析数据包获得DNS域名为:www.360.cn。
随后,方法400进入步骤S403,其中驱动层判断驱动层内存(ring0 cache)中是否记录有与本次程序的DNS访问请求具有相同DNS域名的上一次该程序的处理状态信息,若是,执行步骤S404;否则执行步骤S406。在本方法中,在处理完一个DNS访问请求之后,ring0cache都会记录下这次DNS访问请求的DNS域名,并记录下该程序对这次DNS访问请求的处理状态信息,这里的处理状态信息是指该程序这次DNS访问请求的DNS域名属于黑名单或白名单,或者在这次DNS访问请求中该程序被认定为未知程序。基于ring0 cache所做的记录,在步骤S403中,驱动层会先判断ring0 cache是否记录有与本次程序的DNS访问请求具有相同DNS域名的上一次该程序的处理状态信息。
在步骤S404中,驱动层判断上一次该程序的处理状态信息是否为该程序为未知程序,若是,执行步骤S414;否则执行步骤S405。
在步骤S405中,驱动层判断上一次该程序的处理状态信息为上一次该程序的DNS访问请求的DNS域名是否属于黑名单,若是,则执行步骤S413;否则执行步骤S414。
在步骤S406中,驱动层将数据包以及DNS域名发送到应用层。
在步骤S406之后,方法400进入步骤S407,其中应用层查询本地数据库中是否保存有DNS域名,若是,则执行步骤S408;否则执行步骤S409。
在步骤S408中,应用层判断DNS域名是否属于本地数据库的黑名单,若是,则执行步骤S413;否则执行步骤S414。
在步骤S409中,应用层将DNS域名发送到网络侧设备。网络侧设备的云端数据库中也存储有大量的DNS域名以及这些DNS域名属于黑名单或白名单的标记。网络侧设备判断DNS域名是否属于云端数据库,如果属于云端数据库,则进一步根据DNS域名属于黑名单或白名单的标记,判断该DNS域名属于云端数据库的黑名单或白名单,由此得到查询结果返回给客户端。
在步骤S409之后,方法400进入步骤S410,其中应用层接收网络侧设备查询云端数据库的查询结果。
在步骤S410之后,方法400进入步骤S411,应用层判断查询结果是否表明云端数据库中保存有DNS域名,若是,执行步骤S412;否则,执行步骤414。
在步骤S412中,应用层判断查询结果是否表明云端数据库保存有DNS域名且该DNS域名属于黑名单,若是,执行步骤S413;否则,执行步骤S414。
在步骤S413中,阻止程序的DNS访问请求。
在步骤S414中,放行程序的DNS访问请求。
在步骤S413和步骤S414之后,方法400进入步骤S415,其中在ring0cache中记录本次程序的DNS访问请求的DNS域名(对于上述示例,记录的内容为:www.360.cn),并记录本次程序的处理状态信息,本次程序的处理状态信息为本次程序的DNS访问请求的DNS域名属于黑名单或白名单,或者本次程序为未知程序。
本方法中,在驱动层将数据包和DNS域名发送到应用层之前,先判断ring0 cache中是否记录有同一个程序上一次DNS访问请求的处理状态信息,上一次DNS访问请求是指DNS域名与本次DNS访问请求相同的最近一次的DNS访问请求。如有记录且处理状态信息为DNS域名属于黑名单或白名单,则直接按照上一次的处理状态信息做同样的处理,如处理状态信息为程序为未知程序,则直接放行该程序的网络访问请求,无需将数据包和域信息再发送到应用层做查询本地数据库和云端数据库的处理,这样能大大减少查询量,降低后台的负担,提高网络访问的效率。
上述第四实施例提供的方法是以DNS访问请求为例进行说明的,但是该方法不仅限应用于DNS访问请求,其它网络访问请求也可采用第四实施例提供的防护方法。
图5示出了根据本发明第五个实施例的网络访问行为的防护方法500的流程图。在本方法500中,以网络访问请求为SMTP访问请求为例进行说明。如图5所示,方法500始于步骤S501,其中驱动层(ring0)截获程序发起的SMTP访问请求的数据包。驱动层截获的数据包是程序发起的发送数据的请求(socket send)和接收数据的请求(socket receive)中的数据包。驱动层截获数据包的方法可以参见方法100的相关描述,在此不再赘述。
随后,方法500进入步骤S502,其中驱动层解析截获的数据包,获取数据包中的发件人和/或收件人的邮箱地址。
SMTP访问请求的数据包的示例如下:
Figure BDA00002449633100111
对于该示例,驱动层解析数据包获得发件人的邮箱地址为[email protected],收件人的邮箱地址为:[email protected][email protected]
随后,方法500进入步骤S503,其中驱动层判断驱动层内存(ring0 cache)中是否记录有与本次程序的SMTP访问请求具有相同发件人和/或收件人的邮箱地址的上一次该程序的处理状态信息,若是,执行步骤S504;否则执行步骤S506。在本方法中,在处理完一个SMTP访问请求之后,ring0 cache都会记录下这次SMTP访问请求的发件人和/或收件人的邮箱地址,并记录下该程序对这次SMTP访问请求的处理状态信息,这里的处理状态信息是指该程序这次SMTP访问请求的发件人和/或收件人的邮箱地址属于黑名单或白名单,或者在这次SMTP访问请求中该程序被认定为未知程序。基于ring0 cache所做的记录,在步骤S503中,驱动层会先判断ring0 cache是否记录有与本次程序的SMTP访问请求具有相同发件人和/或收件人的邮箱地址的上一次该程序的处理状态信息。
在步骤S504中,驱动层判断上一次该程序的处理状态信息是否为该程序为未知程序,若是,执行步骤S514;否则执行步骤S505。
在步骤S505中,驱动层判断上一次该程序的处理状态信息为上一次该程序的SMTP访问请求的发件人和/或收件人的邮箱地址是否属于黑名单,若是,则执行步骤S513;否则执行步骤S514。
在步骤S506中,驱动层将数据包以及发件人和/或收件人的邮箱地址发送到应用层。
在步骤S506之后,方法500进入步骤S507,其中应用层查询本地数据库中是否保存有发件人和/或收件人的邮箱地址,若是,则执行步骤S508;否则执行步骤S509。
在步骤S508中,应用层判断发件人和/或收件人的邮箱地址是否属于本地数据库的黑名单,若是,则执行步骤S513;否则执行步骤S514。
在步骤S509中,应用层将发件人和/或收件人的邮箱地址发送到网络侧设备。网络侧设备的云端数据库中也存储有大量的发件人和/或收件人的邮箱地址以及这些发件人和/或收件人的邮箱地址属于黑名单或白名单的标记。网络侧设备判断发件人和/或收件人的邮箱地址是否属于云端数据库,如果属于云端数据库,则进一步根据发件人和/或收件人的邮箱地址属于黑名单或白名单的标记,判断该发件人和/或收件人的邮箱地址属于云端数据库的黑名单或白名单,由此得到查询结果返回给客户端。
在步骤S509之后,方法500进入步骤S510,其中应用层接收网络侧设备查询云端数据库的查询结果。
在步骤S510之后,方法500进入步骤S511,应用层判断查询结果是否表明云端数据库中保存有发件人和/或收件人的邮箱地址,若是,执行步骤S512;否则,执行步骤514。
在步骤S512中,应用层判断查询结果是否表明云端数据库保存有发件人和/或收件人的邮箱地址且该发件人和/或收件人的邮箱地址属于黑名单,若是,执行步骤S513;否则,执行步骤S514。
在步骤S513中,阻止程序的SMTP访问请求。
在步骤S514中,放行程序的SMTP访问请求。
在步骤S513和步骤S514之后,方法500进入步骤S515,其中在ring0 cache中记录本次程序的SMTP访问请求的发件人和/或收件人的邮箱地址(对于上述示例,记录的内容为:[email protected][email protected][email protected]),并记录本次程序的处理状态信息,本次程序的处理状态信息为本次程序的SMTP访问请求的发件人和/或收件人的邮箱地址属于黑名单或白名单,或者本次程序为未知程序。
本方法中,在驱动层将数据包和发件人和/或收件人的邮箱地址发送到应用层之前,先判断ring0 cache中是否记录有同一个程序上一次SMTP访问请求的处理状态信息,上一次SMTP访问请求是指发件人和/或收件人的邮箱地址与本次SMTP访问请求相同的最近一次的SMTP访问请求。如有记录且处理状态信息为发件人和/或收件人的邮箱地址属于黑名单或白名单,则直接按照上一次的处理状态信息做同样的处理,如处理状态信息为程序为未知程序,则直接放行该程序的网络访问请求,无需将数据包和发件人和/或收件人的邮箱地址再发送到应用层做查询本地数据库和云端数据库的处理,这样能大大减少查询量,降低后台的负担,提高网络访问的效率。
上述第五实施例提供的方法是以SMTP访问请求为例进行说明的,但是该方法不仅限应用于SMTP访问请求,其它网络访问请求也可采用第五实施例提供的防护方法。
需要说明的是,在上述几个方法实施例中可以不查询云端数据库,仅依靠查询本地数据库对网络访问行为进行阻止或放行处理也是可选的实施方案。
图6示出了根据本发明第六个实施例的网络访问行为的防护装置的结构示意图。如图6所示,该网络防护装置600包括驱动层模块610和应用层模块620。其中,驱动层模块610包括截获模块611、驱动层解析模块612和第一发送模块613。截获模块611适于截获程序发起的网络访问请求的数据包;驱动层解析模块612适于解析数据包,获取数据包中的至少一种域信息;第一发送模块613适于将数据包及其至少一种域信息发送给应用层模块620。应用层模块620包括:第一接收模块621、查询模块622、阻止模块623和放行模块624。第一接收模块621适于接收第一发送模块613发送的数据包及其至少一种域信息;查询模块622适于查询本地数据库中是否保存有至少一种域信息中的任一种;阻止模块623适于在查询模块622查询到至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止程序的网络访问请求;放行模块624适于在查询模块622查询到至少一种域信息都不属于本地数据库的黑名单但至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行程序的网络访问请求。
可选地,放行模块624还适于在查询模块622查询到本地数据库没有保存至少一种域信息中的任一种的情况下,表明程序为未知程序,放行程序的网络访问请求。
可选地,截获模块611具体适于:通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包;或者,利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包;或者,通过接管程序调用网络编程接口函数的请求,截获程序发起的网络访问请求的数据包;或者,利用注册防火墙回调的方式,截获程序发起的网络访问请求的数据包。更为具体地,截获模块611可以具体适于:通过向网络驱动程序接口规范注册协议驱动,或者在winsock的辅助功能驱动的驱动设备栈、传输分配接口的驱动设备栈或传输控制/网络通讯协议的驱动设备栈上创建过滤驱动,截获程序发起的网络访问请求的数据包。截获模块611也可以具体适于:利用操作***提供的钩子函数截获***服务描述符表提供的接口函数、或者传输控制/网络通讯协议提供的服务函数、或者网络驱动程序接口规范提供的导出函数,获得程序发起的网络访问请求的数据包。
根据本实施例提供的装置,通过驱动层截获程序发起的网络访问请求的数据包,解析数据包获取其包含的域信息,应用层根据该域信息查询本地数据库来确定阻止或放行该程序的网络访问请求。对于程序使用的基于TCP/IP或者UDP实现的高层协议来说,网络访问请求的数据包中的域信息反映了网络访问请求的目标,本装置直接利用这些高层协议的目标来判断网络访问请求是否安全,更能有效地拦截恶意程序的网络访问行为。而且,网络访问请求的数据包中的域信息不经常变动,所以本地数据库不需要经常更新,从而能更加及时地拦截恶意程序的网络访问行为。
图7示出了根据本发明第七个实施例的网络访问行为的防护装置的结构示意图。如图7所示,该网络防护装置700包括驱动层模块710和应用层模块720。
其中,驱动层模块710包括:截获模块711、驱动层解析模块712和第一发送模块713。截获模块711适于截获程序发起的网络访问请求的数据包;驱动层解析模块712适于解析数据包,获取数据包中的至少一种域信息;第一发送模块713适于将数据包及其至少一种域信息发送给应用层模块720。
应用层模块720包括:第一接收模块721、查询模块722、阻止模块723、放行模块724、第二发送模块725和第二接收模块726。第一接收模块721适于接收第一发送模块713发送的数据包及其至少一种域信息;查询模块722适于查询本地数据库中是否保存有至少一种域信息中的任一种;阻止模块723适于在查询模块722查询到至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止程序的网络访问请求;放行模块724适于在查询模块722查询到至少一种域信息都不属于本地数据库的黑名单但至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行程序的网络访问请求。第二发送模块725适于在查询模块722查询到本地数据库中没有保存至少一种域信息中的任一种的情况下,将至少一种域信息发送到网络侧设备;第二接收模块726适于接收网络侧设备查询云端数据库中是否保存有至少一种域信息中的任一种的查询结果;阻止模块723还适于在第二接收模块726接收的查询结果表明云端数据库保存有至少一种域信息中的任一种且属于黑名单的情况下,阻止程序的网络访问请求;放行模块724还适于在第二接收模块726接收的查询结果表明云端数据库保存有至少一种域信息中的任一种不属于黑名单而属于白名单的情况下,放行程序的网络访问请求。
可选地,放行模块724还适于在查询到本地数据库和云端数据库都没有保存至少一种域信息中的任一种的情况下,表明程序为未知程序,放行程序的网络访问请求。
可选地,关于截获模块711的相关内容可以参见第六个实施例的描述,在此不再赘述。
根据本实施例提供的装置,通过驱动层截获程序发起的网络访问请求的数据包,解析数据包获取其包含的域信息,应用层根据该域信息首先查询本地数据库来确定阻止或放行该程序的网络访问请求,如果本地数据库没有保存数据包中包含的域信息,则继续去网络侧查询云端数据库来确定阻止或放行该程序的网络访问请求。对于程序使用的基于TCP/IP或者UDP实现的高层协议来说,网络访问请求的数据包中的域信息反映了网络访问请求的目标,本装置直接利用这些高层协议的目标来判断网络访问请求是否安全,更能有效地拦截恶意程序的网络访问行为。而且,网络访问请求的数据包中的域信息不经常变动,所以本地数据库不需要经常更新,也能及时地拦截恶意程序的网络访问行为。本装置结合本地数据库和云端数据库判断网络访问请求是否安全,进一步的提高了拦截恶意程序的网络访问行为的效率。
图8示出了根据本发明第八个实施例的网络访问行为的防护装置的结构示意图。如图8所示,该网络防护装置800包括驱动层模块810和应用层模块820。
驱动层模块810包括:截获模块811、驱动层解析模块812、获取模块813、驱动层内存814、第一判断模块815和第一发送模块816。应用层模块820包括:第一接收模块821、应用层解析模块822、查询模块823、阻止模块824和放行模块825。
截获模块811适于截获程序发起的HTTP访问请求的数据包,可选地,关于截获模块811的相关内容可以参见第六个实施例的描述,在此不再赘述;驱动层解析模块812适于解析数据包,获取数据包中包含的域名(host);获取模块813适于获取HTTP访问请求的IP地址和端口;第一判断模块815适于判断在驱动层内存814中是否记录有与本次程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次程序的处理状态信息;第一发送模块816适于在第一判断模块815判断为否的情况下,或者,在第一判断模块815判断为是并且上一次程序的处理状态信息为上一次程序为未知程序的情况下,将数据包及域名发送给应用层模块820的第一接收模块821。
第一接收模块821适于接收第一发送模块816发送的数据包及域名;应用层解析模块822适于进一步解析数据包,获得以下信息的一种或多种作为至少一种域信息中的一部分:网址、代理程序标识和父页面信息。其中应用层解析模块822为可选模块。查询模块823适于查询本地数据库中是否保存有至少一种域信息中的任一种。阻止模块824适于在查询模块823查询到至少一种域信息中的任一种属于本地数据库的黑名单的情况下,或者在第一判断模块815判断为是,并且上一次程序的处理状态信息为上一次程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止该程序的网络访问请求;放行模块825适于在查询模块823查询到至少一种域信息都不属于本地数据库的黑名单但其中任一种属于本地数据库的白名单的情况下,或者在第一判断模块815判断为是,并且在上一次程序的处理状态信息为上一次程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行程序的网络访问请求。
作为一种可选的实施方式,放行模块825还适于在查询模块823查询到本地数据库没有保存至少一种域信息中的任一种的情况下,表明程序为未知程序,放行程序的网络访问请求。
作为另一种可选的实施方式,应用层模块820还包括:第二发送模块和第二接收模块。第二发送模块适于在查询模块查询到本地数据库中没有保存至少一种域信息中的任一种的情况下,将至少一种域信息发送到网络侧设备;第二接收模块适于接收网络侧设备查询云端数据库中是否保存有至少一种域信息中的任一种的查询结果;阻止模块还适于在第二接收模块接收的查询结果表明云端数据库保存有至少一种域信息中的任一种且属于黑名单的情况下,阻止程序的网络访问请求;放行模块还适于在第二接收模块接收的查询结果表明云端数据库保存有至少一种域信息中的任一种不属于黑名单而属于白名单的情况下,放行程序的网络访问请求。可选地,放行模块还适于在查询到本地数据库和云端数据库都没有保存至少一种域信息中的任一种的情况下,表明程序为未知程序,放行程序的网络访问请求。
可选地,驱动层内存适于记录程序的HTTP访问请求的IP地址和端口以及域名,并记录程序的处理状态信息,程序的处理状态信息为程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者程序为未知程序。
可选地,驱动层内存还适于在程序的处理状态信息为程序为未知程序的情况下,记录程序被确认为未知程序的累计次数。
在上述实施例的基础上,另一种替换的实施例为:第一判断模块被替换为第二判断模块和第三判断模块,对应的,第一发送模块、阻止模块和放行模块的功能也有所改变。具体地,第二判断模块适于判断在驱动层内存中是否记录有与本次程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次程序的处理状态信息;第三判断模块适于在第二判断模块判断为是并且上一次程序的处理状态信息为上一次程序为未知程序的情况下,判断程序被确认为未知程序的累计次数是否大于或等于预设值;第一发送模块具体适于在第二判断模块判断为否的情况下,或者,在第三判断模块判断为否的情况下,将数据包及其至少一种域信息发送给应用层模块;阻止模块还适于在第二判断模块判断为是,并且上一次程序的处理状态信息为上一次程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止程序的网络访问请求;放行模块还适于在第二判断模块判断为是,并且在上一次程序的处理状态信息为上一次程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行程序的网络访问请求。
图9示出了根据本发明第九个实施例的网络访问行为的防护装置的结构示意图。如图9所示,该网络防护装置900包括驱动层模块910和应用层模块920。
驱动层模块910包括:截获模块911、驱动层解析模块912、驱动层内存913、判断模块914和第一发送模块9l5。应用层模块920包括:第一接收模块921、查询模块922、阻止模块923和放行模块924。
截获模块911适于截获程序发起的网络访问请求的数据包,可选地,关于截获模块911的相关内容可以参见第六个实施例的描述,在此不再赘述;驱动层解析模块912适于解析数据包,获取数据包中包含的至少一种域信息;判断模块914适于判断在驱动层内存913中是否记录有与本次程序的网络访问请求具有相同的至少一种域信息的上一次程序的处理状态信息;第一发送模块9l5适于在判断模块914判断为否的情况下,将数据包及其至少一种域信息发送给应用层模块920的第一接收模块921。
第一接收模块921适于接收第一发送模块915发送的数据包及其至少一种域信息;查询模块922适于查询本地数据库中是否保存有至少一种域信息中的任一种;阻止模块923适于在查询模块922查询到至少一种域信息中的任一种属于本地数据库的黑名单的情况下,或者在判断模块914判断为是,并且上一次程序的处理状态信息为上一次程序的网络访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止该程序的网络访问请求;放行模块924适于在查询模块922查询到至少一种域信息都不属于本地数据库的黑名单但其中任一种属于本地数据库的白名单的情况下,或者在判断模块914判断为是,并且上一次程序的处理状态信息为上一次程序的网络访问请求的至少一种域信息中的任一种属于白名单或者上一次程序的处理状态信息为上一次程序为未知程序的情况下,放行程序的网络访问请求。
作为一种可选的实施方式,放行模块924还适于在查询模块922查询到本地数据库没有保存至少一种域信息中的任一种的情况下,表明程序为未知程序,放行程序的网络访问请求。
作为另一种可选的实施方式,应用层模块920还包括:第二发送模块和第二接收模块。第二发送模块适于在查询模块查询到本地数据库中没有保存至少一种域信息中的任一种的情况下,将至少一种域信息发送到网络侧设备;第二接收模块适于接收网络侧设备查询云端数据库中是否保存有至少一种域信息中的任一种的查询结果;阻止模块还适于在第二接收模块接收的查询结果表明云端数据库保存有至少一种域信息中的任一种且属于黑名单的情况下,阻止程序的网络访问请求;放行模块还适于在第二接收模块接收的查询结果表明云端数据库保存有至少一种域信息中的任一种不属于黑名单而属于白名单的情况下,放行程序的网络访问请求。可选地,放行模块还适于在查询到本地数据库和云端数据库都没有保存至少一种域信息中的任一种的情况下,表明程序为未知程序,放行程序的网络访问请求。
可选地,驱动层内存适于记录程序的网络访问请求的至少一种域信息,并记录程序的处理状态信息,程序的处理状态信息为程序的网络访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者程序为未知程序。
可选地,在本实施例中,网络访问请求可以为DNS访问请求,至少一种域信息包括DNS域名。网络访问请求也可以为SMTP访问请求,至少一种域信息包括发件人和/或收件人的邮箱地址。
图10示出了根据本发明第十个实施例的网络访问行为的防护***的结构示意图。如图10所示,该网络防护***1000包括客户端设备1010和网络侧设备1020。其中,客户端设备1010可以包括上述第七、八和九个实施例中任一实施例所描述的网络访问行为的防护装置。网络侧设备1020包括:云端数据库1021、网络侧接收模块1022、网络侧查询模块1023和网络侧发送模块1024。其中,网络侧接收模块l022与客户端设备中的第二发送模块连接,适于接收客户端设备发送的至少一种域信息;网络侧查询模块1023适于查询云端数据库1021中是否保存有至少一种域信息中的任一种,得到查询结果;网络侧发送模块1024与客户端设备中的第二接收模块连接,适于将查询结果发送给客户端设备。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网络访问行为的防护装置及***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本文公开了A1、一种网络访问行为的防护方法,包括:驱动层截获程序发起的网络访问请求的数据包,解析所述数据包,获取所述数据包中的至少一种域信息,然后将所述数据包及其至少一种域信息发送到应用层;应用层查询本地数据库中是否保存有所述至少一种域信息中的任一种,若是,则在所述至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止所述程序的网络访问请求;在所述至少一种域信息都不属于本地数据库的黑名单但所述至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行所述程序的网络访问请求。A2、根据A1所述的方法,还包括:若应用层查询到所述本地数据库没有保存所述至少一种域信息中的任一种,表明所述程序为未知程序,放行所述程序的网络访问请求。A3、根据A1所述的方法,还包括:若应用层查询到本地数据库中没有保存所述至少一种域信息中的任一种,则将所述至少一种域信息发送到网络侧设备,接收网络侧设备查询云端数据库中是否保存有所述至少一种域信息中的任一种的查询结果;若所述查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种且属于黑名单,则阻止所述程序的网络访问请求;或者,若所述查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种不属于黑名单而属于白名单,则放行所述程序的网络访问请求。A4、根据A3所述的方法,还包括:若应用层查询到所述本地数据库和所述云端数据库都没有保存所述至少一种域信息中的任一种,表明所述程序为未知程序,放行所述程序的网络访问请求。A5、根据A2或A4所述的方法,所述驱动层截获程序发起的网络访问请求的数据包的步骤包括:驱动层截获程序发起的HTTP访问请求的数据包;所述至少一种域信息包括域名;所述方法还包括:驱动层获取HTTP访问请求的IP地址和端口。A6、根据A5所述的方法,还包括:应用层进一步解析数据包,获取以下信息的一种或多种作为至少一种域信息中的一部分:网址、代理程序标识和父页面信息。A7、根据A5或A6所述的方法,在所述将所述数据包及其至少一种域信息发送到应用层的步骤之前还包括:判断在驱动层内存中是否记录有与本次所述程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次所述程序的处理状态信息;若否,则执行所述将所述数据包及其至少一种域信息发送到应用层的步骤;若是,则在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,执行所述将所述数据包及其至少一种域信息发送到应用层的步骤。A8、根据A5或A6所述的方法,在所述将所述数据包及其至少一种域信息发送到应用层的步骤之前还包括:判断在驱动层内存中是否记录有与本次所述程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次所述程序的处理状态信息;若否,则执行所述将所述数据包及其至少一种域信息发送到应用层的步骤;若是,则在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,判断所述程序被确认为未知程序的累计次数是否大于或等于预设值,若是,则放行所述程序的网络访问请求,否则,执行所述将所述数据包及其至少一种域信息发送到应用层的步骤。A9、根据A5至A8任一项所述的方法,在所述阻止或放行所述程序的网络访问请求的步骤之后还包括:在驱动层内存中记录本次所述程序的HTTP访问请求的IP地址和端口以及域名,并记录本次所述程序的处理状态信息,本次所述程序的处理状态信息为本次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者本次所述程序为未知程序。A10、根据A9所述的方法,在所述阻止或放行所述程序的网络访问请求的步骤之后还包括:若本次所述程序的处理状态信息为本次所述程序为未知程序,则在驱动层内存中记录所述程序被确认为未知程序的累计次数。A11、根据A2或A4所述的方法,在所述将所述数据包及其至少一种域信息发送到应用层的步骤之前还包括:判断在驱动层内存中是否记录有与本次所述程序的网络访问请求具有相同的至少一种域信息的上一次所述程序的处理状态信息;若否,则执行所述将所述数据包及其至少一种域信息发送到应用层的步骤;若是,则在上一次所述程序的处理状态信息为上一次所述程序的网络访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,放行所述程序的网络访问请求。A12、根据A11所述的方法,在所述阻止或放行所述程序的网络访问请求的步骤之后还包括:在驱动层内存中记录本次所述程序的网络访问请求的至少一种域信息,并记录本次所述程序的处理状态信息,本次所述程序的处理状态信息为本次所述程序的网络访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者本次所述程序为未知程序。A13、根据A11或A12所述的方法,所述网络访问请求为DNS访问请求,所述至少一种域信息包括DNS域名;或者,所述网络访问请求为SMTP访问请求,所述至少一种域信息包括发件人和/或收件人的邮箱地址。A14、根据A1至A13任一项所述的方法,所述驱动层截获程序发起的网络访问请求的数据包的步骤具体为:通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包;或者,利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包;或者,通过接管程序调用网络编程接口函数的请求,截获程序发起的网络访问请求的数据包;或者,利用注册防火墙回调的方式,截获程序发起的网络访问请求的数据包。A15、根据A14所述的方法,所述通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包的步骤具体为:通过向网络驱动程序接口规范注册协议驱动,或者在winsock的辅助功能驱动的驱动设备栈、传输分配接口的驱动设备栈或传输控制/网络通讯协议的驱动设备栈上创建过滤驱动,截获程序发起的网络访问请求的数据包。A16、根据A14所述的方法,所述利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包的步骤具体为:利用操作***提供的钩子函数截获***服务描述符表提供的接口函数、或者传输控制/网络通讯协议提供的服务函数、或者网络驱动程序接口规范提供的导出函数,获得所述程序发起的网络访问请求的数据包。
本文公开了B17、一种网络访问行为的防护装置,包括:驱动层模块和应用层模块;所述驱动层模块包括:截获模块,适于截获程序发起的网络访问请求的数据包;驱动层解析模块,适于解析所述数据包,获取所述数据包中的至少一种域信息;第一发送模块,适于将所述数据包及其至少一种域信息发送给所述应用层模块;所述应用层模块包括:第一接收模块,适于接收所述第一发送模块发送的所述数据包及其至少一种域信息;查询模块,适于查询本地数据库中是否保存有所述至少一种域信息中的任一种;阻止模块,适于在所述查询模块查询到所述至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止所述程序的网络访问请求;放行模块,适于在所述查询模块查询到所述至少一种域信息都不属于本地数据库的黑名单但所述至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行所述程序的网络访问请求。B18、根据B17所述的装置,所述放行模块还适于在所述查询模块查询到所述本地数据库没有保存所述至少一种域信息中的任一种的情况下,表明所述程序为未知程序,放行所述程序的网络访问请求。B19、根据B17所述的装置,所述应用层模块还包括:第二发送模块,适于在所述查询模块查询到本地数据库中没有保存所述至少一种域信息中的任一种的情况下,将所述至少一种域信息发送到网络侧设备;第二接收模块,适于接收网络侧设备查询云端数据库中是否保存有所述至少一种域信息中的任一种的查询结果;所述阻止模块还适于在所述第二接收模块接收的查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种且属于黑名单的情况下,阻止所述程序的网络访问请求;所述放行模块还适于在所述第二接收模块接收的查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种不属于黑名单而属于白名单的情况下,放行所述程序的网络访问请求。B20、根据B19所述的装置,所述放行模块还适于在查询到所述本地数据库和所述云端数据库都没有保存所述至少一种域信息中的任一种的情况下,表明所述程序为未知程序,放行所述程序的网络访问请求。B21、根据B18或B20所述的装置,所述截获模块具体适于截获程序发起的HTTP访问请求的数据包;所述至少一种域信息包括域名;所述驱动层模块还包括:获取模块,适于获取HTTP访问请求的IP地址和端口。B22、根据B21所述的装置,所述应用层模块还包括:应用层解析模块,适于进一步解析数据包,获得以下信息的一种或多种作为至少一种域信息中的一部分:网址、代理程序标识和父页面信息。B23、根据B21或B22所述的装置,所述驱动层模块还包括:驱动层内存;第一判断模块,适于判断在所述驱动层内存中是否记录有与本次所述程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次所述程序的处理状态信息;所述第一发送模块具体适于在所述第一判断模块判断为否的情况下,或者,在所述第一判断模块判断为是并且上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,将所述数据包及其至少一种域信息发送给所述应用层模块;所述阻止模块还适于在所述第一判断模块判断为是,并且上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;所述放行模块还适于在所述第一判断模块判断为是,并且在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求。B24、根据B21或B22所述的装置,所述驱动层模块还包括:驱动层内存;第二判断模块,适于判断在所述驱动层内存中是否记录有与本次所述程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次所述程序的处理状态信息;第三判断模块,适于在所述第二判断模块判断为是并且上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,判断所述程序被确认为未知程序的累计次数是否大于或等于预设值;所述第一发送模块具体适于在所述第二判断模块判断为否的情况下,或者,在所述第三判断模块判断为否的情况下,将所述数据包及其至少一种域信息发送给所述应用层模块;所述阻止模块还适于在所述第二判断模块判断为是,并且上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;所述放行模块还适于在所述第二判断模块判断为是,并且在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求。B25、根据B21至B24任一项所述的装置,所述驱动层内存适于记录所述程序的HTTP访问请求的IP地址和端口以及域名,并记录所述程序的处理状态信息,所述程序的处理状态信息为所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者所述程序为未知程序。B26、根据B25所述的装置,所述驱动层内存还适于在所述程序的处理状态信息为所述程序为未知程序的情况下,记录所述程序被确认为未知程序的累计次数。B27、根据B18或B20所述的装置,所述驱动层模块包括:驱动层内存;判断模块,适于判断在所述驱动层内存中是否记录有与本次所述程序的网络访问请求具有相同的至少一种域信息的上一次所述程序的处理状态信息;所述第一发送模块具体适于在所述判断模块判断为否的情况下,将所述数据包及其至少一种域信息发送给所述应用层模块;所述阻止模块还适于在所述判断模块判断为是,并且上一次所述程序的处理状态信息为上一次所述程序的网络访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;所述放行模块还适于在所述判断模块判断为是,并且上一次所述程序的处理状态信息为上一次所述程序的网络访问请求的至少一种域信息中的任一种属于白名单或者上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,放行所述程序的网络访问请求。B28、根据B27所述的装置,所述驱动层内存适于记录所述程序的网络访问请求的至少一种域信息,并记录所述程序的处理状态信息,所述程序的处理状态信息为所述程序的网络访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者所述程序为未知程序。B29、根据B27或B28所述的装置,所述网络访问请求为DNS访问请求,所述至少一种域信息包括DNS域名;或者,所述网络访问请求为SMTP访问请求,所述至少一种域信息包括发件人和/或收件人的邮箱地址。B30、根据B17至B29任一项所述的装置,所述截获模块具体适于:通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包;或者,利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包;或者,通过接管程序调用网络编程接口函数的请求,截获程序发起的网络访问请求的数据包;或者,利用注册防火墙回调的方式,截获程序发起的网络访问请求的数据包。B3l、根据B17至B29任一项所述的装置,所述截获模块具体适于:通过向网络驱动程序接口规范注册协议驱动,或者在winsock的辅助功能驱动的驱动设备栈、传输分配接口的驱动设备栈或传输控制/网络通讯协议的驱动设备栈上创建过滤驱动,截获程序发起的网络访问请求的数据包。B32、根据Bi7至B29任一项所述的装置,所述截获模块具体适于:利用操作***提供的钩子函数截获***服务描述符表提供的接口函数、或者传输控制/网络通讯协议提供的服务函数、或者网络驱动程序接口规范提供的导出函数,获得所述程序发起的网络访问请求的数据包。

Claims (20)

1.一种网络访问行为的防护方法,包括:
驱动层截获程序发起的网络访问请求的数据包,解析所述数据包,获取所述数据包中的至少一种域信息,然后将所述数据包及其至少一种域信息发送到应用层;
应用层查询本地数据库中是否保存有所述至少一种域信息中的任一种,若是,则在所述至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止所述程序的网络访问请求;在所述至少一种域信息都不属于本地数据库的黑名单但所述至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行所述程序的网络访问请求。
2.根据权利要求1所述的方法,还包括:
若应用层查询到所述本地数据库没有保存所述至少一种域信息中的任一种,表明所述程序为未知程序,放行所述程序的网络访问请求。
3.根据权利要求1所述的方法,还包括:
若应用层查询到本地数据库中没有保存所述至少一种域信息中的任一种,则将所述至少一种域信息发送到网络侧设备,接收网络侧设备查询云端数据库中是否保存有所述至少一种域信息中的任一种的查询结果;
若所述查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种且属于黑名单,则阻止所述程序的网络访问请求;或者,若所述查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种不属于黑名单而属于白名单,则放行所述程序的网络访问请求。
4.根据权利要求3所述的方法,还包括:
若应用层查询到所述本地数据库和所述云端数据库都没有保存所述至少一种域信息中的任一种,表明所述程序为未知程序,放行所述程序的网络访问请求。
5.根据权利要求2或4所述的方法,所述驱动层截获程序发起的网络访问请求的数据包的步骤包括:驱动层截获程序发起的HTTP访问请求的数据包;所述至少一种域信息包括域名;
所述方法还包括:驱动层获取HTTP访问请求的IP地址和端口。
6.根据权利要求5所述的方法,还包括:应用层进一步解析数据包,获取以下信息的一种或多种作为至少一种域信息中的一部分:网址、代理程序标识和父页面信息。
7.根据权利要求5或6所述的方法,在所述将所述数据包及其至少一种域信息发送到应用层的步骤之前还包括:
判断在驱动层内存中是否记录有与本次所述程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次所述程序的处理状态信息;
若否,则执行所述将所述数据包及其至少一种域信息发送到应用层的步骤;
若是,则在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,执行所述将所述数据包及其至少一种域信息发送到应用层的步骤。
8.根据权利要求5或6所述的方法,在所述将所述数据包及其至少一种域信息发送到应用层的步骤之前还包括:
判断在驱动层内存中是否记录有与本次所述程序的HTTP访问请求具有相同IP地址和端口以及域名的上一次所述程序的处理状态信息;
若否,则执行所述将所述数据包及其至少一种域信息发送到应用层的步骤;
若是,则在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序的HTTP访问请求的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,判断所述程序被确认为未知程序的累计次数是否大于或等于预设值,若是,则放行所述程序的网络访问请求,否则,执行所述将所述数据包及其至少一种域信息发送到应用层的步骤。
9.根据权利要求5至8任一项所述的方法,在所述阻止或放行所述程序的网络访问请求的步骤之后还包括:
在驱动层内存中记录本次所述程序的HTTP访问请求的IP地址和端口以及域名,并记录本次所述程序的处理状态信息,本次所述程序的处理状态信息为本次所述程序的HTTP访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者本次所述程序为未知程序。
10.根据权利要求9所述的方法,在所述阻止或放行所述程序的网络访问请求的步骤之后还包括:
若本次所述程序的处理状态信息为本次所述程序为未知程序,则在驱动层内存中记录所述程序被确认为未知程序的累计次数。
11.根据权利要求2或4所述的方法,在所述将所述数据包及其至少一种域信息发送到应用层的步骤之前还包括:
判断在驱动层内存中是否记录有与本次所述程序的网络访问请求具有相同的至少一种域信息的上一次所述程序的处理状态信息;
若否,则执行所述将所述数据包及其至少一种域信息发送到应用层的步骤;
若是,则在上一次所述程序的处理状态信息为上一次所述程序的网络访问请求的至少一种域信息中的任一种属于黑名单的情况下,阻止所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序的至少一种域信息中的任一种属于白名单的情况下,放行所述程序的网络访问请求;在上一次所述程序的处理状态信息为上一次所述程序为未知程序的情况下,放行所述程序的网络访问请求。
12.根据权利要求11所述的方法,在所述阻止或放行所述程序的网络访问请求的步骤之后还包括:
在驱动层内存中记录本次所述程序的网络访问请求的至少一种域信息,并记录本次所述程序的处理状态信息,本次所述程序的处理状态信息为本次所述程序的网络访问请求的至少一种域信息中的任一种属于黑名单或白名单,或者本次所述程序为未知程序。
13.根据权利要求11或12所述的方法,
所述网络访问请求为DNS访问请求,所述至少一种域信息包括DNS域名;
或者,所述网络访问请求为SMTP访问请求,所述至少一种域信息包括发件人和/或收件人的邮箱地址。
14.根据权利要求1至13任一项所述的方法,所述驱动层截获程序发起的网络访问请求的数据包的步骤具体为:
通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包;
或者,利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包;
或者,通过接管程序调用网络编程接口函数的请求,截获程序发起的网络访问请求的数据包;
或者,利用注册防火墙回调的方式,截获程序发起的网络访问请求的数据包。
15.根据权利要求14所述的方法,所述通过在客户端注册协议驱动或者创建过滤驱动,截获程序发起的网络访问请求的数据包的步骤具体为:
通过向网络驱动程序接口规范注册协议驱动,或者在winsock的辅助功能驱动的驱动设备栈、传输分配接口的驱动设备栈或传输控制/网络通讯协议的驱动设备栈上创建过滤驱动,截获程序发起的网络访问请求的数据包。
16.根据权利要求14所述的方法,所述利用操作***提供的应用程序编程接口函数截获程序发起的网络访问请求的数据包的步骤具体为:
利用操作***提供的钩子函数截获***服务描述符表提供的接口函数、或者传输控制/网络通讯协议提供的服务函数、或者网络驱动程序接口规范提供的导出函数,获得所述程序发起的网络访问请求的数据包。
17.一种网络访问行为的防护装置,包括:驱动层模块和应用层模块;
所述驱动层模块包括:
截获模块,适于截获程序发起的网络访问请求的数据包;
驱动层解析模块,适于解析所述数据包,获取所述数据包中的至少一种域信息;
第一发送模块,适于将所述数据包及其至少一种域信息发送给所述应用层模块;
所述应用层模块包括:
第一接收模块,适于接收所述第一发送模块发送的所述数据包及其至少一种域信息;
查询模块,适于查询本地数据库中是否保存有所述至少一种域信息中的任一种;
阻止模块,适于在所述查询模块查询到所述至少一种域信息中的任一种属于本地数据库的黑名单的情况下,阻止所述程序的网络访问请求;
放行模块,适于在所述查询模块查询到所述至少一种域信息都不属于本地数据库的黑名单但所述至少一种域信息中的任一种属于本地数据库的白名单的情况下,放行所述程序的网络访问请求。
18.根据权利要求17所述的装置,所述放行模块还适于在所述查询模块查询到所述本地数据库没有保存所述至少一种域信息中的任一种的情况下,表明所述程序为未知程序,放行所述程序的网络访问请求。
19.根据权利要求17所述的装置,所述应用层模块还包括:
第二发送模块,适于在所述查询模块查询到本地数据库中没有保存所述至少一种域信息中的任一种的情况下,将所述至少一种域信息发送到网络侧设备;
第二接收模块,适于接收网络侧设备查询云端数据库中是否保存有所述至少一种域信息中的任一种的查询结果;
所述阻止模块还适于在所述第二接收模块接收的查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种且属于黑名单的情况下,阻止所述程序的网络访问请求;
所述放行模块还适于在所述第二接收模块接收的查询结果表明所述云端数据库保存有所述至少一种域信息中的任一种不属于黑名单而属于白名单的情况下,放行所述程序的网络访问请求。
20.根据权利要求19所述的装置,所述放行模块还适于在查询到所述本地数据库和所述云端数据库都没有保存所述至少一种域信息中的任一种的情况下,表明所述程序为未知程序,放行所述程序的网络访问请求。
CN201210479261.7A 2012-11-22 2012-11-22 网络访问行为的防护方法和装置 Active CN102932375B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210479261.7A CN102932375B (zh) 2012-11-22 2012-11-22 网络访问行为的防护方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210479261.7A CN102932375B (zh) 2012-11-22 2012-11-22 网络访问行为的防护方法和装置

Publications (2)

Publication Number Publication Date
CN102932375A true CN102932375A (zh) 2013-02-13
CN102932375B CN102932375B (zh) 2015-10-07

Family

ID=47647077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210479261.7A Active CN102932375B (zh) 2012-11-22 2012-11-22 网络访问行为的防护方法和装置

Country Status (1)

Country Link
CN (1) CN102932375B (zh)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561036A (zh) * 2013-11-12 2014-02-05 深信服网络科技(深圳)有限公司 白名单上网环境下的请求拦截方法及装置
CN103634315A (zh) * 2013-11-29 2014-03-12 杜跃进 域名服务器的前端控制方法及***
CN103825900A (zh) * 2014-02-28 2014-05-28 广州云宏信息科技有限公司 网站访问方法及装置、过滤表单下载和更新方法及***
CN103929418A (zh) * 2014-03-28 2014-07-16 汉柏科技有限公司 基于网络安全设备的无线上网方法及***
CN104104666A (zh) * 2013-04-15 2014-10-15 腾讯科技(深圳)有限公司 一种探测云端服务异常的方法和装置
WO2014173167A1 (en) * 2013-04-23 2014-10-30 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for filtering data of web page
CN104348799A (zh) * 2013-07-31 2015-02-11 腾讯科技(深圳)有限公司 一种网络访问请求的过滤方法及装置
CN105022335A (zh) * 2015-07-03 2015-11-04 北京科技大学 一种基于rs232通讯协议的plc上位机链接命令过滤方法及装置
CN105099991A (zh) * 2014-04-28 2015-11-25 北京奇虎科技有限公司 在移动终端中抓取网络数据包的方法及装置
CN105245466A (zh) * 2015-10-14 2016-01-13 北京锐安科技有限公司 流量控制方法、装置及设备
CN105376222A (zh) * 2015-10-30 2016-03-02 四川九洲电器集团有限责任公司 基于云计算平台的智能防御***
CN105912933A (zh) * 2016-04-27 2016-08-31 北京金山安全软件有限公司 一种断网指令的处理方法、装置及电子设备
CN105991634A (zh) * 2015-04-29 2016-10-05 杭州迪普科技有限公司 访问控制的方法和装置
CN106131090A (zh) * 2016-08-31 2016-11-16 北京力鼎创软科技有限公司 一种web认证下的用户访问网络的方法和***
CN106209753A (zh) * 2015-05-08 2016-12-07 深圳市腾讯计算机***有限公司 业务控制方法、管理服务器、客户端、业务服务器及***
CN106385450A (zh) * 2016-09-13 2017-02-08 宇龙计算机通信科技(深圳)有限公司 数据过滤方法及***
CN106453436A (zh) * 2016-12-21 2017-02-22 北京奇虎科技有限公司 一种网络安全的检测方法和装置
US9582584B2 (en) 2013-04-23 2017-02-28 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for filtering data of web page
CN106657006A (zh) * 2016-11-17 2017-05-10 北京中电普华信息技术有限公司 一种软件信息的安全防护方法和装置
CN107395655A (zh) * 2017-09-15 2017-11-24 郑州云海信息技术有限公司 一种使用黑名单控制网络访问的***和方法
CN107615263A (zh) * 2015-04-30 2018-01-19 维萨国际服务协会 保护网络上的已连接设备的方法
CN107821284A (zh) * 2017-11-07 2018-03-23 河北工业大学 一种基于云数据库的智能鱼类饲养***
CN108737409A (zh) * 2018-05-14 2018-11-02 四川迅游网络科技股份有限公司 一种基于ndis驱动的数据传输方法
CN109086143A (zh) * 2017-06-14 2018-12-25 北京小米移动软件有限公司 应用交互方法及装置
CN109218275A (zh) * 2017-07-07 2019-01-15 北京小米移动软件有限公司 应用交互方法及装置
CN109218374A (zh) * 2017-07-07 2019-01-15 北京小米移动软件有限公司 应用交互方法及装置
CN109361779A (zh) * 2018-10-22 2019-02-19 江苏满运软件科技有限公司 分布式***中域名的管理方法及***、节点服务器
CN110798438A (zh) * 2018-08-09 2020-02-14 北京安天网络安全技术有限公司 应用内防火墙实现方法、***及存储介质
US10990461B2 (en) 2017-06-14 2021-04-27 Beijing Xiaomi Mobile Software Co., Ltd. Application interaction method, interaction method and apparatus
CN112929326A (zh) * 2019-12-05 2021-06-08 华为技术有限公司 恶意域名访问的检测方法、装置及计算机可读存储介质
CN115065397A (zh) * 2022-05-18 2022-09-16 亚太卫星宽带通信(深圳)有限公司 无移动网络下的使用半开放卫星网络支付的***及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025713A (zh) * 2010-02-09 2011-04-20 ***通信集团北京有限公司 一种访问控制方法、***及dns服务器
CN102413142A (zh) * 2011-11-30 2012-04-11 华中科技大学 基于云平台的主动防御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025713A (zh) * 2010-02-09 2011-04-20 ***通信集团北京有限公司 一种访问控制方法、***及dns服务器
CN102413142A (zh) * 2011-11-30 2012-04-11 华中科技大学 基于云平台的主动防御方法

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104666A (zh) * 2013-04-15 2014-10-15 腾讯科技(深圳)有限公司 一种探测云端服务异常的方法和装置
CN104104666B (zh) * 2013-04-15 2015-06-24 腾讯科技(深圳)有限公司 一种探测云端服务异常的方法和装置
US9582584B2 (en) 2013-04-23 2017-02-28 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for filtering data of web page
WO2014173167A1 (en) * 2013-04-23 2014-10-30 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for filtering data of web page
CN104348799A (zh) * 2013-07-31 2015-02-11 腾讯科技(深圳)有限公司 一种网络访问请求的过滤方法及装置
CN104348799B (zh) * 2013-07-31 2019-02-05 腾讯科技(深圳)有限公司 一种网络访问请求的过滤方法及装置
CN103561036A (zh) * 2013-11-12 2014-02-05 深信服网络科技(深圳)有限公司 白名单上网环境下的请求拦截方法及装置
CN103634315B (zh) * 2013-11-29 2017-11-10 哈尔滨工业大学(威海) 域名服务器的前端控制方法及***
CN103634315A (zh) * 2013-11-29 2014-03-12 杜跃进 域名服务器的前端控制方法及***
CN103825900A (zh) * 2014-02-28 2014-05-28 广州云宏信息科技有限公司 网站访问方法及装置、过滤表单下载和更新方法及***
CN103929418A (zh) * 2014-03-28 2014-07-16 汉柏科技有限公司 基于网络安全设备的无线上网方法及***
CN105099991B (zh) * 2014-04-28 2019-05-31 北京奇虎科技有限公司 在移动终端中抓取网络数据包的方法及装置
CN105099991A (zh) * 2014-04-28 2015-11-25 北京奇虎科技有限公司 在移动终端中抓取网络数据包的方法及装置
CN105991634A (zh) * 2015-04-29 2016-10-05 杭州迪普科技有限公司 访问控制的方法和装置
CN107615263A (zh) * 2015-04-30 2018-01-19 维萨国际服务协会 保护网络上的已连接设备的方法
CN106209753A (zh) * 2015-05-08 2016-12-07 深圳市腾讯计算机***有限公司 业务控制方法、管理服务器、客户端、业务服务器及***
CN106209753B (zh) * 2015-05-08 2019-11-19 深圳市腾讯计算机***有限公司 业务控制方法、管理服务器、客户端、业务服务器及***
CN105022335A (zh) * 2015-07-03 2015-11-04 北京科技大学 一种基于rs232通讯协议的plc上位机链接命令过滤方法及装置
CN105245466A (zh) * 2015-10-14 2016-01-13 北京锐安科技有限公司 流量控制方法、装置及设备
WO2017071148A1 (zh) * 2015-10-30 2017-05-04 四川九洲电器集团有限责任公司 基于云计算平台的智能防御***
CN105376222A (zh) * 2015-10-30 2016-03-02 四川九洲电器集团有限责任公司 基于云计算平台的智能防御***
CN105912933A (zh) * 2016-04-27 2016-08-31 北京金山安全软件有限公司 一种断网指令的处理方法、装置及电子设备
CN106131090A (zh) * 2016-08-31 2016-11-16 北京力鼎创软科技有限公司 一种web认证下的用户访问网络的方法和***
CN106385450A (zh) * 2016-09-13 2017-02-08 宇龙计算机通信科技(深圳)有限公司 数据过滤方法及***
CN106657006A (zh) * 2016-11-17 2017-05-10 北京中电普华信息技术有限公司 一种软件信息的安全防护方法和装置
CN106453436A (zh) * 2016-12-21 2017-02-22 北京奇虎科技有限公司 一种网络安全的检测方法和装置
CN106453436B (zh) * 2016-12-21 2019-05-31 北京奇虎科技有限公司 一种网络安全的检测方法和装置
CN109086143A (zh) * 2017-06-14 2018-12-25 北京小米移动软件有限公司 应用交互方法及装置
US11360834B2 (en) 2017-06-14 2022-06-14 Beijing Xiaomi Mobile Software Co., Ltd. Application interaction method and apparatus
US10990461B2 (en) 2017-06-14 2021-04-27 Beijing Xiaomi Mobile Software Co., Ltd. Application interaction method, interaction method and apparatus
CN109218275A (zh) * 2017-07-07 2019-01-15 北京小米移动软件有限公司 应用交互方法及装置
CN109218374A (zh) * 2017-07-07 2019-01-15 北京小米移动软件有限公司 应用交互方法及装置
CN107395655A (zh) * 2017-09-15 2017-11-24 郑州云海信息技术有限公司 一种使用黑名单控制网络访问的***和方法
CN107821284A (zh) * 2017-11-07 2018-03-23 河北工业大学 一种基于云数据库的智能鱼类饲养***
CN108737409A (zh) * 2018-05-14 2018-11-02 四川迅游网络科技股份有限公司 一种基于ndis驱动的数据传输方法
CN110798438A (zh) * 2018-08-09 2020-02-14 北京安天网络安全技术有限公司 应用内防火墙实现方法、***及存储介质
CN109361779A (zh) * 2018-10-22 2019-02-19 江苏满运软件科技有限公司 分布式***中域名的管理方法及***、节点服务器
CN112929326A (zh) * 2019-12-05 2021-06-08 华为技术有限公司 恶意域名访问的检测方法、装置及计算机可读存储介质
WO2021109669A1 (zh) * 2019-12-05 2021-06-10 华为技术有限公司 恶意域名访问的检测方法、装置及计算机可读存储介质
CN112929326B (zh) * 2019-12-05 2022-05-24 华为技术有限公司 恶意域名访问的检测方法、装置及计算机可读存储介质
CN115065397A (zh) * 2022-05-18 2022-09-16 亚太卫星宽带通信(深圳)有限公司 无移动网络下的使用半开放卫星网络支付的***及方法

Also Published As

Publication number Publication date
CN102932375B (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
CN102932375B (zh) 网络访问行为的防护方法和装置
CN102916983B (zh) 网络访问行为的防护***
US9686236B2 (en) Mobile telephone firewall and compliance enforcement system and methods
EP2408166B1 (en) Filtering method, system and network device therefor
US8869271B2 (en) System and method for risk rating and detecting redirection activities
US9026676B1 (en) Systems and methods for prepending nonce labels to DNS queries to enhance security
CN103368941A (zh) 一种基于用户网络访问场景的防护的方法和装置
CN103051617A (zh) 识别程序的网络行为的方法、装置及***
KR101907392B1 (ko) 이메일 본문에 게재된 링크주소의 악성 여부 검사방법과 검사시스템
CN103152354B (zh) 对危险网站进行提示的方法、***及客户端设备
CN103368978A (zh) 实现智能移动终端应用漏洞和通信安全检测的***及方法
CN103401863B (zh) 一种基于云安全的网络数据流分析方法和装置
CN104092691A (zh) 免root权限的联网防火墙的实现方法及客户端
KR101847381B1 (ko) 전자메일 제공 시스템 및 그 방법
CN103368957A (zh) 对网页访问行为进行处理的方法及***、客户端、服务器
US10659335B1 (en) Contextual analyses of network traffic
CN104159231A (zh) 客户端后台流量的优化方法及客户端
CN105430009A (zh) 一种网络访问方法、终端和网关服务器
US20210112093A1 (en) Measuring address resolution protocol spoofing success
EP3332533B1 (en) Parallel detection of updates to a domain name system record system using a common filter
CN105282153A (zh) 一种实现数据传输的方法及终端设备
CN105100048A (zh) WiFi网络安全鉴定方法、服务器、客户端装置和***
CN103747005A (zh) Dns缓存投毒的防护方法和设备
CN105208029A (zh) 一种数据处理方法及终端设备
CN104410679A (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

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

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting 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.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220329

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group 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: Beijing Qizhi Business Consulting Co.,Ltd.