工控系统安全 - 工控ISF(Industrial exploit Framework)是一个基于Python的类似msf的工控系统漏洞利用框架
0X01工控系统漏洞存在现状和不足
目前工控系统安全与传统IT系统安全不同有以下几点原因:
一、从安全优先级来说:
1.工控系统网络安全焦点问题是生产过程稳定可靠,强调的是可用性,不能停产,不能发生生产安全事故。
2.工控系统网络通讯协议不同,大量的工控系统采用私有协议。
3.系统运行环境不同,工控系统运行环境相对落后,对系统稳定性要求高。
4.工控系统安全不是按照网络安全顺序排序,而是可用性最重要,完整性和机密性在后,故相对于传统IT系统的优先级由机密性>完整性>可用性来说,工控系统安全恰恰相反,工控系统优先级为可用性>完整性>机密性。
二、从防病毒软件来说:
1.工控网络通常不允许连接互联网,不具备及时更新病毒库的条件。
2.工业控制系统通常不允许在生产运行期间进行系统升级。
3.病毒误杀在工业控制系统中可能产生致命的后果,所以导致现在大量工作站处于无防护状态。
三、从传统防护设备来说(如IDS/IPS:):
1.工业控制系统通常不允许在运行期间进行系统升级。
2.工控网络通常不允许连接互联网,不具备及时更新攻击库的条件。
3.IDS的高误报率一直是制约它广泛应用的主要因素。
4.IPS为了降低误报,很大程度上是以牺牲检出率为代价。
四、工控安全当下趋势
工业系统、工业网络大多以“物理隔离”为核心安全手段随着工控安全行业的蓬勃发展,随着人工智能、大数据、云计算等新一代信息技术的迅速发展,新技术的应用使得原来封闭的工业控制系统网络越来开放,尤其是“两化融合”的深入以及“工业4.0”、“中国制造2025”等战略的推进,关键基础设施逐渐开始采用以太网、通用协议、无线设备、远程配置等。在互联互通、纵向集成等新的生产模式下,关键基础设施正逐渐暴露于互联网中,工控系统下的安全问题所包含的软件隐患、网络边界隐患、环境和硬件隐患等问题,以及工控系统的网络安全协议问题,如操作系统的落后、补丁的更新不及时、缓冲区溢出问题、拒绝服务漏洞、关键设备没有冗余备份,不安全的远程访问ICS组件等问题带来的安全隐患问题。工控系统漏洞发现数量与日俱增,为网络攻击以及病毒的滋生与传播创造了适宜环境,如以勒索软件为代表的新型恶意软件不断出现,对工业系统安全运营构成威胁。针对工业领域的网络攻击呈组织化、递增化发展,且攻击方式呈现多样性。
0X02 工控蜜罐CONPOT ICS/SCADA搭建
1、Conpot介绍
为了更好地学习工控相关知识,我们使用了Conpot进行搭建,Conpot是Glastopf下一个开源的ICS/SCADA蜜罐系统,工具可以实现ModBus SNMP等PLC的外部子站服务的模拟仿真。Conpot是一个部署在服务端的低交互ICS蜜罐,能够快速地部署、修改和拓展。开发者通过提供一系列的通用工控协议,使得我们能够非常快速地在我们的系统上构建一套复杂的工控基础设施用于欺骗未知的攻击者。Conpot一共支持bacnet、enip、guardian_ast、ipmi、kamstrup、misc、modbus、s7comm和snmp等10个协议。
2、蜜罐搭建方法
注意:使用docker安装后的docker不是直接在conpot目录下,而应该在/home/conpot/.local/bin下。
三种安装方式:
3、搭建过程
这里我使用了从源代码构建并使用docker-compose进行蜜罐搭建:(1)git clone
(2)cd conpot/docker 后执行docker-compose build
(3)docker-compose up
(4)访问
0X03工控系统漏洞利用框架:
1、框架介绍:
工控ISF(Industrial exploit Framework)是一个基于Python的工控系统漏洞利用框架,整体类似于metasploit框架,我们使用该框架配合以上蜜罐环境进行演示。
工控协议客户端
漏洞利用模块
扫描模块
ICS 协议模块 (使用Scapy编写)
这些协议模块能够与其他Fuzz框架进行结合,具体Fuzz模糊测试相关内容,可以参考团队专栏小伙伴文章《基于Peach的Modbus协议模糊测试》。
2、漏洞利用框架搭建
1)Python所依赖环境
在个人安装过程中,python-nmap,gnureadline使用pip安装未成功,单独下载相关依赖包进行安装
安装方式:
1)git clone https://github.com/dark-lbp/isf/
2)cd isf
3)python isf.py 启动
安装完成后,使用python isf.py,启动框架,如下图所示:
由于扫描和攻击操作仅模块不同,所以我们直接使用西门子plc漏洞利用模块进行攻击尝试,首先show options参数可以需要设置的相关参数如下图所示,:
此处设置攻击目标为我们上面搭建的蜜罐靶机,然后执行攻击模块:
查看蜜罐发现收到了来自于攻击模块数据包。
至此,一个简单的模拟攻击流程结束。
0X04工控资产识别及发现
1.网络空间搜索:
以以下案例简单介绍几个网络空间安全搜索引擎,排名不分先后,若想了解更多资料,请至”TideSec安全团队“专栏查看。
FOFA-网络空间安全搜索引擎
网络空间资产检索系统(FOFA)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息。探索全球互联网的资产信息,进行资产及漏洞影响范围分析、应用分布统计、应用流行度态势感知等。
例如搜索全球范围内,端口为102协议为S7的网络空间资产port=”102″ && protocol==”s7″
ZoomEye-网络空间搜索引擎
钟馗之眼网络空间搜索引擎是国内安全公司知道创宇开发的网络空间搜索引擎,通过这个搜索引擎开放他们的海量数据库,包括操作系统,Web服务,服务端语言,Web开发框架,Web应用,前端库及第三方组件等等,结合NMAP大规模扫描结果进行整合。
例如搜索全球范围内,端口为102协议为S7的网络空间资产port:102 +app:”Siemens S7 PLC”
Shodan-物联网的搜索引擎
相对于ZoomEye,Shodan更侧重于主机层面,作为一个针对网络设备的搜索引擎,它可以在极短的时间内在全球设备中搜索到你想找的设备信息,此外Shodan是世界上第一个针对Internet连接设备的搜索引擎。
例如搜索全球范围内,端口为102协议为S7的网络空间资产module: s7 port:102″
2.nmap脚本