校园网IPv6 主机实时发现和漏洞扫描

2020-01-01 00:51封寒松
中国教育网络 2019年11期
关键词:校园内校园网活跃

文/封寒松

随着IPv4 向IPv6 的逐步演进,IPv6 网络已经在各高校校园内实现了规模部署。网络协议升级是高校校园网改造过程中至关重要的一步,校园内提供IPv4 协议与IPv6 协议同时接入的网络服务也大幅增多。在网络升级的同时,需要对网络管理相关的其他服务进行相应的升级。如在网络管理、网络安全及应用服务等方面具有重要意义的主机发现与漏洞扫描服务。

IPv4 的网络空间相对较小,网络地址数量有限,传统的网络扫描工具已经十分成熟,如NMap、ZMap、MassScan 等。然而,IPv4 网络环境下的扫描策略,是面向全球范围内的全部IPv4 地址进行遍历扫描,但同样的思路和方法无法适用于IPv6 的网络环境。IPv6 地址长度为128 位,理论上地址空间最大可以达到2 的128 次方,远远超过了IPv4 的2 的32 次方。以上海交通大学为例,学校拥有的可用IPv4 地址数量约为89632 个,即使加上范围为10.0.0.0/8 的内网地址,IPv4 的地址数量也只有1.68×107个,而IPv6 地址数量则约为7.9×1028个,是IPv4 地址数量的5×1021倍。

此外,IPv6 地址的复杂结构也增加了扫描难度。采用无状态地址自动分配(SLAAC)方式时,IPv6 地址可以由IPv6 客户端自行决定,这种分配方式使得IPv6 地址结构的复杂性进一步增加。同时,互联网服务提供商(ISP)分别拥有大量的IPv6地址前缀,每个ISP 默认大约有296个IP 地址可自由分配,不同ISP 的地址分配策略的自由性使得全网扫描所有子网IPv6 地址变得更加复杂。因此,对于IPv6 地址扫描,庞大的地址空间和复杂的地址结构使得传统的网络遍历扫描方法和扫描工具变得不可行。

本文从校园网的流量和IPv6 地址分配方式等角度出发,提出了针对校园网内IPv6 主机发现的高效方法,并与扫描器联动,最终设计并开发了一套校园网IPv6 主机实时发现和漏洞扫描系统,旨在应对IPv6 网络空间扫描困难,IPv6 地址变化频繁等问题。

系统设计与实现

本文设计并开发了针对校园网内部的IPv6 主机实时发现和漏洞检测系统,系统整体架构如图1 所示,旨在对校园网内部所有活跃的IPv6 主机进行实时发现及高效的漏洞扫描,用于高校的网络安全管理工作。

本系统分为三个主要模块:

1.IPv6 地址观测模块:根据流量数据、DNS 数据、路由规则、已登记服务器地址等数据来源确定主机/网络范围。

2.IPv6 地址动态跟踪模块:通过对观测结果的整理和清洗,进一步获取IPv6 地址,并对数据进行有效性验证。根据IPv6 地址的变化规律及验证结果实现对IPv6 地址的动态跟踪。

3.扫描模块:对目标主机进行操作系统识别、指定端口扫描、指定服务识别等扫描行为,获取包括操作系统、开放服务状态及服务的版本信息等。

图1 系统整体架构

在扫描模块的工具可以复用的前提下,其余部分在面向IPv6 网络时为重新设计并开发,使其既能对校园内的IPv6 网络空间准确高效的进行扫描,同时又能为信息搜集和漏洞检测阶段提供接口。

IPv6 地址观测

NetFlow 通过在路由器上收集流经网络出入口的TCP、UDP数据包,分析网络流的源IP 地址、目的IP 地址、源端口号、目标端口号、协议类型、TOS 字节、逻辑端口等属性来区分网络中的不同数据流量,并且对每个数据流进行单独的跟踪和计算,记录其各方面特性,进一步感知网络流量和拥塞情况。NetFLow 从v9 版本开始支持IPv6 协议,本文采用NetFlow v9版本分析流经校园网出入口的全部流量,获取其中出现过的所有IPv6 地址。

除此之外,本文还通过查找IPv6 地址映射记录与反向IPv6地址映射记录的方式来获取IPv6 地址。IPv6 地址映射是从域名指向IPv6 地址的映射,以AAAA 记录的形式存在于DNS 服务器中。IPv6 地址反向映射用来记录客户端IP 地址到一个完全合格域名,以PTR 记录的形式存在于DNS 服务器中,PTR 记录是A 记录的逆向记录,又称做IP 反查记录或指针记录,负责将IP 反向解析为域名。其中IPv6 地址到域名由特殊DNS 区域执行:ip6.arpa,即反向查找区域。在此区域中的域名将遵循x.x.x.x….x.x.x.x.ip6.arpa 的模式,其中x.x.x.x….x.x.x.x 对应逆向写回的IPv6 地址。

无论是内部访问或是外部访问,所有指向IPv6 地址的域名记录与反向解析记录,都会在DNS 服务器中留下记录。本文通过收集校内DNS 服务器中的全部AAAA 记录与PTR 记录,过滤出其中的IPv6 地址,作为地址观测模块的另一种IPv6 地址来源。

IPv6 地址观测作为后续工作的基础,必须达到高覆盖率、高准确率的要求。本文通过结合流量分析、反向映射等多种方法进行IPv6 地址观测,尽可能获取到校园内全部活跃的IPv6地址。

IPv6 地址动态跟踪

IPv6 提供了两种地址自动配置技术,分别是Dynamic host configuration protocol for IPv6(有状态地址自动配置,以下简称DHCPv6)和Stateless address auto-configuration(无状态地址自动配置,以下简称SLAAC)。DHCPv6 是对IPv4 中的DHCP 的改进和扩展,其中的这种地址变化完全由DHCP 服务器进行管理和处理,节点不需要做任何处理。SLAAC 则是IPv6 提出的一种全新的完全分布式的地址自动配置技术。根据SLAAC 选择接口ID 生成方式的不同,可以将通过SLAAC 得到的IPv6 地址分为两类,一类是稳定的IPv6 地址,另一类是不稳定的IPv6地址。是否稳定是通过在一段时间后,同一子网的接口ID 是否是会发生变化决定的,即由IPv6 地址是否会发生变化来确定IPv6 的稳定性。

在IPv6 的地址自动配置中,一般把128 位的IPv6 地址分为前64 的网络前缀和后64 位的Interface identifier(接口标识,以下简称接口ID)。由于DHCPv6 类似于IPv4 中的DHCP,所以IPv6 地址的自动配置一般讨论的都是SLAAC,在采用SLAAC 地址配置方式时,EUI-64 标准格式的IPv6 地址是由MAC 地址转变而来的,因此地址扫描空间范围可以由64 位降为48 位。同时,通过确定MAC 地址中前24 位OUI 地址(Organizationally unique identifier,又称组织唯一标识符),地址扫描空间范围再一次从48 位降低到24 位。IPv6 地址扫描空间显著降低,进而可以通过扫描24 位地址空间的方式来实现根据IPv6 地址观测结果进行IPv6 地址动态跟踪。

简单来说,IPv6 地址动态跟踪的过程可以分为两步。首先,根据校园网网络前缀固定与EUI-64 格式IPv6 地址的特性,128位的IPv6 地址中需要进行预测并扫描的地址长度可以缩减为24位,以收集到的IPv6 地址作为种子,可以生成24 位不定地址所对应的预扫描地址空间。接下来,对该地址空间内的IPv6 地址进行扫描探测,根据每次的扫描结果不断更新目标地址空间。扫描过程中,将命中率较高的节点置于扫描优先队列的最优先位置,更新地址空间的同时也更新优先队列。由此可以保证预扫描的IPv6 地址空间中,密度较高的部分被更优先的扫描到。基于此种扫描算法,可以跟踪已有IPv6 地址的变化情况,并记录最新的活跃IPv6 地址情况,最终实现对于校园内IPv6 地址的动态跟踪。

已有的研究方法大多通过熵和聚类算法解析IPv6 地址的前缀结构,本文根据校园网特性,将IPv6 地址的预测空间降低为24 位。同时,在对IPv6 地址进行活跃探测时加入了优先队列更新的策略,对常用的遍历算法进行了改进,在探活过程中实时改进探测策略,以提高探测效率,大幅降低了扫描大地址空间所需的时间,对于解决IPv6 网络空间扫描的主要问题起到了一定的帮助。

漏洞扫描

漏洞扫描一般是在端口扫描和服务识别的基础上,通过漏洞检测插件进一步检测出目标系统存在的安全漏洞。目前市面上常见的漏洞扫描软件如NMap、Nessus 等,大多根据指定IPv4 地址或地址段进行遍历扫描。由于IPv6 地址空间过大,这种扫描方式不能很好地应用于IPv6 网络环境。本文通过IPv6 地址观测模块与IPv6 地址动态跟踪模块,将IPv6 的大地址空间缩小为活跃IPv6 地址列表,并将常用的开源工具与独立开发的脚本相结合,可以满足针对校园内IPv6 的漏洞扫描需求。本文提出的方法在满足漏洞扫描需求的同时有效降低了需要扫描的地址数量,减少了漏洞扫描的时间,大大提高了漏洞扫描系统的工作效率。

本项目的攻击脚本开发参照了NASL2 标准,在满足项目技术需求的同时,还具备快速、低耦合、高兼容的技术特点,并且可以实现多语言移植,包括但不限于C++、Python、Java 等常用语言,便于后续的模块拓展使用。为了同时实现对于常见漏洞的检测,本模块还支持对于NMap、NCrack、W3F 等常见第三方安全工具的脚本化调用,以实现对于操作系统、数据库、Web 应用等常见系统组件的漏洞检测;同时也可以集成常用的第三方安全软件进行Web 渗透测试、常见应用的弱口令检测,包括但不限于网页中存在的 Sql 注入、XSS 攻击、CGI 漏洞、WebDAV 文件共享、目录遍历漏洞等安全问题。

图2 2019 年9 月校园内活跃IPv6 地址统计情况

图3 校园网内某主机扫描报告

测试结果

整个系统包含的采集服务、扫描服务、数据库服务、Web 服务,均部署于Ubuntu 16.04 系统中,所依赖的软件包括Nessus、ZMap、NMap、Python、MySQL 等。服务器的硬件环境为八核Intel 处理器、8GB 内存等。

我们通过IPv6 地址观测模采集了9 月1 日到9 月30 日期间的校园试验区域内活跃IPv6 地址,通过对获取到的地址进行动态跟踪,最终获取到的IPv6 地址数量为49803 个,每天的IPv6地址活跃情况如图2 所示。

当有新的活跃I P v6 地址出现时,本文按照预设的扫描规则对其扫描,已扫描过一次以上的活跃I P v6 主机的扫描周期设置为7 天。每天仅需对新的活跃I P v6 地址以及部分旧地址进行扫描,数量为2000~3000 个,约为当日活跃地址数量的一半,漏洞扫描模块对其进行扫描的每日耗时约5 小时。减少了每次需要扫描的地址数量,同时保证了扫描系统对校园内I P v6 地址的覆盖率,大大提高了漏洞扫描效率。

通过调用Nessus 的漏洞扫描模块,可以在Web 页面中查询历次扫描的详细信息,并可以根据已知IPv6 地址搜索扫描结果,单词扫描结果如图3 所示。

本文基于部署的校园网IPv6 主机实时发现和漏洞扫描系统,对校园内的活跃IPv6 地址进行采集,对采集到的IPv6地址进行了进一步测量与地址的动态跟踪,对获取到地址的IPv6 主机进行已知漏洞的扫描和分析,并对存在的问题及其可能的原因进行了具体分析。出于计算效率和存储的考虑,本系统目前仅对当月数据进行收集和测量,下一步工作可使用大数据计算平台进行更长时间的IPv6 地址观测与漏洞扫描。

猜你喜欢
校园内校园网活跃
校园里若有人行凶
数字化校园网建设及运行的几点思考
墨尔本女子学院将拆除校园内所有垃圾桶
活跃在抗洪救灾一线的巾帼身影
试论最大匹配算法在校园网信息提取中的应用
墨尔本女子学院将拆除校园内所有垃圾桶
基于VRRP和MSTP协议实现校园网高可靠性
这些活跃在INS的时髦萌娃,你Follow了吗?
NAT技术在校园网中的应用
数据分析