CN111431912A - 用于检测dhcp劫持的方法和设备 - Google Patents
用于检测dhcp劫持的方法和设备 Download PDFInfo
- Publication number
- CN111431912A CN111431912A CN202010236065.1A CN202010236065A CN111431912A CN 111431912 A CN111431912 A CN 111431912A CN 202010236065 A CN202010236065 A CN 202010236065A CN 111431912 A CN111431912 A CN 111431912A
- Authority
- CN
- China
- Prior art keywords
- address
- mac address
- hijacking
- dhcp
- terminal
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Abstract
本申请实施例公开了用于检测DHCP劫持的方法和设备。该方法的一具体实施方式包括:确定终端的内网IP地址所属的网段;向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP‑MAC地址对写入ARP缓存表;基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。该实施方式基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测来确定终端是否存在DHCP劫持,实现了在有限的权限和有限的资源消耗条件下发现DHCP劫持。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及用于检测DHCP劫持的方法和设备。
背景技术
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种在局域网中使用的网络协议,它使网络管理员能够集中管理和自动分配IP地址,使网络环境中的设备动态获得IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。在局域网中,每个连接网络的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。
同一局域网中可以同时存在多个DHCP服务器。当一个终端向局域网内广播IP分配请求时,多个接收到IP分配请求的DHCP服务器都会向终端发出IP分配响应,而终端一般会采纳第一个接收到的IP分配响应中的IP地址。若攻击者在局域网内把自己的设备配置成DHCP服务器,与局域网内真实的DHCP服务器竞争。若攻击者的IP分配响应最先到达终端,终端就会遭受DHCP劫持。
目前,终端通常通过在局域网内广播DHCP请求来实现DHCP劫持检测。该检测方式需要该终端具有root权限。
发明内容
本申请实施例提出了用于检测DHCP劫持的方法和设备。
第一方面,本申请实施例提供了一种用于检测DHCP劫持的方法,应用于终端,包括:确定终端的内网IP地址所属的网段;向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表;基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。
在一些实施例中,确定终端的内网IP地址所属的网段,包括:获取终端的内网IP地址和子网掩码;将内网IP地址与子网掩码按位相与,得到内网IP地址所属的网段。
在一些实施例中,获取终端的内网IP地址和子网掩码,包括:通过终端的操作系统提供的程序接口获取终端所在的局域网的网络配置项,其中,网络配置项包括终端的内网IP地址和子网掩码,以及局域网的网关IP地址和BSSID。
在一些实施例中,基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持,包括:读取ARP缓存表在预设时间段内所出现过的IP-非全零MAC地址对;在历史DHCP劫持检测记录表中查找键为BSSID的键-值对,得到查找结果;基于IP-非全零MAC地址对和查找结果进行交叉检测,确定终端是否存在DHCP劫持。
在一些实施例中,基于IP-非全零MAC地址对和查找结果进行交叉检测,确定终端是否存在DHCP劫持,包括:若查找到键为BSSID的键-值对,提取所查找到的键-值对中的历史检测网关IP地址、历史检测网关MAC地址和历史检测外网IP地址;从IP-非全零MAC地址对中确定局域网的网关MAC地址;确定历史检测网关IP地址是否等于网关IP地址,以及历史检测网关MAC地址是否等于网关MAC地址;若历史检测网关IP地址不等于网关IP地址,且历史检测网关MAC地址不等于网关MAC地址,确定历史检测网关MAC地址与BSSID是否关联;若历史检测网关MAC地址与BSSID关联,确定IP-非全零MAC地址对中是否存在MAC地址为历史检测网关MAC地址的地址对;若不存在MAC地址为历史检测网关MAC地址的地址对,确定存在DHCP劫持。
在一些实施例中,基于IP-非全零MAC地址对和查找结果进行交叉检测,确定终端是否存在DHCP劫持,包括:若历史检测网关MAC地址与BSSID不关联,确定历史检测外网IP地址是否等于终端的外网IP地址;若等于外网IP地址,确定存在DHCP劫持。
在一些实施例中,基于IP-非全零MAC地址对和查找结果进行交叉检测,确定终端是否存在DHCP劫持,包括:若未查找到键为BSSID的键-值对,或者历史检测网关IP地址等于网关IP地址,或者历史检测网关MAC地址等于网关MAC地址,或者IP-非全零MAC地址对中存在MAC地址为历史检测网关MAC地址的地址对,或者历史检测外网IP地址不等于外网IP地址,确定不存在DHCP劫持。
在一些实施例中,该方法还包括:若不存在DHCP劫持,在历史DHCP劫持检测记录表中写入键为BSSID,值为网关IP地址、网关MAC地址和外网IP地址的键-值对。
在一些实施例中,将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表,包括:在发送UDP数据包之后,将属于网段的IP-全零MAC地址对写入ARP缓存表;将基于ARP解析请求返回ARP解析响应的设备的MAC地址更新到ARP缓存表中。
在一些实施例中,确定历史检测网关MAC地址与BSSID是否关联,包括:确定历史检测网关MAC地址的前三字节与BSSID的前三字节是否相同;若历史检测网关MAC地址的前三字节与BSSID的前三字节相同,确定历史检测网关MAC地址与BSSID关联;若历史检测网关MAC地址的前三字节与BSSID的前三字节不同,确定历史检测网关MAC地址与BSSID不关联。
在一些实施例中,在确定历史检测外网IP地址是否等于终端的外网IP地址之前,还包括:向局域网外的服务器发送数据请求,以及基于数据请求的响应消息获取终端的外网IP地址。
第二方面,本申请实施例提供了一种用于检测DHCP劫持的装置,设置于终端,包括:网段确定单元,被配置成确定终端的内网IP地址所属的网段;地址对写入单元,被配置成向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表;劫持检测单元,被配置成基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。
在一些实施例中,网段确定单元包括:获取子单元,被配置成获取终端的内网IP地址和子网掩码;相与子单元,被配置成将内网IP地址与子网掩码按位相与,得到内网IP地址所属的网段。
在一些实施例中,获取子单元进一步被配置成:通过终端的操作系统提供的程序接口获取终端所在的局域网的网络配置项,其中,网络配置项包括终端的内网IP地址和子网掩码,以及局域网的网关IP地址和BSSID。
在一些实施例中,劫持检测单元包括:读取子单元,被配置成读取ARP缓存表在预设时间段内所出现过的IP-非全零MAC地址对;查找子单元,被配置成在历史DHCP劫持检测记录表中查找键为BSSID的键-值对,得到查找结果;劫持检测子单元,被配置成基于IP-非全零MAC地址对和查找结果进行交叉检测,确定终端是否存在DHCP劫持。
在一些实施例中,劫持检测子单元包括:提取模块,被配置成若查找到键为BSSID的键-值对,提取所查找到的键-值对中的历史检测网关IP地址、历史检测网关MAC地址和历史检测外网IP地址;第一确定模块,被配置成从IP-非全零MAC地址对中确定局域网的网关MAC地址;第二确定模块,被配置成确定历史检测网关IP地址是否等于网关IP地址,以及历史检测网关MAC地址是否等于网关MAC地址;第三确定模块,被配置成若历史检测网关IP地址不等于网关IP地址,且历史检测网关MAC地址不等于网关MAC地址,确定历史检测网关MAC地址与BSSID是否关联;第四确定模块,被配置成若历史检测网关MAC地址与BSSID关联,确定IP-非全零MAC地址对中是否存在MAC地址为历史检测网关MAC地址的地址对;第五确定模块,被配置成若不存在MAC地址为历史检测网关MAC地址的地址对,确定存在DHCP劫持。
在一些实施例中,劫持检测子单元包括:第六确定模块,被配置成若历史检测网关MAC地址与BSSID不关联,确定历史检测外网IP地址是否等于终端的外网IP地址;第七确定模块,被配置成若等于外网IP地址,确定存在DHCP劫持。
在一些实施例中,劫持检测子单元包括:第八确定模块,被配置成若未查找到键为BSSID的键-值对,或者历史检测网关IP地址等于网关IP地址,或者历史检测网关MAC地址等于网关MAC地址,或者IP-非全零MAC地址对中存在MAC地址为历史检测网关MAC地址的地址对,或者历史检测外网IP地址不等于外网IP地址,确定不存在DHCP劫持。
在一些实施例中,该装置还包括:键值对写入单元,被配置成若不存在DHCP劫持,在历史DHCP劫持检测记录表中写入键为BSSID,值为网关IP地址、网关MAC地址和外网IP地址的键-值对。
在一些实施例中,地址对写入单元进一步被配置成:在发送UDP数据包之后,将属于网段的IP-全零MAC地址对写入ARP缓存表;将基于ARP解析请求返回ARP解析响应的设备的MAC地址更新到ARP缓存表中。
在一些实施例中,第三确定模块进一步被配置成:确定历史检测网关MAC地址的前三字节与BSSID的前三字节是否相同;若历史检测网关MAC地址的前三字节与BSSID的前三字节相同,确定历史检测网关MAC地址与BSSID关联;若历史检测网关MAC地址的前三字节与BSSID的前三字节不同,确定历史检测网关MAC地址与BSSID不关联。
在一些实施例中,劫持检测子单元还包括:获取模块,被配置成向局域网外的服务器发送数据请求,以及基于数据请求的响应消息获取终端的外网IP地址。
第三方面,本申请实施例提供了一种计算机设备,该计算机设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的用于检测DHCP劫持的方法和设备,首先确定终端的内网IP地址所属的网段;然后向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表;最后基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测来确定终端是否存在DHCP劫持,实现了在有限的权限和有限的资源消耗条件下发现DHCP劫持。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构;
图2是根据本申请的用于检测DHCP劫持的方法的一个实施例的流程图;
图3是根据本申请的用于检测DHCP劫持的方法的又一个实施例的流程图;
图4是适于用来实现本申请实施例的计算机设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于检测DHCP劫持的方法的实施例的示例性系统架构100。
如图1所示,系统架构100中可以包括终端101、102、103,服务器104、105和网关106。其中,终端101、102、103,服务器104、105和网关106在同一局域网中。终端101与终端102、103和服务器104、105通过直接连接的方式进行通信。终端101通过网关106与局域网外的设备进行通信。
需要说明的是,本申请实施例所提供的用于检测DHCP劫持的方法可以由设备101执行。
应该理解,图1中的终端、服务器和网关的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、服务器和网关。
继续参考图2,其示出了根据本申请的用于检测DHCP劫持的方法的一个实施例的流程200。该用于检测DHCP劫持的方法应用于终端(例如图1所示的终端101),包括以下步骤:
步骤201,确定终端的内网IP地址所属的网段。
在本实施例中,终端可以确定其内网IP地址所属的网段。其中,内网IP地址可以是终端在局域网内使用的IP地址。
在一些实施例中,终端本地存储有其内网IP地址所属的网段,此时,终端可以直接从本地查询其内网IP地址所属的网段。
在一些实施例中,终端本地未存储其内网IP地址所属的网段,此时,终端可以首先获取其内网IP地址和子网掩码;然后将内网IP地址与子网掩码按位相与,得到内网IP地址所属的网段。通常,若终端本地存储有其内网IP地址和子网掩码,终端可以直接从本地查询其内网IP地址和子网掩码。若终端本地未存储其内网IP地址和子网掩码,终端可以通过其操作系统提供的程序接口获取终端所在的局域网的网络配置项。其中,网络配置项可以包括终端的内网IP地址和子网掩码。此外,网络配置项还可以包括局域网的网关IP地址和BSSID。BSSID是BSS(Basic Service Set,基本服务集)的标识符。服务集(Service set)是无线局域网中的一个术语,用以描述802.11无线网络的构成单位(一组互相有联系的无线设备),使用服务集标识符(SSID)作为识别。服务集可以分为独立基本服务集(IBSS)、基本服务集(BSS)和扩展服务集(ESS)三类。
步骤202,向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表。
在本实施例中,终端可以基于其内网IP地址所属的网段,确定属于该网段的IP地址,以及向属于该网段的IP地址发送UDP(User Datagram Protocol,用户数据报协议)数据包。通常,终端可以向属于该网段的全部IP地址发送UDP数据包。而发送UDP数据包的行为能够触发系统自动向局域网广播ARP(Address Resolution Protocol,地址解析协议)解析请求,用于请求不在ARP缓存表中的IP地址对应的MAC地址。接收到ARP解析请求的设备(例如图1所示的终端102、103和服务器104、105)会向终端返回ARP解析响应。终端可以将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表。其中,ARP解析响应可以携带返回该ARP解析响应的设备的IP地址和MAC地址。ARP缓存表可以以地址对的形式记录返回ARP解析响应的设备的IP地址和MAC地址。其中,ARP缓存表中记录的数据为多行,每行数据包括IP地址、MAC地址和其他信息,通过读取ARP缓存表能够获得IP-MAC地址对。
在一些实施例中,终端可以在接收到基于UDP数据包的返回消息之后将返回消息的设备的IP地址和MAC地址一起写入ARP缓存表。
在一些实施例中,终端可以在发送UDP数据包之后先将属于该网段的IP-全零MAC地址对写入ARP缓存表。随后,终端可以在接收到基于ARP解析请求返回的ARP解析响应之后再将返回ARP解析响应的设备的MAC地址更新到ARP缓存表中。此外,若部分IP-全零MAC地址对超过一段时间未更新MAC地址,说明这些IP地址对应的设备在接收到ARP解析请求之后未返回ARP解析响应,该部分IP-全零MAC地址对是无效地址对,此时,终端可以将该部分IP-全零MAC地址从ARP缓存表中删除。
步骤203,基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。
在本实施例中,终端可以基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。具体地,终端可以基于ARP缓存表中写入的IP-MAC地址对和历史DHCP劫持检测记录表写入的键-值对进行交叉检测,以确定终端是否存在DHCP劫持。其中,历史DHCP劫持检测记录表可以以键-值对的形式记录历史检测中不存在DHCP劫持的检测记录。检测记录中可以包括历史检测中不存在DHCP劫持的终端所在的局域网的BSSID、网关IP地址、网关MAC地址和终端的外网IP地址。其中,BSSID写入键中,网关IP地址、网关MAC地址和外网IP地址写入值中。
在一些实施例中,终端可以首先读取ARP缓存表在预设时间段内所出现过的IP-非全零MAC地址对,以及在历史DHCP劫持检测记录表中查找键为终端所在的局域网的BSSID的键-值对,得到查找结果;然后基于IP-非全零MAC地址对和查找结果进行交叉检测,确定终端是否存在DHCP劫持。其中,预设时间段可以是从终端发送UDP数据包开始的持续预设时长(例如30秒)的时间段,以保证局域网内所有的设备的IP-MAC地址对都能被更新到ARP缓存表中。此外,在预设时间段内,每当ARP缓存表所出现过IP-非全零MAC地址对时,终端就会立即读取该IP-非全零MAC地址对。这样就避免了ARP缓存表存储空间过小,导致之前所出现过的IP-非全零MAC地址对被之后所出现过的IP-非全零MAC地址对覆盖,而使被覆盖的IP-非全零MAC地址对无法被读取。历史DHCP劫持检测记录表中的键为终端所在的局域网的BSSID的键-值对可以是该局域网的历史检测中不存在DHCP劫持的检测记录。
本申请实施例提供的用于检测DHCP劫持的方法,首先确定终端的内网IP地址所属的网段;然后向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表;最后基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测来确定终端是否存在DHCP劫持,实现了在有限的权限和有限的资源消耗条件下发现DHCP劫持。
进一步参考图3,其示出了是根据本申请的用于检测DHCP劫持的方法的又一个实施例的流程300。该用于检测DHCP劫持的方法应用于终端,包括以下步骤:
步骤301,确定终端的内网IP地址所属的网段。
步骤302,向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表。
在本实施例中,步骤301-302具体操作已在图2所示的实施例中步骤201-202中进行了详细的介绍,在此不再赘述。
步骤303,读取ARP缓存表在预设时间段内所出现过的IP-非全零MAC地址对。
在本实施例中,终端(例如图1所示的终端101)可以读取ARP缓存表在预设时间段内所出现过的IP-非全零MAC地址对。其中,预设时间段可以是从终端发送UDP数据包开始的持续预设时长(例如30秒)的时间段,以保证局域网内所有的设备的IP-MAC地址对都能被更新到ARP缓存表中。此外,在预设时间段内,每当ARP缓存表所出现过IP-非全零MAC地址对时,终端就会立即读取该IP-非全零MAC地址对。这样就避免了ARP缓存表存储空间过小,导致之前所出现过的IP-非全零MAC地址对被之后所出现过的IP-非全零MAC地址对覆盖,而使被覆盖的IP-非全零MAC地址对无法被读取。历史DHCP劫持检测记录表中的键为终端所在的局域网的BSSID的键-值对可以是该局域网的历史检测中不存在DHCP劫持的检测记录。
步骤304,在历史DHCP劫持检测记录表中是否查找键为BSSID的键-值对。
在本实施例中,终端可以在历史DHCP劫持检测记录表中查找键为BSSID的键-值对。若查找到键为BSSID的键-值对,说明终端所在的局域网中的设备曾经进行过DHCP劫持检测,且不存在DHCP劫持,执行步骤305;若未查找到键为BSSID的键-值对,说明终端所在的局域网中的设备从未进行过DHCP劫持检测,本次DHCP劫持检测是该局域网进行的第一次DHCP劫持检测,执行步骤312。其中,键为终端所在的局域网的BSSID的键-值对可以是该局域网的历史检测中不存在DHCP劫持的检测记录。
步骤305,提取所查找到的键-值对中的历史检测网关IP地址、历史检测网关MAC地址和历史检测外网IP地址。
在本实施例中,若查找到键为BSSID的键-值对,终端可以提取所查找到的键-值对中的历史检测网关IP地址、历史检测网关MAC地址和历史检测外网IP地址。通常,终端可以提取所查找到的键-值对中的值,得到历史检测网关IP地址、历史检测网关MAC地址和历史检测外网IP地址。
步骤306,从IP-非全零MAC地址对中确定局域网的网关MAC地址。
在本实施例中,终端可以从IP-非全零MAC地址对中确定终端所在的局域网的网关MAC地址。通常,上述执行主体可以将终端所在的局域网的网关IP地址与每个IP-非全零MAC地址对中的IP地址进行匹配,提取匹配成功的IP-非全零MAC地址对中的非全零MAC地址,即为终端所在的局域网的网关MAC地址。
步骤307,确定历史检测网关IP地址是否等于网关IP地址,以及历史检测网关MAC地址是否等于网关MAC地址。
在本实施例中,终端可以确定历史检测网关IP地址是否等于网关IP地址,以及历史检测网关MAC地址是否等于网关MAC地址。若历史检测网关IP地址不等于网关IP地址,且历史检测网关MAC地址不等于网关MAC地址,执行步骤308;若历史检测网关IP地址等于网关IP地址,或者历史检测网关MAC地址等于网关MAC地址,说明该终端曾经进行过DHCP劫持检测,且不存在DHCP劫持,执行步骤312。
需要说明的是,若历史检测网关IP地址等于网关IP地址,而历史检测网关MAC地址不等于网关MAC地址,或者历史检测网关MAC地址等于网关MAC地址,而历史检测网关IP地址不等于网关IP地址,说明终端所在的局域网的网关进行了正常的配置改变,改变了网关IP地址或网关MAC地址。
步骤308,确定历史检测网关MAC地址与BSSID是否关联。
在本实施例中,若历史检测网关IP地址不等于网关IP地址,且历史检测网关MAC地址不等于网关MAC地址,终端可以确定历史检测网关MAC地址与BSSID是否关联。若历史检测网关MAC地址与BSSID关联,执行步骤309;历史检测网关MAC地址与BSSID不关联执行步骤310。
在一些实施例中,终端可以确定历史检测网关MAC地址的前三字节与BSSID的前三字节是否相同。若历史检测网关MAC地址的前三字节与BSSID的前三字节相同,确定历史检测网关MAC地址与BSSID关联;若历史检测网关MAC地址的前三字节与BSSID的前三字节不同,确定历史检测网关MAC地址与BSSID不关联。通常,小型局域网的网关MAC地址的前三字节与其BSSID的前三字节相同。
步骤309,确定IP-非全零MAC地址对中是否存在MAC地址为历史检测网关MAC地址的地址对。
在本实施例中,若历史检测网关MAC地址与BSSID关联,终端可以确定IP-非全零MAC地址对中是否存在MAC地址为历史检测网关MAC地址的地址对。若存在MAC地址为历史检测网关MAC地址的地址对,说明该终端曾经进行过DHCP劫持检测,且不存在DHCP劫持,执行步骤312;若不存在MAC地址为历史检测网关MAC地址的地址对,执行步骤311。
需要说明的是,历史检测网关MAC地址不等于网关MAC地址,说明历史检测网关与终端所在的局域网的网关不是同一个网关。而历史检测网关MAC地址与BSSID关联,且IP-非全零MAC地址对中存在MAC地址为历史检测网关MAC地址的地址对,说明终端所在的局域网扩展了新网关,老网关并未拆除。终端所在的局域网的网关MAC地址是新网关的MAC地址,历史检测网关MAC地址是老网关的MAC地址。
步骤310,确定历史检测外网IP地址是否等于终端的外网IP地址。
在本实施例中,若历史检测网关MAC地址与BSSID不关联,终端可以确定历史检测外网IP地址是否等于终端的外网IP地址。若等于终端的外网IP地址,执行步骤311;若不等于终端的外网IP地址,执行步骤312。其中,外网IP地址可以是终端在局域网外使用的IP地址。
在一些实施例中,终端本地存储有其外网IP地址,此时,终端可以直接从本地查询其外网IP地址。
在本实施例的一些可选的实现方式中,终端本地未存储其外网IP地址,此时,终端可以向其所在的局域网外的服务器发送数据请求,以及基于数据请求的响应消息获取终端的外网IP地址。其中,数据请求可以是UDP数据请求,也可以是TCP(Transmission ControlProtocol,传输控制协议)数据请求。局域网外的服务器返回的响应消息可以携带终端的外网IP地址。
步骤311,确定存在DHCP劫持。
在本实施例中,若不存在MAC地址为历史检测网关MAC地址的地址对,或者历史检测外网IP地址等于外网IP地址,终端可以确定其存在DHCP劫持。
步骤312,确定不存在DHCP劫持。
在本实施例中,若未查找到键为BSSID的键-值对,或者历史检测网关IP地址等于网关IP地址,或者历史检测网关MAC地址等于网关MAC地址,或者IP-非全零MAC地址对中存在MAC地址为历史检测网关MAC地址的地址对,或者历史检测外网IP地址不等于外网IP地址,终端可以确定不存在DHCP劫持。
步骤313,在历史DHCP劫持检测记录表中写入键为BSSID,值为网关IP地址、网关MAC地址和外网IP地址的键-值对。
在本实施例中,若不存在DHCP劫持,终端可以在历史DHCP劫持检测记录表中写入键为BSSID,值为网关IP地址、网关MAC地址和外网IP地址的键-值对。
从图3中可以看出,与图2对应的实施例相比,本实施例中的用于检测DHCP劫持的方法的流程300突出了交叉检测的步骤。由此,在本实施例描述的方案通过交叉检测排除了特殊场景下的误报情况,提高了DHCP劫持的检测准确度。
下面参考图4,其示出了适于用来实现本申请实施例的计算机设备(例如图1所示的设备101)的计算机系统400的结构示意图。图4示出的计算机设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向目标的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或电子设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括网段确定单元、地址对写入单元和劫持检测单元。其中,这些单元的名称在种情况下并不构成对该单元本身的限定,例如,网段确定单元还可以被描述为“确定终端的内网IP地址所属的网段的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的计算机设备中所包含的;也可以是单独存在,而未装配入该计算机设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算机设备执行时,使得该计算机设备:确定终端的内网IP地址所属的网段;向属于网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表;基于ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定终端是否存在DHCP劫持。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种用于检测DHCP劫持的方法,应用于终端,包括:
确定所述终端的内网IP地址所属的网段;
向属于所述网段的IP地址发送UDP数据包,触发广播ARP解析请求,以及将基于所述ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表;
基于所述ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定所述终端是否存在DHCP劫持。
2.根据权利要求1所述的方法,其中,所述确定所述终端的内网IP地址所属的网段,包括:
获取所述终端的内网IP地址和子网掩码;
将所述内网IP地址与所述子网掩码按位相与,得到所述内网IP地址所属的网段。
3.根据权利要求2所述的方法,其中,所述获取所述终端的内网IP地址和子网掩码,包括:
通过所述终端的操作系统提供的程序接口获取所述终端所在的局域网的网络配置项,其中,所述网络配置项包括所述终端的内网IP地址和子网掩码,以及所述局域网的网关IP地址和BSSID。
4.根据权利要求3所述的方法,其中,所述基于所述ARP缓存表和历史DHCP劫持检测记录表进行交叉检测,确定所述终端是否存在DHCP劫持,包括:
读取所述ARP缓存表在预设时间段内所出现过的IP-非全零MAC地址对;
在所述历史DHCP劫持检测记录表中查找键为所述BSSID的键-值对,得到查找结果;
基于所述IP-非全零MAC地址对和所述查找结果进行交叉检测,确定所述终端是否存在DHCP劫持。
5.根据权利要求4所述的方法,其中,所述基于所述IP-非全零MAC地址对和所述查找结果进行交叉检测,确定所述终端是否存在DHCP劫持,包括:
若查找到键为所述BSSID的键-值对,提取所查找到的键-值对中的历史检测网关IP地址、历史检测网关MAC地址和历史检测外网IP地址;
从所述IP-非全零MAC地址对中确定所述局域网的网关MAC地址;
确定所述历史检测网关IP地址是否等于所述网关IP地址,以及所述历史检测网关MAC地址是否等于所述网关MAC地址;
若所述历史检测网关IP地址不等于所述网关IP地址,且所述历史检测网关MAC地址不等于所述网关MAC地址,确定所述历史检测网关MAC地址与所述BSSID是否关联;
若所述历史检测网关MAC地址与所述BSSID关联,确定所述IP-非全零MAC地址对中是否存在MAC地址为所述历史检测网关MAC地址的地址对;
若不存在MAC地址为所述历史检测网关MAC地址的地址对,确定存在DHCP劫持。
6.根据权利要求5所述的方法,其中,所述基于所述IP-非全零MAC地址对和所述查找结果进行交叉检测,确定所述终端是否存在DHCP劫持,包括:
若所述历史检测网关MAC地址与所述BSSID不关联,确定所述历史检测外网IP地址是否等于所述终端的外网IP地址;
若等于所述外网IP地址,确定存在DHCP劫持。
7.根据权利要求6所述的方法,其中,所述基于所述IP-非全零MAC地址对和所述查找结果进行交叉检测,确定所述终端是否存在DHCP劫持,包括:
若未查找到键为所述BSSID的键-值对,或者所述历史检测网关IP地址等于所述网关IP地址,或者所述历史检测网关MAC地址等于所述网关MAC地址,或者所述IP-非全零MAC地址对中存在MAC地址为所述历史检测网关MAC地址的地址对,或者所述历史检测外网IP地址不等于所述外网IP地址,确定不存在DHCP劫持。
8.根据权利要求7所述的方法,其中,所述方法还包括:
若不存在DHCP劫持,在所述历史DHCP劫持检测记录表中写入键为所述BSSID,值为所述网关IP地址、所述网关MAC地址和所述外网IP地址的键-值对。
9.根据权利要求4所述的方法,其中,所述将基于所述ARP解析请求返回ARP解析响应的设备的IP-MAC地址对写入ARP缓存表,包括:
在发送所述UDP数据包之后,将属于所述网段的IP-全零MAC地址对写入所述ARP缓存表;
将基于所述ARP解析请求返回ARP解析响应的设备的MAC地址更新到所述ARP缓存表中。
10.根据权利要求5所述的方法,其中,所述确定所述历史检测网关MAC地址与所述BSSID是否关联,包括:
确定所述历史检测网关MAC地址的前三字节与所述BSSID的前三字节是否相同;
若所述历史检测网关MAC地址的前三字节与所述BSSID的前三字节相同,确定所述历史检测网关MAC地址与所述BSSID关联;
若所述历史检测网关MAC地址的前三字节与所述BSSID的前三字节不同,确定所述历史检测网关MAC地址与所述BSSID不关联。
11.根据权利要求6所述的方法,其中,在所述确定所述历史检测外网IP地址是否等于所述终端的外网IP地址之前,还包括:
向所述局域网外的服务器发送数据请求,以及基于所述数据请求的响应消息获取所述终端的外网IP地址。
12.一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010236065.1A CN111431912B (zh) | 2020-03-30 | 2020-03-30 | 用于检测dhcp劫持的方法和设备 |
PCT/CN2021/083796 WO2021197292A1 (zh) | 2020-03-30 | 2021-03-30 | 用于检测dhcp劫持的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010236065.1A CN111431912B (zh) | 2020-03-30 | 2020-03-30 | 用于检测dhcp劫持的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431912A true CN111431912A (zh) | 2020-07-17 |
CN111431912B CN111431912B (zh) | 2021-12-28 |
Family
ID=71549906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010236065.1A Active CN111431912B (zh) | 2020-03-30 | 2020-03-30 | 用于检测dhcp劫持的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111431912B (zh) |
WO (1) | WO2021197292A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021197292A1 (zh) * | 2020-03-30 | 2021-10-07 | 上海连尚网络科技有限公司 | 用于检测dhcp劫持的方法和设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244801B (zh) * | 2021-12-31 | 2023-05-05 | 四川天邑康和通信股份有限公司 | 一种基于政企网关的防arp欺骗方法及系统 |
CN114745419B (zh) * | 2022-05-07 | 2024-02-23 | 深信服科技股份有限公司 | 获取终端mac地址的方法、装置、设备及存储介质 |
CN115664833B (zh) * | 2022-11-03 | 2024-04-02 | 天津大学 | 基于局域网安全设备的网络劫持检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060495A (zh) * | 2007-05-22 | 2007-10-24 | 华为技术有限公司 | 报文处理方法、系统和设备 |
CN105812502A (zh) * | 2016-03-07 | 2016-07-27 | 北京工业大学 | 基于OpenFlow的地址解析协议代理技术的实现方法 |
CN106506544A (zh) * | 2016-12-21 | 2017-03-15 | 北京奇虎科技有限公司 | 一种局域网dns劫持检测的方法和装置 |
CN106899554A (zh) * | 2015-12-21 | 2017-06-27 | 北京奇虎科技有限公司 | 一种防止arp欺骗的方法及装置 |
CN108566656A (zh) * | 2018-04-13 | 2018-09-21 | 上海连尚网络科技有限公司 | 一种用于检测无线网络安全的方法与设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8910282B2 (en) * | 2012-09-04 | 2014-12-09 | Jonathan Somers | System and method for protecting devices on dynamically configured network |
CN105262738B (zh) * | 2015-09-24 | 2019-08-16 | 上海斐讯数据通信技术有限公司 | 一种路由器及其防arp攻击的方法 |
US20190058731A1 (en) * | 2017-08-17 | 2019-02-21 | Qualcomm Incorporated | User-side detection and containment of arp spoofing attacks |
CN111431912B (zh) * | 2020-03-30 | 2021-12-28 | 上海尚往网络科技有限公司 | 用于检测dhcp劫持的方法和设备 |
-
2020
- 2020-03-30 CN CN202010236065.1A patent/CN111431912B/zh active Active
-
2021
- 2021-03-30 WO PCT/CN2021/083796 patent/WO2021197292A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060495A (zh) * | 2007-05-22 | 2007-10-24 | 华为技术有限公司 | 报文处理方法、系统和设备 |
CN106899554A (zh) * | 2015-12-21 | 2017-06-27 | 北京奇虎科技有限公司 | 一种防止arp欺骗的方法及装置 |
CN105812502A (zh) * | 2016-03-07 | 2016-07-27 | 北京工业大学 | 基于OpenFlow的地址解析协议代理技术的实现方法 |
CN106506544A (zh) * | 2016-12-21 | 2017-03-15 | 北京奇虎科技有限公司 | 一种局域网dns劫持检测的方法和装置 |
CN108566656A (zh) * | 2018-04-13 | 2018-09-21 | 上海连尚网络科技有限公司 | 一种用于检测无线网络安全的方法与设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021197292A1 (zh) * | 2020-03-30 | 2021-10-07 | 上海连尚网络科技有限公司 | 用于检测dhcp劫持的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021197292A1 (zh) | 2021-10-07 |
CN111431912B (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431912B (zh) | 用于检测dhcp劫持的方法和设备 | |
CN110677405B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN108900351B (zh) | 内网设备类型识别方法及装置 | |
CN111131544B (zh) | 一种实现nat穿越的方法 | |
KR102052035B1 (ko) | 디바이스의 정보 획득 장치 및 방법 | |
CN109729183B (zh) | 请求处理方法、装置、设备及存储介质 | |
CN109314723B (zh) | 一种实现数据业务的方法、装置及终端 | |
JP2004048649A (ja) | ネットワークデバイス管理方法、ネットワークデバイス管理プログラム及びネットワーク制御装置 | |
CN111683162B (zh) | 一种基于流量识别的ip地址管理方法 | |
US8943195B2 (en) | Node detection apparatus, node detection method and computer readable medium | |
WO2022111169A1 (zh) | 用户身份识别方法、计算设备及计算机存储介质 | |
CN113923008B (zh) | 一种恶意网站拦截方法、装置、设备及存储介质 | |
CN109286684B (zh) | 一种通信连接的处理方法、装置、代理服务器及存储介质 | |
CN114500633A (zh) | 数据转发方法、相关装置、程序产品及数据传输系统 | |
CN108011801B (zh) | 数据传输的方法、设备、装置及系统 | |
CN106375489B (zh) | 媒体访问控制mac地址的处理方法及装置 | |
CN109819059B (zh) | 管理网络设备的方法、装置、设备及存储介质 | |
CN108881178B (zh) | 信息发送方法及装置,设备,存储介质和电子装置 | |
CN113660134B (zh) | 端口探测方法、装置、电子装置和存储介质 | |
US10389681B2 (en) | Auto discovery of network elements by defining new extension in DHCP options for management server IP addresses | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
JP6605149B2 (ja) | 共有端末の検出方法及びその装置 | |
CN110324436B (zh) | 一种传输层代理的代理方法及装置 | |
CN109962990B (zh) | 一种自动接入nat内监控设备的方法及装置 | |
CN112995353A (zh) | 基于流量分析的IPv6地址存活性扫描系统及扫描方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210415 Address after: 200131 Zone E, 9th floor, No.1 Lane 666, zhangheng Road, Pudong New Area pilot Free Trade Zone, Shanghai Applicant after: Shanghai Shangxiang Network Technology Co.,Ltd. Address before: 201306 N2025 room 24, 2 New Town Road, mud town, Pudong New Area, Shanghai Applicant before: SHANGHAI LIANSHANG NETWORK TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |