2021年9月,收到了关于浙江省第二届工业控制网络安全技能大赛将于2021年10月12日正式举行的通知。可是在获悉比赛形式和内容后,同学们的强烈热情开始夹杂着摇摆和犹豫,此次比赛的内容非常专业,也并非大家所擅长。报名参赛就意味着接下来半个月时间放下手头工作,从头学起。这个时候,研究院领导鼓励大家积极参赛,把握住开拓视野的好机会,努力为上海交大为研究院争光。于是,上海交通大学共九位同学们迅速组成了三支参赛队伍,开始紧锣密鼓的准备。
自动化系代表队(BraveHeart战队):黄哲彬,沈文狄,张钶;
研究院代表1队(0-1战队):尚阳,黄佳,刘家甫;
研究院代表2队(CYX战队):姚致远,蔡梓恒,夏武;
下面重点介绍我们CYX战队比赛实录。
赛前准备:经过队内讨论与分析,参赛队员认为主要精力应该用在两方面:一是熟悉解题套路与规律,也就是CTF竞赛解题的一般规律,因此我们首先学习了网络安全竞赛的基础题目,包括MISC、WEB、PWN、逆向和密码学等,掌握了安全领域的一些基础工具;二是了解工控安全实际场景,也包括各种工控设备和软件的使用,因此我们研究了比赛题目类型,经过讨论后由姚致远负责PLC组态分析,蔡梓恒负责固件和软件逆向,夏武同学负责流量分析。
比赛过程:比赛一开始,我们三个人决定先一起解决前面两道流量分析题,第一题,我们迅速锁定S7comm协议,发现时间戳,问题迎刃而解。第二题遇到一点小困难,一开始我们认为黑客的攻击仍然在S7comm协议中,但是解题卡了壳,于是我们果断开始做PLC组态分析题,多亏了事先准备的各种组态软件,姚致远很快找到了flag的位置,运算结果是得到了一串数字,蔡梓恒马上想到这串数字可能是ASCII编码,试解果然如此。拿下这题后,我们决定分头行动,蔡梓恒负责固件逆向题,我负责PLC分析题,夏武负责WEB渗透题,这几道题难度都不小,我们花了一小时时间琢磨仍然没有思路,于是我们回过头,经过分析这次很快把第二题解决了。接下来一个小时,蔡梓恒继续对固件逆向题中的文件进行逐一排查,而我则是一一搜索程序中的各个模块和变量,夏武使用各种工具分析WEB受攻击的方式。比赛时间从上午十点一直到下午六点,我们的心情也随着时间流逝越发紧张,这时有不少参赛队伍已经放弃比赛离场了。关键时刻,我突然对题目有了理解,抱定信心往PID模块深入排查,终于得到了flag值,我们又拿下一题信心大增。我立刻和蔡梓恒一起去解决固件逆向题,我们又思考并试错良久,终于!蔡梓恒找到一个文件被篡改了,他准确地判断出其内部一定有重要信息,蔡梓恒和夏武几乎同一时间拿下了这道题!这时我们队的排名进入了前十,只要再做出一道题就能进入前三,于是我们想集中精力解决一道难题。但是,后面的比赛并不顺利,Web渗透题给出了一种不常见的Web开发框架,PLC代理劫持和有关DCS的两道题也因为没有实操经验而难以展开。
我们队一直坚持到比赛结束,很遗憾没有解决剩下的题目。还算幸运的是我们CYX战队与BraveHeart战队都进入前十,毕竟名列我们前面的队伍都是专业队伍。
总结经验教训,一是网络安全知识偏弱,时间关系我们对一些比较偏的Web渗透没有准备;二是我们对PLC和DCS系统的工况不够了解,缺乏实践经验。知耻而后勇,君子必自强,这次比赛我们不仅收获了知识和经验,更重要的是战胜困难的自信心以及同学们并肩作战的快意。最后,一言以蔽之,不虚此行。
图一为获奖名次(共40多支参赛队伍)
图二、三为竞赛现场