AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

黑客眼中的⼯工控4.0—工控系统安全威胁与应对探索 by Kimon

发布者 security
发布于 1448587796025  浏览 8970 关键词 网络安全, 物联网 
分享到

第1页

⿊黑客眼中的⼯工控4.0

——⼯工控系统安全威胁与应对探索 by Kimon



第2页

关于我

• 中国科技⼤大学苏研院 • ADF安全研究团队 • 物联⺴⽹网安全、⼯工控安全

⺩王启蒙 Kimon qmwang@vip.126.com



第3页

提纲

• ⼯工控背景 • ⼯工控系统 • ⼊入侵⽅方式 • 应对探索



第4页

⼯工业4.0与两化融合



第6页

⼯工控系统

• ICS ⼯工业控制系统 • SCADA 数据采集与监控系统 • DCS 分散式控制系统



第7页

SCADA系统



第8页

SCADA系统



第9页

⼯工控组件

• PLC可编程逻辑控制器 • RTU远程控制单元 • HMI⼈人机交互界⾯面 • 现场设备



第10页

PLC



• PLC实质是⼀一种⽤用于⼯工业 的计算机

• CPU、存储器、输⼊入输出 接⼝口电路、功能模块、通 信模块、电源

• 输⼊入采样阶段、⽤用户程序 执⾏行阶段、数据刷新阶段

• 梯形图LAD 顺序流程图SFC 指令表IL



(



/



第11页

威胁趋势



~2010



~2014 ICS-CERT

2013 “Dragonfly 2012 Flame 2011 Duqu



第12页

威胁来源



协议安全



⺴⽹网络隔离



安全意识



漏洞管理



第13页

⼯工业⺴⽹网络协议

• Modbus • S3/S5/S7 • DNP3 • Profinet • Ethernet/IP •…



第14页

Modbus协议

• 全球第⼀一个真正⽤用于⼯工业现场 的总线协议

• 施耐德电⼦子(Schneider Electric)发布于1979年

• 标准开放,免费使⽤用 • ⺫⽬目前作为⼯工业标准⼯工业⺴⽹网络传

输协议之⼀一



第15页

Modbus协议



• Master/Slave模式



master



• 8位地址⻓长度,每个Master可⽀支 持247个Slave



Initiate request

func code data req



• 简单清晰的协议内容 • ⽆无加密与⾝身份认证



Receive response



slave

Perform action Initiate response

func code data resp



第16页

Modbus协议



Additional address



Function code

PDU

ADU



Data



Error check



Modbus Frame



第17页

Modbus协议



IP Packet



TCP TransactionID ProtocolID Length



Packet



2 Byte



2 Byte 2 Byte



Unit ID 1 Byte



Function Code 1 Byte



Data 256 or ..



ADU



PDU



Modbus TCP Frame



第18页

Modbus协议



Function Name Read Coils

Write Single Coil Write Multiple Coils Read Input Register Write Single Register Read/Write Multiple Register



Function Code

0x01 0x05

0x15

0x04 0x06 0x23



第19页

Modbus协议

维基百科——Modbus所有功能码 http://en.wikipedia.org/wiki/Modbus



第20页

Modbus协议



TransactionID ProtocolID Length



UnitID



FunctionCode



Data



第21页

Modbus协议

RS-232/RS-485 Network

Modbus TCP



第22页

⼊入侵⽅方式



⼯工业化信息化融合推进 ⼯工控组件脆弱性

设备升级维护成本⾼高 安全意识薄弱



攻击⾯面



更脆弱的系统 更多的攻击⾯面



模拟环境 探索发现⺫⽬目标

协议分析 设备识别 攻击⼯工具/框架 ⼿手动攻击测试



第23页

模拟环境

[ModbusPal]

Slave节点仿真模拟 http://modbuspal.sourceforge.net/



第24页

⺴⽹网络分析

[Wireshark]

https://www.wireshark.org/ Modbus/S7/DNP3协议解析



第25页

本地模拟攻防

[mbtget]

Perl脚本Modbus协议⼯工具 https://github.com/sourceperl/mbtget



第26页

本地模拟攻防

[Metasploit Framework] auxiliary/scanner/scada/modbus_findunitid

auxiliary/scanner/scada/modbusclient auxiliary/scanner/scada/modbusdetected



第27页

探索发现⺫⽬目标

PLC、RTU..⼯工控设备 ⽆无⼀一幸免

⺴⽹网络空间 搜索引擎

⿊黑暗“Google”



第28页

探索发现⺫⽬目标

[Nmap]

modbus-discover.nse modbus-enum.nse

注意 《NIST SP800-82》 1.降低扫描速度—scan-delay=1 2.TCP替代UDP 3.避免使⽤用nmap指纹识别 -sC 4.不推荐nmap 5.不要尝试对运⾏行中的设备进⾏行测试



第29页

探索发现⺫⽬目标

[plcscan]

TCP/502 TCP/102端⼝口PLC识别⼯工具 code.google.com/p/plcscan



第30页

探索发现⺫⽬目标

[ModTest]

针对Modbus分析协议、扫描、指纹识别、Fuzzing、甄别蜜罐 https://github.com/ameng929/ModTest



第31页

探索发现⺫⽬目标

[ModTest]

Modbus分析协议 https://github.com/ameng929/ModTest



第32页

探索发现⺫⽬目标

[ModTest]

Modbus Fuzzing https://github.com/ameng929/ModTest

⽅方式: 针对Function Code 针对Diagnostics Code

发现: 90/91/99功能码 识别⼯工控蜜罐的⽅方式 拒绝服务



第33页

探索发现⺫⽬目标

[ModTest]

Modbus 指纹识别 https://github.com/ameng929/ModTest

识别更多的plc设备信息 更邪恶的⼊入侵⽅方式 …



第34页

⼊入侵⽅方式

[Unity Pro XL]

施耐德PLC编程软件 http://www.schneider-electric.com/



第35页

⼊入侵⽅方式

[Unity Pro XL]

施耐德PLC编程软件 http://www.schneider-electric.com/

发现: 可远程接⼊入设备 但远程传输项⺫⽬目失败 原因: Unity Pro XL版本多样 兼容性差



第36页

⼊入侵⽅方式

分析Unity Pro XL软件协议、认证⽅方式

软件使⽤用Modbus功能码90进⾏行通信 协议内容⽆无加密!



第37页

⼊入侵⽅方式

分析Unity Pro XL软件协议、认证⽅方式 通过90功能码进⾏行⾝身份识别与握⼿手请求、消息同步

通过ModTest测试,90功能码协议⽆无认证,可进⾏行包重放



第38页

⼊入侵⽅方式

分析Unity Pro XL软件协议、认证⽅方式



协议中发现读取PLC设备信息通信数据



0x00, 0x0f, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x5a, 0x00, 0x20,



0x00, 0x14, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf6, 0x03



重放请求,获得PLC设备项⺫⽬目信息



针对应答数据选择针对的Unity Pro XL软件



V5.0



Unity Pro XL 5.0



第39页

⼊入侵⽅方式

通过针对版本的Unity Pro XL软件获取到PLC权限

可查看实时数据表、修改上传PLC程序、停⽌止PLC执⾏行!!!



第40页

⼊入侵⽅方式

通过Shodan进⾏行设备探索与⼊入侵

针对施耐德PLC编程软件的Dork port:502 V5.0 .stu

V5.0——编程软件版本号 .stu——施耐德PLC程序后缀



第41页

应对探索 [⼯工控蜜罐]

协议仿真scapy、pymodbus https://github.com/tecpal/PyModbus

• 对读写PLC Coil、Register值的响应

• 对43功能码读取PLC设备信息的响应

• 对17功能码请求从节点信息的响应

• 对90功能码读取Modicon PLC信息的响应



第42页

应对探索

[⼯工控蜜罐]

Web管理登陆界⾯面



第43页

应对探索

[⼯工控蜜罐]

其他选择组件

• FTP • SNMP • TELNET • 其他⼯工控协议



第44页

应对探索

[⼯工控蜜罐]

conpot https://github.com/mushorg/conpot



第45页

应对探索

[⼯工控蜜罐]

SCADA Honeynet http://www.digitalbond.com/tools/scada-honeynet/



第46页

应对探索 [⼯工控蜜罐] Modhoney

在PyModbus与Z-one版本上进⾏行了改进与优化 https://github.com/ameng929/Modhoney

增加了对于TransactionID的识别与应答 增加了对于功能码90的识别与应答 配合conpot更容易被⺴⽹网络搜索引擎发现



第47页

应对探索 [⼯工控蜜罐] Modhoney

在PyModbus与Z-one版本上进⾏行了改进与优化 https://github.com/ameng929/Modhoney

增加了对于TransactionID的识别与应答 增加了对于功能码90的识别与应答 配合conpot更容易被⺴⽹网络搜索引擎发现



第48页

198. 20. 70.114 71. 6.216. 34

169. 54.233.119 185. 35. 62. 11

85. 25.185.112 62. 75.207.109 178. 19.104.138 141.212.122. xxx



应对探索

[⼯工控蜜罐]

发现

Shodan Rapid7 Credit Suisse Group / CANA Switzerland Group BSB-Service GmbH Germany Intergenia AG Germany Livenet sp. z o.o. University of Michigan College of Engineering



蜜罐捕获数据主要为协议扫描 其中严重的威胁为对地址数据的改写



第49页

应对探索

Shodan对于蜜罐系统的甄别



第50页

应对探索

蜜罐甄别⽅方法

Real

Honey 对于43(0x2B)功能码中的异常数据的应答



第51页

应对探索

蜜罐甄别⽅方法

Real

Honey 对于01(0x01)功能码中的异常数据的应答



第52页

应对探索

⼯工控蜜罐的必要性

• 发现⺴⽹网络空间扫⾯面引擎IP地址,拦截扫描 • 了解扫描引擎的指纹识别⽅方法,收集信息 • 掌握⿊黑客的进⼀一步攻击⾏行为 • 收集异常数据中可能的0-Day • 健壮蜜罐系统,使其更难被甄别,更好的伪装



第53页

应对探索

[Snort for ICS]

开源⼊入侵检测

https://www.snort.org

http://www.digitalbond.com/tools/quickdraw/



第54页

应对探索

[ModbusSec]

协议传输⾝身份认证 http://www.digitalbond.com/tools/basecamp/

{Ethernet | TCP | Modbus}

{Ethernet | TCP | Tunnel | Modbus}

{Ethernet | TCP | Modbus | Tunnel | Modbus}



第55页

应对探索

[安全模块解决⽅方案]



• ⼯工业防⽕火墙 • ⺴⽹网络隔离设备 • VPN接⼊入 • 认证管理 •…



纵深防御



第56页

⼯工控安全联盟

感谢聆听



支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。