[0049] 以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
[0050] AP接入网络有一部分会采用动态主机配置协议(DHCP)交互信息,然由于DHCP用户获得的IP地址不是固定的,需要通过信息交互来获取,当信息交互时包含虚假信息而AP没有及时发现,那么DHCP用户的MAC地址/IP地址就会被盗用,严重的会导致DHCP服务器地址池中的地址耗尽,无法提供网络服务。
[0051] 本发明借鉴目前有限网络中的DHCP防欺骗及饿死攻击策略,利用AP能监测客户端上线或下线的特点,设计出相应的AP防欺骗及饿死攻击策略。
[0052] 实施例1
[0053] 如图1所示,本实施例提供一种动态主机配置协议监听与防护方法,应用于无线接入点,英文俗称AP,所述方法包括:
[0054] S10:检测到有用户建立连接后,创建用户信息记录项保存对应用户的物理地址以及用户连接时关联的无线接口;
[0055] 本步骤中,检测到有用户建立连接后就是检测到有用户(STA)上线后,而不是之前已经连接好的STA。具体的:STA1找到AP1的无线网络名(SSID)并关联AP1的SSID,AP1会收到STA1上线的CLIENT_IN消息,STA1上线(STA1关联上AP1)后,AP1会创建一个与STA1对应的用户信息记录项,其中保存有STA1的物理地址(也就是MAC地址)以及STA1与AP1关联所用的无线接口信息,此处无线接口由AP1创建,每个STA与AP1通信时,均会被分配到一个无线接口,同一个无线接口下可以有多个不同STA。
[0056] AP创建了用户信息记录项,可以方便AP出现问题时进行跟踪分析,还可以方便后期信息交互时核对相关信息,具体表现为只有当信息交互中含有与用户信息记录项相同的信息,才会被AP认可放行,继续执行下一步操作;就好比是只有对的钥匙,才能开门。
[0057] S20:监听用户与动态主机配置协议服务器之间的动态主机配置协议报文,更新所述用户信息记录项内容,同时根据所述用户信息记录项,选择对监听的动态主机配置协议报文进行转发或丢弃处理;
[0058] 本步骤中,AP监听STA与DHCP服务器之间的DHCP报文,监听保证各种携带有可以证明身份信息项均被准确识别并更新内容至用户信息记录项,此处所述更新为增加记录;通常情况下AP将监听到的DHCP报文分为两大类,一是请求类报文(即DHCP Discover、DHCP Request、DHCP Decline、DHCP Release、DHCP Inform等),均由STA端发出;二是应答类报文(即DHCP Offer、DHCP NAK、DHCP ACK等),由DHCP服务器发出。除了识别,AP还会将报文中的内容与用户信息记录项一一核对,以此判断选择丢弃还是转发报文。
[0059] S30:检测到用户断开连接后,删除该用户对应的所述用户信息记录项。
[0060] 本步骤中,STA主动或者被动断开连接时,AP会收到STA下线的CLIENT_OUT消息,此时AP就会找到该STA对应的用户信息记录项并删除它。
[0061] 本实施例提供的方法可以识别恶意伪造的报文,因为恶意伪造的报文数据包包含的信息一般不会和用户信息记录项中的信息相符合,从而阻止了AP连接下的DHCP欺骗和饿死攻击。
[0062] 实施例2
[0063] 如图2所示,本实施例与之前实施例的区别在于,本实施例提供一种更加详细的能够防止终端伪造DHCP报文(包括伪造同一个无线接口下其他终端的DHCP报文)进行欺骗或饿死攻击的方法。
[0064] 所述步骤S10之前包括:
[0065] S01:查看是否建立有无线桥接;
[0066] 考虑到目前拓宽无线网络普遍采用无线桥接的方式将有线连接的AP与AP桥接,无线桥接的AP下有STA连接,也需要进行信息交互。但是由于数据传播距离的局限,无线桥接的AP无法主动监听到DHCP报文,只能通过有线连接的AP转达。
[0067] S02:根据无线桥接建立情况,设置信任端口。
[0068] 本步骤中,无线桥接的建立有无,直接影响信任端口的设定;信任端口,顾名思义,是AP会无条件相信的接口,AP认为从信任端口进入的DHCP数据包是安全的,没有任何攻击的。如WAN口和WDS口,其中WAN口(广域网接口)不用多说大家也都了解,而WDS口就是当某一无线接口是供其他AP进行无线桥接的,则认为此无线接口是WDS口,需要说明的是,WDS口只关联AP不关联STA。
[0069] 为何这两个接口可以被信任呢?因为STA不会连接在WAN口和WDS口,所以DHCP请求类报文不会从这两个接口进来,所以当然不会有恶意终端发送伪装报文从这两个接口进来,因此WAN口和WDS口值得信任。
[0070] 步骤S02中,当无线桥接建立,则WAN口和WDS口均设置为信任端口;当没有建立无线桥接,则只有WAN口设置为信任端口。
[0071] 作为优选地,所述步骤S20中若监听到DHCP请求类报文,则执行以下步骤:
[0072] S21a:判断所述DHCP请求报文的入口是否为信任端口,若是则转发所述DHCP请求报文,若不是,则执行S22a;
[0073] 本步骤中AP识别到报文为DHCP请求类报文,查看该报文的进入接口,若从信任端口进来的,则直接转发该报文,若不是,就需要进一步的判断。
[0074] S22a:判断所述DHCP请求报文的用户端MAC与相应的以太网源MAC是否一致,若不一致,则丢弃所述DHCP请求报文,若一致,则执行S23a;
[0075] 本步骤中的DHCP请求报文不是从信任端口进来,所以AP需要判断它包含的MAC是否与本报文数据包的以太网源MAC一致,以此初步排除攻击者伪造的MAC。
[0076] S23a:比对所述用户信息记录项中的各项信息,均一致后转发所述DHCP请求报文,若有任一项不符合,则丢弃所述DHCP请求报文。
[0077] 本步骤中AP先根据DHCP报文中的用户端MAC查找是否存在用户信息记录项中包含有与用户端MAC对应的MAC,如果不存在,则丢弃所述DHCP请求报文;如果存在,就查看DHCP报文的入口,看看是否有对应的用户信息记录项中STA关联的无线接口与之匹配,若没有,则丢弃,若有,则转发。
[0078] 需要说明的是,本步骤中如果该DHCP请求报文不是同一STA第一次发出的DHCP请求报文,所述用户信息记录项的内容就会相对的更加完善,比对效果就会更准确。
[0079] 综上所述,本实施例提供的方法可以更好的防止终端伪造DHCP报文(包括伪造同一个无线接口下其他终端的DHCP报文)进行的欺骗或饿死攻击。
[0080] 实施例3
[0081] 如图3所示,本实施例与实施例2的区别在于,本实施例还提供一种能够防止终端通过修改本机物理地址频繁上下线和防止终端伪造DHCP服务器的方法,所述步骤S20中若监听到DHCP应答类报文,则执行以下步骤:
[0082] S21b:判断所述DHCP应答报文的入口是否为信任端口,若不是则丢弃所述DHCP应答报文,若是,则执行S22b;
[0083] S22b:根据所述DHCP应答报文的客户端MAC在所述用户信息记录项中查找是否存在相对应的MAC,若不存在,则根据无线桥接建立情况进行丢弃或者转发处理,若存在,则执行步骤S23b;
[0084] S23b:转发所述DHCP应答报文,同时若所述DHCP应答报文为回应找到相应的租约记录的DHCP ACK报文时,根据所述DHCP ACK报文内容,添加其中相应的用户IP地址以及DHCP服务器的信息到所述用户信息记录项以更新内容。
[0085] 本实施例中的DHCP应答报文一般为DHCP Offer、DHCP NAK或DHCP ACK,首先AP判断所述DHCP应答报文的入口是否为信任端口,若不是则丢弃所述DHCP应答报文,因为终端可以伪造DHCP服务器发送应答类报文,不能伪造进入入口,故而判断入口是否为信任端口可以防止终端伪造DHCP服务器进行的欺骗攻击;
[0086] 然后AP再根据所述DHCP应答报文的客户端MAC在所述用户信息记录项中查找是否存在相对应的MAC,如果不存在也不能直接丢弃,而是先查看无线桥接建立情况再判断丢弃或转发;特别的,若报文是回应找到相应的租约记录的DHCP ACK报文,AP则需要保存相应的Client IP以及DHCP服务器中包含的其他租约信息以及客户端信息等,以更新所述用户信息记录项,同时以便后期找到对应的这些信息并通知DHCP服务器释放这些信息。
[0087] 所述步骤S22b中所述根据无线桥接建立情况进行丢弃或者转发处理具体包括:
[0088] 若没有建立无线桥接,则丢弃所述DHCP应答报文,若建立有无线桥接,则向无线桥接下所关联设备转发所述DHCP应答报文。
[0089] 无线桥接下所关联设备一般也是AP,也称Repeater AP,能够产生射频提供无线信号供无线终端接入,无线桥接的AP受数据传播距离的局限,无法主动监听到DHCP报文,只能通过有线连接的AP转达,故而要保障无线桥接的AP下STA的正常服务,必须进过本步骤处理,也是因为有了本步骤本实施例的方法才能兼容无线桥接和非无线桥接模式组网。
[0090] 作为优选地,所述步骤S30中所述删除该用户对应的所述用户信息记录项之前包括:
[0091] S31:根据断开连接的用户所对应的用户信息记录项,向DHCP服务器发送释放报文以释放对应的用户IP地址。
[0092] 相对之前实施例直接删除用户所对应的用户信息记录项,本步骤中增加了释放对应的用户IP地址步骤,根据下线STA的用户信息记录项中的IP地址相关信息,告知DHCP服务器STA需要释放此IP地址,该IP地址后续可以回到DHCP服务器地址池中,供以后分发给其他STA使用,而不是长期占用,损耗资源。
[0093] 综上所述,本实施例可以较完善的防止终端通过修改本机物理地址频繁上下线进行饿死攻击和防止终端伪造DHCP服务器进行欺骗攻击。
[0094] 实施例4
[0095] 如图4所示,本实施例提供一种动态主机配置协议监听与防护系统,应用于无线接入点,需要说明的是,本系统就是上述实施例中方法的实际运用,所述系统包括:
[0096] 创建模块100:用于检测到有用户建立连接后,创建用户信息记录项保存对应用户的MAC以及用户连接时关联的无线接口;
[0097] 监听处理模块200:用于监听用户与DHCP服务器之间的DHCP报文,更新所述用户信息记录项内容,同时根据所述用户信息记录项,选择对监听的DHCP报文进行转发或丢弃处理;
[0098] 删除模块300:用于检测到用户断开连接后,删除该用户对应的所述用户信息记录项。
[0099] 作为优选地,所述系统还包括:
[0100] 信任端口模块400:用于查看是否建立有无线桥接,根据无线桥接建立情况,设置信任端口。
[0101] 以上所述监听处理模块200包括:
[0102] 识别单元210:用于识别DHCP报文的类型;
[0103] 更新单元220:用于更新所述用户信息记录项内容。
[0104] 信息比对单元230:用于将DHCP报文携带信息与所述用户信息记录项进行比对;
[0105] 转发丢弃单元240:根据所述信息比对单元230比对结果,选择对监听的DHCP报文进行转发或丢弃。
[0106] 所述删除模块300包括:
[0107] 释放单元310:用于根据断开连接的用户所对应的用户信息记录项,向DHCP服务器发送释放报文以释放对应的用户IP地址。
[0108] 上述系统的运行原理如下:STA关联上AP上线后,AP创建模块100创建用户信息记录项,STA为了实现上网功能还需要进行其他信息交互,信息交互一般采用报文的形式,AP监听处理模块200的识别单元210识别这些报文,信息比对单元230根据报文类型、用户信息记录项以及信任端口模块400设置的信任端口这些信息,按照之前实施例提到的比对方法比对,转发丢弃单元240根据信息比对单元230比对结果,选择对监听的动态主机配置协议报文进行转发或丢弃,需要指出的是,转发丢弃单元240发现本AP中没有用户信息记录项对应该报文时,还需要查看有无WDS组网情况,若有,则要需要向组网中的其他无线AP转发这个报文,保证WDS模式下的其他STA正常上网。
[0109] 另外,在这些的报文中一定会有DHCP ACK报文,这个报文中携带有IP地址以及租约等信息,为了后期更准确的过滤掉虚假报文,更新单元220会将这些信息保存至对应STA下的用户信息记录项。
[0110] STA结束网络连接时,AP的释放单元310会向DHCP服务器发送DHCPRelease报文,报文携带IP地址告知DHCP服务器这个IP地址现在可以分配给其他STA了,同时也会删除STA对应的用户信息记录项,释放内存。
[0111] 综上可得,本实施例提供的系统能够帮助AP阻止多种类型的DHCP欺骗和饿死攻击,为用户提供更加稳定、安全以及优质的网络服务。
[0112] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。