近年来网络安全形势日益严峻,相继发生了乌克兰大面积停电、美国东部互联网服务瘫痪、伊朗布什尔核电站遭受“震网”蠕虫病毒攻击等网络安全事件。变电站作为现代社会的关键性基础设施,是国家级网络对抗的重点目标。目前,我国变电站网络信息安全防护过多地依赖于边界安全的纵深防护体系,在面对具有国家背景的基于逆向工程的定向攻击时很可能使具有物理隔离的边界防护失效,因此,电力系统网络安全监测装置应运而生。该装置能有效采集变电站内网络安全信息,并对存在的安全隐患进行预警,可以有效预判、跟踪和预防网络安全风险[1]。但在实际运维过程中,运维人员由于缺少详细知悉其配置情况和功能实现方式的便捷手段,导致后期的专业管理和运维工作存在诸多不便,例如配置参数繁多、运维工具人机交互界面不够友好、采用未经加密的通信协议进行配置管理、出现错误配置较难被发现等问题[2]。为解决上述问题,本文从配置参数、人机界面和交互协议3方面对变电站网络安全监测装置远程运维技术进行研究,提出了一种基于安全外壳传输协议(Secure Shell,SSH)的网络安全监测装置远程运维配置工具的技术实现思路。
1 装置运维配置参数梳理
首先,本文从运维人员的角度出发,以管理和运维需求为核心,对装置配置参数进行梳理。运维人员关心且需要运维的参数[3],总结为以下3类。
(1)网络参数:涉及网卡参数、路由参数以及与主站通信的参数。网卡参数包括网卡名称、IP、子网掩码;路由参数包括网卡名称、目标网段、掩码、下一跳。主站通信参数包括主站名称、IP、端口号。
(2)采集参数:涉及简单网络管理协议(Simple Network Management Protocol,SNMP)采集和Internet控制報文协议(Internet Control Message Protocol,ICMP)采集的参数。SNMP协议采集参数包括:开始IP地址和结束IP地址、SNMP端口号、SNMP团体名称、SNMP版本。ICMP协议采集参数包括:IP子网、VLAN号、安全分区、分网标识。
(3)用户账户参数:涉及用户账户管理的参数,包括权限定义参数、角色配置参数、用户配置参数。权限定义指根据用户角色设置角色权限;角色配置包括角色名、具备权限;用户配置包括账户名、密码、关联角色名。
通过配置上述参数,运维人员即可对监测装置进行基本运维管理工作。
2 远程运维配置工具设计
根据前期的用户调研和建模,充分分析用户需求和用户特性后,从界面风格、界面图标和界面层级3个方面确定界面设计纲要,最终确定工具的整体界面设计方案。在梳理装置配置参数的基础上,考虑工具的功能性、易操作性和便携性,采用客户/服务器模式(Client/Server,C/S)架构,简化人机交互界面,支持跨平台部署。
采用3级菜单架构,如图1所示,菜单栏是配置工具的功能导航区,包含运行概览、数据采集、安全事件分析、系统管理和用户登录功能菜单。
(1)运行概览:包括装置自检状态、数据通道状态和资产在线状态功能,其中,装置自检状态指装置自身CPU利用率、内存利用率、磁盘使用率和程序自检状态。数据通道状态指与主站系统数据通道的检测状态;资产在线状态指被监视设备的在/离线资产统计。
(2)数据采集:对通用主机、嵌入式主机、网络设备、安全设备进行数据采集,可查询被采集的监视设备的日志信息和通信流信息,其中,日志信息指通过SNMP,SNMP Trap,Syslog,Agent,ICMP,SSH,网络主动扫描方式采集的信息。通信流信息指通过流量嗅探方式采集的信息。
(3)安全事件分析:对被监视的设备进行安全事件分析,将包括外部威胁和自身脆弱性的安全分析结果及原始文件上送一个或多个主站系统,其中,外部威胁分析应包括:网络行为、移动介质、人工操作、代码程序等;自身脆弱性安全分析应包括:设备发现、互联拓扑、开放服务、运行状态、配置合规等;原始文件包括:原始日志、原始报文。
(4)系统管理:包括装置参数配置和运维工具提供的运维功能菜单。网络参数配置包括网卡参数配置、路由参数配置、主站通信参数配置;采集参数配置包括SNMP参数配置和ICMP参数配置;用户参数配置包括角色配置和用户配置;规则查询提供规则信息的查看,包括范式化规则、关键文件清单查询功能;系统日志提供登录、操作、维护等系统日志的记录和查询,可以通过条件查询、关键字查询等方式,实现对采集装置系统日志的查询。装置注册提供装置注册信息查看功能,注册信息包括:站点名称、安全分区、装置名称、厂家名称、装置全局唯一标识符(Globally Unique Identifier,GUID)、归属单位、调管单位、注册状态、注册时间等。系统升级提供软件升级功能,上传补丁包进行软件升级;网络诊断提供网络诊断工具,包括网络主动扫描、Ping,Traceroute,Telnet。
(5)用户登录:提供用户登录操作和显示当前登录用户状态的功能。远程运维配置工具界面如图2所示。
3 远程运维配置工具信息交互
大部分传统的传输控制协议/互联网络协议(Transmission Control Protocol/Internet Protocol,TCP/IP)传输协议,如telnet,ftp,rlogin等,在设计时并没有考虑安全认证或加密,都是采用明文传递用户名信息和其他数据。随着变电站网络安全等级要求越来越高,大量在网络中传输的数据需要进行安全保护,为了减少在运维工作中出现不安全的用户认证和人员误操作,采用安全通信协议进行信息交互刻不容缓。
采用Client/ Server體系结构的SSH协议正好可以弥补TCP/ IP中应用层协议的漏洞。SSH协议是建立在应用层和传输层之间的安全协议,它主要由安全传输层协议、用户认证协议和连接协议3个部分共同实现SSH的安全保密机制。安全传输层协议一般建立在面向连接的TCP数据流之上,除了提供诸如认证、信任和完整性检验等安全措施,还可以提供数据压缩功能。运行于安全传输层协议之上的用户认证协议层,则用来实现服务器和客户端用户之间的身份认证。运行于用户认证层协议之上的连接协议层,可以在一条安全连接的逻辑通道上,实现若干个端口应用层数据的复用[4]。
依据SSH协议架构,将网络安全监测装置作为SSH服务端,远程运维配置工具为SSH客户端,在使用SSH进行交互的时候,需要先经过认证才能正常通信,具体过程如下。
(1)协商双方SSH版本号:首先,由远程运维配置工具先发起TCP连接请求,与装置建立TCP连接之后进入等待状态。其次,装置发送一个格式为“SSH-<主协议版本号> <次协议版本号>-<软件版本号>”的报文,表明自己的版本号。远程运维配置工具接收到装置的协议版本号之后对其进行匹配。如果装置的协议版本号低于工具自己的版本号但又能支持,则以装置的低版本号作为自己的标志版本号报文回应给装置。如果装置的协议版本号高于或等于自己的版本号,则以运维配置工具实际的版本号回应给装置。最后,装置匹配远程运维配置工具回应的版本号,如果支持该版本,则协商完成,进入下一阶段。如果不支持该版本,则断开与远程运维配置工具的TCP连接。
(2)协商密钥和算法:装置和远程运维配置工具分别向对方发送算法协商报文,内容包含本端支持的公钥算法列表、加密算法列表和压缩算法列表等。装置与远程运维配置工具收到对方发来的报文进行算法匹配,最终确定双方使用的算法。只要有任何一种算法协商失败,装置都将立即终止与远程运维配置工具的TCP连接。最后,装置与远程运维配置工具双方根据密钥交换算法(Diffie Hellman,DH)和主机密钥对等参数生成相同的会话ID和会话密钥,同时,运维配置工具对装置的身份完成确认。为保证数据的安全,在之后的数据传输过程中,通信双方都将使用这一会话密钥进行数据的加密和解密处理,而且会话密钥只对本次通信有效,若下次通信,则必须重新生成新的会话密钥。
(3)安全认证:SSH提供3种认证方法,即公钥认证、密码认证和可信主机认证。其中,公钥认证的优先级最高,可信主机认证的优先级最低。在默认配置情况下,SSH的可信主机认证一般是禁用的。
远程运维配置工具与网络安全监测装置建立连接之后的认证步骤如下。
(1)远程运维配置工具通过发送一个包含自己用户名的SSH_CMSG_USER包,向装置提出认证请求。
(2)装置接收到远程运维配置工具的SSH_CMSG_USER信息包之后,检索本地用户名列表来判定该用户是否存在。如果用户存在且不需要进一步认证,装置返回一个认证成功的SSH_SMSG_SUCCESS信息包给远程运维配置工具。如果用户不存在或者需要进一步认证,则返回一个认证错误的SSH_SMSG_FAILURE信息包给远程运维配置工具,同时,仍继续保持接收状态。
(3)远程运维配置工具接收到装置发来的SSH_SMSG_FAILURE信息包之后,再次向服务器提出申请,尝试新的认证方式。
(4)装置根据远程运维配置工具的认证申请信息进行认证尝试。在3种情况下装置会停止尝试:某一种认证方式通过了,服务器会返回SSH_SMSG_SUCCESS包;认证次数达到上限和认证超时的情况,服务器会返回SSH_SMSG_FAILURE包,直至关闭连接。
(5)如果认证成功,远程运维配置工具则向装置提交会话请求,并等待装置的响应。装置对会话请求进行分类处理,请求被接受则返回SSH_SMSG_SUCCESS包,进行后续正常通信。若请求被拒绝或无法识别则返回SSH_SMSG_FAILURE包,断开连接。具体认证过程如图3所示。
版权所有:电力网络安全监测装置 转载请注明出处