C# TCP 服务器套接字安全性与 PLC

本文关键字:PLC 安全性 套接字 TCP 服务器 | 更新日期: 2023-09-27 17:56:59

我使用这个MS链接在PC上用C#组装了一个TCP服务器。我保持端口打开并等待各种PLC客户端建立连接。PLC正在移动自主机器人,因此它们进出Wi-Fi范围。我正在使用此设置从机器人获取运行变量(电池百分比等),并在 UI 中显示它们以供系统管理员监控。

我使用端口转发设置路由器,以便数据从各种客户端到达服务器PC。我使用的是西门子 S7-1200 PLC,我不相信它们支持高端安全功能,如 PC。

所以我的问题是,如果管理员PC正在运行持续监视开放端口的Windows服务,那么是否存在安全风险?如果存在风险,您能否解释并提供链接或资源来支持我修补这些漏洞(在 C# 中)?

这对我来说似乎是安全的,因为如果 PC 关闭,端口就会关闭。如果 PC 处于打开状态,则端口将打开,但绑定到监视它的应用程序。如果端口收到它认为无效的内容,它只会转储该数据。我对软件和PC安全不是非常了解,但这略有不同,因为它是单个PC与功能较差的硬件接口。

C# TCP 服务器套接字安全性与 PLC

打开端口会使您暴露给连接到该端口并提供不良信息的任何人,暴露消息解析和套接字处理实现(缓冲区溢出或脚本注入)上的漏洞,或者只是用流量淹没您的应用程序。 最后一个几乎不可能防范,总有人可以在某种程度上DOS你。

这些都不是意外风险,但您需要了解它们,并确保正确清理传入流量以拒绝格式错误的请求,并以某种方式进行身份验证并删除不是来自预期机器人的连接。

如果您确实执行了身份验证步骤,则需要在身份验证之前使用 SSL 或 SSH 之类的方式加密通道。否则,其他人可以监视您的流量,观察身份验证事务,然后复制它。

祝你好运!安全是一个很深的兔子洞,但是一项非常宝贵的技能!