IEC61850协议内容过滤的工控防火墙设计

作者:汪心桐 潘玺廷 许陈一 顾龙 朱栩影 苏晓哲 王勇
  点击数:1010  发布时间:2017-11-03 18:12
IEC61850协议是电力系统自动化领域的全球通用标准,主要应用在变电站自动化领域,其安全性关系到整个电网的安全。本文针对该协议的安全性问题,设计了一种基于Iptables架构的工控防火墙。其主要包括前端web管理页面登入,添加和修改规则、后端Mongodb数据库记录日志,并且对IEC61850规约中的TCP三次握手包和MMS协议数据包进行深度检测,可以丢弃非法数据包。
关键词:深度检测 ,内容过滤 ,Iptables ,IEC61850 ,工控防火墙

汪心桐 上海电力学院计算机科学与技术学院

潘玺廷 北京嘀嘀无限科技发展有限公司

许陈一,顾龙,朱栩影,苏晓哲,王勇 上海电力学院计算机科学与技术学院


1 引言


由于IEC61850标准是电力系统自动化领域唯一的全球通用标准。它通过标准的实现,实现了智能变电站的工程运作标准化,使得智能变电站的工程实施变得规范、统一和透明[1]。ICS领域本身的脆弱性,不管是基于内部进行攻击还是由外部入侵者进来发起的攻击,都将不可避免地造成生产损失,况且生产环节发生事故还特别容易威胁人身生命安全[2]。这些风险是看得见的本身就存在的,不可能短期内通过更换工控设备来解决,必须要通过工控防火墙来实施防护,从而扼杀掉这样的风险[3][4]。自工业4.0的概念提出后,目前已经有许多基于IEC61850标准的系统投入运营,因此研究IEC61850标准的工控防火墙有其独特的现实意义。


当前的安全厂商如绿盟科技、启明星辰和安恒等都有工控的安全设备,大多实现了对IEC61850标准中的IEC104协议的检测。而本文的基于iptables的工控防火墙不同于传统意义的防火墙,它不仅能基于源目IP和端口等进行过滤,还实现了对IEC61850标准中的IEC9506制造商信息规范MMS和TCP握手包的深度检测。接下来,将对MMS协议进行介绍和分析,并描述本文基于iptables的工控防火墙的实现原理。


2 IEC61850标准内容过滤的工控防火墙设计


2.1 运行环境


运行环境为Ubuntu 1 4 . 04,需要其他组件如Iptables、Mongodb和Tornado等。


2.2 系统架构图


基于Iptables的IEC61850协议内容过滤的工控防火墙主要被部署在变电站通信体系的站控层和间隔层之间,其不仅能基于源目地址等过滤普通的TCP或UDP数据包,而且能识别IEC61850标准中的IEC 9506制造商信息规范MMS协议,利用Iptalbes防火墙的Netfilter queue扩展将MMS协议的数据包从内核层提取到用户层,对数据包内容进行深度检测,并将日志记录到数据库中并在web界面进行展示。其系统架构图如1所示。


1.jpg

图1 web页面实现规则添加


2.3 主要模块


2.3.1 前端


规则添加:


前端用html+css构成,登陆界面上使用加入了placeholder来增加用户的登陆体验。管理员登陆后,web页面中可以查看系统状态、防火墙规则和入侵检测;添加规则用于前端到后端的配合,首先用switch.css设计开关按钮,这个按钮的实质是一个checkbox,通过checkbox是否为checked状态来判断该开关的开启或关闭。如图2所示。


2.jpg

图2 web页面实现规则添加


2.3.2 后端


使用Tornado框架实现对前端请求响应:后端的tornado框架采用的是多进程+非阻塞+epoll+prefork模型。


使用Mongodb数据库记录日志:Mongodb数据库中详细记录了触发告警的数据包的源目IP、端口号和协议等,如图3所示,为使用Mongodb数据库记录日志并在前端的web页面显示。


3.jpg

图3 Mongodb数据库记录数据日志并在前端web页面显示


2.3.3 Iptables架构


Iptalbes总共有四表五链,用于实现具体的访问控制。Netfilter queue扩展用于将数据包从内核空间提取到用户空间,对数据包进行深度检测。


Iptalbes四种表功能如下:


filter表:主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包;


nat表:主要用于修改数据包的IP地址、端口号等信息;


mangle表:主要用于修改数据包的TOS、TTL值以及为数据包设置Mark标记;


raw表:是自1.2.9以后版本的Iptables新增的表,主要用于决定数据包是否被状态跟踪机制处理。


Iptalbes五种规则链功能如下:


INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则;


OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则;


FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则;


PREROUTING链:在对数据包作路由选择之前,应用此链中的规则,如DNAT;


POSTROUTING链:在对数据包作路由选择之后,应用此链中的规则,如SNAT。


其处理数据包的方式为:ACCEPT:允许数据包通过;DROP:直接丢弃数据包,不给任何回应信息;REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息。数据包处理流程如图4所示。


4.JPG

图4 数据包处理流程


Netfilter queue扩展可加在图4中的任意五链中,具体可由用户定义。


2.4 MMS协议的深度分析


2.4.1 MMS协议深度分析之拆包


由具体函数完成对数据包的拆包、握手包深度检测和mms协议的深度检测。


利用python的dpkt库完成对三层及以上的拆包处理。对于接收到的数据包拆包过程如下:首先利用get_payload()函数获取三层及以上数据包的东西,然后利用hexdump()函数完成对数据包的unicode解码,之后使用正则去除空格等特殊字符,将数据包中内容放入列表。


2.4.2 MMS协议深度分析之TCP包深度分析


此部分代码对TCP包进行了深度解析和判断(黑名单原则):握手包中syn和fin标记位不能同时为1;握手包中标记位不能都为0;握手包中不存在fin标记位为1且ack标记位为0的情况。


2.4.3 MMS协议深度分析之initiate请求报文深度分析


MMS协议在S-C端通信前都会先由client端发送initiate请求给server端,之后server端回一个initiate数据包给client端。


通过分析initiate请求数据包的特征,将其应用层中的为true的功能码记录下来,并记录该数据包源IP、源端口和目的端口。则后续的s-c端通信中,将所有的非initiate数据包进行深度检测,发送的功能码、源IP、源端口和目的端口必须为记录中的,否则视为非法数据包。


根据大量MMS的initiate报文的深度分析和总结,发现其有以下特征:init包目的端口号为COTP层PDU Type为f0;init包ISO 8327-1层SPDU type为0d;init包ISO 8823层presentation context identifier值为01;init包ISO 8650-1层aso context name为28ca220203。并且,一个正常的MMS协议的initiate请求报文各层数据长度除了应用层均固定,如图5所示。


5.jpg

图5 MMS协议initiate请求报文


从图5中可以看出:二层数据长度为14字节;三层数据长度为20字节;四层数据长度为32字节;TPKT层数据长度为4字节;ISO COTP层数据长度为3字节;ISO 8327-1层数据长度为24字节;ISO 8823层数据长度为69字节;ISO 8650-1层数据长度为47字节。


MMS协议中总共有90个功能码,常用功能码有6种,initiate请求报文中的功能码描述如图6所示,分为ture和false:


6.jpg

图6 MMS协议非initiate请求数据包中功能码


2.4.4 MMS协议深度分析之非initiate请求报文功能码深度分析


通过分析initiate请求数据包的特征,将其应用层中的为true的功能码记录下来,在后续的s-c端通信中,将所有的非initiate数据包进行深度检测,发送的功能码必须为记录中的,否则视为非法数据包。


根据大量MMS的initiate报文的深度分析和总结,发现其有以下特征:非initi a te包目的端口号为COTP层PDU Type为f0;非initiate包两个ISO8327-1层内容必为0100;非initiate包ISO 8823层presentation context identifier值为03a。且一个正常的MMS协议的非initiate请求报文各层数据长度除了应用层均固定,如图7所示。


7.jpg

图7 MMS协议非initiate请求数据包


从图7中可以看出:二层数据长度为14字节;三层数据长度为20字节;四层数据长度为32字节;TPKT层数据长度为4字节;ISO COTP层数据长度为3字节;ISO 8327-1层数据长度为2字节;ISO 8327-1层数据长度为2字节;ISO 8823层数据长度为9字节。


其中本次防火墙可以识别的功能码有6种,分别为read、write、getNameList、fileDirectory、fileOpen和fileRead,它们也是最常用的六种。


3 总结与展望


从工业网络安全整体的考虑,现在的这些生产网由于扩大的规模、连接的无线、远程的运维、现场的管理和数据的传输,已经使生产线完全暴露在攻击者面前[5]。对于企业的运营者以及安全的防护者,工业网络安全的建设任重道远,必须从全局上看,整体上看,着重于顶层设计,实施纵深防御的安全战略。工控防火墙是这个体系的第一道防线,是工业网络安全的重要组成部分[6]。因此本次对于基于IEC61850标准的MMS协议内容过滤的工控防火墙设计具有十分重要的现实意义。


基金项目:上海市浦江人才计划资助(16PJ1433100);上海市中小企业创新基金(1701H1G8000,1601H1E2600);上海自然科学基金(16ZR1436300);上海科委地方能力建设项目(15110502700);上海科委科研项目(17DZ1201500)


作者简介


汪心桐(1996-),男,上海人,本科,现就读于上海电力学院,研究方向为工业控制系统安全。

潘玺廷(1996-),男,黑龙江哈尔滨人,本科,现就职于北京嘀嘀无限科技发展有限公司,研究方向为网络安全监控、自动化漏洞扫描。

许陈一(1996-),男,上海人,本科,现就读于上海电力学院,研究方向为防火墙数据安全分析。

顾 龙(1996-),男,上海人,本科,现就读于上海电力学院,研究方向为工业通信安全。

朱栩影(1996-),女,河南开封人,本科,现就读于上海电力学院,研究方向为网络通讯安全。

苏晓哲(1995-),女,河南洛阳人,本科,现就读于上海电力学院,研究方向为漏洞识别与恶意行为检测。

王 勇(1973-),男,河南确山人,教授,博士,现就职于上海电力学院,研究方向为电力系统信息安全。


参考文献:


[1] 李永亮, 李刚. IEC61850第2版简介及其在智能电网中的应用展望[J].电网技术, 2010, 34 (04) : 11 - 16.

[2] 华镕. 工业控制网络中的防火墙[J]. 自动化博览, 2014, (04) : 52 - 54.

[3] 刘金. 工业控制网络防火墙协议防护模块测试研究[J]. 自动化应用, 2015, (04) : 12 - 13.

[4] 李宇峰. 浅谈电力监控系统二次安全防护的解决方案[C]. 2013年电力系统自动化专委会年会论文. 2013, 5.

[5] 高夏生, 黄少雄, 梁肖. 电力监控系统安全防护要素[J]. 电脑知识与技术, 2017, 13 (08) : 212 – 214 + 222.


摘自《工业控制系统信息安全》专刊第四辑

相关文章


热点新闻
推荐产品