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

C# TCP Server-Socket Security with PLC

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

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

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

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

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

None 其中是意外风险,但您需要了解它们并确保正确清理传入流量以拒绝格式错误的请求并以某种方式验证和丢弃不是来自您的机器人的连接期待。

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

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