《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > IEC61850协议内容过滤的工控防火墙设计

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

2018-08-16

  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所示。

11509704095873545.jpg

  图1 web页面实现规则添加

  2.3 主要模块

  2.3.1 前端

  规则添加:

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

21509704108337971.jpg

  图2 web页面实现规则添加

  2.3.2 后端

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

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

31509704120279104.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所示。

41509704135699481.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所示。

51509704150103629.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:

 61509704161104352.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所示。

71509704173137899.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协议内容过滤的工控防火墙设计具有十分重要的现实意义。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。