物联网环境下抵抗路由欺骗攻击的网络拓扑发现算法
傅文博1, 张杰1, 陈永乐2
1.山西大同大学 数学与计算机科学学院,山西 大同 037009
2.太原理工大学 计算机科学与技术学院, 太原 030024

作者简介:傅文博(1976-),男,副教授,博士.研究方向:物联网技术,网络安全.E-mail:18603523830@163.com

摘要

针对传统网络拓扑发现算法没有对数据来源的真实性进行验证,造成网络拓扑发现结果有被欺骗的可能性,在物联网环境下,提出了一种新的可抵抗路由欺骗攻击的网络拓扑发现算法。对物联网无向图进行描述,利用PSNP请求对可疑路由信息的源路由器进行查询,实现真实性检测,抵抗路由欺骗攻击。采用SNMP管理信息库MIB内的信息对路由器与交换机进行区分,为网络层拓扑发现提供依据。给出SNMP协议网络层拓扑发现算法流程。结合网桥转发表和网桥生成树算法实现链路层拓扑发现,介绍了链路层拓扑发现流程。实验结果表明,本文算法能够有效抵抗路由欺骗,网络拓扑发现性能强。

关键词: 计算机应用; 物联网环境; 路由欺骗; 攻击; 网络拓扑发现
中图分类号:TP393.07 文献标志码:A 文章编号:1671-5497(2018)04-1231-06
Network topology discovery algorithm against routing spoofing attack in Internet of things
FU Wen-bo1, ZHANG Jie1, CHEN Yong-le2
1.School of Mathematics and Computer Science, Shanxi Datong University, Datong 037009, China
2.College of Computer Science and Technology, Taiyuan University of Technology, Taiyuan 030024, China
Abstract

The traditional Network Topology Discovery (NTD) algorithm does not verify the authenticity of data sources, resulting in the possibility of the discovery results being deceived. Therefore, in the internet of things environment, a new NTD algorithm is proposed, which can resist routing spoofing attack. The undirected graph of the internet of things is described, and the PSNP request is used to query the source router of the suspicious routing information, so as to realize the authenticity detection and resist routing proofing attack. The information in SNMP management information base MIB is used to distinguish routers and switches, which provides the basis for network layer topology discovery. The algorithm flow of network layer topology discovery in SNMP protocol is given. The link layer topology discovery process is introduced by combing bridge switching and bridge spanning tree algorithm to realize link layer topology discovery. Experimental results show that the proposed algorithm can effectively resist routing proofing attack and has strong network topology discovery performance.

Keyword: computer application; Internet of things environment; routing spoofing; attack; network topology discovery
0 引 言

物联网即物物相连的互联网, 其将射频识别技术、红外技术、GPS系统和信息传感技术结合在一起, 将所有物品和物联网连接在一起, 实现通信和共享[1, 2]。网络拓扑发现为有效管理物联网的关键, 可靠的网络拓扑发现算法可追溯网络拥塞的原因, 保证网络安全性, 提高带宽利用率[2, 3]

因为物联网基础设施受外界地理环境和障碍物的影响, 导致传感器节点采集的网络拓扑复杂多变, 与真实网络有很大的不同。当前常用的网络拓扑算法注重能量检测与报文丢失率, 忽略了安全性, 没有对数据来源的真实性进行验证, 造成网络拓扑发现结果有被欺骗的可能[4]。为此, 在物联网环境下, 提出一种新的可抵抗路由欺骗攻击的网络拓扑发现算法, 对数据来源的真实性进行检验, 增强了对路由欺骗攻击的防御能力, 保证网络拓扑发现结果的准确性和安全性。

1本文算法

1.1 物联网无向图描述

采用无向图 G=(V, E)描述物联网。其中, V用于描述物联网中的节点, 主要包括路由器、交换机以及主机等; E用于描述 V中元素间的连接关系。

为了确保网络顺畅运行, 物联网被分成若干子网。各子网间通过路由器相连, 子网间通过交换机等网络元素相连[5]。在实际物联网环境下, 物理路径或许有回路存在, 很容易造成网络瘫痪。为了避免此问题的发生, 采用生成树协议(STP)去掉网络中的环, 使部分交换机间的连接断开, 从而确保网络顺畅运行。图1描述的是STP协议网络构成的树状结构。

图1 物联网无向图Fig.1 Undirected graph of Internet of things

本文算法包括两个层次的拓扑发现, 分别是网络层拓扑发现和链路层拓扑发现, 在发现网络拓扑前, 需要进行真实性检测, 以抵抗路由欺骗攻击, 下面进行详细分析。

1.2 真实性检测

路由欺骗攻击会导致下述两种网络拓扑出现改变:

(1)已有链路的更新。在已有链路为更新状态时, 网络中会产生LSPID, 其与已有的LSP相似, 但比已有的LSP数据包要大[6]。当前若某声明是虚假声明, 那么物联网里的真实源路由器会对虚假讯息进行抵抗, 产生序列号慢慢递增的冲突路由讯息。

(2)已有链路的删除。在对链路实施删除时, 运行SNMP协议的路由器会传输RemainingTime为0的LSP, 表示此链路不可使用, 经过LSPID对已经不可使用的LSP进行标识, 删除有关链路[7]。若当前声明的已失效链路依然存在, 那么路由器会再次对此链路进行警告。

因此, 能使用PSNP请求向可疑路由信息的源路由器查询, 达到真实性检测的目的。这会导致路由拓扑的数据报文出现改变, 本节利用PSNP请求向源路由器确认, 在物联网无路由欺骗攻击的情况下, 源路由器的回复会与接收的更新报文相同; 否则, 物联网会出现相互冲突的链路状态报文。真实性检测流程如图2所示。

图2 真实性检测流程图Fig.2 Flow chart of authenticity test

在进行真实性测试时, 在采集数据中包含和当前路由信息集合 A冲突的特征信息Uc的情况下, 认为该路由数据报文存在异常, 需要完成对其的真实性检测。

1.3 网络层拓扑发现

1.3.1 路由器与交换机的判定

本节采用SNMP管理信息库MIB内的信息对路由器与交换机进行区分, 为网络层拓扑发现提供依据。MIB包括MIB、MIB-Ⅱ 以及Q-Bridge-MIB三大类别, 其中MIB-Ⅱ 是通过MIB转变得到的[8]。由于当前大部分装置拥有MIB, 因此采用MIB能够实现网络管理。SNMP的MIB信息中共存在10个组, 其中interface 组与IP组是通过网络拓扑发现的。

通常根据interface组中的sysServiecs值判定装置类别, 这里sysServiecs值用 Ss表示。若 Ss=15, 通过式(1)可求出 Bi=4, 因此可知装置是具备数据转发功能的网络装置, 可初步认为相应装置为路由器。

Ss=i=1Bi2i-1(1)

由于某种情况下路由器的 Ss值或许为其他值, 因此只通过interface组中的 Ss值判定装置类别为路由器是不充分的。这时通常需引入IP组中的数据加以辅助[9]。在MIB的IP组中, 若ipforwording值为1时, 即 If=1则表明此装置能够实现转发; 若 If=0, 则表明此装备无法实现转发。因此若装置为路由器, 则 If值等于1。通过结合 Ss值与 If值就能够实现路由器与交换机的区分[10]。然而目前存在部分交换机同样能够转发数据, 与路由器一样为网络层装置, 这时根据测试装置能否实现Bridge-MIB对路由器与网络交换机进行区分, 若无法实现, 则认为是路由器; 否则, 认为是交换机。

1.3.2 网络层的拓扑发现算法

完成路由器与交换机的判定后, 就能够实现网络层拓扑发现。路由器的路由表中含有路由信息, 尽管单一路由器对网络层拓扑的表述是局限的, 但把整个网络中各路由器的路由表信息收集在一起就能够得到网络层的全部拓扑结构信息[11]。该算法的基本思想为:通过 SNMP 协议采集路由器中的路由信息, 并对得到的信息进行分析, 确定网络层中各元素间的连接关系。

SNMP协议拓扑发现算法的具体过程如下:

(1)依据SNMP协议对网络层中的路由器施行判定, 把确定的路由器放置在待发现路由器序列中。

(2)在待发现路由器序列里挑出一个路由器, 将此路由器当成起点。采用SNMP协议查询此时路由器的MIB信息库, 并获取其中的路由器地址表。

(3)找出地址表中最大的IP地址, 并将其当成路由器ID, 把该ID录入至完成访问路由器序列中, 同时把待发现路由器序列中与次路由器接口IP一致的地址去掉[12]

(4)访问此时路由器MIB信息库中 ipAddrTable表中的各条记录, 若记录中ipAddrTable等于4, 即IAT=4, 则说明此路由器与子网直接相连, 对目的IP地址(ipRouteDest)和目的子网掩码(ipRouteMask)进行“ 与” 运算, 获取与其直接连接的子网信息和路由器与子网的连接信息。

(5)若此时路由器MIB信息库中 ipRouteType值为5, 即IRT=5, 则说明此路由器与子网间接连接, 挑出与此路由器直接连接的 n+1跳路由器(ipRouteNextHop), 同时将其放入待发现路由器序列, 把此时路由器添加至完成发现路由器序列中。

(6)从待发现路由器序列中访问路由器, 并循环步骤(2)~(5), 直到待发现路由器序列为∅。

1.4 链路层拓扑发现

本节结合网桥转发表和网桥生成树算法实现链路层拓扑发现, 该算法可解决恶劣环境下的拓扑发现问题, 实用性较强。

为了描述链路层拓扑发现算法, 首先给出以下指代描述:用dot1dCompatibleAgents队列描述允许生成树协议的二层设备集合; 用ipSets描述地址空间集合[13]。SnmpPingPosix函数与SnmpPing函数基本相同, 区别是 SnmpPingPosix函数选用既定OID, 同时通过多线程形式对设备是否兼容SNMP协议进行判断[14]; 而GatherBridgeInfoAll 函数主要用于对网桥数据进行采集, 可返回IEEE8021D类型的节点。

用hostSets描述网络层拓扑发现算法获取的主机地址集合, 则链路层拓扑发现算法实现过程如下:

(1)对dot1dCompatibleAgents队列与ipSets集合进行初始化处理, 令其为空集; 对链路层拓扑发现地址空间进行读取, 同时将其添加至ipSets。

(2)对集合ipSets和集合hostSets进行交集处理, 将处理结果储存至ipSets。

(3)如果ipSets是空集, 则算法结束; 反之, 通过SnmpPingPosix函数完成对ipSets对象的响应测试, 同时将地址储存至dot1dCompatibleAgents队列。

(4)如果dot1dCompatibleAgents是空集, 则进行步骤(5); 反之, 将dot1dCompatibleAgents的队头QA取出, 通过GatherBridgeInfoAll函数对QA的生成树信息info_stp和地址转发表信息info_stp进行采集, 将得到的节点当成二维链表的纵向节点串接, 将info_stp等链表当成横向节点串接。

(5)对网桥转发二维链表进行分析以求出链接关系, 从网桥生成树链表中两两选择节点, 且需满足下述条件:①属于不同设备; ②指定网桥一致; ③端口可随时执行转发操作; ④两个节点依次归属指定端口与非根桥根端口; ⑤节点链接标志位是0[15]

P描述非根桥根端口的节点, 用 Q描述剩余节点, 通过查找接口信息链表, 求出定义 PIP地址接口的MAC地址。在 Q的地址转发表链表中获取相应MAC地址的端口; 如果获取成功, 则记录“ 设备、端口-设备、端口” 之间的链接关系; 反之, 通过负数对链接关系进行描述。将 PQ两个节点的链接标志位设置为1。

(6)对链接标志位进行复位处理, 再次对生成树信息链表进行分析, 得到满足条件的节点。

(7)算法结束。

2 实验及其结果分析
2.1 实验环境

实验在物联网环境下进行, 环境为仿真的动态网络, 其节点数量为15个, 图3描述的是其拓扑结构, 所有链路容量都是1.5 Mbit/s, 仿真周期是2 ms。假设所有节点均依据泊松分布形成数据包, 平均大小是1024 B。

图3 实验网络拓扑结构Fig.3 Topological structure of experimental network

2.2 抵抗路由欺骗攻击性能测试

形成拓扑结构后, 利用路由器模拟软件伪造链路7和链路16的失效报文, 分别采用本文算法、广度优先遍历算法和子树交汇算法发现网络拓扑, 得到的结果如图4所示。

图4 三种算法的拓扑发现结果Fig.4 Topology discovery results of three algorithms

分析图4可知, 广度优先遍历算法将链路7删除, 子树交汇算法将链路7和链路16全部删除, 只有本文算法未删除链路7和链路16, 这是因为本文算法对链路删除报文进行真实性验证, 在验证过程中接收源路由器对链路7和链路16的存在性判断结果, 使得路由欺骗攻击想要删除的链路得以保留, 说明本文算法能够抵抗路由欺骗攻击。

2.3 性能测试

一种有效的网络拓扑发现算法不仅要保证网络的安全性, 还需在性能上体现高优越性。本节将发现时间、初始化时间、平均占用网络带宽、发现率、适应能力作为指标, 将广度优先遍历算法和子树交汇算法作为对比, 对本文算法性能进行验证, 结果如表1所示。

表1 三种算法的性能比较 Table 1 Performance comparison of three algorithms

分析表1可知, 本文算法的发现时间和初始化时间分别为0.92 s和3.15 s, 与广度优先遍历算法、子树交汇算法相比明显更低, 说明本文算法发现效率高。本文算法适应能力也优于广度优先遍历算法和子树交汇算法, 说明本文算法适应能力强。除此之外, 本文算法平均占用网络带宽更低, 发现率更高。综合上述分析可知, 本文算法具有发现效率高、适应能力强、节省资源的特性, 整体性能优越。

3 结束语

在物联网环境下, 提出了一种新的可抵抗路由欺骗攻击的网络拓扑发现算法。利用PSNP请求对可疑路由信息的源路由器进行查询, 实现真实性检测, 通过网络层拓扑发现和链路层拓扑发现实现网络拓扑发现。实验结果表明, 本文算法能够有效抵抗路由欺骗, 网络拓扑发现性能强。

The authors have declared that no competing interests exist.

参考文献
[1] 郑杰, 李建平. 物联网传感网络路由改进设计算法研究[J]. 科技通报, 2017, 33(3): 92-95.
Zheng Jie, Li Jian-ping. Research on improved design algorithm of internet of things sensor network[J]. Bulletin of Science and Technology, 2017, 33(3): 92-95. [本文引用:1]
[2] 杨秀清, 陈海燕. 光通信技术在物联网中的应用[J]. 中国光学, 2014, 7(6): 889-896.
Yang Xiu-qing, Chen Hai-yan. Application of optical communication technique in the Internet of Things[J]. Chinese Optics, 2014, 7(6): 889-896. [本文引用:2]
[3] 于婷婷, 马晓波, 王晓娟. 基于移动代理的无线自组网络拓扑发现算法研究[J]. 现代电子技术, 2016, 39(18): 39-42.
Yu Ting-ting, Ma Xiao-bo, Wang Xiao-juan. Research of mobile agent based topology discovery algorithms in wireless Ad hoc network[J]. Modern Electronics Technique, 2016, 39(18): 39-42. [本文引用:1]
[4] 曾光, 陈性元, 杜学绘, . 基于多子网交汇点的以太网物理拓扑发现算法[J]. 计算机科学, 2014, 41(5): 173-177.
Zeng Guang, Chen Xing-yuan, Du Xue-hui, et al. Physical topology discovery algorithm for Ethernet based on intersection of multi-subnet[J]. Computer Science, 2014, 41(5): 173-177. [本文引用:1]
[5] 李智楠, 杨晓冬. 基于可靠路径稳定性估计的MANET路由发现算法研究[J]. 通信学报, 2016, 37(8): 119-128.
Li Zhi-nan, Yang Xiao-dong. Routing discovery algorithm based on reliable path stability estimation in MANET[J]. Journal on Communications, 2016, 37(8): 119-128. [本文引用:1]
[6] 邹柯, 姚英彪. 抵御欺骗攻击的DV-Hop安全定位算法[J]. 传感技术学报, 2017, 30(4): 603-610.
Zou Ke, Yao Ying-biao. DV-Hop secure localization algorithm against spoofing attack[J]. Chinese Journal of Sensors and Actuators, 2017, 30(4): 603-610. [本文引用:1]
[7] 李祝红, 赵灿明, 石滚, . 动态网络环境下的链路层拓扑发现算法[J]. 计算机系统应用, 2015, 24(10): 122-128.
Li Zhu-hong, Zhao Can-ming, Shi Gun, et al. Link-layer topology discovery algorithm under dynamic networking environments[J]. Computer Systems & Applications, 2015, 24(10): 122-128. [本文引用:1]
[8] 吴辰文, 茹俊年, 刘香丽, . 基于丢包率的多播网络拓扑推断算法[J]. 计算机工程与应用, 2014, 50(13): 118-120.
Wu Chen-wen, Ru Jun-nian, Liu Xiang-li, et al. Algorithm of multicast network topology inference based on packet loss rate[J]. Computer Engineering, 2014, 50(13): 118-120. [本文引用:1]
[9] 张宾, 刁兴春, 刘艺, . 基于AFT满足下行约束的物理拓扑发现方法[J]. 电子学报, 2016, 44(8): 1864-1872.
Zhang Bin, Diao Xing-chun, Liu Yi, et al. A physical topology discovery method based on AFT of downstream constraint[J]. Acta Electronica Sinica, 2016, 44(8): 1864-1872. [本文引用:1]
[10] 石佳玉, 吴辰文, 孔德弟, . 基于叶节点DFS序列的网络拓扑推断算法[J]. 计算机工程与设计, 2014, 35(2): 411-415.
Shi Jia-yu, Wu Chen-wen, Kong De-di, et al. Network topology inference method based on DFS sequence[J]. Computer Engineering and Design, 2014, 35(2): 411-415. [本文引用:1]
[11] 宋钰, 关文静, 何小利. 动态传感网络主节点恶意攻击检测仿真[J]. 计算机仿真, 2014, 31(10): 326-329.
Song Yu, Guan Wen-jing, He Xiao-li. Simulation on the malicious attack detection of major node of dynamic sensor network[J]. Computer Simulation, 2014, 31(10): 326-329. [本文引用:1]
[12] 贺筱军, 李为民, 黄仁全, . 基于攻击策略的复杂网络拓扑结构优化模型[J]. 电讯技术, 2014, 54(9): 1286-1291.
He Xiao-jun, Li Wei-min, Huang Ren-quan, et al. An optimization topological structure model for complex network based on attack strategy[J]. Telecommunication Engineering, 2014, 54(9): 1286-1291. [本文引用:1]
[13] 毕娟, 秦志光. 基于概率主题模型的社交网络层次化社区发现算法[J]. 电子科技大学学报, 2014, 43(6): 898-903.
Bi Juan, Qin Zhi-guang. Hierarchical community discovery for social networks based on probabilistic topic model[J]. Journal of University of Electronic Science and Technology of China, 2014, 43(6): 898-903. [本文引用:1]
[14] 李黎, 郑庆华, 管晓宏, . 基于有限资源提升网络可生存性的拓扑重构方法[J]. 物理学报, 2014, 63(17): 1-11.
Li Li, Zheng Qing-hua, Guan Xiao-hong, et al. A topological reconfiguration method for enhancing networks survivability with limited resources[J]. Acta Physica Sinica, 2014, 63(17): 1-11. [本文引用:1]
[15] 赵文涛, 赵好好, 孟令军. 基于相关拓扑势的社团发现算法[J]. 计算机应用与软件, 2017, 34(1): 258-262.
Zhao Wen-tao, Zhao Hao-hao, Meng Ling-jun. Community detection algorithm based on interrelated topological potential[J]. Computer Applications and Software, 2017, 34(1): 258-262. [本文引用:1]