我用.net core 3.1开发了一个服务器app,在window7编译好,直接放置到linux平台运行,用SocketAsyncEventArgs处理网络并发,但是服务器运行了一段时间后,服务器收到一条异常的字节流,
完整的字节流是:
{0,0,0,164,255,83,77,66,114,0,0,0,0,8,1,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,6,0,0,1,0,0,129,0,2,80,67,32,78,69,84,87,79,82,75,32,80,82,79,71,82,65,77,32,49,46,48,0,2,77,73,67,82,79,83,79,70,84,32,78,69,84,87,79,82,75,83,32,49,46,48,51,0,2,77,73,67,82,79,83,79,70,84,32,78,69,84,87,79,82,75,83,32,51,46,48,0,2,76,65,78,77,65,78,49,46,48,0,2,76,77,49,46,50,88,48,48,50,0,2,83,97,109,98,97,0,2,78,84,32,76,65,78,77,65,78,32,49,46,48,0,2,78,84,32,76,77,32,48,46,49,50,0}
我试着用ASCII解析它,结果是:
{\0\0\0??SMBr\0\0\0\0\b\u0001@\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\u0006\0\0\u0001\0\0?\0\u0002PC NETWORK PROGRAM 1.0\0\u0002MICROSOFT NETWORKS 1.03\0\u0002MICROSOFT NETWORKS 3.0\0\u0002LANMAN1.0\0\u0002LM1.2X002\0\u0002Samba\0\u0002NT LANMAN 1.0\0\u0002NT LM 0.12\0}
有大神遇到过这个问题吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
从您提供的字节流和ASCII解析结果来看,这段数据似乎包含了一些网络协议或系统信息的标识符,比如“PC NETWORK PROGRAM 1.0”、“MICROSOFT NETWORKS 1.03”、“LANMAN1.0”、“LM1.2X002”(可能指的是Windows的LAN Manager版本)、“Samba”以及“NT LANMAN 1.0”和“NT LM 0.12”,这些都与文件共享协议或者早期Windows网络认证协议有关。
异常的字节流可能是由以下几种情况导致的:
协议握手错误:您的服务器可能接收到的是某个客户端尝试建立不兼容或旧版网络协议连接的请求。例如,Samba是用于Linux/Unix系统与Windows系统之间进行文件和打印服务共享的软件,而“NT LANMAN”和“NT LM”则涉及Windows早期的网络认证方式。这可能意味着有客户端尝试用旧的或非预期的协议与您的服务器通信。
恶意数据包:也有可能是某种形式的扫描或探测行为,尝试利用已知的协议漏洞或弱点。这种情况下,数据包可能并非来自正常的用户操作,而是网络扫描工具或恶意软件在尝试识别您的服务是否支持特定的、可能存在安全风险的协议。
数据包损坏:在网络传输过程中,数据包可能因为各种原因(如网络拥塞、硬件故障等)而损坏,导致接收方无法正确解析。
针对这种情况,您可以考虑以下几个处理步骤:
日志记录与分析:确保您的服务器应用程序能够详细记录这类异常事件,并包括时间戳、源IP地址等信息,以便进一步分析来源和模式。
协议验证与过滤:在应用层增加对收到的数据包进行协议合规性检查的逻辑,拒绝不符合预期格式或协议版本的数据包,以减少潜在的安全风险。
升级或配置网络栈:根据实际需要,考虑升级您的网络库或调整网络栈配置,以更好地处理或拒绝此类不兼容或可疑的请求。
安全审计:定期进行网络安全审计,确保服务器软件及依赖组件都是最新且安全的,同时关注并修复任何已知的安全漏洞。
如果问题持续存在或影响了服务稳定性,建议深入调查数据包的来源,并考虑咨询专业的网络安全专家或团队。