阿里云API网关日志问题

日志格式


 问题现象

访问日志中的x_forwarded_for字段为空值 "-", 如下图image

 引起原因

  1. 客户端在发求请求的时候, 没有携带sni信息, 导致在TLS协商失败, 断开连接

 sni全称 

  sni全称, service name indication 即服务器名称指示

 为什么会有这种请求

  恶意扫描或攻击行为

  1. 很多扫描器(如 masscan、zmap)或漏洞探测工具会发起不完整的 TLS 请求,故意不带 SNI,以测试服务器响应行为。
  2. 某些攻击者试图绕过基于 SNI 的访问控制或 WAF(Web 应用防火墙)规则。

  3. 也可能是探测是否存在默认证书或错误配置。

  旧版客户端或设备 

  1. 某些老旧设备或嵌入式系统使用的 TLS 库不支持 SNI(如 OpenSSL 0.9.8)。

  2. 特别是在 IoT、工业控制系统或老旧浏览器中可能出现。  

  脚本或程序错误

  1. 某些自定义脚本或程序在建立 TLS 连接时没有正确设置 server_name 参数。

  2. 比如 Python 的 ssl.wrap_socket() 如果不设置 server_hostname,就不会发送 SNI。

  代理或中间设备行为

  1. 某些透明代理、中间网关或负载均衡器可能会转发 TLS 请求但不附带 SNI。

  2. 如果这些设备配置不当,可能导致大量握手失败。

  误配置或测试行为

  1. 内部测试工具或自动化脚本可能故意不发送 SNI 来验证网关行为。

  2. 某些安全团队会用这种方式测试 TLS 配置是否健壮。

posted @ 2025-10-22 11:36  MacoPlus  阅读(7)  评论(0)    收藏  举报