2024年网安最新西门子S7系列PLC安全防护研究_西门子plc防导电防护(1)

全球近三分之一的组织机构将工业网络连接到公共网络中。为了工作便利,工作人员通常可远程操作,包括远程管理,软件更新,甚至浏览网页和接收来自OT网络的电子邮件。
IT/OT日益融合,虽然带来的好处也越来越多,促进了对当前控制系统更为有效的运营和管理二者之间的融合可延长系统的正常运行时间,增强性能,而且还能提高质量和生产力。但是ICS/OT网络在安全监控方面存在明显的不足之处,并没有积极的收集和监控流量,对预警和告警数据也没有足够的分析。

S7协议介绍:
西门子PLC使用私有协议进行通信,它是利用TPKT和ISO8073的二进制协议。 西门子的PLC通信端口均为102端口,。 西门子PLC协议有3个版本,S7Comm协议,早期S7CommPlus协议和最新的S7CommPlus协议。
S7-200、S7-300、S7-400系列的PLC采用早期的西门子私有协议S7comm进行通信。该协议不像S7Comm-Plus那样具有加密功能,不涉及任何反重放攻击机制,可以被攻击者轻易利用。具体协议结构如下图所示:
在这里插入图片描述
S7-1200v3.0之间通信采用早期S7Comm-Plus协议,S7-1200v4.0、S7-1500系列采用了最新的S7Comm-Plus协议,最新的S7Comm-Plus协议引入了会话ID来防止重放攻击。具体协议结构和上图一样,只有第七层为S7comm-plus。

S7编程软件:
S7200和S7200-smart step7比较独特,采用的编程软件为step7 MicroWIN和 step 7 Micro win smart。
S7300/400/1200/1500普遍使用的是博途(Tia Portal)。Tia Portal是西门子重新定义自动化的概念、平台以及标准的自动化工具平台。最新版本为V15,增强了S7系列PLC和WinAC控制器的支持,提升了软件的启动速度和容性。

S7攻击利用:
重放攻击:

重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
工控系统中的重放攻击,就是把上位机软件编译好的程序重新下装到PLC机器当中。而我们需要抓包截取的就是从开始连接到结束连接这一段的数据包,进行重新发送。
重放攻击网上大家讲的比较详细和全面,这里我就不再累述了,例如这位工控大佬的https://www.freebuf.com/articles/ics-articles/220239.html,我主要讲一下工控系列的中间人攻击。
中间人攻击:
中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是一种间接的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”
中间人攻击中有两个受害者,中间人对他俩实施攻击,攻击结果是A和B的传输内容,它们都需要经过中间人,但是两人(A和B)却不知道。聊天内容被中间人截获,如果截获信息有用户名和密码,危害就会更大,而且中间人攻击不会损害A和B的通讯。
在这里插入图片描述
工控中间人攻击前提是攻击者与PLC设备在同一网段内,第一步也是最重要的一步,进行ARP地址欺骗来进行流量劫持,正常情况下,PLC设备之间是互相不通信的,劫持的流量大概率是PLC和上位机之间的或者是触摸屏与PLC之间的。然后通过截取的流量进行一系列的分析,例如寻找PLC,因为西门子的PLC通信端口均为102端口;再比如寻找到之后通过获取cpu信息的数据包对PLC的类型进行判断;判断完版本之后,可以继续模拟加载payload,比如停止PLC工作,读取内存等。近期CNVD上也披露了关于S7系列的中间人攻击,如下图所示:
在这里插入图片描述
关于S7的中间人攻击的预防,大家主要关注下方的企业管理层面。在接下来的几篇文章,我将会详细介绍中间攻击人的流量劫持,劫持后的流量分析与PLC设备的探测,以及如何检测和防御中间人攻击,敬请期待哈。

S7安全防护:
用户使用层面:

1)利用EEPROM的反写入功能,及一些需要设置的内存保持功能,作用是可以在断电期间保持数据存储等安全功能。
在这里插入图片描述
2)无论是在博途软件,还是在step7软件上,硬件组态界面的CPU模块均有protection选项卡可以选择保护级别来设置密码进行口令保护(取消弱口令),这也是用户最常用的方法。设置如下图所示:
在这里插入图片描述
3)利用系统的时钟功能,很多人会问,这个功能有什么用和安全有啥关系。比如希望用到系统存储字中的第一个扫描周期来复位参数;希望有一个频率固定的时钟脉冲来进行通信或控制警报灯;希望某段程序仅在PLC启动后执行一次。这些操作都能够通过设置系统时钟来实现,并且还能杜绝PLC被他人利用的安全威胁。设置如下图所示:
在这里插入图片描述
4)利用系统提供的累时器功能,和系统的时钟功能类似,不加累述。

企业管理层面:

  1. 在内网中,只有可信任的设备,才能接入工控系统网络,并且需要进行身份认证,确保登陆者也是可信任者,规定使用加密U盘等。这是防御中间人攻击的重要手段之一。
  2. 工业控制系统产品漏洞,因软、硬件更新、升级、换代困难,漏洞不能得到及时修补,所以企业要定期对工控系统进行漏洞扫描,即时复现与修补漏洞。
    3)内部使用专业的工控网络数据采集与监控系统(SCADA),能即时检测出异常流量,如两个ip之间无通信,突然之间有S7通信可进行报警,甚至可以对异常突兀的function code功能码进行识别检测。
    4)若工控系统部分组件不可避免的需要与公网通信,做好网络隔离,部署工业控制网络监测与审计设备。
  3. 对需要远程访问的工控系统增加白名单的控制策略,仅开放需要的端口地址,如关闭Telnet等不必要端口。
    6)建立灾备中心,提供重要数据的本地数据备份与恢复功能,定期备份重要业务信息、系统数据及软件系统等。

开发层面:
1)建议采用多重背景的数据传递方式,多重背景即创建一个更高级别的功能块,有利于节省DB块的定义、分配和管理,简化了项目结构,提高项目安全性
在这里插入图片描述
2) 使用间接寻址,只有当程序执行时,用于读或写数值的地址才得以确定,能提高其安全性。
在这里插入图片描述
3)使用面板类型的人机界面来代替单一的按钮指示灯。从S7-1200开始大规模使用HMI触摸屏也是能够更好的提高安全性。Step7 Basic 针对于西门子最新的S7-1200系列的编程软件,其中可以包含S7-1200专用的触摸屏进行组态。
在这里插入图片描述
4)模块和驱动最好都能由PLC通过软件下载,可以降低最终用户维护系统的技术要求和提高安全性

总结
随着工控系统的组态和编程,数据管理和通讯,自动化与驱动产品(包括PLC控制器、HMI人机界面、网络、驱动器等产品)的高度集成,和大家对工控安全的重视程度越来越高,攻击利用的难度也越来越大,甚至趋向多元化。当然就更难以被发现,所以
本文主要是针对目前工控系统的西门子S7系列PLC设备使用情况,结合平时自己的工作经历和前辈们的经验,进行一个安全防护汇总,欢迎大家继续补充安全防护措施。当然其中一部分攻击利用和安全防护建议也对其他类型的工业PLC有用,大家可以酌情使用哈。

如何自学黑客&网络安全

黑客零基础入门学习路线&规划

初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。

8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
img

网络安全工程师企业级学习路线

img
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

img
一些笔者自己买的、其他平台白嫖不到的视频教程。
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值