CN106936791B - 拦截恶意网址访问的方法和装置 - Google Patents

拦截恶意网址访问的方法和装置 Download PDF

Info

Publication number
CN106936791B
CN106936791B CN201511025734.6A CN201511025734A CN106936791B CN 106936791 B CN106936791 B CN 106936791B CN 201511025734 A CN201511025734 A CN 201511025734A CN 106936791 B CN106936791 B CN 106936791B
Authority
CN
China
Prior art keywords
data packet
information
domain name
packet
payload
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201511025734.6A
Other languages
English (en)
Other versions
CN106936791A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201511025734.6A priority Critical patent/CN106936791B/zh
Publication of CN106936791A publication Critical patent/CN106936791A/zh
Application granted granted Critical
Publication of CN106936791B publication Critical patent/CN106936791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种拦截恶意网址访问的实现方法和装置,其中的方法包括:解析IP数据包,所述IP数据包包括虚拟网卡处的IP数据包;在确定出所述IP数据包中包含有域名信息的情况下,将所述域名信息与恶意网址集合中的信息进行比对;在比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对所述IP数据包进行拦截处理。根据本发明的方案,可以全面有效的防止恶意网络访问行为所带来的危害,提高了智能电子设备的安全性能,且具有适用性能好以及易于推广普及等特点。

Description

拦截恶意网址访问的方法和装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种拦截恶意网址访问的方法以及拦截恶意网址访问的装置。
背景技术
随着互联网技术尤其是移动互联网技术的迅猛发展,用户往往可以利用其智能电子设备尤其是智能移动电话随时随地的进行网络访问。由于智能电子设备(如智能电子设备中安装的应用等)对恶意网址的访问行为往往会造成用户个人信息的泄露甚至个人财产损失等危害,因此,用户对网络访问安全问题的重视程度逐渐增强。
现有的避免智能电子设备访问恶意网址的方法主要包括如下三种:
方法一、基于Root技术避免智能电子设备对恶意网址的访问;即在Root状态下,基于Netfilter设置hook(钩子),以使DNS请求的应答消息进入本地预定队列中,从而在预定队列中的应答消息的域名的MD5值与本地恶意网址库中的MD5值相匹配的情况下,可以利用本地设置的端口号为80的WEB服务器向用户展示警示页面,以提示用户当前访问的网址为恶意网址。
方法二、基于日志避免智能电子设备对恶意网址的访问;即在应用内部需要访问某一网址且需要使用浏览器应用来打开相应网页的情况下,可以从操作***(如Android操作***)生成的日志中获取本次跳转行为的相关记录,并从记录中提取需要访问的网址,在检测出该网址为恶意网址时,则可以通过弹框等方式提示用户当前访问的网址为恶意网址。
方法三、通过浏览器避免智能电子设备对恶意网址的访问;即在利用浏览器打开网页的过程中,由浏览器提取需要访问的网址,并利用本地或云端的恶意网址库对需要访问的网址进行检测,在检测出需要访问的网址为恶意网址的情况下,通过弹框等方式提示用户当前访问的网址为恶意网址。
发明人在实现本发明过程中发现,上述方法一由于需要获得Root权限而会使其适用范围受到限制;上述方法二不能适用于不需要使用浏览器应用打开相应网页的应用场景,如微信中的一条假红包信息,该信息在被点击后会在微信内部显示该恶意网址对应的网页;另外,操作***生成的日志会由于操作***的版本以及智能电子设备型号的不同而发生变化,这会使准确提取到需要访问的网址存在一定的难度;上述方法三同样不能适用于不需要使用浏览器应用打开相应网页的应用场景。
发明内容
本发明的目的是提供一种拦截恶意网址访问的方法和装置。
根据本发明的一个方面,提供一种拦截恶意网址访问的方法,其中,所述方法包括以下步骤:解析IP数据包,所述IP数据包包括虚拟网卡处的IP数据包;在确定出所述IP数据包中包含有域名信息的情况下,将所述域名信息与恶意网址集合中的信息进行比对;在比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对所述IP数据包进行拦截处理。
根据本发明的另一个方面,还提供了一种拦截恶意网址访问的装置,其中,所述装置包括:解析模块,用于解析IP数据包,所述IP数据包包括虚拟网卡处的IP数据包;域名信息比对模块,用于在确定出所述IP数据包中包含有域名信息的情况下,将所述域名信息与恶意网址集合中的信息进行比对;拦截处理模块,用于在比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对所述IP数据包进行拦截处理。
与现有技术相比,本发明具有以下优点:本发明通过利用智能电子设备(如智能移动电话或者平板电脑等)中的虚拟网卡(如基于VPN的虚拟网卡),可以使智能电子设备中的所有应用向外部发送的所有IP数据包都会被传输至虚拟网卡处,且外部向智能电子设备中的所有应用发送的所有IP数据包也会被传输至虚拟网卡处,这样,通过对从虚拟网卡处读取出的IP数据包进行解析,可以准确的获知包含有域名信息的所有IP数据包,通过对各IP数据包中的域名信息进行判断,并在判断出IP数据包中的域名信息属于恶意网址集合中的信息时,可以对IP数据包进行拦截处理操作;从而使本发明可以在不需要获取Root权限的情况下,有效避免恶意网址访问行为的发生。由此可知,本发明提供的技术方案能够全面有效的防止恶意网络访问行为所带来的危害,提高了智能电子设备的安全性能,且具有适用性能好以及易于推广普及等特点。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一的拦截恶意网址访问的方法流程图;
图2为本发明实施例二的拦截恶意网址访问的方法流程图;
图3为本发明实施例二的针对UDP数据包进行处理的流程图;
图4为本发明实施例二的针对TCP数据包进行处理的流程图;
图5为本发明实施例三的拦截恶意网址访问的装置示意图;
图6为本发明实施例三的第一判断模块的一种结构示意图;
图7为本发明实施例三的第一判断模块的另一种结构示意图;
图8为本发明实施例三的第一判断模块的再一种结构示意图;
图9为本发明实施例三的第一传输处理模块的一种结构示意图;
图10为本发明实施例三的拦截处理模块的一种结构示意图;
图11为本发明实施例三的第二传输处理模块的一种结构示意图;
图12为本发明实施例三的拦截恶意网址访问的装置的一种应用场景示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施例作详细描述。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
所述智能电子设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能移动电话以及PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或者基于云计算(Cloud Computing)的由大量计算机或者网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述智能电子设备可以接入网络并与网络中的其他智能电子设备进行信息交互操作。其中,所述智能电子设备所能够接入的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备以及网络等仅为举例,其他现有的或今后可能出现的智能电子设备或者网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。
后面描述所讨论的方法(其中一些通过流程图示出)实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或者微代码来实施时,用以实施必要任务的程序代码或者代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的,但是,本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或者“耦合”到另一个单元时,其可以直接连接或者耦合到所述另一个单元,也可以存在中间单元。与此相对的,当一个单元被称为“直接连接”或者“直接耦合”到另一个单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如,“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例,而不是意图限制示例性实施例。除非上下文中明确地另有所指,否则,这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定了所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或者添加一个或更多的其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本申请的技术方案作进一步详细描述。
实施例一、拦截恶意网址访问的方法。
图1为本实施例的拦截恶意网址访问的方法流程图。如图1所示,本实施例的方法主要包括:步骤S100、步骤S110以及步骤S120。本实施例所记载的方法通常是在智能电子设备中被执行的,优选的,本实施例所记载的方法通常是在智能移动电话以及平板电脑等智能电子移动设备(即用户移动设备)中执行。
下面对图1中的各步骤分别进行详细描述。
S100、解析IP(Internet Protocol,互联网协议)数据包。
具体的,本实施例中的IP数据包包括虚拟网卡处的IP数据包,更进一步而言,本实施例中的IP数据包包括基于VPN(Virtual Private Network,虚拟专用网)的虚拟网卡处的IP数据包。
本实施例可以先从智能电子设备中的基于VPN的虚拟网卡处读取IP数据包,然后,对读取出的IP数据包进行解析。
本实施例中的智能电子设备通常为基于Android(安卓)操作***的智能电子设备,如果其他操作***也支持VPN功能,则本实施例的智能电子设备也可以为基于其他操作***的智能电子设备。
本实施例在实施过程中,如果智能电子设备的操作***所提供的VPN功能没有处于开启状态,则应先执行将智能电子设备的操作***所提供的VPN功能开启的操作,且在开启VPN功能过程中,应该为虚拟网卡设置相应的IP地址,如将虚拟网卡的IP地址设置为192.168.1.8等。在虚拟网卡与目的设备(如远程服务器)之间的信息交互采用代理服务器中转方式来实现的情况下,本实施例还应在智能电子设备中设置代理服务器,如设置代理服务器的IP地址以及代理服务器的端口等。当然,虚拟网卡与目的设备之间的信息交互也可以采用除代理服务器之外的其他方式来实现,如通过在虚拟网卡与目的设备之间设置相应的协议栈来实现虚拟网卡与目的设备之间的信息交互。
智能电子设备的操作***所提供的VPN功能在被成功开启后,虚拟网卡被设置于智能电子设备中,且智能电子设备中的各应用向外部发送的所有IP数据包都会被传输至虚拟网卡处,外部向智能电子设备中的各应用所发送的所有IP数据包也都会被传输至虚拟网卡处;也就是说,智能电子设备中的所有应用与外界的IP数据包交互都需要经由虚拟网卡,因此,从虚拟网卡处读取的IP数据包可以是来自智能电子设备中的应用的IP数据包,也可以是向智能电子设备中的应用传输的IP数据包。
需要说明的是,在智能电子设备的操作***所提供的VPN功能被成功开启后,智能电子设备中的各应用在向外发送IP数据包时,会将虚拟网卡的IP地址作为其向目的设备(如远程服务器)发送的IP数据包的源IP地址(如将192.168.1.8作为IP数据包的源IP地址),而不再将智能电子设备中的物理网卡的IP地址作为IP数据包的源IP地址。
对IP数据包进行解析主要用于获取IP数据包接收方信息(即目的IP地址以及目的端口)、IP数据包发送方信息(即源IP地址以及源端口)以及IP数据包的净荷类型信息(如上层协议字段中的内容)等。
IP数据包发送方信息以及接收方信息可以准确的表示出IP数据包的传输方向,即可以准确的表示出该IP数据包是来自于智能电子设备中的应用的IP数据包,还是向智能电子设备中的应用发送的IP数据包(即来自外部的目的设备的IP数据包)。
IP数据包的净荷类型信息可以准确的表示出IP数据包中的净荷是否为TCP(Transmission Control Protocol,传输控制协议)数据包以及是否为UDP(User DatagramProtocol,用户数据报协议)数据包。
本实施例不限制对读取出的IP数据包进行解析的具体实现方式。
S110、在确定出IP数据包中包含域名信息的情况下,将该域名信息与恶意网址集合中的信息进行比对。
具体的,本实施例可以根据IP数据包解析结果信息判断该IP数据包中是否包含有域名信息。本实施例通过对IP数据包解析所获得的解析结果信息(如IP数据包接收方信息、IP数据包发送方信息以及IP数据包的净荷类型信息等)进行判断,即可确定出该IP数据包中是否包含有域名信息。
作为示例,本实施例通过对IP数据包的解析结果信息中的源IP地址或者目的IP地址的进行判断,可以确定出该IP数据包的传输方向,如判断IP数据包的解析结果信息中的源IP地址是否为智能电子设备中的虚拟网卡的IP地址,如果该源IP地址是虚拟网卡的IP地址,则可以确定出该IP数据包来自于智能电子设备中的应用;再如判断IP数据包的解析结果信息中的目的IP地址是否为智能电子设备中的代理服务器的IP地址,如果该目的IP地址是代理服务器的IP地址,则可以确定出该IP数据包是向智能电子设备中的应用发送的IP数据包。
作为示例,本实施例通过对IP数据包的解析结果信息中的IP数据包的净荷类型信息进行判断,可以确定出该IP数据包的净荷是否为TCP数据包或者UDP数据包。
作为示例,本实施例通过对IP数据包的解析结果信息中的源端口是否为用于DNS(Domain Name System,域名***)应答的端口进行判断,并结合上述对净荷类型信息的判断过程,可以确定出该IP数据包中的UDP数据包是否为基于DNS应答的UDP数据包。
作为示例,本实施例通过对IP数据包的目的端口进行判断,并结合上述对IP数据包传输方向以及净荷类型信息的判断过程,可以确定出该IP数据包中的TCP数据包是否为用于网络访问请求的TCP数据包。
本实施例通过判断确定出IP数据包中没有包含有域名信息的第一个具体例子为:在判断出IP数据包的解析结果信息中的源IP地址为虚拟网卡的IP地址,且IP数据包的解析结果信息中的IP数据包的净荷类型信息表示IP数据包的净荷为UDP数据包的情况下,可以确定出该IP数据包来自智能电子设备中的应用的包含有UDP数据包的IP数据包,从而确定出该IP数据包中没有包含域名信息。
本实施例通过判断确定出IP数据包中没有包含有域名信息的第二个具体例子为:在判断出IP数据包的解析结果信息中的目的IP地址为虚拟网卡的IP地址,且IP数据包的解析结果信息中的IP数据包的净荷类型信息表示IP数据包的净荷为UDP数据包,且IP数据包的源端口不是用于DNS应答的端口的情况下,可以确定出该IP数据包是向智能电子设备中的应用发送的包含有非DNS应答的UDP数据包的IP数据包,从而确定出该IP数据包中没有包含域名信息。
本实施例通过判断确定IP数据包中没有包含有域名信息的第三个具体例子为:在判断出IP数据包的解析结果信息中的源IP地址为虚拟网卡的IP地址,且IP数据包的解析结果信息中的IP数据包的净荷类型信息表示IP数据包的净荷为TCP数据包,且IP数据包的目的端口不是用于网络访问请求(HTTP/HTTPS请求)的端口(如80端口或者8080端口)的情况下,可以确定出该IP数据包不是用于网络访问请求的IP数据包,即可以确定出该IP数据包中没有包含域名信息。
本实施例通过判断确定IP数据包中没有包含有域名信息的第四个具体例子为:在判断出IP数据包的解析结果信息中的目的IP地址为代理服务器的IP地址,且IP数据包的解析结果信息中的IP数据包的净荷类型信息表示IP数据包的净荷为TCP数据包的情况下,可以确定出该IP数据包中没有包含域名信息。
本实施例通过判断确定出IP数据包中包含有域名信息的第一个具体例子为:在判断出IP数据包的解析结果信息中的目的IP地址为虚拟网卡的IP地址,且IP数据包的解析结果信息中的IP数据包的净荷类型信息表示IP数据包的净荷为UDP数据包,且IP数据包的源端口是用于DNS应答的端口(如53端口)的情况下,可以确定出该IP数据包是向智能电子设备中的应用发送的包含有DNS应答的UDP数据包的IP数据包,从而确定出该IP数据包中包含有域名信息。
本实施例通过判断确定出IP数据包中包含有域名信息的第二个具体例子为:在判断出该IP数据包的解析结果信息中的源IP地址为虚拟网卡的IP地址,且该IP数据包的解析结果信息中的IP数据包的净荷类型信息表示IP数据包的净荷为TCP数据包,且IP数据包的目的端口是用于网络访问请求(HTTP/HTTPS请求)的端口(如80端口或者8080端口)的情况下,可以确定出该IP数据包是用于网络访问请求的IP数据包,即可以确定出该IP数据包中包含有域名信息。需要说明的是,本实施例可以在判断出该TCP数据包的净荷所对应的目的IP地址不为预定IP地址时,再判断该IP数据包的目的端口是否为用于网络访问请求的端口,而在确定出该TCP数据包的净荷所对应的原始目的IP地址是预定IP地址时,不再继续进行该IP数据包中是否包含有域名信息的判断操作。
本实施例在智能电子设备中设置代理服务器的情况下,可以在代理服务器处针对净荷为TCP数据包的IP数据包进行是否包含有域名信息的判断操作(针对净荷为UDP数据包的IP数据包进行是否包含有域名信息的判断操作可以不在代理服务器处执行);例如,由代理服务器针对该IP数据包而建立的TCPsession(TCP会话)来执行IP数据包是否包含有域名信息的判断操作。
本实施例通过设置代理服务器并结合socket连接技术,可以使本发明的拦截恶意网址访问的技术方案更易于实施。当然,本实施例也可以采用设置协议栈的方式来实现,即虚拟网卡与目的设备之间的数据中转通过协议栈来实现,从而本发明可以在协议栈处实现是否包含有域名信息的判断操作、IP数据包的传输操作以及IP数据包的拦截操作等。
在智能电子设备中设置了代理服务器的情况下,本实施例的判断IP数据包是否包含有域名信息的一个具体实现过程可以为:判断从虚拟网卡处读取出的IP数据包的源IP地址是否为智能电子设备中的虚拟网卡的IP地址,如果该IP数据包的源IP地址是虚拟网卡的IP地址,则可以确定出该IP数据包来自于智能电子设备中的应用,如果该IP数据包的目的IP地址是代理服务器的IP地址,则可以确定出该IP数据包是向智能电子设备中的应用发送的IP数据包;与此同时,还应对该IP数据包的净荷类型信息进行判断,以确定该IP数据包的净荷是否为TCP数据包或者UDP数据包;将上述判断过程结合起来,如果判断出IP数据包来自于智能电子设备中的应用,且该IP数据包的净荷是TCP数据包,则可以将该TCP数据包的净荷通过针对该IP数据包的发送方和接收方而建立的基于虚拟网卡和代理服务器的socket连接(为了与其他socket连接进行区分,该socket连接在下述描述中称为第一socket连接)传输至代理服务器处。具体的,本实施例在针对该IP数据包的发送方和接收方还没有建立第一socket连接的情况下,应先建立第一socket连接再利用该第一socket连接传输TCP数据包的净荷,本实施例在针对该IP数据包的发送方和接收方已经成功建立了第一socket连接的情况下,可以直接利用该第一socket连接传输TCP数据包的净荷。本实施例建立第一socket连接的过程可以为:将该IP数据包的源端口、目的IP地址以及目的端口本地存储,如将IP数据包的源端口、目的IP地址以及目的端口作为一条记录存储于表(如下述表1)中;然后,将代理服务器的IP地址以及代理服务器的端口作为IP数据包的目的IP地址以及目的端口,利用当前源IP地址、源端口、目的IP地址以及目的端口发送第一socket连接请求,在代理服务器对该连接请求作出同意连接的应答后,成功建立第一socket连接请求。在代理服务器处,接收到TCP数据包的净荷后,可以根据该TCP数据包的净荷所对应的源端口在上述存储的信息(如下述表1)中查询,以获取该TCP数据包的净荷所对应的原始目的端口(即从虚拟网卡处读取出IP数据包时,该IP数据包的目的端口),并判断原始目的端口是否为用于网络访问请求(如HTTP/HTTPS请求)的端口(如80端口或者8080端口等),如果原始目的端口不是用于网络访问请求(如HTTP/HTTPS请求)的端口,则可以确定出该IP数据包不是用于网络访问请求的IP数据包,即该IP数据包中没有包含域名信息,如果IP数据包的目的端口是用于网络访问请求(如HTTP/HTTPS请求)的端口(如80端口或者8080端口),则可以确定该IP数据包是用于网络访问请求的IP数据包,即该IP数据包中包含有域名信息。
作为示例,本实施例在确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包进行传输处理,如在IP数据包是来自智能电子设备中的应用的IP数据包的情况下,将该IP数据包向目的设备发送出去,再如在IP数据包是发送给智能电子设备中的应用的IP数据包的情况下,通过将IP数据包写入虚拟网卡来将IP数据包发送给应用。
针对上述描述的第一个具体的例子而言,本实施例在确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包所执行的传输处理操作可以为:利用针对该IP数据包的接收方和发送方而建立的基于虚拟网卡和目的设备的socket连接(为了与其他socket连接进行有效区分,该socket连接在下述描述中称为第三socket连接)传输该UDP数据包的净荷。需要说明的是,本实施例在针对该IP数据包的发送方和接收方还没有建立第三socket连接的情况下,应该首先建立第三socket连接再传输UDP数据包的净荷(如发送socket连接请求,并在对方针对该连接请求作出同意的应答后,成功建立第三socket连接),再利用当前建立的第三socket连接传输UDP数据包的净荷。本实施例在针对该IP数据包的发送方和接收方已经成功建立了第三socket连接的情况下,可以直接利用该第三socket连接传输该UDP数据包的净荷。向目的设备发送的UDP数据包的净荷通常会由物理网卡对应的协议栈进行IP数据包封装等处理,并向目的设备发送封装后的IP数据包。
针对上述描述的第二个具体的例子而言,本实施例在确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包所执行的传输处理操作可以为:直接将该IP数据包写入虚拟网卡中,使该IP数据包经由虚拟网卡传输至相应的应用。
针对上述描述的第三个具体的例子而言,本实施例在确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包所执行的传输处理操作可以为:在代理服务器处,将该TCP数据包的净荷通过基于代理服务器和目的设备的socket连接(为了与其他socket连接进行区分,该socket连接在下述描述中称为第二socket连接)传输。需要说明的是,本实施例在针对该IP数据包还没有建立第二socket连接的情况下,应首先建立第二socket连接再传输TCP数据包的净荷(如发送socket连接请求,并在对方针对该连接请求作出同意的应答后,成功建立第二socket连接),然后,利用当前建立的第二socket连接传输该TCP数据包的净荷;而本实施例在针对该IP数据包已经成功建立了第二socket连接的情况下,可以直接利用该第二socket连接传输TCP数据包的净荷。向目的设备发送的TCP数据包的净荷通常会由物理网卡对应的协议栈进行IP数据包封装等处理,并向目的设备发送封装后的IP数据包。
针对上述描述的第四个具体的例子而言,本实施例在确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包所执行的传输处理操作可以为:将该IP数据包的源IP地址、源端口以及目的IP地址分别修改为目的设备的IP地址、目的设备的端口以及虚拟网卡的IP地址,并将修改后的IP数据包写入虚拟网卡中,使修改后的IP数据包经由虚拟网卡传输至相应的应用。
本实施例中的最终发送给目的设备(如远程服务器)的IP数据包的目的IP地址和目的端口与该IP数据包在从虚拟网卡处读取出时的目的IP地址和目的端口相同,而源IP地址和源端口为代理服务器的IP地址和代理服务器的端口。
表1(Local-Remote表)
本地端口信息 远程服务器信息
LocalPort_1 RemoteIp_1,RemotePort_1
LocalPort_2 RemoteIp_2,RemotePort_2
…… ……
LocalPort_N RemoteIp_N,RemotePort_N
在上述表1中,本地端口信息即IP数据包的源端口(应用的端口),远程服务器信息即IP数据包的目的IP地址(即原始目的IP地址)和目的端口(即原始目的端口)。
需要特别说明的是,本实施例中的第一socket连接、第二socket连接以及第三socket连接主要用于智能电子设备中的应用与外部目的设备(如远程服务器等)之间的IP数据包交互,且第一socket连接、第二socket连接以及第三socket连接通常是在应用不再需要与外部目的设备(如远程服务器等)进行IP数据包交互或者由于本实施例的拦截操作而被删除。
作为示例,本实施例在确定出该IP数据包中包含有域名信息的情况下,应执行域名信息提取操作,在智能电子设备本地设置的恶意网址集合(如恶意网址库)中存储的信息为恶意域名信息的MD5值的情况下,本实施例可以将提取出的域名信息转换为MD5值,然后,将转换后的MD5值与恶意网址集合中的各MD5值进行比对,以确定恶意网址集合中是否存在与转换后的MD5值相匹配的MD5值。
作为示例,本实施例中的恶意网址集合通常可以根据需求随时更新,如在云服务器中的恶意网址库发生变化时,对智能电子设备中的恶意网址库进行更新。
S120、在上述比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对该IP数据包进行拦截处理。
具体的,本实施例针对IP数据包进行拦截处理可以为:针对向智能电子设备中的应用发送的净荷为基于DNS应答的UDP数据包的IP数据包而言,针对该IP数据包进行标记处理,以便于后续可以根据该标记执行相应的操作。
本实施例针对域名信息与恶意网址集合中的信息相匹配的IP数据包所进行拦截处理也可以为:针对来自智能电子设备中的应用的净荷为TCP数据包的IP数据包而言,断开该应用与其要访问的目的设备(如远程服务器)之间的连接,以避免应用与具有恶意网址的目的设备之间的IP数据包交互。
作为示例,针对向智能电子设备中的应用发送的净荷为基于DNS应答的UDP数据包的IP数据包而言,上述针对IP数据包进行标记处理的过程可以具体为:将UDP数据包净荷中的DNS查询结果修改为表征恶意网址的预定IP地址,并对修改后的UDP数据包净荷进行IP封装处理等操作,形成新的IP数据包(该新的IP数据包的目的IP地址是虚拟网卡的IP地址,目的端口为应用对应的端口,源IP地址为目的设备的IP地址,且源端口为目的设备的用于DNS应答的端口(如53端口等)),之后,将该新的IP数据包写入虚拟网卡中,从而该IP数据包可以经由虚拟网卡传输至相应的应用。
作为示例,智能电子设备中的应用在接收到虚拟网卡传输来的包含有修改后的DNS查询结果信息IP数据包后,会从该IP数据包中的UDP数据包净荷中提取修改后的DNS查询结果信息,并利用DNS查询结果信息中的预定IP地址进行网络访问请求操作,即形成净荷为TCP数据包的IP数据包,该IP数据包的目的IP地址为该预定IP地址,且该IP数据包的目的端口为用于网络访问请求(如HTTP/HTTPS请求)的端口(如80端口或者8080端口),该IP数据包的源IP地址为虚拟网卡的IP地址,且该IP数据包的源端口为应用对应的端口。在从虚拟网卡处读取该IP数据包后,将该IP数据包的目的IP地址和目的端口修改为代理服务器的IP地址和端口,并针对修改后的该IP数据包建立第一socket连接,然后,将该IP数据包的TCP数据包中的净荷通过该第一socket连接传输至代理服务器处,在代理服务器处,在判断出该TCP数据包中的净荷对应的原始目的IP地址为预定IP地址的情况下,应禁止该TCP数据包的净荷的继续传输(即针对该IP数据包进行拦截处理),如丢弃该TCP数据包的净荷,且如果本实施例还没有针对该TCP数据包的净荷建立第二socket连接,则可以只断开该TCP数据包的净荷所对应的第一socket连接;如果本实施例已经针对该TCP数据包净荷建立了第二socket连接,则应将该TCP数据包的净荷所对应的第一socket连接以及第二socket连接均断开。另外,本实施例还可以向应用返回包含有警示页面的HTML数据。
作为示例,本实施例还可以在上述比对结果为域名信息与恶意网址集合中的信息不相匹配的情况下,针对该IP数据包进行传输处理。
具体的,本实施例在确定出IP数据包中没有包含域名信息的情况下,应针对该IP数据包进行传输处理,如在IP数据包来自智能电子设备中的应用的情况下,继续向目的设备发送该IP数据包,再如在IP数据包是发送给智能电子设备中的应用的IP数据包的情况下,继续向相应的应用发送该IP数据包。
作为示例,本实施例在设置有代理服务器的情况下,针对来自应用的IP数据包中的TCP数据包的净荷,将该TCP数据包的净荷通过针对该IP数据包的发送方和接收方而建立的第二socket连接发送。需要说明的是,本实施例在针对该IP数据包的发送方和接收方还没有建立第二socket连接的情况下,应首先建立第二socket连接再传输TCP数据包的净荷(如发送socket连接请求,并在对方针对该连接请求作出同意的应答后,成功建立第二socket连接),本实施例在针对该IP数据包的发送方和接收方已经成功建立了第二socket连接的情况下,可以直接利用该第二socket连接传输TCP数据包的净荷。经由第二socket连接发送的净荷会在物理网卡对应的协议栈处进行IP数据包封装等处理(在封装处理过程中会使用上述存储的记录如表1中的记录),并向外部目的设备发送封装后的IP数据包。本实施例中的向外部目的设备发送的封装后的IP数据包的目的IP地址和目的端口为目的设备的IP地址和端口,源IP地址和源端口为代理服务器的IP地址和代理服务器的端口。
实施例二、拦截恶意网址访问的方法。该方法的流程如图2-图4所示。
图2中,S200、开启智能电子设备中的Andriod操作***所支持的VPN服务,设置虚拟网卡的相关参数,设定虚拟网卡的IP地址为VirtualIP;在智能电子设备中设置代理服务器,且设定代理服务器的IP地址和端口分别为ProxyIp和ProxyPort。到S210。
本实施例中的代理服务器主要用于对socket连接请求进行监听,并在监听到socket连接请求时,对socket连接请求进行同意socket连接或者拒绝socket连接的应答;代理服务器还用于在同意socket连接后,针对该socket连接建立TCPsession(TCP会话),以便于由TCPsession针对净荷为TCP类型的IP数据包进行域名信息判断等操作。
S210、智能电子设备中的各应用向远程服务器发送的IP数据包首先被传输至虚拟网卡处,且远程服务器向智能电子设备中的各应用发送的IP数据包也首先被传输至虚拟网卡处。本实施例可以从虚拟网卡处不断的读取IP数据包。到S220。
S220、对IP数据包进行解析处理,以获取IP数据包的源IP地址、源端口、目的IP地址、目的端口以及净荷类型信息等。
S230、对上述解析获得的净荷类型信息进行判断,以确定该IP数据包中的净荷是TCP数据包,还是UDP数据包,如果是TCP数据包,则到S240,而如果是UDP数据包,则到S231。
S231、对上述解析获得的该IP数据包的源IP地址和目的IP地址进行判断,以确定该IP数据包的传输方向,如果IP数据包的源IP地址为虚拟网卡的IP地址,则确定出该IP数据包是来自应用的IP数据包,到S232;如果目的IP地址为虚拟网卡的IP地址,则确定出该IP数据包是向应用发送的IP数据包,到S233。
S232、利用基于虚拟网卡和目的设备的socket连接传输该UDP数据包的净荷,使该UDP数据包的净荷可以由物理网卡对应的协议栈进行IP封装等操作,并向目的设备(如远程服务器)发送封装后形成的IP数据包。
S233、执行UDP数据包是否为基于DNS应答的UDP数据包以及DNS查询结果判断操作,具体过程请参见下述针对图3的说明。
S240、对上述解析获得的该IP数据包的源IP地址和目的IP地址进行判断,以确定该IP数据包的传输方向,如果IP数据包的源IP地址为虚拟网卡的IP地址,则确定出该IP数据包是来自应用的IP数据包,到S241;如果目的IP地址为代理服务器的IP地址,则确定出该IP数据包是向应用发送的IP数据包,到S243。
S241、利用基于虚拟网卡和代理服务器的socket连接传输TCP数据包的净荷,使TCP数据包的净荷被传输至代理服务器处。也就是说,本实施例将该IP数据包的目的IP地址和目的端口修改为代理服务器的IP地址和代理服务器的端口,以便于该IP数据包被传输至代理服务器处。到S242。
S242、执行是否包含有域名信息以及域名信息与恶意网址集合中的信息的匹配操作,具体过程请参见下述针对图4的说明。
S243、将IP数据包的目的IP地址修改为虚拟网卡的IP地址,将源IP地址修改为外部目的设备(如远程服务器)的IP地址,将源端口修改为外部目的设备的端口,然后,将接收方信息和发送方信息修改后的IP数据包写入虚拟网卡中。
图3中,S300、开始针对UDP数据包进行处理。
S310、获取UDP数据包对应的源端口。
S320、判断该UDP数据包的源端口是否为用于DNS应答的端口(如53端口),如果是用于DNS应答的端口,则到S330,如果不是用于DNS应答的端口,则到S360。
S330、获取UDP数据包中的DNS查询结果,即域名信息,在智能电子设备本地设置的恶意网址集合(如恶意网址库)中存储的信息为恶意域名信息的MD5值的情况下,可以将获取的域名信息转换为MD5值。
S340、判断域名信息是否与恶意网址集合中的信息相匹配,如将转换后的MD5值与恶意网址集合中的各MD5值进行比对,以确定恶意网址集合中是否存在与转换后的MD5值相匹配的MD5值,如果匹配,则到S350,如果不匹配,则到S360。
S350、将净荷中的查询结果修改为表征恶意网址的预定IP地址(如RedirectIP)。
S360、针对净荷形成IP数据包。
S370、将上述形成的IP数据包写入虚拟网卡中,以便于该IP数据包可以经由虚拟网卡传输至相应的应用。
图4中,S400、在代理服务器处,针对TCP数据包进行处理。
S410、获取该UDP数据包对应的目的IP地址,如通过查表1获得目的IP地址。
S420、判断该目的IP地址是否为预定IP地址(如RedirectIP),如果是预定IP地址,则到S480,如果不是预定IP地址,则到S430。
S430、获取TCP数据包对应的目的端口。
S440、根据该目的端口判断该TCP数据包是否为基于HTTP/HTTPS网络访问请求的TCP数据包,如果是基于HTTP/HTTPS网络访问请求的TCP数据包,则到S450,如果不是基于HTTP/HTTPS网络访问请求的TCP数据包,则到S470。
S450、从净荷中提取域名信息,并计算该域名信息的MD5值。
S460、判断恶意网址库中是否存在与该MD5值匹配的MD5值,如果存在匹配的MD5值,则到S480,如果不存在匹配的MD5值,则到S470。
S470、基于代理服务器与目的设备之间的socket连接传输该TCP数据包的净荷。
S480、断开基于虚拟网卡与代理服务器之间的socket连接,并向应用发送警示页面,以提示用户本次网络访问存在安全问题。
实施例三、拦截恶意网址访问的实现装置。
本实施例的拦截恶意网址访问的实现装置的结构如图5-图12所示。
图5中的装置主要包括:解析模块510域名信息比对模块540以及拦截处理模块550。可选的,该装置还可以包括:读取模块500、第一判断模块520、第一传输处理模块530、第二传输处理模块560以及第三判断模块570中的任意一个或者多个。
解析模块510主要用于解析IP数据包。本实施例中的解析模块510可以独立于图12中的虚拟网卡包处理模块而独立设置,当然,也可以设置于图12中的虚拟网卡包处理模块中。
具体的,解析模块510解析的IP数据包为虚拟网卡处的IP数据包,更进一步而言,解析模块510解析的IP数据包为基于VPN(Virtual Private Network,虚拟专用网)的虚拟网卡处的IP数据包。
作为示例,解析模块510解析读取模块500读取出的IP数据包。
读取模块500主要用于从智能电子设备中的基于虚拟专用网VPN的虚拟网卡处读取IP数据包。本实施例中的读取模块500可以设置于图12中的虚拟网卡包处理模块中。
作为示例,本实施例在实施过程中,如果智能电子设备的操作***所提供的VPN功能没有处于开启状态,则可以利用VPN服务控制模块先执行将智能电子设备的操作***所提供的VPN功能开启的操作,且在开启VPN功能过程中,VPN服务控制模块应该为虚拟网卡设置相应的IP地址,如VPN服务控制模块将虚拟网卡的IP地址设置为192.168.1.8等。在虚拟网卡与目的设备之间的信息交互采用代理服务器中转方式来实现的情况下,VPN服务控制模块还应在智能电子设备中设置代理服务器,如VPN服务控制模块设置代理服务器的IP地址以及代理服务器的端口等。当然,虚拟网卡与目的设备之间的信息交互也可以采用除代理服务器之外的其他方式来实现,如通过在虚拟网卡与目的设备之间设置相应的协议栈来实现虚拟网卡与目的设备之间的信息交互。
智能电子设备的操作***所提供的VPN功能在被VPN服务控制模块成功开启后,虚拟网卡被设置于智能电子设备中,且智能电子设备中的各应用向外部发送的所有IP数据包都会被传输至虚拟网卡处,外部向智能电子设备中的各应用所发送的所有IP数据包也都会被传输至虚拟网卡处;也就是说,智能电子设备中的所有应用与外界的IP数据包交互都需要经由虚拟网卡,因此,读取模块500从虚拟网卡处读取的IP数据包可以是来自智能电子设备中的应用的IP数据包,也可以是向智能电子设备中的应用传输的IP数据包。
解析模块510对IP数据包进行解析主要用于获取IP数据包接收方信息(即目的IP地址以及目的端口)、IP数据包发送方信息(即源IP地址以及源端口)以及IP数据包的净荷类型信息(如上层协议字段中的内容)等。本实施例不限制解析模块510对读取模块500读取出的IP数据包进行解析的具体实现方式。
第一判断模块520主要用于根据解析模块510的IP数据包解析结果信息判断该IP数据包中是否包含有域名信息。
第一判断模块520中的第一判断子模块521(如图6所示)主要用于根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定IP数据包来自智能电子设备中的应用且所述IP数据包的净荷是UDP数据包时,确定IP数据包中没有包含域名信息。本实施例中的第一判断子模块521可以设置于图12中的虚拟网卡包处理模块中。
第一判断模块520中的第二判断子模块522(如图7所示)主要用于根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定IP数据包是向智能电子设备中的应用发送的IP数据包且IP数据包的净荷是基于域名***DNS应答的UDP数据包时,确定出IP数据包中包含域名信息。本实施例中的第二判断子模块522可以设置于图12中的虚拟网卡包处理模块中。当然,第二判断子模块522中的判断IP数据包的净荷是否为DNS应答的UDP数据包的部分可以设置于UDP处理模块中,而对其他内容的判断部分可以设置于虚拟网卡包处理模块中。
第一判断模块520中的第一传输子模块523(如图8所示)主要用于在根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定出IP数据包来自智能电子设备中的应用且IP数据包的净荷是传输控制协议TCP数据包时,利用针对IP数据包的发送方和接收方而建立的基于虚拟网卡和代理服务器的socket连接传输该TCP数据包的净荷。本实施例中的第一传输子模块523可以设置于图12中的虚拟网卡包处理模块中。作为另一种可能,第一传输子模块523中执行判断操作的部分可以设置于图12中的虚拟网卡包处理模块中,而执行建立基于虚拟网卡和代理服务器的socket连接以及传输净荷的部分可以设置于TCP处理模块中。
第一判断模块520中的第三判断子模块524(如图8所示)主要用于针对传输至代理服务器处的净荷判断IP数据包中是否包含有域名信息;且该第三判断子模块524主要包括获取子模块以及第四判断子模块;其中的获取子模块主要用于根据IP数据包的源端口获取TCP数据包的净荷所对应的原始目的端口;其中的第四判断子模块主要用于在判断出原始目的端口不是用于网络访问请求的端口时,确定该IP数据包中没有包含域名信息,在判断出原始目的端口是用于网络访问请求的端口时,确定出该IP数据包中包含有域名信息。本实施例中的第三判断子模块524可以设置于图12中的TCP处理模块中。
第一判断模块520以及其各子模块所执行的操作具体如上述S120中的描述,在此不再重复的详细说明。
第一传输处理模块530主要用于在第一判断模块520确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包进行传输处理。
第一传输处理模块530中的传输子模块531(如图9所示)主要用于利用针对IP数据包的发送方和接收方而建立的基于虚拟网卡和目的设备的socket连接传输UDP数据包的净荷。本实施例中的传输子模块531可以设置于图12中的UDP处理模块中。
具体的,第一传输处理模块530在第一判断模块520确定出IP数据包中没有包含域名信息的情况下,应针对该IP数据包进行传输处理,如在IP数据包是来自智能电子设备中的应用的IP数据包的情况下,第一传输处理模块530(如传输子模块)将该IP数据包向目的设备发送出去,再如在IP数据包是发送给智能电子设备中的应用的IP数据包的情况下,第一传输处理模块530通过将IP数据包写入虚拟网卡来将IP数据包发送给应用。
一个具体的例子,第一传输处理模块530将传输至代理服务器处的TCP数据包的净荷通过基于代理服务器和目的设备的socket连接(即第二socket连接)传输。需要说明的是,在针对该IP数据包还没有建立第二socket连接的情况下,第一传输处理模块530应首先建立第二socket连接再传输TCP数据包的净荷(如第一传输处理模块530发送socket连接请求,并在对方针对该连接请求作出同意的应答后,成功建立第二socket连接),然后,第一传输处理模块530利用当前建立的第二socket连接传输该TCP数据包的净荷;而第一传输处理模块530在针对该IP数据包已经成功建立了第二socket连接的情况下,可以直接利用该第二socket连接传输TCP数据包的净荷。第一传输处理模块530执行这部分操作的内容可以设置于图12中的TCP处理模块中。
另一个具体的例子,第一传输处理模块530在第一判断模块520确定出IP数据包中没有包含域名信息的情况下,针对该IP数据包所执行的传输处理操作可以为:第一传输处理模块530将该IP数据包的源IP地址、源端口以及目的IP地址分别修改为目的设备的IP地址、目的设备的端口以及虚拟网卡的IP地址,并将修改后的IP数据包写入虚拟网卡中,使修改后的IP数据包经由虚拟网卡传输至相应的应用。第一传输处理模块530执行这部分操作的内容可以设置于图12中的虚拟网卡包处理模块中。
域名信息比对模块540主要用于在第一判断模块530确定出IP数据包中包含有域名信息的情况下,将该域名信息与恶意网址集合中的信息进行比对。本实施例中的域名信息比对模块540可以设置于图12中的检测模块中。
具体的,域名信息比对模块540在第一判断模块530确定出该IP数据包中包含有域名信息的情况下,应执行域名信息提取操作,在域名信息比对模块540本地设置的恶意网址集合(如恶意网址库)中存储的信息为恶意域名信息的MD5值的情况下,域名信息比对模块540可以将提取出的域名信息转换为MD5值,然后,域名信息比对模块540将转换后的MD5值与恶意网址集合中的各MD5值进行比对,以确定恶意网址集合中是否存在与转换后的MD5值相匹配的MD5值。
作为示例,域名信息比对模块540中的恶意网址集合通常可以根据需求随时更新,如在云服务器中的恶意网址库发生变化时,对域名信息比对模块540中的恶意网址库进行更新。
拦截处理模块550主要用于在域名信息比对模块540所执行的比对操作的结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对该IP数据包进行拦截处理。本实施例中的拦截处理模块550可以设置于图12中的阻断模块中。
具体的,拦截处理模块550针对IP数据包进行拦截处理可以为:针对向智能电子设备中的应用发送的净荷为基于DNS应答的UDP数据包的IP数据包而言,拦截处理模块550针对该IP数据包进行标记处理,以便于后续可以根据该标记执行相应的操作。一种可能的情况,拦截处理模块550所执行的这部分操作设置于图12中的UDP处理模块和虚拟网卡包处理模块中也是完全可行的。
拦截处理模块550中的查询结果更改子模块551(如图10所示)主要用于将UDP数据包中的DNS查询结果修改为表征恶意网址的预定IP地址。本实施例中的查询结果更改子模块551可以设置于图12中的UDP处理模块中。
拦截处理模块550中的虚拟网卡写入子模块552(如图10所示)主要用于将修改DNS查询结果后的IP数据包写入虚拟网卡中,使包含有修改DNS查询结果的IP数据包经由虚拟网卡传输至相应的应用。本实施例中的查询结果更改子模块551可以设置于图12中的虚拟网卡包处理模块中。
作为示例,针对向智能电子设备中的应用发送的净荷为基于DNS应答的UDP数据包的IP数据包而言,拦截处理模块550针对IP数据包进行标记处理的过程可以具体为:查询结果更改子模块551将UDP数据包净荷中的DNS查询结果修改为表征恶意网址的预定IP地址,虚拟网卡写入子模块552对修改后的UDP数据包净荷进行IP封装处理等操作,形成新的IP数据包(该新的IP数据包的目的IP地址是虚拟网卡的IP地址,目的端口为应用对应的端口,源IP地址为目的设备的IP地址,且源端口为目的设备的用于DNS应答的端口(如53端口等)),之后,虚拟网卡写入子模块552将该新的IP数据包写入虚拟网卡中,从而该IP数据包可以经由虚拟网卡传输至相应的应用。
拦截处理模块550针对域名信息与恶意网址集合中的信息相匹配的IP数据包所进行拦截处理也可以为:针对来自智能电子设备中的应用的净荷为TCP数据包的IP数据包而言,断开该应用与其要访问的目的设备(如远程服务器)之间的连接,以避免应用与具有恶意网址的目的设备之间的IP数据包的交互。拦截处理模块550所执行的这部分操作可以设置于图12中的阻断模块中。
作为示例,智能电子设备中的应用在接收到虚拟网卡传输来的包含有修改后的DNS查询结果信息IP数据包后,会从该IP数据包中的UDP数据包净荷中提取修改后的DNS查询结果信息,并利用DNS查询结果信息中的预定IP地址进行网络访问请求操作,即形成净荷为TCP数据包的IP数据包,该IP数据包的目的IP地址为该预定IP地址,且该IP数据包的目的端口为用于网络访问请求(如HTTP/HTTPS请求)的端口(如80端口或者8080端口),该IP数据包的源IP地址为虚拟网卡的IP地址,且该IP数据包的源端口为应用对应的端口。在读取模块500从虚拟网卡处读取该IP数据包后,解析模块510对该IP数据包进行解析,第一传输子模块523将该IP数据包的目的IP地址和目的端口修改为代理服务器的IP地址和端口,并与代理服务器进行配合以针对修改后的该IP数据包建立第一socket连接,然后,第一传输子模块523将该IP数据包的TCP数据包中的净荷通过该第一socket连接传输至代理服务器处,第三判断模块570在判断出该TCP数据包中的净荷对应的原始目的IP地址为预定IP地址的情况下,应通知阻断模块(如拦截处理模块550)来禁止该TCP数据包的净荷的继续传输(即针对该IP数据包进行拦截处理),如阻断模块(如拦截处理模块550)丢弃该TCP数据包的净荷,且如果本实施例还没有针对该TCP数据包的净荷建立第二socket连接,则阻断模块(如拦截处理模块550)可以只断开该TCP数据包的净荷所对应的第一socket连接;如果代理服务器已经针对该TCP数据包净荷建立了第二socket连接,则阻断模块(如拦截处理模块550)应将该TCP数据包的净荷所对应的第一socket连接以及第二socket连接均断开。另外,阻断模块(如拦截处理模块550)还可以向应用返回包含有警示页面的HTML数据(如通过第一socket连接向应用返回包含有警示页面的HTML数据)。
第二传输处理模块560主要用于在域名信息比对模块540的比对结果为域名信息与恶意网址集合中的信息不相匹配的情况下,针对该IP数据包进行传输处理。本实施例中的第二传输处理模块560可以设置于图12中的TCP处理模块以及UDP处理模块中。
第二传输处理模块560中的第二传输子模块561(如图11所示)主要用于利用针对该IP数据包的发送方和接收方而建立的基于代理服务器和目的设备的socket连接传输所述TCP数据包的净荷。第二传输处理模块560所执行的这部分操作可以设置于图12中的TCP处理模块中。
具体的,针对来自应用的IP数据包中的TCP数据包的净荷,第二传输子模块561将该TCP数据包的净荷通过针对该IP数据包的发送方和接收方而建立的第二socket连接发送。需要说明的是,在针对该IP数据包的发送方和接收方还没有建立第二socket连接的情况下,第二传输子模块561应首先建立第二socket连接再传输TCP数据包的净荷(如发送socket连接请求,并在对方针对该连接请求作出同意的应答后,成功建立第二socket连接),本实施例在针对该IP数据包的发送方和接收方已经成功建立了第二socket连接的情况下,第二传输子模块561可以直接利用该第二socket连接传输TCP数据包的净荷。经由第二socket连接发送的净荷会在物理网卡对应的协议栈处进行IP数据包封装等处理(在封装处理过程中会使用上述存储的记录如表1中的记录),并向外部目的设备发送封装后的IP数据包。本实施例中的向外部目的设备发送的封装后的IP数据包的目的IP地址和目的端口为目的设备的IP地址和端口,源IP地址和源端口为代理服务器的IP地址和代理服务器的端口。
第三判断模块570主要用于在确定出基于虚拟网卡和代理服务器的socket连接传输至代理服务器处的TCP数据包的净荷所对应的目的IP地址为预定IP地址时,针对该IP数据包进行拦截处理。第三判断模块570所执行的操作请参见本实施例中针对拦截处理模块550描述中的相关部分。
需要注意的是,本发明的一部分可以被应用为计算机程序产品,例如计算机程序指令,当其被智能电子设备(如智能移动电话或者平板电脑等)执行时,通过该智能电子设备的操作可以调用或者提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或者其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的智能电子设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (20)

1.一种拦截恶意网址访问的方法,包括:
解析IP数据包,所述IP数据包包括虚拟网卡处的IP数据包,其中
从智能电子设备中的基于虚拟专用网VPN的虚拟网卡处读取IP数据包;
在确定出所述IP数据包中包含有域名信息的情况下,将所述域名信息与恶意网址集合中的信息进行比对,其中
根据IP数据包解析结果信息判断所述IP数据包中是否包含有域名信息,所述IP数据包解析结果信息包括IP数据包接收方信息、IP数据包发送方信息以及IP数据包的净荷类型信息,其中包括:
根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定所述IP数据包来自智能电子设备中的应用且所述IP数据包的净荷是用户数据报协议UDP数据包时,确定所述IP数据包中没有包含域名信息;
在确定出所述IP数据包中没有包含域名信息的情况下,针对所述IP数据包进行传输处理;
在比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对所述IP数据包进行拦截处理。
2.根据权利要求1所述的方法,其中,所述在确定出所述IP数据包中没有包含域名信息的情况下,针对所述IP数据包进行传输处理包括:
利用针对所述IP数据包的发送方和接收方而建立的基于虚拟网卡和目的设备的套接字socket连接传输所述UDP数据包的净荷。
3.根据权利要求1所述的方法,其中,所述根据所述IP数据包解析结果信息判断所述IP数据包中是否包含有域名信息包括:
根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定所述IP数据包是向智能电子设备中的应用发送的IP数据包且所述IP数据包的净荷是基于域名***DNS应答的UDP数据包时,确定出所述IP数据包中包含域名信息。
4.根据权利要求3所述的方法,其中,所述在比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对所述IP数据包进行拦截处理包括:
将所述UDP数据包中的DNS查询结果修改为表征恶意网址的预定IP地址;
将修改DNS查询结果后的IP数据包写入虚拟网卡中,使包含有修改DNS查询结果的IP数据包经由虚拟网卡传输至相应的应用。
5.根据权利要求4所述的方法,其中,所述方法还包括:
在确定出基于虚拟网卡和代理服务器的socket连接传输至代理服务器处的TCP数据包的净荷所对应的目的IP地址为所述预定IP地址时,针对所述IP数据包进行拦截处理。
6.根据权利要求1所述的方法,其中,所述根据所述IP数据包解析结果信息判断所述IP数据包中是否包含有域名信息包括:
在根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定出所述IP数据包来自智能电子设备中的应用且所述IP数据包的净荷是传输控制协议TCP数据包时,利用针对IP数据包的发送方和接收方而建立的基于虚拟网卡和代理服务器的socket连接传输该TCP数据包的净荷;
针对传输至所述代理服务器处的净荷判断所述IP数据包中是否包含有域名信息。
7.根据权利要求6所述的方法,其中,所述针对传输至所述代理服务器处的净荷判断所述IP数据包中是否包含有域名信息包括:
根据所述IP数据包的源端口获取所述TCP数据包的净荷所对应的原始目的端口;
在判断出所述原始目的端口不是用于网络访问请求的端口时,确定该IP数据包中没有包含域名信息;
在判断出所述原始目的端口是用于网络访问请求的端口时,确定出所述IP数据包中包含有域名信息。
8.根据权利要求6所述的方法,其中,所述方法还包括:
在比对结果为域名信息与恶意网址集合中的信息不相匹配的情况下,针对所述IP数据包进行传输处理。
9.根据权利要求8所述的方法,其中,所述在比对结果为域名信息与恶意网址集合中的信息不相匹配的情况下,针对所述IP数据包进行传输处理包括:
利用针对该IP数据包的发送方和接收方而建立的基于代理服务器和目的设备的socket连接传输所述TCP数据包的净荷。
10.根据权利要求2或5至9中任一权利要求所述的方法,其中,在针对所述IP数据包进行拦截处理包括:
断开基于虚拟网卡和目的设备的套接字socket连接、基于虚拟网卡和代理服务器的socket连接、和/或基于代理服务器和目的设备的socket连接。
11.一种拦截恶意网址访问的实现装置,其中,所述装置包括:
解析模块,用于解析IP数据包,所述IP数据包包括虚拟网卡处的IP数据包,其中包括:
读取模块,用于从智能电子设备中的基于虚拟专用网VPN的虚拟网卡处读取IP数据包;
域名信息比对模块,用于在确定出所述IP数据包中包含有域名信息的情况下,将所述域名信息与恶意网址集合中的信息进行比对,其中包括:
第一判断模块,用于根据IP数据包解析结果信息判断所述IP数据包中是否包含有域名信息,所述IP数据包解析结果信息包括IP数据包接收方信息、IP数据包发送方信息以及IP数据包的净荷类型信息,其中包括:
第一判断子模块,用于根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定所述IP数据包来自智能电子设备中的应用且所述IP数据包的净荷是用户数据报协议UDP数据包时,确定所述IP数据包中没有包含域名信息;
第一传输处理模块,用于在确定出所述IP数据包中没有包含域名信息的情况下,针对所述IP数据包进行传输处理;
拦截处理模块,用于在比对结果为域名信息与恶意网址集合中的信息相匹配的情况下,针对所述IP数据包进行拦截处理。
12.根据权利要求11所述的装置,其中,所述第一传输处理模块包括:
传输子模块,用于利用针对所述IP数据包的发送方和接收方而建立的基于虚拟网卡和目的设备的套接字socket连接传输所述UDP数据包的净荷。
13.根据权利要求11所述的装置,其中,所述第一判断模块包括:
第二判断子模块,用于根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定所述IP数据包是向智能电子设备中的应用发送的IP数据包且所述IP数据包的净荷是基于域名***DNS应答的UDP数据包时,确定出所述IP数据包中包含域名信息。
14.根据权利要求13所述的装置,其中,所述拦截处理模块包括:
查询结果更改子模块,用于将所述UDP数据包中的DNS查询结果修改为表征恶意网址的预定IP地址;
虚拟网卡写入子模块,用于将修改DNS查询结果后的IP数据包写入虚拟网卡中,使包含有修改DNS查询结果的IP数据包经由虚拟网卡传输至相应的应用。
15.根据权利要求14所述的装置,其中,所述装置还包括:
第三判断模块,用于在确定出基于虚拟网卡和代理服务器的socket连接传输至代理服务器处的TCP数据包的净荷所对应的目的IP地址为所述预定IP地址时,通知拦截处理模块针对所述IP数据包进行拦截处理。
16.根据权利要求11所述的装置,其中,所述第一判断模块包括:
第一传输子模块,用于在根据IP数据包解析结果信息中的IP数据包净荷类型信息以及IP数据包发送方信息确定出所述IP数据包来自智能电子设备中的应用且所述IP数据包的净荷是传输控制协议TCP数据包时,利用针对IP数据包的发送方和接收方而建立的基于虚拟网卡和代理服务器的socket连接传输该TCP数据包的净荷;
第三判断子模块,用于针对传输至所述代理服务器处的净荷判断所述IP数据包中是否包含有域名信息。
17.根据权利要求16所述的装置,其中,所述第三判断子模块包括:
获取子模块,用于根据所述IP数据包的源端口获取所述TCP数据包的净荷所对应的原始目的端口;
第四判断子模块,用于在判断出所述原始目的端口不是用于网络访问请求的端口时,确定该IP数据包中没有包含域名信息,在判断出所述原始目的端口是用于网络访问请求的端口时,确定出所述IP数据包中包含有域名信息。
18.根据权利要求16所述的装置,其中,所述装置还包括:
第二传输处理模块,用于在比对结果为域名信息与恶意网址集合中的信息不相匹配的情况下,针对所述IP数据包进行传输处理。
19.根据权利要求18所述的装置,其中,所述第二传输处理模块包括:
第二传输子模块,用于利用针对该IP数据包的发送方和接收方而建立的基于代理服务器和目的设备的socket连接传输所述TCP数据包的净荷。
20.根据权利要求12或者15至19中任一权利要求所述的装置,其中,所述拦截处理模块具体用于:
断开基于虚拟网卡和目的设备的套接字socket连接、基于虚拟网卡和代理服务器的socket连接、和/或基于代理服务器和目的设备的socket连接。
CN201511025734.6A 2015-12-31 2015-12-31 拦截恶意网址访问的方法和装置 Active CN106936791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511025734.6A CN106936791B (zh) 2015-12-31 2015-12-31 拦截恶意网址访问的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511025734.6A CN106936791B (zh) 2015-12-31 2015-12-31 拦截恶意网址访问的方法和装置

Publications (2)

Publication Number Publication Date
CN106936791A CN106936791A (zh) 2017-07-07
CN106936791B true CN106936791B (zh) 2021-02-19

Family

ID=59441779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511025734.6A Active CN106936791B (zh) 2015-12-31 2015-12-31 拦截恶意网址访问的方法和装置

Country Status (1)

Country Link
CN (1) CN106936791B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107968783B (zh) * 2017-11-30 2021-10-08 腾讯科技(深圳)有限公司 流量管理方法、装置、终端及计算机可读存储介质
CN109951575B (zh) * 2017-12-20 2022-06-10 新智数字科技有限公司 拦截指定域名的方法和***
CN110300045A (zh) * 2018-03-23 2019-10-01 腾讯科技(深圳)有限公司 应用程序的网络加速方法、装置、设备及可读介质
US10862854B2 (en) * 2019-05-07 2020-12-08 Bitdefender IPR Management Ltd. Systems and methods for using DNS messages to selectively collect computer forensic data
CN110430188B (zh) * 2019-08-02 2022-04-19 武汉思普崚技术有限公司 一种快速url过滤方法及装置
CN110430189A (zh) * 2019-08-02 2019-11-08 北京天融信网络安全技术有限公司 一种域名***访问控制方法及装置
CN111131163A (zh) * 2019-11-26 2020-05-08 视联动力信息技术股份有限公司 一种基于视联网的数据处理方法及装置
CN112261660B (zh) * 2020-10-16 2024-06-04 深圳安软信创技术有限公司 安卓手机端应用代理接入安全控制方法
CN113343219B (zh) * 2021-05-31 2023-03-07 烟台中科网络技术研究所 一种自动高效的高风险移动应用程序检测方法
US11503056B1 (en) * 2021-08-09 2022-11-15 Oversec, Uab Providing a notification system in a virtual private network
CN113873057B (zh) * 2021-09-28 2024-03-15 奇安信科技集团股份有限公司 数据处理方法和装置
CN113923008B (zh) * 2021-09-30 2024-04-26 北京指掌易科技有限公司 一种恶意网站拦截方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833258A (zh) * 2012-08-31 2012-12-19 北京奇虎科技有限公司 网址访问方法及***
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN103634315A (zh) * 2013-11-29 2014-03-12 杜跃进 域名服务器的前端控制方法及***
CN104125209A (zh) * 2014-01-03 2014-10-29 腾讯科技(深圳)有限公司 恶意网址提示方法和路由器
WO2015195093A1 (en) * 2014-06-17 2015-12-23 Hewlett-Packard Development Company, L. P. Dns based infection scores

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833258A (zh) * 2012-08-31 2012-12-19 北京奇虎科技有限公司 网址访问方法及***
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN103634315A (zh) * 2013-11-29 2014-03-12 杜跃进 域名服务器的前端控制方法及***
CN104125209A (zh) * 2014-01-03 2014-10-29 腾讯科技(深圳)有限公司 恶意网址提示方法和路由器
WO2015195093A1 (en) * 2014-06-17 2015-12-23 Hewlett-Packard Development Company, L. P. Dns based infection scores

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于android的VPN通用数据处理平台的设计与实现;贝小玲;《中国优秀硕士学位论文全文数据库 信息科技辑》;20151215(第12期);第2-40页 *

Also Published As

Publication number Publication date
CN106936791A (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
CN106936791B (zh) 拦截恶意网址访问的方法和装置
CN110445770B (zh) 网络攻击源定位及防护方法、电子设备及计算机存储介质
CN107294982B (zh) 网页后门检测方法、装置及计算机可读存储介质
WO2017004947A1 (zh) 防止域名劫持的方法和装置
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
KR102580898B1 (ko) Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법
CN108809890B (zh) 漏洞检测方法、测试服务器及客户端
CN110519265B (zh) 一种防御攻击的方法及装置
WO2014172956A1 (en) Login method,apparatus, and system
CN105635073B (zh) 访问控制方法、装置和网络接入设备
US10489720B2 (en) System and method for vendor agnostic automatic supplementary intelligence propagation
CN108063833B (zh) Http dns解析报文处理方法及装置
EP3376740B1 (en) Method and apparatus for acquiring ip address
CN113810381B (zh) 一种爬虫检测方法、web应用云防火墙、装置和存储介质
WO2018201745A1 (zh) 无线接入点的风险提示方法及设备
CN111147519A (zh) 数据检测方法、装置、电子设备和介质
US10855704B1 (en) Neutralizing malicious locators
CN107592299B (zh) 代理上网识别方法、计算机装置及计算机可读存储介质
CN113923008B (zh) 一种恶意网站拦截方法、装置、设备及存储介质
CN109474540B (zh) 一种识别opc流量的方法及装置
CN113873057A (zh) 数据处理方法和装置
WO2019047693A1 (zh) 一种进行WiFi网络安全监控的方法与设备
CN113098727A (zh) 一种数据包检测处理方法与设备
CN113709136B (zh) 一种访问请求验证方法和装置
CN112653609B (zh) 一种vpn识别应用方法、装置、终端及存储介质

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