目录

  • 1 第一章 工业控制系统安全概述
    • 1.1 工业控制系统安全简介
  • 2 第二章 工业控制系统通信协议
    • 2.1 Profinet 协议简介
    • 2.2 Profibus 协议简介
    • 2.3 OPC协议攻击病毒与防御
    • 2.4 DNP3.0协议分析
    • 2.5 Modbus协议分析
    • 2.6 IEC61850标准系统组成
  • 3 第三章 工业控制系统通信采集技术
    • 3.1 Modbus协议病毒攻击与防御
    • 3.2 SCADA漏洞库管理系统
    • 3.3 百度地图电力演练系统
    • 3.4 基于Arduino的红外通信
  • 4 第四章 工业控制系统编程技术
    • 4.1 正向反向隔离装置的病毒攻击与防御
    • 4.2 电力授时(GPS北斗)系统安全性分析
    • 4.3 S7——200仿真软件和编程软件的使用
    • 4.4 应用MATPOWER软件进行电力系统潮流计算
    • 4.5 FireWallOS——命令行界面
    • 4.6 EWB
    • 4.7 LFS
  • 5 第五章 工业控制系统攻击与检测技术
    • 5.1 Black Energy 病毒分析
    • 5.2 基于HoneyNet的SCADA入侵检测系统的配置
    • 5.3 RFID卡破解
    • 5.4 正向反向隔离装置的配置与安全性分析
    • 5.5 隔离装置漏洞攻击检测
  • 6 第六章 工业控制系统防御技术
    • 6.1 工业控制系统防火墙设计
    • 6.2 信安防火墙Web端设计
    • 6.3 工业SCADA入侵检测系统的架构与配置
    • 6.4 Winbox 与ROS界面展示
    • 6.5 Mikro Tik ROS安装
    • 6.6 WFilter RouterOS防火墙系统
  • 7 实验内容
    • 7.1 实验目的与知识点
    • 7.2 实验内容(1)变电站SCADA系统采集设备数据
    • 7.3 实验内容(2)变电站Kingview漏洞利用攻击
    • 7.4 实验内容(3)乌克兰电力系统BlackEnergy病毒分析
    • 7.5 试验内容(4)变电站3D虚拟攻防视频
实验内容(1)变电站SCADA系统采集设备数据

变电站SCADA系统

1. 变电站主站系统的设备构建

 1)首先我们需要选取变电站类别的示例,并启动组态王管理器。因为我们需要模拟建立一个接收Modbus信号的变电站系统,所以选择新建Modbus设备。

组态王工程浏览器预览

2)在设备配置阶段,设备的地址我们使用从站预留的ip地址进行配置,端口为502,超时时间我们默认填写10毫秒,因此设备地址一栏填写为:192.168.75.132:502 1/10。其余设置信息,按以下参数进行配置:

生产厂家:莫迪康

设备名称:ModbusTCP

通信描述:TCP

唯一逻辑名称:modbus

串口:COM15

设备安装完成-信息总结

2. 变电站自动化系统变量构建

变电站自动化系统的平台搭建完之后,就需要在系统的数据库的数据词典内配置变量参数,通过这些变量,系统可以实现不同类型数据的接收、处理、存储和发送。而根据Modbus从站的模拟,我们需要建立八个变量来模拟从站发送的八种不同数据,由于每个变量在modbus协议内占用两个字节,所以寄存器地址需要间隔两个地址进行编号,具体变量配置参考表1

1主站变量配置

变量名

变量类型

寄存器地址

数据类型

电压

I/O整型

T40001

FLOAT

电流

I/O整型

T40003

FLOAT

有功功率

I/O整型

T400051

FLOAT

有功电能

I/O实型

T40007

FLOAT

功率因数

I/O实型

T40009

FLOAT

用电时间

I/O实型

T40011

FLOAT

信号强度

I/O实型

T40013

FLOAT

脉冲信号

内存离散

T40015

 由于在组态王系统中,官方定义了在与Modbus协议类型的设备相连的话,其传输数据的字节会进行交换,因此我们还需要另外建立一个变量,将内存中的数值的排序进行变换,从而获得可以正常阅读的数据。该变量配置如图7所示。

7 SWAPF变量配置

变量配置完后,如图8所示

图8 数据词典

 3. 变电站自动化系统界面设计

1)在配置完系统的平台和变量之后,我们需要为其配置一个可视化的操作界面,方便使用者能够通过界面更直接地看到设备的状态变化,及时对设备产生的变化进行反应操作。通过工程浏览器的画面列表,进行新画面的创建。

图9. 工程浏览器画面新建

2)在弹出的对话“画面属性”填写信息

图10. 画面属性

3)设置画面命令语言

11 画面命令语言

4)设置完成后,就会出现modbus测试画面

12 modbus测试画面

5)根据我们所需要的Modbus设备所发送的数据类型,我们相应地在画面中建立八个变量和一个SWAP测试变量以及值的切换按钮等

图13 modbus变量图

1)设置菜单栏中命令语言,使菜单栏含有modbus电表状态

其核心代码如下所示:

if(menuinfo==0)

{

   showpicture("110KV画面");    

}

if(menuinfo==1)

{

    showpicture("10KV画面");    

}

if(menuinfo==2)

{

   showpicture("1#主变信息");    

}

 

if(menuinfo==3)

{

    showpicture("2#主变信息");    

}

if(menuinfo==4)

{

   showpicture("开关状态表");    

}

if(menuinfo==5)

{

   showpicture("modbus");    

}

14 菜单栏命令语言1

15 菜单栏命令语言2

7)界面上的变量配置建立完成之后,我们需要将其数值的显示与先前配置好的变量进行连接匹配。因此,通过八个变量的动画连接、一个SWAP测试变量以及切换按钮的动态连接来进行配置。普通变量的配置如图3.12所示,SWAP变量的配置如图16 所示,转换按钮的配置如图17 所示。

16 变量动画连接

17 SWAP变量动画连接

图18 换按钮动画连接

8)因为从Modbus设备的从站发送过来的数据不会是静止的数据,而是以一种动态跳动的形式展现出来,所以利用组态王的报表功能,对重点需要监控的动态数据:电压、电流和脉冲信号配置相应的实时监控线型图。为了使得从站的Modbus设备更加形象,根据已设定好的变量,模拟插入电表接线图。效果如图3.15所示。

图19  modbus电表状态图

9)最后我们需要对变量电压、电流、脉冲信号等变量进行曲线定义和标识定义,因为三种类型的变量跳变的范围都互不相同,所以他们所对应的实时监控图需要单独设置上限、下限和间隔位数,接着设定刷新时间为1s,实时监控变量变化。

图20 电压变量曲线定义与标识定义

 

21 电流变量曲线定义与标识定义

图 22 脉冲信号变量曲线定义与标识定义