黄海军,黄东生,浦 亚,潘 雷
(1.华电云南发电有限公司,昆明 650228;2.广西百色银海发电有限公司,广西 百色 533615)
近年来,为了适应新型网络系统的安全保护要求,《中华人民共和国网络安全法》和以GB/T 22239—2019《信息安全技术网络安全等级保护基本要求》[1]为基础的网络安全国家标准(以下简称为等保2.0 标准)先后编制、修订与发布实施,不仅实现了保护对象的全覆盖,还提出了全程“可信验证”“动态感知”和“全面审计”的主动、纵深、精准防御要求,网络安全技术给电力安全管理带来了更高挑战[2]。
在电力网络安全检查中发现,很多大型电力厂站存在主机安全隐患,究其原因:一方面是企业普遍重视网络设备和安全设备的外部建设[3],而忽视主机设备的内部投入;另一方面是电力监控系统中Solaris 常用作关键少数核心服务器的操作系统,技术门槛偏高,参考资料偏少,常见的网络安全加固方法无法迁移使用。因此亟需开展Solaris系统的电力监控主机安全加固研究,避免出现网络计算环境不安全的显著短板。
因内核、应用、服务等存在代码缺陷,电力监控系统主机可能存在口令、文件权限、参数等方面的弱点,或因管理上存在不足,导致被越权访问。被攻击后因缓冲区溢出、资源耗尽等导致系统崩溃或访问限制被旁路,进而演变为网络攻击事件。
网络攻击过程中,入侵者通常先潜伏运行木马或恶意程序、渗透感染网络,提权为超级管理员以获得最大的控制权;然后读取非授权信息、篡改电力业务数据或系统配置、破坏业务程序等达到攻击目的,清除入侵痕迹后撤离[4-5]。
综上,抵御电力监控系统的网络入侵,核心是源头预防、层层联动、可信计算[6-9]。因此在主机防护上要做好网络的隔离、过滤、认证,阻断非法的网络访问;做好文件与账户的权限分离、检验与清理,阻断越权的操作;增强行为的审计、报警与联动处置,阻断入侵扩大。
计算环境安全是网络安全的最后一道防线,根据等保2.0标准,计算环境安全要求见表1。
表1 等保2.0标准的计算环境安全要求Tab.1 Security requirements of computing environment for Classified Protection of Cybersecurity 2.0
电力监控系统安全防护的首要关键是最大化地减少网络直接外联,规范部署网络边界防护设备,全面落实网络边界安全策略,做到安全分区、杜绝直连,尽可能减少入侵行为的发生。典型的电力监控系统防护设施部署结构如图1所示。
随着电力系统网络结构的升级改造,网络安全态势也发生变化,交互隔离可以大幅降低网络攻击风险。
为便于描述,规定主机信息如表2 所示。在远程管理上,工程师站eng1(堡垒机等同于工程师站)的远程管理服务已关闭,部署有严苛的技术措施来防范外来入侵,是远程管理电力监控系统的唯一节点(见图1);其他计算机仅支持白名单中的特定主机以特定端口连接,能且只能接受工程师站eng1的单向远程管理。在本地管理上,eng1正常使用本地功能,其他计算机尽可能关闭本地功能,包括硬件上禁用无线网卡、便携设备,软件上禁止业务账户使用su系统命令等。以硬件控制为例,须在/etc/system 中禁止U 盘等设备驱动的加载,从而防范病毒文件“摆渡”到目标主机。
表2 主机信息表Tab.2 Host information
图1 电力监控系统防护设施部署结构图Fig.1 Deployment structure diagram of protection facilities in electric power supervisory control system
防火墙IP Filter的配置在系统引导时就加载到内核,安全系数高,可有效增强网络安全基础,是建立电力系统可信计算的必要条件,因此应梳理所有业务的网络流向,转换为防火墙策略。添加防火墙策略时,务必零信任[10],禁止所有网络接入,只允许已知业务IP按指定端口进行访问。
(1)限定连接参数,加强网络保护,安全外壳协议(Secure Shell,SSH)配置建议见表3。
表3 SSH配置建议Tab.3 SSH configuration suggestions
(2)限定public key访问,可信验证主机;禁用密码通道,杜绝猜测攻破密码而登录。
(1)工控系统应关闭sendmail、ftp等服务,建议关闭finger、rpc等;
(2)关闭inetd 中服务托管接口;
(3)关闭rc2.d、rc3.d 中的服务启动程序;
(4)清除相关配置文件,并设置为禁止修改;
(5)使用插拔验证模块技术保护系统。
3.1.1 基于角色访问的账户规划
超级用户模型中root 具有全部控制权,而普通用户不具有控制权,基于角色的访问控制(Role-Based Access Control, RBAC)则是一种更为安全的方法。RBAC采用最小特权的安全原则,在更精细的级别上强制执行安全策略,避免账户及权限被滥用。基于RBAC的账户示例见表4。
表4 基于RBAC的账户示例Tab.4 Account example based on RBAC model
3.1.2 RBAC的应用示范
RBAC权限分离的难点在于权限需要额外自定义,且与一般性的定义存在差异。参数“Reboot Server:suser:cmd:::/usr/sbin/reboot:uid=0;gid=bin”即是将reboot 这一超级权限(uid=0)赋予权限组,在指定给emsrole 角色后,继承者ems007 获得重启主机的权限(见图2)。
图2 通过GUI进行账户RBAC权限分离Fig.2 Privilege Separation of RBAC account by GUI
3.2.1 限制账户的crond定时任务
入侵者需要定时任务来建立一个稳定的远程后门,因此禁止普通账户使用定时任务,清理非必要的任务,并加强任务的监测审计,以便及时发现系统入侵行为。
3.2.2 通过restricted shell(rsh)限制泛特权
入侵者提权操作需要各种尝试,rsh没有目录切换、环境变量设置、带路径执行程序、重定向输出等功能,通过指定admin账户使用rsh,结合审计技术,可以制作蜜罐来诱捕入侵者。
3.2.3 限制su的使用
禁用root 直接登录,设置su 命令仅sysgrp 组成员可用,并全程监测其执行历史。系统入侵的关键特征是系统提权,配合审计技术,可以提升电力监控系统的防御水平。
在有限的在线电力监控网络中,几乎没有支持webshell的网络服务,关键IP被冒用很容易被发现,与陌生的远程环境有很大差别;唯一的远程通道(SSH)采用加密公钥验证,加上防火墙、RBAC 等组合加固措施,物理安全和计算环境基本可控。在此基础上,对每个新建立的远程管理IP请求进行白名单式校验[11],可建立主机层面的可信连接。登录访问的可信校验流程见图3。
图3 登录访问的可信校验流程Fig.3 Flow chart of trusted verification of login access
过于宽泛的文件权限,以及普通用户可操作的特权程序,为入侵者实施攻击提供了便利,需加强监测校验。一旦筛查发现异常,应及时取消。基于清单的可信校验流程见图4。
图4 基于清单的可信校验流程图Fig.4 Flow chart of list-based trusted verification
通过清单内容的匹配计算,校验程序文件的一致性、资源占用率等信息,可以扩展电力监控系统主机的可信计算[12]。项目中,用eng1 等外部系统建立data1 等目标主机的进程、文件基准清单,进行sha1、md5等多重加密,定期去监测进程及资源占用率,校验进程与文件的完整性、异变性,可根据预定义的应急类别执行报警或中断的处置措施,巩固可信计算的基础。
基本审计报告工具(Basic Audit Reporting Tool,BART)可以对多个系统执行文件级检查验证,校验出关键目录中的异动[13]。黑客入侵时,通常会尝试复制/etc/shadow 等核心文件内容、替换核心程序或伪造文件,因此校验关键位置的文件变化,可及时获知电力系统主机的各类异动。
本地保护除物理措施外,可设置屏幕超时锁定和登录超时退出。
基本安全模块(Basic Security Module,BSM)将audit 信息发送到syslog,为电力网络安全态势感知系统建设提供底层的数据支撑。黑客攻击最常见的是webshell技法,针对此类攻击,定期检查shell启动情况,即可尽早发现异常。
入侵者会设法清空攻击痕迹逃逸,因此必须使用记账功能来追溯。首先创建独立的日志文件,然后激活accton 记账,需要时导入文件使用lastcomm审计即可还原电力监控系统攻击过程。
为有效固定攻击者的违法证据,必须修改本地主机以及审计服务器的syslog 设置,实现日志的及时转移。如果电力监控系统中部署了日志审计装置、态势感知装置等,可以直接接入该syslog 日志,确保可靠存储、及时报警。
通过shell后台程序交互,推送网络安全预警、报警信息至电力监控系统,在预定义的实时数据库与组态画面上,直接联动数据采集与监视控制(Supervisory Control and Data Acquisition,SCADA)系统,播放语音报警和文本报警,可实现网络攻击的及时发现与处理[14]。
在可信计算程序中,配置模拟量输出报警信息和画面提示、开关量输出总报警和语音提示,实现主机信息推送至SCADA后台(见图5)。
图5 SCADA的报警联动示意图Fig.5 Diagram of SCADA alarm linkage
自动安全性增强工具(Automated Security Enhancement Tool,ASET)可以执行系统文件权限调优、系统全面检查、防火墙设置等操作,从而大大简化系统安全的监视和控制工作。通过ASET 收集Warning 等信息,配合logger、syslog 技法,可以实现报警自动化,为日常运维提供支撑。
关键电力厂站的网络安全事件必须及时处理,避免入侵扩大,从而破坏电力系统的稳定。审计发现的异常,一方面应及时清除风险程序及账户,恢复正常的业务功能;另一方面应举一反三调整安全加固策略,在硬件上进行设备禁用或rem_drv删除,在账户系统上进行RBAC 优化,在文件权限上进行访问控制列表(Access Control List,ACL)设置,在防火墙、ASET上调整拦截策略,在可信连接、可信运行、联动实时报警等脚本上改进算法,在BART、BSM等审计上优化,最终实现异常拦截、即时报警、联动处理的安全加固效果。
针对Solaris 系统计算环境,分析了电力监控系统的管理特点和网络攻击特征,提出了一套安全加固方案,能够扩展可信计算的应用场景,弥补主机加固研究在系统联动报警与动态控制等方面的不足,增强电力监控系统主机的计算环境安全。
0day 漏洞多发[15],因此电力监控系统安全加固技术也并非万全之策,应加强可信计算、态势感知等技术的深入研究,提供更深入和全面的算法技术支撑。