基于策略的反垃圾邮件技术--APF广州市大邮信息科技何智强2004-10-18hzqbbc@damail.cn前言垃圾邮件泛滥成灾!2003年及2004年垃圾邮件异常猖狂垃圾邮件层出不穷形如用特殊字符分隔单词将文字保存在图片里html格式等反垃圾邮件软件依然不足人工智能算法/DNA算法实现依然复杂目前识别技术无法与人脑相比基于内容过滤的算法(如Bayes)对中文的处理能力依然薄弱。垃圾邮件大量充斥着邮件队列!通信中断!损失大量合作机会!耗费大量网络资源,年损失几百亿美元!我们需要便宜、有效的手段遏止Spam!NOSPAM!什么技术可以胜任?成本低部署易效能好APFcan!APF原理APF定义APF=AntispamPolicyFramework是一种利用综合策略分析SMTP信息,主要用于对付垃圾邮件的一套框架。APS=APFService/System主要以Client/Server模式对外提供APF完整支持的服务体系,模式类似于RBL/DNS。为什么设计APF?RBL命中率不足,误判,即时性不够SPF依然是Draft,国内推广困难现有技术/框架使用部署成本很高内容过滤技术仍不足,有待改进分析发现SMTP阶段就可识别UCERBL的不足RBL属于被动还击类技术99%的RBL都是国外组织维护中国IP被封杀严重准确率不够,易误杀面临IPV6问题有效IP黑IP正面信息positive非法负面信息negative已知黑IPSPF的不足SPF依然是草案(Draft)用户对SPF认知极其有限SPF涉及DNS修改,部署起来工程浩大国内绝大部分域名一定时期内都无法实施SPF域名注册/管理商不提供SPF支持反垃圾邮件部署成本高企业自力开发/实施技术人员AntiSpam经验丰富综合利用多种技术管控整个团队,耗时耗力购买软/硬件部署专用商业软/硬件非常昂贵!使用复杂且定制困难内容过滤技术仍需改进Bayes算法基于规则匹配加权类DNA遗传算法分析发现SMTP阶段就可识别UCE垃圾邮件样本分析结果:基于SMTP特征的准确率较内容过滤(使用SpamAssassin及自定义的规则)要高。特征例子伪造来信人(Sender)来自Open-relay主机正文变化多端,但都来自同一个ip地址某个时段发送大量邮件信头缺失或不符合RFC0.00%50.00%100.00%1000200030005000SMTP特征内容过滤统计分析结果(3-10月)0.00%10.00%20.00%30.00%40.00%50.00%60.00%70.00%MarAprMayJunJulAugSepOct总计badhelobadhostdnsblfakeheloforgeryhamoverateotherUCE的SMTP特征缺乏必需信头的信件(Header-lacking)不符合RFC中关于电子邮件规定的信件(RFC-ignorant)错误的信件标记信息(Header-forgery)同样内容发送频率(Abnormal-rate)过高的信件。APF设计宗旨APF在设计过程中遵循了如下原则:集中/半集中式C/S数据交换结构难度适中的实现技术+良好的构思使用20%的精力去对付80%的Spam尽量使用现成的优秀自由软件方案/技术降低使用难度,提供尽可能高的灵活性APF基本原理(1)三大部分构成MTAAPF客户端APF服务端(浅兰色标记)典型的Client/Server结构外域服务器SMTPDmailboxAPF服务器smtp请求应答:rejectoraccept查询响应处理SMTP会话信息,判定该外域服务器所发信件是否合法APF客户端主要运算/处理负载交给APF服务端客户端非常简单APF基本原理(2)V1.0APF服务端软件流水线串行工作任一异常即跳出缺点:只获得某个模块的判决结果不能综合判断模块1模块2模块3dunnodunno模块NdunnootherotherotherFinalresult主程序接口APF基本原理(2)V2.0APF服务端改进模块处理相互独立处理结果最后汇总相互结果不影响优点可进行加权用户高度定制结果便于综合分析模块1模块2模块3ACTACT模块NACTMSGMSGMSGEndLoop主程序接口ACTs+MSGsAPF基本原理(3)V1.0协议标签名描述(绿色为目前支持)request目前只支持一个值:smtpd_access_policyprotocol_state可能的值:CONNECT,EHLO,HELO,MAIL,RCPT,DATA,VRFY,ETRNprotocol_name可能的值:ESMTP或SMTPhelo_nameSMTP客户端的主机名senderMAILFROM阶段的来信人地址recipientRCPTTO阶段的收件人地址client_addressSMTP客户端的ip地址client_nameSMTP客户端ip地址反解(PTR)APF基本原理(3)V2.0协议增补了一些新的属性名及策略调整标签名描述Result_type有效值:USRDFTADVOLDAuth_userSMTP认证的用户名Auth_methodSMTP认证的方法(plain,cram-md5等)Auth_senderSMTP认证后的sendersize邮件大小其他变化未来考虑增加诸如信件MD5,更细化的特征传递等module1=fail/ok,reasonstringNLmoduleN=fail/ok,reasonstringNLNL(v2.0结果格式)APF基本原理(4)判决结果V1.0V2.0action={4xx/5xx}reasontextlinkstatusbadhelo=DUNNOwhitelist=OKdnsbl=fail,blockedbybl.domain.tld,reason:[ip4addr]string..mspf=fail,{domain.tld}wasnotdesignate[ip4addr]..fakehelo=fail,reason:[fqdn]maybeforgeryfor[ip4addr]……应用APF的典型例子S:logshow:client[10.2.3.5]connected……C:Helo(NoSpam)mx1.damail.cnC:mailfrom:fake@hotmail.comS:250OkC:rcptto:fake@domain.tldS:554Forgerysenderaddress!sendermxdoesnotmatchyouripaddress504(APFv1.0)APF的优势综合成本低结构简单部署简便能灵活定制功能强大APF主要策略模块介绍Hostnamednsbl+RatestatMSBL/SPF+afsFakehelootherAPF策略模块:hostname功能:校验HELO及信头相关主机名是否合法非法主机名例子rsproxy.myhost.local*abc$?-\/!-myhost.com最新娱乐情报.请进入SzAvadsuzqp@zs%$i95qaw/khs&*I()APF策略模块:dnsbl+描述:集成了RBL/RBLs及域名黑名单等功能:实现了对多个不同类型的rbl/rhsbl的综合查询。目前支持的RBL站点:anti-spam.org.cn(CASA)bl.spamcop.netrelays.ordb.orgsbl.spamhaus.orgdsn.rfc-ignorant.orgAPF策略模块:ratestat描述:连接/发送频率监视及统计功能:对SMTP会话过程中客户的RCPT或连接频率进行统计及限制,自动封锁超标IP并能自动解封实现细节:内存中使用hash表来保存统计信息对每台APS客户机都保留一个单独的hash表多进程之间共享数据APF策略模块:MSBL/SPF+描述:该模块提供了对SPF的前后向兼容支持,用于识别邮件是否经过授权发送特点:支持标准SPF记录及MSPF记录,并优先采纳标准SPF记录。可以完美地从MSPF过渡到SPFMSPFSPFMSPF介绍定义:MSPF是一个经过小量修改的SPF实现,MSBL则是对应的查询列表服务,保存了已知没有支持SPF但已知授权以其域名发送邮件的主机地址的域名信息。优点:便于向SPF过渡,降低了使用SPF的门槛,对域名管理员要求低,能对SPF实现前后向兼容,成本低。MSPF原理关键点:变分布数据为集中数据domain.tldv=spf1amxip4:192.168.234.0/24-allTXTdomain.tld.msbl.damail.cnSPFMSPF如何实现前后向兼容SPF?本质在SPF未普及前使用MSPF同时推广SPF,并保证优先采信域名的SPF记录结论:如果某个域名增加了SPF记录,那么MSBL记录里的SPF记录将自动作废SPF记录?MSPF记录?Sender=foo.tldClient=10.1.1.3Helo=smtp.foo.tldfoo.tldTXTv=spf1xxxxxxxfoo.tld.msbl.damail.cnTXTv=spf1xxxx下一级别处理MSBL介绍定义:MSBL是一个支持MSPF并可供查询记录在案的域名SPF记录列表特点:除了支持MSPF外,还集成了域名黑名单列表及IP地址黑名单列表(RHSBL+RBL),一个列表多种用途。RBLRHSBLSPFThreeinONE!使用MSBL使用方法只使用RBL/RHSBL部分:与使用其他RBL/RHSBL无异常:(以postfix为例子)只使用SPF记录部分:使用APF插件或精简之用户自行开发补丁smtpd_sender_restrictions=reject_non_fqdn_senderreject_rhsbl_sendermsbl.damail.cnreject_unknow_senderAPF策略模块:AFS描述:AFS(AntiForgerySender)用于识别伪造来信人的邮件,作为MSPF的补充。功能:通过综合各种有关信息(DNS,IP地址,HELO信息,whois信息及PTR,AFS数据库等)判决,对没有MSPF也没有SPF支持的域名有效hzqbbc.comA/MX210.21.115.69Cleint_address:69.157.172.209Sender:asd28zkis@hzqbbc.com69.157.172.209BellCanada210.21.115.69CHINACNCAPF策略模块:fakehelo描述:针对部分垃圾邮件发送服务器发送假冒的HELO主机名而设计功能:屏蔽一些伪造的HELO主机名行为,例如:Q:与国内某些大ISP过去的做法有些什么不同?A:使用不同的算法,判决条件及根据不同,fakehelo同样也使用类似AFS的手段及猜测技术,误伤率更低helo_name=smtp.hzqbbc.comclient_address=152.3.65.2smtp.hzqbbc.comA210.21.115.69APF其他策略模块更深入地分析邮件特征更智能的判决及自我学习、积累使用加权的方法更友好的处理误伤APF实现软件APF与配套资源官方网站技术文档支持软件/插件