水落石出:垃圾邮件免费转发代理是原凶
顿时可以发现,原来事实如此,这个特殊构造的HTTP连接通过用户的HTTP Proxy直接下达Connect命令连接受害主机的25(SMTP)端口,然后在这个伪HTTP Proxy连接中继续发送SMTP命令,完成验证、发送邮件。代理服务器天真地认为这个连接是通过其代理到一个运行在25端口的远程HTTP服务器上,因此非常尽职地在两端转发响应数据。结果这个发起连接的垃圾邮件发送端通过与代理服务器的80?端口伪HTTP Proxy连接,间接的发送了这封邮件。
如果我们在最终的邮件服务器上看待整个过程,会误以为该金融用户的代理服务器的IP是一个邮件的客户端,正在连接上来发送邮件,而且发送的又正是垃圾邮件,因此该无辜邮件服务器的管理员会投诉代理服务器IP地址所属的ISP,并可能直接封锁来自于这个IP的通讯。
起始连接部分示意图如下:
图5:
这个垃圾邮件发送端A既找到了一个免费的转发代理,又针对目标邮件服务器隐藏了自身的IP地址。通过HTTP Proxy和SMTP协议的转换,达到了很隐蔽的使用效果。可以看得出来这个垃圾邮件发送端的设计者拥有深厚的协议分析背景,深入掌握了HTTP以及HTTP Proxy和SMTP协议。这种技术手段被Vader称为SMTP over HTTP。
对于用户这里呢,这个代理服务软件也有一定的问题,没有预料到会被这样利用,而且也没有对HTTP协议命令做深入的合法性判别。
这个问题到此已经水落石出,用户可以设置代理服务器禁止接受转发到远端的25端口的连接,也可以设置外部用户禁止连接HTTP 80端口的Proxy,只允许内部用户访问。这样都可以很好的临时处理这个问题。那为了更进一步深入杜绝此类问题的产生,可能还需要更换更加的代理软件系统或者向厂商提出这个问题要求从核心上进行修改,或者对代理服务器加入使用验证的要求。
在协议分析人员到场大约1个半小时后,这个问题得到了确切的结果,并且得到了圆满的解决。