(12)发明专利申请
(10)申请公布号 CN 111614518 A(43)申请公布日 2020.09.01
(21)申请号 202010430916.6(22)申请日 2020.05.20
(71)申请人 中国电子科技集团公司第五十四研
究所
地址 050081 河北省石家庄市中山西路589
号中国电子科技集团公司第五十四研究所网络部(72)发明人 泰彬彬 李炳彰 贾哲 张海锋 (74)专利代理机构 河北东尚律师事务所 13124
代理人 王文庆(51)Int.Cl.
H04L 12/26(2006.01)
权利要求书2页 说明书6页 附图2页
(54)发明名称
一种基于OSPF协议的自动化安全测试方法(57)摘要
本发明公开了一种基于OSPF协议的自动化安全测试方法,属于路由器安全测试技术领域。该方法通过串接接入或旁路接入的方法接入路由网络,侦听交互的OSPF协议,自动获取安全测试所需的各项参数,并根据需要执行最大年龄、最大序列号、DD报文伪造、LSU报文篡改等安全测试方法,测试路由器防御能力。本发明利用自动化思想实现了测试参数自动获取,能够在接入网络后自动获取测试参数,避免了对操作人员进行大量的路由专业技能的学习,简化了的路由器安全测试的流程。
CN 111614518 ACN 111614518 A
权 利 要 求 书
1/2页
1.一种基于OSPF协议的自动化安全测试方法,其特征在于,应用于联网的双网卡设备,包括以下步骤:(1)判断两网卡能否接收到网络中路由器所发送的OSPF组播报文,若两个网卡均能收到OSPF组播报文,则转入步骤(2),若只有一个网卡能收到OSPF组播报文,则转入步骤(3);(2)将两块网卡连接成网桥,并将网卡本身的IP地址删除,设置网卡为混杂模式,利用无IP地址的网桥透明转发所有通过的数据包;同时,截获数据包中的数据报文,并监控网络中路由器的状态,在相应时机进行指定次数的最大年龄测试、序列号测试、DD报文测试和路由表篡改测试,然后转到步骤(4);(3)生成一台虚拟OSPF路由器,通过虚拟路由器与网络中的路由器进行正常的OSPF协议交互以及数据包的正常接发;同时,截获数据包中的数据报文,并监控网络中路由器的状态,在相应时机进行指定次数的最大年龄测试和序列号测试,然后转到步骤(4);
其中,最大年龄测试的时机为路由器周期性地进行连接状态询问时,测试方式为,将截获的正常OSPF协议LSU报文中的年龄字段修改为0XFF,然后将修改后的报文发送出去,若造成路由器链路重置并使通信异常产生丢包,则表明目标路由器存在安全缺陷;
序列号测试的时机为路由器周期性地进行连接状态询问时,测试方式为,将截获的正常OSPF协议LSU报文中的序列号字段修改为0X7FFFFFFF,然后将修改后的报文发送出去,若造成路由器链路重置并使通信异常产生丢包,则表明目标路由器存在安全缺陷;
DD报文测试的时机为路由收敛并更新DD数据库时,测试方式为,将截获的正常OSPF协议DD报文中的LSA字段修改为随机构造的伪字段,然后将修改后的报文发送出去,若造成目标路由器CPU使用率大幅上升从而影响其他业务运行,则表明目标路由器存在安全缺陷;
路由表篡改测试的时机为新路由接入或有路由器退出网络造成路由表更新时,测试方式为,将截获的正常OSPF协议LSU报文中的TransitID字段修改为伪造的网段,然后将修改后的报文发送出去,若造成目标路由器路由表产生变化,影响到路由器的数据转发路径,则表明目标路由器存在安全缺陷;(4)生成测试报告,所述测试报告中包括被测路由器的ID、各项测试的测试次数以及每次测试的结果。
2.根据权利要求1所述的一种基于OSPF协议的自动化安全测试方法,其特征在于,所述双网卡设备中预先存有最大年龄测试、序列号测试、DD报文测试和路由表篡改测试的报文模板,其中,最大年龄测试的报文模板为正常OSPF协议中LSU报文的格式,序列号测试的报文模板为正常OSPF协议中LSU报文的格式,DD报文测试的报文模板为正常OSPF协议中DD报文的格式,路由表篡改测试的报文模板为正常OSPF协议中LSU报文的格式;
在执行步骤(2)之前先执行如下步骤:(before-2)初始化最大年龄测试、序列号测试、DD报文测试和路由表篡改测试的报文模板,将最大年龄测试报文模板中的年龄字段设定为0XFF,将序列号测试报文模板中的序列号字段设定为0X7FFFFFFF,将DD报文测试报文模板中的LSA字段设定为随机构造的伪字段,将路由表篡改测试报文模板中的TransitID字段设定为伪造的网段;
在执行步骤(2)时,通过从截获的相应数据报文中提取信息并填入到初始化后的相应报文模板中,来生成相应的修改后报文;
在执行步骤(3)之前先执行如下步骤:
2
CN 111614518 A
权 利 要 求 书
2/2页
(before-3)初始化最大年龄测试和序列号测试,将最大年龄测试报文模板中的年龄字段设定为0XFF,将序列号测试报文模板中的序列号字段设定为0X7FFFFFFF;
在执行步骤(3)时,通过从截获的相应数据报文中提取信息并填入到初始化后的相应报文模板中,来生成相应的修改后报文。
3
CN 111614518 A
说 明 书
一种基于OSPF协议的自动化安全测试方法
1/6页
技术领域
[0001]本发明涉及路由器安全测试技术领域,特别是指一种基于OSPF协议的自动化安全测试方法,可用于对基于OSPF协议的路由器进行自动化安全测试。背景技术
[0002]路由器的安全性一向是网络安全的关键,一旦路由器出现路由震荡、资源耗尽等问题,就会对整个网络的通信造成灾难性后果。为了保障路由器的安全,就需要对路由器进行安全性测试。[0003]目前,路由器安全测试的方法均为专业性很高的人工测试方法,存在以下问题:
(1)测试流程复杂,需要对测试人员进行长时间的培训,测试成本高昂;(2)测试结果不明确,难以确定经过测试的路由器是否真的存在安全性问题。发明内容
[0004]有鉴于此,本发明提出一种基于OSPF协议的自动化安全测试方法,该方法简单易行,可自动化运行,无需人工干预,测试结果明确。[0005]为了实现上述目的,本发明所采用的技术方案为:
一种基于OSPF协议的自动化安全测试方法,应用于联网的双网卡设备,包括以下步骤:(1)判断两网卡能否接收到网络中路由器所发送的OSPF组播报文,若两个网卡均能收到OSPF组播报文,则转入步骤(2),若只有一个网卡能收到OSPF组播报文,则转入步骤(3);
(2)将两块网卡连接成网桥,并将网卡本身的IP地址删除,设置网卡为混杂模式,利用无IP地址的网桥透明转发所有通过的数据包;同时,截获数据包中的数据报文,并监控网络中路由器的状态,在相应时机进行指定次数的最大年龄测试、序列号测试、DD报文测试和路由表篡改测试,然后转到步骤(4);
(3)生成一台虚拟OSPF路由器,通过虚拟路由器与网络中的路由器进行正常的OSPF协议交互以及数据包的正常接发;同时,截获数据包中的数据报文,并监控网络中路由器的状态,在相应时机进行指定次数的最大年龄测试和序列号测试,然后转到步骤(4);
其中,最大年龄测试的时机为路由器周期性地进行连接状态询问时,测试方式为,将截获的正常OSPF协议LSU报文中的年龄字段修改为0XFF,然后将修改后的报文发送出去,若造成路由器链路重置并使通信异常产生丢包,则表明目标路由器存在安全缺陷;
序列号测试的时机为路由器周期性地进行连接状态询问时,测试方式为,将截获的正常OSPF协议LSU报文中的序列号字段修改为0X7FFFFFFF,然后将修改后的报文发送出去,若造成路由器链路重置并使通信异常产生丢包,则表明目标路由器存在安全缺陷;
DD报文测试的时机为路由收敛并更新DD数据库时,测试方式为,将截获的正常OSPF协议DD报文中的LSA字段修改为随机构造的伪字段,然后将修改后的报文发送出去,若造成目标路由器CPU使用率大幅上升从而影响其他业务运行,则表明目标路由器存在安全缺陷;
路由表篡改测试的时机为新路由接入或有路由器退出网络造成路由表更新时,测试方
4
CN 111614518 A
说 明 书
2/6页
式为,将截获的正常OSPF协议LSU报文中的TransitID字段修改为伪造的网段,然后将修改后的报文发送出去,若造成目标路由器路由表产生变化,影响到路由器的数据转发路径,则表明目标路由器存在安全缺陷;
(4)生成测试报告,所述测试报告中包括被测路由器的ID、各项测试的测试次数以及每次测试的结果。
[0006]进一步的,所述双网卡设备中预先存有最大年龄测试、序列号测试、DD报文测试和路由表篡改测试的报文模板,其中,最大年龄测试的报文模板为正常OSPF协议中LSU报文的格式,序列号测试的报文模板为正常OSPF协议中LSU报文的格式,DD报文测试的报文模板为正常OSPF协议中DD报文的格式,路由表篡改测试的报文模板为正常OSPF协议中LSU报文的格式;
在执行步骤(2)之前先执行如下步骤:(before-2)初始化最大年龄测试、序列号测试、DD报文测试和路由表篡改测试的报文模板,将最大年龄测试报文模板中的年龄字段设定为0XFF,将序列号测试报文模板中的序列号字段设定为0X7FFFFFFF,将DD报文测试报文模板中的LSA字段设定为随机构造的伪字段,将路由表篡改测试报文模板中的TransitID字段设定为伪造的网段;
在执行步骤(2)时,通过从截获的相应数据报文中提取信息并填入到初始化后的相应报文模板中,来生成相应的修改后报文;
在执行步骤(3)之前先执行如下步骤:(before-3)初始化最大年龄测试和序列号测试,将最大年龄测试报文模板中的年龄字段设定为0XFF,将序列号测试报文模板中的序列号字段设定为0X7FFFFFFF;
在执行步骤(3)时,通过从截获的相应数据报文中提取信息并填入到初始化后的相应报文模板中,来生成相应的修改后报文。[0007]本发明与现有技术相比,所取得的有益效果为:
1、本发明创新性地提出了自动化测试路由安全性的安全测试方法,并可自动生成测试报告,无需人工干预,测试结果明确。[0008]2、本发明通过自动化获取路由器各项参数,自动判断路由器状态,获取发送伪造报文或捕获报文进行篡改的时机,极大地简化了路由器安全测试的流程。[0009]3、本发明能够有效降低测试人员所需的专业知识,降低测试的学习周期和成本。附图说明
[0010]图1是本发明实施例中的测试软件的架构示意图。[0011]图2是本发明实施例中的测试方法的流程图。
具体实施方式
[0012]下面结合附图对本发明做进一步的详细说明。[0013]一种基于OSPF协议的自动化安全测试方法,应用于联网的双网卡设备,包括以下步骤:
(1)判断两网卡能否接收到网络中路由器所发送的OSPF组播报文,若两个网卡均能收到OSPF组播报文,则转入步骤(2),若只有一个网卡能收到OSPF组播报文,则转入步骤(3);
5
CN 111614518 A
说 明 书
3/6页
(2)将两块网卡连接成网桥,并将网卡本身的IP地址删除,设置网卡为混杂模式,利用无IP地址的网桥透明转发所有通过的数据包;同时,截获数据包中的数据报文,并监控网络中路由器的状态,在相应时机进行指定次数的最大年龄测试、序列号测试、DD报文测试和路由表篡改测试,然后转到步骤(4);
(3)生成一台虚拟OSPF路由器,通过虚拟路由器与网络中的路由器进行正常的OSPF协议交互以及数据包的正常接发;同时,截获数据包中的数据报文,并监控网络中路由器的状态,在相应时机进行指定次数的最大年龄测试和序列号测试,然后转到步骤(4);
其中,最大年龄测试的时机为路由器周期性地进行连接状态询问时,测试方式为,将截获的正常OSPF协议LSU报文中的年龄字段修改为0XFF,然后将修改后的报文发送出去,若造成路由器链路重置并使通信异常产生丢包,则表明目标路由器存在安全缺陷;
序列号测试的时机为路由器周期性地进行连接状态询问时,测试方式为,将截获的正常OSPF协议LSU报文中的序列号字段修改为0X7FFFFFFF,然后将修改后的报文发送出去,若造成路由器链路重置并使通信异常产生丢包,则表明目标路由器存在安全缺陷;
DD报文测试的时机为路由收敛并更新DD数据库时,测试方式为,将截获的正常OSPF协议DD报文中的LSA字段修改为随机构造的伪字段,然后将修改后的报文发送出去,若造成目标路由器CPU使用率大幅上升从而影响其他业务运行,则表明目标路由器存在安全缺陷;
路由表篡改测试的时机为新路由接入或有路由器退出网络造成路由表更新时,测试方式为,将截获的正常OSPF协议LSU报文中的TransitID字段修改为伪造的网段,然后将修改后的报文发送出去,若造成目标路由器路由表产生变化,影响到路由器的数据转发路径,则表明目标路由器存在安全缺陷;
(4)生成测试报告,所述测试报告中包括被测路由器的ID、各项测试的测试次数以及每次测试的结果。
[0014]该方法通过串接接入或旁路接入的方法接入路由网络,侦听交互的OSPF协议,自动获取安全测试所需的各项参数,并根据需要执行最大年龄、最大序列号、DD报文伪造、LSU报文篡改等安全测试方法,测试路由器防御能力。[0015]进一步的,所述双网卡设备中预先存有最大年龄测试、序列号测试、DD报文测试和路由表篡改测试的报文模板,其中,最大年龄测试的报文模板为正常OSPF协议中LSU报文的格式,序列号测试的报文模板为正常OSPF协议中LSU报文的格式,DD报文测试的报文模板为正常OSPF协议中DD报文的格式,路由表篡改测试的报文模板为正常OSPF协议中LSU报文的格式;
在执行步骤(2)之前先执行如下步骤:(before-2)初始化最大年龄测试、序列号测试、DD报文测试和路由表篡改测试的报文模板,将最大年龄测试报文模板中的年龄字段设定为0XFF,将序列号测试报文模板中的序列号字段设定为0X7FFFFFFF,将DD报文测试报文模板中的LSA字段设定为随机构造的伪字段,将路由表篡改测试报文模板中的TransitID字段设定为伪造的网段;
在执行步骤(2)时,通过从截获的相应数据报文中提取信息并填入到初始化后的相应报文模板中,来生成相应的修改后报文;
在执行步骤(3)之前先执行如下步骤:(before-3)初始化最大年龄测试和序列号测试,将最大年龄测试报文模板中的年龄字
6
CN 111614518 A
说 明 书
4/6页
段设定为0XFF,将序列号测试报文模板中的序列号字段设定为0X7FFFFFFF;
在执行步骤(3)时,通过从截获的相应数据报文中提取信息并填入到初始化后的相应报文模板中,来生成相应的修改后报文。[0016]上述方法可通过软件实现,图1所示为软件的架构示意图,该软件通过数据侦听、接入位置判断、协议内容解析实现路由器参数获取,通过路由器状态追踪实现对路由器状态的追踪和测试报文发送时机的确定,通过串接接入安全测试模块、旁路接入安全测试模块、数据发送模块实现测试报文的生成和发送,本软件工作时需要安装在一台Linux系统的多网卡设备中。
[0017]图2为该软件的流程图,其包括以下步骤:
(1)初始化安全测试模板,包括串接安全测试和旁接安全测试两大类,生成安全测试模板是后续测试的基础,串接和旁接连接方式由程序自动判断得出,判断方式为获取网卡连接状态配合能否接收到OSPF组播报文综合判断,如果两个网卡均处于连接状态,并且均能收到OSPF组播报文,判断为串接;如果仅一个网卡能够接收到OSPF组播报文,判断为旁接;如果仅一个网卡处于连接状态,并且能够接收到OSPF组播报文,判断为旁接;如果没有网卡接收到OSPF组播报文,评断设备未接入路由网络。串接安全测试时会自动初始化设备网卡以透明的方式接入两台路由器间,串接安全测试能够通过侦听两台路由器的交互信息,能够根据侦听的信息对两台路由器或邻接两台路由器的其他路由器进行安全测试,具体测试方法包括最大年龄测试、序列号测试、DD报文测试、路由表篡改测试等;旁接安全测试时会自动虚拟生成一台OSPF协议路由器和连接的路由器进行OSPF协议交互,通过连接的路由器获取全网路由器信息,能够对连接的路由器进行安全测试,包括最大年龄测试、序列号测试;
(2)在串接安全测试时,将连接路由器的两块网卡连接成网桥,并将网卡本身的IP地址删除,设置网卡为混杂模式,利用无IP地址的网桥透明转发所有通过的数据包;旁接安全测试时,生成一台虚拟OSPF路由器,与连接的路由器进行正常OSPF协议交互,获取OSPF各项参数信息。利用Linux的Iptables防火墙设置数据包拦截点为PREROUTING,将通过的所有数据报文截获,通过netlink-filter-queue将截获的数据报文传输到用户态,由本程序接收数据报文;
(3)根据数据报文IP头承载的上层协议号是否为89,并结合OSPF协议报文头前8bit的版本号是否为常见的OSPF协议版本号,综合判断接收的数据报文是否为OSPF协议,若不是,将该数据报文重新传回内核进行正常数据转发,若是,进行下一步处理;
(4)数据报文首先交由接入位置判断模块,记录来源IP地址、域ID、路由器ID、Hello Time时间、Dead Time时间,用于进行接入位置判断。下一步数据报文交由协议内容解析模块,解析OSPF数据报文的信息类型(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)、包含的协议参数和路由信息(包括路由器ID、区域ID、路由器能力选项、路由器优先级、指定路由器地址、备份路由器地址、邻居列表及距离)。最后数据报文交由路由器状态追踪模块,侦听、记录路由器状态,为测试报文确定发送时机;
(5)判断是否进行安全测试,如果还未开始安全测试,仅收集协议参数、接入模式即可,将数据包直接交还给内核进行转发,否则进入安全测试流程;
(6)判断接入方式是串接接入还是旁路接入,串接和旁接连接方式由程序自动判断得
7
CN 111614518 A
说 明 书
5/6页
出,判断方式为获取网卡连接状态配合能否接收到OSPF组播报文综合判断,如果两个网卡均处于连接状态,并且均能收到OSPF组播报文,判断为串接;如果仅一个网卡能够接收到OSPF组播报文,判断为旁接;如果仅一个网卡处于连接状态,并且能够接收到OSPF组播报文,判断为旁接;如果没有网卡接收到OSPF组播报文,评断设备未接入路由网络。根据接入方式不同选择不同的安全测试模板,串接包括最大年龄测试、序列号测试、DD报文测试、路由表篡改测试,并接包括最大年龄测试、序列号测试;
(7)根据选择的测试方法,提取安全测试模板,安全测试模板由正常OSPF协议报文构成,对其中特定字段进行修改,例如最大年龄测试报文模板为正常OSPF协议LSU报文修改其中年龄字段为0XFF,序列号测试报文模板为正常OSPF协议LSU报文修改序列号为0X7FFFFFFF,DD测试报文模板为正常OSPF协议DD报文修改LSA字段为随机构造伪字段,路由表篡改测试报文模板为正常OSPF协议LSU报文修改TransitID为需要伪造的网段;
(8)并结合采集到的协议参数和路由信息,包括路由器ID、区域ID、路由器能力选项、路由器优先级、指定路由器地址、备份路由器地址、邻居列表及距离,修改安全测试模板对于字段,生成安全测试报文;
(9)根据监控的路由器状态,在合适的时机发送安全测试报文,对路由器进行安全测试,其中最大年龄测试选择时机为路由器周期进行连接状态询问时、序列号测试选择时机为路由器周期进行连接状态询问时、DD报文测试选择时机为路由收敛时更新DD数据库时、路由表篡改测试选择时机为新路由接入或有路由器退出网络造成路由表更新时;
(10)统计安全测试的测试结果,其中最大年龄测试、序列号测试会造成路由器连路重置从而使通信异常产生丢包,DD报文测试会造成目标路由器CPU使用率大幅上升从而影响其他业务运行,路由表篡改测试会是目标路由器路由表产生变化影响路由器数据转发路径。如果未达到预期的测试结果继续等待路由器状态,发送安全测试报文,如果产生预期测试效果表明目标路由器存在安全缺陷,自动生成目标路由器测试报告,报告包括测试目标信息(路由器ID、区域ID、路由器能力选项、路由器优先级、指定路由器地址、备份路由器地址、邻居列表及距离)、安全测试的方法和次数、每次测试产生的安全结果,是否存在安全缺陷等。
[0018]使用该软件的测试流程为:
(1)启动软件,自动侦察安全测试需要的各项参数,包括OSPF域ID、路由器ID、Hello Time时间、Dead Time时间、路由器能力选项、路由器优先级、指定路由器地址、备份路由器地址、邻居列表等信息;
(2)选择需要的安全测试,测试根据获取的参数信息,自动伪造或篡改OSPF数据报文的数据,进行安全测试;
(3)测试软件自动侦察路由器状态,在适宜的时机发送伪造的数据报文或捕获数据报文进行篡改;
(4)根据上报的测试结果,生成测试报告,验证路由器的安全性。[0019]总之,本发明可对交互的OSPF协议进行篡改、伪造等处理,进而实现路由器的干扰和震荡、负载增加、虚假路由注入等安全测试。其通过自动化方式侦察安全测试需要的各项参数,侦察路由器状态,在适宜的时机发送伪造的数据报文或捕获数据报文进行篡改,并针对测试结果生成测试报告,从而验证路由器的安全性。
8
CN 111614518 A[0020]
说 明 书
6/6页
本发明利用自动化思想实现了测试参数自动获取,能够在接入网络后自动获取测
试参数,避免了对操作人员进行大量的路由专业技能的学习,简化了的路由器安全测试的流程。
9
CN 111614518 A
说 明 书 附 图
1/2页
图1
10
CN 111614518 A
说 明 书 附 图
2/2页
图2
11
因篇幅问题不能全部显示,请点此查看更多更全内容