您如何测试新的电子邮件过滤系统?

Zor*_*che 6 security email spam testing

在您的生产网络上安装之前,您使用什么方法来测试或评估潜在的新电子邮件过滤系统?

我对适合具有单个邮件服务器的中小型组织的方法特别感兴趣,而这些组织没有资源来构建其电子邮件系统的副本。

Eva*_*son 1

测试电子邮件过滤产品似乎比表面上听起来要困难得多。当我思考时,我概述了我的想法并将它们分解为特定的问题领域。

送货

测试的第一部分与向过滤系统发送电子邮件的模型相关。过滤系统可能会考虑以下任何一项(可能还有更多我忘记的事情):

  • SMTP 协议的具体细节(发件人是否执行了 HELO、EHLO 以及名称或 IP 等操作)
  • 发送域的 DNS 属性(是否解析、SPF 记录、域密钥记录)
  • 发件人 MX 的可达性(用于反向路径验证)
  • 下发消息的服务器的源IP地址
  • 讯息内容
  • 第三方数据库或“签名”针对上述任何内容给出的“意见”(DNSBL、专有“声誉”数据库等)

如果这些因素中的任何一个与“真实”传递过程中发生的情况不同,则模拟向过滤工具传递消息的情况就不太能代表现实。例如,以不模拟发送服务器的源 IP 地址的方式将捕获的传入电子邮件发送到过滤设备,会妨碍过滤产品对该因素采取行动的能力(通过 DNSBL 等运行它)。同样,将延迟的消息发送到过滤器(假设您有一个“罐装”消息语料库可供测试)会产生错误的行为印象,因为发件人的 DNS 和任何第三方数据库或签名的属性可能已更改邮件最初发送的时间(发件人更改其 SPF 记录以防止误报、第三方服务将发件人“列入黑名单”等)。

我认为,在交付方面,完全模拟现实是不可能的。如果您打算模拟发送服务器的 IP 地址,那么接近目标将相当困难(而且我不知道有任何“现成的”解决方案可以做到这一点......并且从 DNSBL 获得了相当好的结果,我会请注意不要模拟发送服务器的 IP 地址。)最终,您只需尽可能接近即可。

贮存

如果您打算分析结果,则必须将过滤后的电子邮件存储在某处。如果没有某种存储,就没有实际查看结果的好方法。当然,过滤软件会生成统计数据,但如果我能看到过滤后的消息,肯定会提高我的舒适度。

某些过滤产品具有内置存储功能(例如 MailMarshal)。其他产品希望有一个电子邮件系统来传送数据,但没有任何存储功能。为了测试这些产品,并且为了不破坏您的生产电子邮件系统,您必须创建某种辅助电子邮件基础设施来存储测试过滤结果。

如果许可费用是一个问题,您可以使用免费和开源工具来防止产生许可费用。这可能会给测试人员带来学习曲线。

更复杂的“群件”类型的电子邮件系统可能会给模型带来挑战,因为它们依赖于其他服务。Exchange Server 将要求您模拟 Active Directory 基础结构来托管邮箱。其他“群件”类型的电子邮件系统(Notes、Groupwise 等)在创建并行基础设施方面也有其自身相关的难度。

分析

除了模拟交付和存储结果之外,您还需要对过滤的准确性进行人工分析(标记为垃圾邮件、删除、归档到“垃圾邮件”文件夹等)。这可能不言而喻,但人类需要验证过滤结果,因为此练习的全部目的是测试计算机过滤结果的能力。(我知道,这没有说……但我只能听到有人说“但是等等!我们会编写一个脚本来测试准确性……”)

在我看来,过滤分析首先是一个规模问题。对于任何一大群最终用户来说,过滤分析将超出个人或一小群测试人员的能力(或者更有可能的是,他们只是“抽查”并希望得到最好的结果)。此外,测试人员对于什么应该被视为“垃圾邮件”可能有与真正的接收用户不同的想法(他们确实希望收到来自汽车租赁公司的那些愚蠢的促销电子邮件,或“当天的词汇”)。识别明显失败的邮件可能非常容易(“收件箱”中的色情电子邮件、“垃圾电子邮件”文件夹中来自已知客户的邮件等),但肯定存在微妙的潜力。

我不认为 100% 可以替代现实——您只需接近并希望您的测试设置足够接近地反映现实,以便您能够准确评估过滤器的性能。