摘要:随着物联网的快速发展,用户局域网中往往运行着数量众多的终端及哑终端。为了精准测绘及管理局域网的网络空间地图,管理者需要实时了解知悉网络空间中每个资产的具体位置。基于资产探测的成果,通过安全外壳协议交互、简单网络管理协议服务、网络资产测绘相结合的方式探究交换机端口属性,完成交换机级联端口精准识别,为绘制网络空间拓扑及交换机端口级的准入管控提供精准数据。
随着网络的不断发展以及用户对网络使用需求量的急剧增长,网络规模不断扩大、网络空间趋于复杂,通过网络空间资产的探测,可以及时发现潜在的安全风险,避免被不法之徒攻击。国家已把网络空间安全概念提升到一个重要的层次,更加显示了网络空间安全的重要。在网络攻防对抗中,首先需要了解网络,要了解网络空间,就需要对网络空间进行精确的资产探测。科学刻画资产空间地图是网络攻防的安全基石,将网络空间、地理位置、交换机属性、端口连接等进行相互映射,将虚幻、动态的网络空间绘制成一份精准、可靠、动态、直接的资产地图,能够为防守方提供有效的资产情报信息。
资产探测的核心之一是准确识别资产位置及各级资产之间的相互连接关系。目前在大型局域网中,存在各种类型的哑终端设备及终端设备共同连接在一台交换机上的情况,并且各交换机之间还有相互级联关系。这种复杂的串接关系,导致局域网中设备管理较为混乱,存在重大安全隐患。此外,传统的资产探测、主机识别、端口准入控制等技术,也存在交换机级联端口无法精准识别的技术盲区,无法完全绘制出局域网内设备的连接关系和准确定位,不能解决局域网中设备管理存在的所有安全隐患。本文采用多种方式探究局域网交换机的上下级联端口识别和控制技术,以期通过精准识别交换机各个端口属性,提高对局域网的管控能力,补充和完善网络空间绘制能力,细化资产准入管控的管理粒度。
1、级联端口的理论概述
交换机作为网络中电(光)信号的转发设备,可以为任意两个网络节点提供独享的网络通路,承担终端接入、流量转发、流量汇聚和隔离控制等功能。由于以太网交换机不对接入用户进行合法性验证,因此存在未授权的用户接入交换机访问局域网内网的网络安全风险。此外,由于接入交换机又分为终端接入和交换机互联,要实现对接入终端的管理,必须区分出接入的设备类型。
交换机之间的连接方式一般分为级联、链路聚合、堆叠和集群等。级联是局域网中最为常见的交换机之间的连接方式,分为普通端口级联和 Uplink 端口级联。其中,普通端口级联是通过交换机的某一个常用端口(如 RJ-45 端口)进行的相互连接;Uplink 端口级联是将 Uplink端口连接到上一级交换机上除 Uplink 端口外的任意端口,Uplink 级联常用于上行连接。链路聚合是通过多个物理接口捆绑聚合成为一个逻辑接口,可在不升级硬件的条件下达到增加带宽、提供冗余备份或负载均衡等效果。堆叠和集群是指将一台以上的交换机组合起来,在逻辑上作为一台交换机共同工作,以提高交换机端口密度及性能。链路聚合、堆叠和集群主要应用在大型网络中,在对端口需求比较大的情况下使用,通过交换机的额外配置分布在核心交换网中,一般不存在于普通局域网中。
本文针对级联模式开展识别技术研究。首先,设计交换机端口识别软件系统并进行应用;其次,利用简单网络管理协议(Simple Network Management Protocol,SNMP)、 安 全 外 壳 协 议(Secure Shell,SSH)技术实现交换机各个端口属性的快速探测和分析,获取交换机端口准确、全面的属性,构建交换机端口属性模型;最后,通过算法不断分析改进端口级联属性识别过程,根据不同类型端口提供不同的控制策略,提升交换机的管控性,为辅助网络空间绘制和基于交换机端口的准入控制提供数据支撑。
2、端口识别技术
采用资产探测、SSH 交互、SNMP 服务、网络资产测绘相结合建模的识别方法,其步骤分为 4 个部分。
2.1 资产探测
使用的工具是 Nmap,它将设备端口划分为6 个状态。通过配置不同的探测参数,实现对整个网段各 IP 地址的扫描识别。扫描识别指的是直接进行资产探测的相关技术,如通过主动发送数据包进行扫描,Nmap 主动向目标网络资产发送构建的各类型数据包,从各个资产返回数据包中解析提取目标资产指纹特征等,并与指纹库中的特征信息进行分析对比,准确了解各个 IP 资产对应的设备介质访问控制(Media Access Control,MAC)地址、设备厂商、操作系统、设备类型、设备端口信息等,不停轮询扫描并对识别的资产进行指纹特征分类处理,直到找到局域网中各交换机,明确各交换机的厂商、型号、类型,建立交换机端口关系模型 。
2.2 SSH 交互
通过系统 Web 端配置交换机 SSH 用户名以及密码,基于交换机 TCL 语言开发,采用 expect功能实现不同交换机之间的交互配置,交换机厂商和型号决定不同交换机之间的命令各不相同,通过内置命令模板可实现各交换机的相关配置及信息获取。
H3c 的 SNMP 配置如图 1 所示,通过 expect功 能 来 配 置 厂 商 H3c 的 5500 型 号 交 换 机 的SNMP,同时配置 SNMPv1、SNMPv2c 和 SNMPv3,保证它能与服务端进行通信,并接受服务端管理,txt 中是各种交换机的 TCL 语言各配置项模板。
图 1 H3c 的 SNMP 配置
通过执行“expect -f H3c_5500_Snmp_Configura.txt 交换机 IP SSH 用户名 SSH 密码 参数 1 参数2”命令,完成交换机的 SNMP 管理配置;通过执行“expect -f H3c_5500_Get_AllInfo.txt 交换机IP SSH 用户名 SSH 密码 参数 1 参数 2”命令,获取交换机的所有配置信息;交换机 MAC 表如图 2 所示,通过执行“expect -f H3c_5500_Get_MAC.txt 交 换 机 IP SSH 用 户 名 SSH 密 码 参 数1 参数 2”命令,获取交换机 MAC 信息;交换机地址解析协议(Address Resolution Protocol,ARP) 表 如 图 3 所 示, 通 过 执 行“expect -fH3c_5500_Get_Portinfo.txt 交换机 IP SSH 用户名SSH 密码 参数 1 参数 2”命令,获取交换机端口状态、属性等。
图 2 交换机 MAC 表
图 3 交换机 ARP 表
分析上述端口、MAC表、ARP表等返回的信息,得出资产 MAC、IP 信息,将存活资产与交换机端口进行关联标记,进一步完善交换机端口关系模型。
基于获取的 ARP 表,交换机更新后的 MAC地址、端口摘要等信息,发现端口下存在多个不同 MAC 资产,将该端口标记为疑似级联端口,每台交换机可能存在多个级联端口。根据长期应用使用验证,若正在使用的端口存在 MAC 地址大于 10 个或者更多的情况,则可判断为上级联端口;若一个交换机只划分一个虚拟局域网(Virtual Local Area Network,VLAN),则不存在上级联端口下有多个 MAC 地址的情况,这时需要用到网关的 MAC、IP 地址来进行辅助判断,在明确网关的 MAC、IP 地址的情况下,查看网关地址在哪个端口下,则可判断该端口为上级联端口。若 MAC 表中 GE0/0/2 端口下地址大于10 个,同时 172.30.200.1 网关地址也存在于该端口下,则可判断出 GE0/0/2 为上级联端口。若GE0/0/24 下端口存在两个存活资产(通常指的是在网络探测过程中确定为活动的、可通信的设备或系统),可以通过对比已探查出的资产信息来判断资产指纹类型是否为虚拟机资产、云资产等,并将 GE0/0/24 标记为疑似级联端口。
交换机所存在的子网需要和子网外进行通信,如果交换机配置有管理地址,可通过管理地址上的网关及 ARP 表和 MAC 表来确认交换机的级联端口,根据路由表或配置中的默认路由,来判断下一跳的方式,并更新 ARP 表和 MAC 表,然后根据 ARP 表中的下一跳所在的端口,来判断上级联端口。
2.3 SNMP 服务
SNMP 服务主要由网络管理系统(Network Management System,NMS)、代理进程 Agent、被管对象和管理信息库(Management Information Base,MIB)4 个部分组成。其中 MIB 对象是被管对象的一个集合,主要用来保存数据项及其对应的类型和操作等。NMS 则能够借助于 SNMP协议数据报文对 MIB 进行相关处理,从而实现交换机端口的监控,NMS 作为整个网络的网管中心,对交换机设备进行管理。
服务端通过之前 SSH 配置的交换机 SNMP 服务,使得服务器上的 SNMP 模块能够直接管理交换机。SNMP 模块通过采用 C 程序、snmpwalk 命令、对象标识符(Object Identifier,OID)相结合的方式获取交换机上端口属性,完善交换机端口关系模型,同时进一步加强服务端对交换机的管控能力。模块具体操作方法接口函数如图 4 所示。
图 4 操作方法接口函数
各接口采取不同的 OID 与交换机 Agent 进行交互,如图 5 所示。
图 5 MIB 对象
关联疑似级联端口,对每个疑似端口的出入单播报文、出入组播或者广播报文进行比对,对端口中由此子层传递到一个更高层或更次层的数据包数和各端口两个子层次之间关系的状态进行梳理、分析、计算 [5],使用朴素贝叶斯概率分类算法如下:
式 中:为 端 口 的 类 型 属 性;为各特征信息;为端口属性特征数据 D 属于 C 的概率。将交换机上疑似级联端口的属性,进一步完善端口关系模型,标记出交换机端口连接关系。
2.4 网络资产测绘
对比分析各端口下的资产类型、资产服务端口、交换机端口关系模型、交换机端口属性等。根据资产探测到的数据,以网关 IP 为根,以各个交换机物理端口及 IP、MAC 数据集合为非终端节点,以各类终端 IP、MAC 数据集合为叶子终端节点,按树形结构模拟构造出交换机拓扑图。基于探测数据推测网络资产上的各节点数据是交换机(针对交换机有 IP 的情况)还是虚拟化环境(虚拟化环境存在 IP 及相关虚拟化业务的服务端口,针对树中度为 0 的终端叶子节点上的数据,若不存在虚拟化环境的 IP、MAC,视为集线器类型的交换机级联状态;若存在虚拟化环境的 IP、MAC,即使虚拟化环境接在集线器上,也一致强制视为该终端叶子节点属于虚拟化环境而非交换机级联状态),同时对各级数据进行汇聚、清洗、抽取、校验,更新至IP、MAC 及对应的服务端口等信息,保障了数据融合分析结果的可信性。数据抽取和校验的是不同来源的相同对象的数据,按照符合统一标准的模型,清晰地梳理出局域网中设备、系统、服务、应用等指纹结构特征和上下级联关系,构架出虚拟的指纹层次关系结构及关联关系,测绘出精准的网络资产,根据交换机端口连接不同的资产类型,采用不同的准入策略,针对终端采取 802.1x 端口准入控制,针对无代理哑终端采取端口静态指纹准入控制,针对级联端口采取级联监控策略。建立起高效的网络资产安全监测接入体系,高效管理局域网中各类资产,全方位、多维度地提升局域网中安全感知、精准控制的能力。
3、系统原理与实现
3.1 系统工作原理
采用 B/S 架构,通过在服务端部署服务软件采集各级交换机端口信息,以达到精准识别交换机端口的目的。服务端的管理界面采用 Web架构,部署在应用服务中,用于实现网络设备管理、端口安全检测、端口接入总览等功能的展示与基本操作;分析服务由探测服务和端口分析服务组成,主要实现对交换机端口接入情况的探测,并根据检测策略进行端口接入分析;利用 SSH 和 SNMP 实现对交换机端口的数据采集。系统工作原理如图 6 所示。
图 6 系统工作原理
系统工作原理如下所述:
(1)服务端探测局域网内的资产信息;
(2)根据算法构造资产、端口模型;
(3)与交换机进行 SSH 交互,获取存活端口属性信息;
(4)进一步完善资产和端口模型;
(5)对交换机进行 SNMP 探查;
(6)形成最终的端口连接模型;
(7)绘制网络空间地图,并形成每个端口独立的端口控制策略。
该系统可以精确分析接入交换机的每一个具体端口,根据交换机的不同端口进行各种策略的控制实施。若识别到端口是级联端口,则采取级联端口策略来进行控制;若识别到端口是打印机、摄像头等无代理的终端,则采取 MAC准入控制、网络流量监控、指纹控制相结合的方式进行端口准入控制。精准识别各种交换机端口串接设备是整个系统实现的关键点,在此基础上实现整个网络空间指纹化、地图化,清晰明了地呈现各种设备的关系,不仅为网络安全监控、威胁态势感知提供了系统的认知,还能根据掌握的网络资产情况管控各设备接入局域网。
3.2 系统实现
服务端通过绘制网络空间地图,标记出交换机在网络空间的位置,双击交换机即可详细展示交换机的信息,通过交换机端口模型的信息、不同颜色状态显示交换机的不同类型端口。端口状态展示页面如图 7 所示,页面上部为交换机端口展示区域;左下部为采集到的交换机信息;右下部为选择的端口属性详情信息(默认显示端口 1 信息)。
图 7 端口状态展示页面
通过资产探测、SSH 交互、SNMP 服务、网络资产测绘相结合的方式,确定交换机信息和每个端口的属性,并通过页面直观、准确地展示出来,方便管理员掌握局域网内交换机的情况。具体展示的内容如下:
(1)交换机端口主要包括 4 种状态,分别为上联口、下联口、已连接端口和未连接端口;
(2)交换机信息包括厂商、型号、版本、上下级联口、VLAN 信息等;
(3)端口属性包括端口号、是否是级联口、端口状态、速率、所属 VLAN、连接终端信息等。
系统通过算法分析实现交换机级联端口的精准识别,对各级交换机端口实行动态感知,通过对交换机上不同端口的接入资产定义对应的安全策略,实现内网接入设备的用户、身份、网络位置、访问权限和管理的合法性,以加强内网中各级各资产的细致管控。
4、结语
随着网络业务的扩展,各种类型的哑终端设备被应用到企业的管理与运营中,大量终端设备的资产位置依赖于对网络交换机的精准识别。本文采用资产探测、SSH 交互、SNMP 服务、网络资产测绘相结合的方式,辨别交换机各个端口的级联属性,能够有效地检测识别不同品牌及型号的交换机端口,结合端口控制准入能及时对交换机上存在问题的端口资产进行整改,最大限度地消除影响,从被动防御向主动监控转化。未来,将尝试分析交换机配置信息中的Trunk、Hybrid、Access 状态、VLAN 相关信息以及端口虚拟局域网标识信息等,进一步细化区分集线器、虚拟化平台及交换机级联口对应的级联状态。