【发布时间】:2016-07-14 09:52:42
【问题描述】:
我使用this MS link 在 PC 上用 C# 组合了一个 TCP 服务器。我保持端口打开并等待各种 PLC 客户端建立连接。 PLC 正在移动自主机器人,因此它们会进出 Wi-Fi 范围。我正在使用此设置从机器人获取运行变量(电池电量百分比等)并将它们显示在 UI 中以供系统管理员监控。
我使用端口转发设置路由器,以便数据从各个客户端到达服务器 PC。我正在使用 Siemens S7-1200 PLC,但我认为它们不支持 PC 等高端安全功能。
所以我的问题是,如果管理员 PC 正在运行持续监控开放端口的 Windows 服务,那么是否存在安全风险?如果存在风险,您能否通过链接或资源来解释和支持以帮助我修补这些漏洞(在 C# 中)?
这对我来说似乎是安全的,因为如果 PC 关闭,端口就会关闭。如果 PC 处于开启状态,则端口是打开的,但会绑定到监视它的应用程序。如果端口收到它认为无效的东西,它只会转储该数据。我对软件和 PC 安全性的了解并不多,但这略有不同,因为它是一台与功能较弱的硬件接口的 PC。
【问题讨论】:
-
开放端口存在风险,如何处理取决于您的应用程序。通常你会听说缓冲区溢出等让人们访问..风险程度还取决于你的机器人可以做什么..例如,如果有人可以上 wifi,并且对流量进行 wireshark 操作,这些机器人可能会关闭机器,你的风险是......你的机器可能会被一个流氓项目不断关闭......或者它可能会使应用程序崩溃,所以没有什么可以关闭它......等等
-
保持端口打开不会造成安全威胁,因为服务器上没有运行可执行代码。您很容易受到流量攻击,即客户端不断在端口上发送数据并阻止其他用户建立连接。
-
@BugFinder 如果您要处理缓冲区溢出并丢弃任何未知消息,那么系统应该不会失败?
-
@tdwolff 我不能保证,因为这在很大程度上取决于可以做什么,以及想要进入的人的决心,但是,你付出的努力越多越好。有些人会告诉你可以通过 ping 入侵(例如).. 我想你实际上不能做那么多.. 但是..
-
@jdweng 即使没有运行可执行代码,我也想防止未经授权访问服务器。另外,有没有办法防止流量攻击?
标签: c# security plc tcpsocket s7-1200