主动防御:邮件反垃圾技术解析
1. 灰名单技术原理
灰名单技术主要是对当前 SMTP 标准进行细致解读,并添加一个善意的“谎言”,以此让反垃圾工作更轻松。垃圾邮件发送者常利用他人设备发送邮件,他们未经授权安装的软件需足够轻量级,才能在不被察觉的情况下运行。而且,他们通常不认为单个邮件有多重要,这就导致典型的垃圾邮件和恶意软件发送软件可能无法正确解析 SMTP 状态码。
Evan Harris 在 2003 年的论文中首次提出可利用这一特性。当被入侵的机器发送垃圾邮件时,发送应用程序往往只尝试投递一次,不会检查结果或返回码。而真正的 SMTP 实现会解析返回码并据此行动,若首次尝试因临时错误失败,邮件服务器会重试。
互联网电子邮件传输的当前标准在 RFC 2821 中定义。该文档指出,邮件发送程序需对新的外发邮件请求立即处理,无法立即传输的邮件必须排队并由发送者定期重试。发送者在一次尝试失败后,必须延迟重试特定目标,重试间隔至少 30 分钟,若 SMTP 客户端能确定未送达原因,采用更复杂多变的策略会更有益。重试会持续到邮件发送成功或发送者放弃,放弃时间一般至少为 4 - 5 天。
简而言之,邮件投递是一个协作的、尽力而为的过程。若接收方表示当前无法接收邮件,发送方有义务稍后重试,给接收服务器解决问题的机会。灰名单技术的巧妙之处在于它是一个方便的善意谎言。当声称有临时本地问题时,就如同说“管理员告诉我不要和陌生人说话”。行为良好的合法发件人会稍后再次尝试,而垃圾邮件发送者则不愿等待重试,因为这会增加他们的投递成本。这就是灰名单技术仍然有效的本质原因,而且由于它严格遵循标准,误判情况非常罕见。
OpenBSD 的 spamd 在 2004 年