看雪论坛作者ID:wmsuper
新的一年开始了,本人从事工控安全研究也有个两三年了,虽然水平也不咋样,但是总算有所得,比如今年挖了很多安全设备的漏洞,在天府杯上攻破了世界上非常流行的SCADA软件,成功在一些国内外的RTOS控制器设备实现了RCE等等。
之前有很多朋友想从事这方面的工作,经常会跑来问我究竟怎么入门工控漏洞挖掘。由于时间原因,我都不会回复的特别详细,所以想借着这个机会给大家讲讲怎么入门工控漏洞挖掘。首先工控安全研究的主要动力是国家和工控厂商,国家非常关注这块的安全,因为这个是关乎民生经济的大事。国内的工控厂商相比国外来说对安全这块不是很重视,大多是为了过个等保。大家可以搜索下“工控安全”,跑出来大多数各种安全设备部署的方案,而很少有从“攻击”的角度去研究工控系统是否安全。国内愿意分享工控漏洞挖掘技术少之又少,即使分享出来的,大多数都是“边角料”,这就导致普通人想从事工控漏洞挖掘的门槛相对较高。
所以想要快速入门工控漏洞挖掘的同学与其等着所谓的大佬分享技术,不如化被动为主动,经常关注下国外的工控安全研究团队。重点关注这些团队披露出的漏洞分析思路,都是可以借鉴的,下到简单的明文传输,上到复杂的RCE,应有尽有。
思科的talos
https://talosintelligence.com/vulnerability_reportsclaroty 团队
https://www.claroty.com/blog/美国的ICS CERT
https://www.cisa.gov/uscert/ics/advisories空客
https://airbus-cyber-security.com/blog/Armis
https://www.armis.com/blog1、OT系统与IT系统的漏洞挖掘有着明显的不同,OT系统的可用性是排在第一位的,所以,远程的拒绝服务漏洞对于工控系统来说是致命的,漏洞评分相对较高。2、OT系统封闭性相对较高,设备相对昂贵,小到几百,大到几百万,同时OT系统的软件在厂商官方网站往往下载不到。只能联系经销商获取。
3、工控控制类设备往往跑的是RTOS(Vxworks,SMX,GHS,ADONIS。。。),这些系统研究资料非常少。一般只能使用PCB的硬件调试口进行调试。在上面进行RCE相对困难,当然不是没可能,只是难度较高。从安全转过来的其实不用了解太多的专业知识。重点了解控制器的一些编程语言以及基础的工控协议。
对一个新人来说,刚开始入门工控漏洞挖掘最开始不要选择国外如西门子,GE这些大厂,这些安全性相对较高,盲目上手容易打击信心。可以从国内厂商开始入手,挖掘漏洞产出相对较高,等熟悉之后可以开始尝试国外大厂。
软件类比设备类相对好获取,可以下载试用版进行使用。而设备可能相对昂贵。有预算的时候可以进行购买研究。
无论是设备上还是软件上,FUZZ是挖掘漏洞非常好的方法,推荐我常用的fuzz工具:https://github.com/jtpereyda/boofuzz
https://talosintelligence.com/mutiny_fuzzer通过这些工具可以让脆弱的工控设备、工控软件在几分钟进入crash状态。分析工控设备固件不仅能够发现一些敏感信息(后门,私钥),也可以进一步帮助我们理解协议的实现,增加模糊工具的覆盖率。这里的分析方法不再赘述,感兴趣的同学可以参考我写的文章
https://bbs.pediy.com/thread-261935.htm
https://bbs.pediy.com/thread-261884.htm
https://bbs.pediy.com/thread-264144.htm
https://bbs.pediy.com/thread-267153.htm事实上,即使是最大的工控厂商西门子也没有相关的奖励计划(估计也是这方面人研究比较少的原因)。挖工控漏洞基本靠情怀,无所不pwn的极客精神以及敢于挑战的决心。可能最后只能尴尬地吹个牛,说挖出漏洞影响很多国内外关键的基础设施以此自我安慰。最后希望从事漏洞挖掘的同学在新的一年能收获多多,漏洞多多。—于2021年西安 冬看雪ID:wmsuper
https://bbs.pediy.com/user-home-651413.htm
*本文由看雪论坛 wmsuper 原创,转载请注明来自看雪社区
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458428129&idx=1&sn=c15bebdcd41bd71d51df3e95cd51a717&chksm=b18f926b86f81b7dbb7c78d3f7ac05b1192391441b5587c50fb522f2633fbb5a905bcc41bd3b#rd
如有侵权请联系:admin#unsafe.sh