新闻动态

News information

工控安全CTF比赛探讨

<<返回

2019年11月26日 13:44


1.   概述

近年来,伴随着工业4.0、智能制造、中国制造2025、两化融合、工业互联网等一系列国家战略逐步推进,工控网络安全作为一门新兴热门行业引起了不少人的关注,为了培养更多的工控安全人才,各种工控CTF安全比赛也是层出不穷。例如今年10月份举行的“护网杯”——2019年网络安全防护赛暨第二届工业互联网安全大赛,本次大赛结合工业互联网安全技术特征和发展趋势,聚焦前沿领域,围绕工业互联网与5G、人工智能、车联网、区块链等新技术新应用的智能融合设置本届大赛赛题,寻求推动核心技术新突破,设置了机器人智能分拣生产线场景、工业互联网智能传送场景、车联网场景、先进制造场景、市政燃气场景、智慧水电场景、智慧能源电力场景、关键信息基础设施水利场景、石油化工工艺场景等9大决赛场景。北京六方云作为本次安全大赛的技术支撑单位,为比赛构建了智慧电厂工控比赛场景,开发设置了智慧电厂网络安全相关CTF试题,并在比赛当天为比赛全过程提供技术支持和保障服务。

 1.jpg

CTFCapture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯”。

CTF大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。

CTF竞赛模式具体分为以下三类:

1)、解题模式(Jeopardy

在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。

2)、攻防模式(Attack-Defense

在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。

3)、混合模式(Mix

结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。

2.   工控安全CTF比赛设计思路

由于工控安全CTF比赛兴起时间不长,从历次工控安全CTF比赛试题来看,其试题设置质量并不高,很多赛题要么仅考察选手对工控系统软硬件的使用能力而没有CTF的特点,要么直接使用传统安全的CTF试题充数而没有覆盖到工控知识,甚至还有出笔试题给选手做这种不专业的情况。

工控安全CTF比赛的目的是培养懂工控又懂安全的综合型人才,因此在题目设置上应该将工控知识和传统CTF比赛模式结合起来。题目应该能考察选手是否熟练掌握工控设备和工控系统软硬件使用、是否熟悉掌握工控系统网络结构特点、是否了解常用工控协议,同时也需考察选手是否具有传统安全的基础,如熟练掌握各种加密算法、能够漏洞利用进行渗透攻击等能力。

下面就提出一些工控安全CTF赛题(线下赛)设置的思路,抛砖引玉,以供大家参考和探讨。

2.1    OPC协议渗透

题目:

工控系统中IP地址为X.X.X.X的主机上运行着OPC Server,内含敏感信息,请获取到该敏感信息,格式为flag{}

考点:

1)、密码破解能力(OPC通信需要客户端所在主机与服务器所在主机有相同的账户);

2)、DCOM配置知识(OPC协议是基于DCOM技术实现的,需要进行DCOM配置后才能通信);

3)、OPC Client的使用。

题目设置:

1)、使用一台Windows系统的主机,将Administrator账号的密码设的相对简单些(如abc123),以便选手能够较快的破解密码;

2)、找一个OPC Server软件(如和利时HOLLiAS-COMM软件),增加一组WORD型标签(也可考虑一个字符串型标签)来保存flag,可以考虑增加一些干扰的标签,也可以考虑对flag进行加密处理以增加难度;

2.png

3)按照OPC ServerDCOM配置要求对系统进行设置;

3.png

4)启动OPC Server软件等待客户端连接。

解题思路:

1)、选手拿到题目后,应该想到OPC通信需要将客户端账号密码设置为与Server端一致,另外还需进行DCOM配置;

2)、使用密码破解工具对OPC server端所在主机进行密码破解,如使用hydra_windows工具进行密码破解;

4.png

3)、参考OPC ClientDCOM配置要求对本地机器进行设置;

4)、找个开源的OPC Client软件连接到OPC服务器,读出标签;

5.png

5)、寻找flag,若有flag有加密,则进行必要的解密;

6.png

6)、以上思路供参考,选手能以其它方法得到flag也可以。

2.2    西门子S7分析

题目:

工控系统中IP地址为A.A.A.AB.B.B.B的设备之间正在用西门子S7协议传输敏感信息,请找到该敏感信息,格式为flag{}

考点:

1)、S7协议解析能力;

2)、wireshark等工具的使用;

题目设置:

1)、下位机使用一台西门子315 PLC

2)、使用WINCC或者Kingview作为HMI软件,组态将西门子PLC挂接到HMI中。

7.png

3)、在HMI中编程实现向PLC写入数据,可以混杂大量干扰数据;

8.png

4)启动HMI

9.png

 

解题思路:

1)、通过交换机镜像口用wireshark抓取数据,获取到大量的S7COMM数据包;

10.png

2)、发现“Write Var”数据包比较可疑,进行相应筛选;

11.png

  (3)、导出为cvs格式,在Excel中打开,在Data列搜索“f”的ASCII码十六进制值“66”,找到一段疑似flag的地方。

12.png

  (4)、将疑似flag16进制值转换为字符,得到flag

13.png

5)、以上思路供参考,选手能以其它方法得到flag也可以。

2.3    PLC控制程序分析

题目:

IP地址为X.X.X.A-X.X.X.B范围内的某西门子315 PLCOB1程序块被人篡改了,程序隐藏着一段敏感信息,请通过分析获取该敏感信息,格式为flag{}

考点:

1)、西门子PLC编程软件Step7的使用;

2)、加密技术;

题目设置:

1)、下位机使用一台西门子315 PLC

2)、通过编程将加密信息编程到OB1程序块中。

14.png

2)、解密用的密码放在DB1数据块中,加密方式为简单的XOR

15.png

3)、将程序下载到PLC中;

解题思路:

1)、只要选手熟悉Step7软件的使用,打开Step7软件,点击“PLC”菜单下的“显示可访问的节点(E)”就可以搜索到目标设备了;

16.png

2)、可以直接展开块查看OB1 块,也可以将控制程序下载到本地后在打开查看;

17.png

  (3)、通过程序解读,发现程序输出为4B 69 3B 78 38 4D 7E 2A 41 4A 78 7C 52 79 70 24,这是一段密文,怀疑程序其它地方还保存有密码,再在DB1数据库中找到一段内容像是密码。

18.png

  (4)、使用密码和密文做XOR运算,得到flag

19.png

  (5)、以上思路供参考,选手能以其它方法得到flag也可以。