史雅文,韩舒雅,刚 伟
(1.国网山东省电力公司济南市济阳区供电公司,山东 济南 251400;2.国网山东省电力公司商河县供电公司,山东 济南 251400)
采用计算机网络技术和智能化监控设备建立的变电站监控系统,主要用于监控控制电力生产和电能供应。通过监控系统的网络漏洞,便于阻止未经授权的访问或恶意操作。恶意攻击者会利用系统漏洞获取对系统的未经授权访问权限,从而窃取敏感信息或实施破坏性操作。这些漏洞会使黑客获得对设备的控制权,进而篡改设备的运行状态,导致设备不能正常工作,甚至损坏设备,还有可能泄露系统配置、操作记录等感信息。为应对潜在威胁,变电站监控系统需要采取综合的漏洞管理和安全强化策略,确保数据在传输过程中的安全性。
IEC 61850 标准是一种用于电力系统自动化的通信协议,通过规定智能电子设备(Intelligent Electronic Device,IED)之间的通信协议和数据模型,确保不同制造商生产的IED 设备能够进行有效的信息交互。该标准不仅提供数据采样、文件传输等功能,还使得变电站设备间的网络通信和操作控制变得更加灵活。IEC 61850 标准虽然具备诸多优势,但在网络通信中存在着安全问题,因采用2 个组播消息协议,即通用面向对象变电站事件(Generic Object Oriented Substation Event,GOOSE)协议和采样测量值(Sampled Measured Value,SMV)协议。其中,GOOSE 协议主要用于传输实时事件信息。GOOSE 消息以二进制的形式进行编码,并通过组播机制传递给所有需要这些信息的设备;SMV 协议主要用于传输测量值信,SMV 消息包含测量值的样本信息、与样本相关的元数据。与GOOSE 类似,SMV 也使用组播机制使多个IED 能够同时订阅和获取测量值信息。虽然IEC 62351 标准对IEC 61850 标准的不足进行改进,但仍无法完全保护系统,使其免受基于GOOSE 的攻击,因为GOOSE 与SMV 之间采用以太网进行通信,攻击者可能会尝试伪造GOOSE 消息,向电力系统中的其他设备发送虚假的事件信息,从而误导保护设备触发不必要的操作或破坏电力系统的正常运行。此外,攻击者可以通过访问SMV 通信来篡改采样值信息,从而引发区域停电事故[1]。
Scapy 框架是一个功能强大的网络协议处理库和工具,允许用户构建、发送、捕获及分析网络数据包。该框架可以用于创建和操作各种网络协议的数据包(包括自定义的协议),也可以用于执行网络探测和扫描操作,帮助用户发现网络中的设备和服务,能够生成自定义的网络流量并修改已有的流量[2]。当需要模拟IED 的功能和生成GOOSE 消息时,可以利用Scapy 框架构建并发送自定义的GOOSE 消息,以模拟IED 的行为。Scapy 框架使用Python 进行编写,用户利用Python 创建脚本来构建和解码各种网络协议的数据包,以检测变电站GOOSE 协议网络中的一些漏洞和安全问题。在检测伪造事件信息(即GOOSE漏洞)攻击时,可以使用Scapy 框架构建GOOSE 消息,并分析其结构和字段。此外,用户可以通过创建脚本发送合法的GOOSE 消息,以模拟正常系统行为,Python 编写程序为
定义1 个名为send_goose_message 的函数,创建1 个GOOSE 消息并使用sendp 方法进行发送,确保将目标网际互连协议(Internet Protocol,IP)地址替换为实际的GOOSE 消息接收方的地址[3]。
在创建脚本时,要正确模拟正常系统行为,可以通过在消息中添加合法的数据集标识符和状态数据来实现,Python 编写程序为
通过添加数据集标识符和状态数据,模拟1 个具有合法信息的GOOSE 消息,使用Scapy 框架发送包含虚假事件信息的GOOSE 消息。监听系统响应并检测是否有未经授权的事件触发,并检查GOOSE 消息的事件字段,确保其合法性和一致性,防止伪造事件信息[4]。
检测篡改源地址攻击检测时,要使用Scapy 框架实施地址解析协议(Address Resolution Protocol,ARP)欺骗攻击,将攻击者的媒体存取控制(Media Access Control,MAC)地址与合法设备的IP 地址相关联,检测系统是否能够正确识别并防范ARP 欺骗、是否验证源地址。使用Scapy 框架模拟中间人攻击时,需要拦截并修改GOOSE 消息的传输路径,查看监测系统是否能够检测到中间人攻击并正确识别源地址的伪装。在检测定期发送虚假消息的重放攻击时,除构建脚本模拟该攻击行为外,要编写脚本测试系统是否具备频率限制机制。这种机制旨在防范频繁发送相同虚假消息的攻击,通过监测系统响应,评估系统对频繁攻击的处理能力[5]。
变电站监控系统主要利用高级加密标准(Advanced Encryption Standard,AES)算法与RSA 加密算法进行混合加密,AES 负责加密实际数据,RSA 用于加密和传输AES 密钥。这种混合加密的方法主要利用AES 的高效性和RSA 的安全性。在执行混合加密算法流程以生成消息时,总线保护设备需要先获取到当前的相关信息,并基于这些信息生成原始的GOOSE消息,该消息需符合IEC 61850 标准的要求。
在进行GOOSE 报文加解密时,接收方会创建RSA 密钥(即公钥和私钥),并将生成的RSA 公钥通过GOOSE 网络发送给消息的发送方,对RSA 私钥进行保存,以形成GOOSE 密文。同时,在消息的发送方生成一个用于对称加密的AES 密钥,对原始的GOOSE 消息进行加密,并生成GOOSE 密文。使用接收方提供的RSA 公钥时,需要加密AES 密钥,并将加密后的AES 密钥与GOOSE 密文通过GOOSE网络发送至接收方的智能装置。接收方解密时,需要接收加密的AES 密钥和GOOSE 密文,并使用RSA私钥解密AES 密钥,即接收方在密钥管理中调用相应的RSA 私钥,解密已被加密的AES 密钥,得到AES 密钥,采用解密的AES 密钥对加密的GOOSE密文进行解密,得到相应的明文,具体流程如图1所示。
图1 GOOSE 消息混合加解密流程
为评估Scapy 框架在变电站监控系统中检测网络漏洞的有效性,利用Scapy 框架对多种不同漏洞进行扫描,并使用公开的测试数据模拟环境真实的网络情境,记录Scapy 检测到的漏洞信息,实验结果如表1 所示。
表1 Scapy 框架检测网络漏洞检测实验数据
从表1 可以看出,Scapy 框架成功检测到高、中、低共3 种不同类型的漏洞,且在漏洞修复后不再报告相同漏洞,说明其漏洞检测准确性高。
为验证结合AES 与RSA 的GOOSE 消息混合加解密保护在变电站监控系统中的实际效果,需要对系统进行配置。配置系统时,需要模拟正常的通信场景和潜在的攻击场景,并生成测试用的GOOSE 消息。在测试过程中,需详细记录加解密时间、传输延迟和系统性能等关键数据,以便全面评估并分析加解密方案的实际效果。混合加解密保护效果实验数据如表2 所示。
表2 混合加解密保护效果实验数据
从表2 可以看出,采用结合AES 与RSA 的GOOSE消息混合加解密保护方案,成功保护通信内容,且在正常通信场景下对系统性能的影响较小。而在攻击场景下,加解密时间和传输延迟略有增加,但保护效果仍然可接受。
文章通过实验研究证实,Scapy 框架在检测网络漏洞方面表现良好,能够成功发现并记录多种漏洞。同时,结合AES 与RSA 的GOOSE 消息混合加解密保护方案能够有效保护通信内容,且性能影响在可接受范围内。因此,文章提出的变电站监控系统网络漏洞分析与强化策略在变电站监控系统中具有一定的实际应用价值,值得推广应用。