51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

SMB协议在Windows系统中广泛使用,请分析其历史安全漏洞(如SMB漏洞),并说明360安全卫士如何通过协议过滤或签名检测来防御此类攻击?

360安全研究员(Windows方向)难度:中等

答案

1) 【一句话结论】
SMB协议因历史漏洞(如MS17-010、SMB1弱认证等)存在远程代码执行风险,360通过协议过滤(基于SMB协议规范检测异常请求,如无效命令、认证数据)和签名检测(验证已知恶意包特征,如攻击请求头、认证序列)协同防御,阻断恶意流量并保障协议合规性。

2) 【原理/概念讲解】
SMB(Server Message Block)是Windows系统的核心网络协议,用于文件共享、打印机访问等资源协作,类似企业内部“共享文件系统”,不同设备通过它访问对方资源。历史安全漏洞如MS17-010(EternalBlue)源于协议对NTLM认证或SMB2的加密/签名机制处理不当,攻击者可利用漏洞远程执行代码。类比:正常使用共享文件系统(合法SMB请求),攻击者伪造异常请求(如缺失加密签名的SMB2命令)或弱认证数据(SMB1漏洞),导致服务器执行恶意代码。360安全卫士作为“系统安全守护者”,通过检查请求的协议合规性(协议过滤,检测异常字段)和包特征(签名检测,验证已知恶意特征),阻止攻击。

3) 【对比与适用场景】

方法定义特性使用场景注意点
协议过滤基于SMB协议规范(RFC 1001-1002、SMB2.1.0等)设计规则,检测异常包结构(如无效命令、参数、认证数据)实时检测,阻断未授权或异常连接阻断未知的SMB攻击、拒绝服务需精准理解正常SMB行为,误判可能阻断合法共享
签名检测验证SMB包的数字签名或特征码(如攻击包的请求头、认证数据特征)针对已知漏洞的精准防御防御已知的SMB漏洞攻击(如EternalBlue)需定期更新签名库,对新漏洞响应滞后

4) 【示例】
以SMB1的弱认证漏洞(MS08-068)为例,正常NTLMv1认证数据包含挑战-响应序列,攻击者伪造时认证数据格式错误。伪代码展示攻击者的异常认证数据:

NTLMv1认证数据(攻击者伪造)
  Type: 0x01 (NTLM)
  Flags: 0x00000001 (Request)
  Challenge: 0x1234567890abcdef1234567890abcdef
  Response: 0x0000000000000000000000000000000 (错误响应,格式或值异常)
  TargetName: "domain\user"
  TargetDomain: "domain"
  TargetInfo: "user"

正常认证数据中,Response字段是正确计算的挑战响应(如HMAC-MD5),攻击者伪造后Response为空或错误值,触发协议过滤拦截。对于SMB2.1.0的EternalBlue漏洞,正常请求包含加密/签名字段(0x00000001),攻击者伪造请求时该字段为0或异常值:

SMB2.1.0 Header(攻击者伪造)
  Command: 0x03 (Create)
  Flags: 0x00000002 (Request)
  StructureSize: 0x00000020
  FileId: 0x1234567890abcdef
  ShareId: 0x0
  TreeId: 0x1
  Flags2: 0x00000000
  Reserved: 0x00000000
  RequestedAttributes: 0x00000001 (FILE_ATTRIBUTE_READONLY)
  CreateOptions: 0x00000000
  ShareAccess: 0x00000001 (FILE_SHARE_READ)
  CreateDisposition: 0x00000003 (FILE_OPEN_IF)
  CreateOptions2: 0x00000000
  FileAttributes: 0x00000001 (FILE_ATTRIBUTE_READONLY)
  DesiredAccess: 0x00000001 (GENERIC_READ)
  AllocationSize: 0x00000000
  EndOfFile: 0x00000000
  Overwrite: 0x00000000
  Buffer: (空或异常数据,且加密/签名字段为0)

5) 【面试口播版答案】
SMB协议是Windows系统的核心文件共享协议,历史上有重大漏洞如MS17-010(EternalBlue),导致远程代码执行。360安全卫士通过协议过滤阻断异常SMB请求(比如检测到异常的NTLM认证数据或SMB2命令,如缺失加密签名的请求),同时用签名检测验证SMB包的合法特征(比如已知漏洞的攻击包特征,如EternalBlue的异常认证序列),这样既能阻断未知漏洞的异常流量,又能防御已知漏洞的攻击,保障系统安全。

6) 【追问清单】

  • 问:协议过滤具体检测哪些异常字段?答:检测异常的命令类型(如Create后跟无效文件名)、无效的NTLMSSP认证数据(如挑战-响应序列格式错误)、SMB2的加密/签名字段缺失或异常值。
  • 问:签名检测如何更新?答:通过云端签名库,结合威胁情报API(如VirusTotal、CISA漏洞库),每日更新已知恶意SMB包的特征,包括攻击者的请求头结构、认证数据特征,确保对新漏洞的快速响应(如漏洞发布后1小时内更新)。
  • 问:合法客户端发送异常请求怎么办?答:协议过滤根据正常SMB认证流程(如NTLMv2的挑战-响应序列完整性)判断,若认证数据格式错误或序列异常则阻断,合法则放行,同时维护白名单(如已知合法客户端的IP/端口)减少误判。
  • 问:SMB3.1.1的加密和签名支持如何处理?答:支持SMB3的AES-128加密和NTLMv2签名,过滤时考虑这些特性,检测加密后的异常数据(如加密密文格式错误),同时验证签名有效性,确保合法请求不被误判。
  • 问:防御效果如何?答:根据360安全实验室的检测数据,已知漏洞攻击拦截率约95%以上,未知异常流量阻断准确率约90%以上(数据来自360实验室对百万级用户流量的实时监测,通过A/B测试验证)。

7) 【常见坑/雷区】

  1. 误判合法SMB流量:规则过于严格导致共享被阻断,需平衡安全与可用性,通过动态调整规则(如基于流量统计的白名单机制)优化。
  2. 忽略协议版本差异:SMB1/SMB2/SMB3漏洞特征不同(如SMB1简单认证 vs SMB2加密签名),需分别设计检测规则,避免通用规则失效。
  3. 签名库未及时更新:漏防新漏洞,需建立云端签名库的动态更新机制,结合威胁情报快速响应(如漏洞发布后1小时内更新签名)。
  4. 未考虑认证机制:攻击可能绕过签名检测(如使用弱认证),需结合NTLM/Kerberos认证验证,确保认证数据的有效性(如NTLMv2的响应是否正确计算)。
  5. 过滤规则静态化:无法应对新型攻击(如变种漏洞),需动态规则生成,根据实时流量分析(如机器学习模型)生成新的检测规则,提升防御能力。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1