资源描述
基于策略的反垃圾邮件技术APF广州市大邮信息科技何智强2004-10-18 hzqbbcdamail l前言垃圾邮件泛滥成灾!l2003年及2004年垃圾邮件异常猖狂l垃圾邮件层出不穷l形如用特殊字符分隔单词l将文字保存在图片里lhtml格式等l反垃圾邮件软件依然缺乏l人工智能算法/DNA算法实现依然复杂l目前识别技术无法与人脑相比l基于内容过滤的算法如Bayes对中文的处理能力依然薄弱。l垃圾邮件大量充满着邮件队列!l通信中断!损失大量合作时机!l消耗大量网络资源,年损失几百亿美元!l我们需要廉价、有效的手段遏止Spam!NO SPAM!什么技术可以胜任?本钱低部署易效能好APF can!lAPF原理APF 定义lAPF=Antispam Policy Framework是一种利用综合策略分析SMTP信息,主要用于对付垃圾邮件的一套框架。lAPS=APF Service/System主要以Client/Server模式对外提供APF完整支持的效劳体系,模式类似于RBL/DNS。为什么设计APF?lRBL命中率缺乏,误判,即时性不够lSPF依然是Draft,国内推广困难l现有技术/框架使用部署本钱很高l内容过滤技术仍缺乏,有待改进l分析发现SMTP阶段就可识别UCERBL的缺乏lRBL属于被动还击类技术l99%的RBL都是国外组织维护l中国IP被封杀严重l准确率不够,易误杀l面临IPV6问题 有效 IP 黑 IP 正面信息正面信息 positive 非法非法负面负面信息信息 negative 已知黑IP SPF的缺乏lSPF依然是草案(Draft)l用户对SPF认知极其有限lSPF涉及DNS修改,部署起来工程浩大l国内绝大局部域名一定时期内都无法实施SPFl域名注册/管理商不提供SPF支持反垃圾邮件部署本钱高企业自力开发/实施l技术人员AntiSpam经验丰富l综合利用多种技术l管控整个团队,耗时耗力购置软/硬件部署专用商业软/硬件非常昂贵!使用复杂且定制困难内容过滤技术仍需改进lBayes算法l基于规那么匹配l加权类lDNA遗传算法分析发现SMTP阶段就可识别UCEl垃圾邮件样本分析结果:基于SMTP特征的准确率较内容过滤使用Spam Assassin及自定义的规那么要高。l特征例子l伪造来信人(Sender)l来自Open-relay主机l正文变化多端,但都来自同一个ip地址l某个时段发送大量邮件l信头缺失或不符合RFC统计分析结果(3-10月)UCE的SMTP特征l缺乏必需信头的信件(Header-lacking)l不符合RFC中关于电子邮件规定的信件RFC-ignorantl错误的信件标记信息Header-forgeryl同样内容发送频率Abnormal-rate过高的信件。APF设计宗旨APF在设计过程中遵循了如下原那么:集中/半集中式C/S数据交换结构难度适中的实现技术+良好的构思使用20%的精力去对付80%的Spam尽量使用现成的优秀自由软件方案/技术降低使用难度,提供尽可能高的灵活性APF根本原理(1)l三大局部构成MTAAPF客户端APF效劳端(浅兰色标记l典型的Client/Server结构 外 域 服务器 SMTPD mailbox APF 服务器 smtp 请求 应 答:reject or accept 查询 响应 处理 SMTP 会话信息,判定该外域服务器所发信件是否合法 APF 客户端 l主要运算/处理负载交给APF效劳端l客户端非常简单APF 根本原理(2)lV1.0 APF效劳端l软件流水线l串行工作l任一异常即跳出l缺点:l只获得某个模块的判决结果l不能综合判断 模块 1 模块 2 模块 3 dunno dunno 模块 N dunno other other other Final result 主程序接口 APF 根本原理(2)lV2.0 APF效劳端l改进l模块处理相互独立l处理结果最后汇总l相互结果不影响l优点l可进行加权l用户高度定制结果l便于综合分析 模块 1 模块 2 模块 3 ACT ACT 模块 N ACT MSG MSG MSG End Loop 主程序接口 ACTs+MSGs APF 根本原理(3)lV1.0协议标签名描述(绿色为目前支持)request目前只支持一个值:smtpd_access_policyprotocol_state可能的值:CONNECT,EHLO,HELO,MAIL,RCPT,DATA,VRFY,ETRNprotocol_name可能的值:ESMTP 或 SMTPhelo_nameSMTP 客户端的主机名senderMAIL FROM阶段的来信人地址recipientRCPT TO阶段的收件人地址client_addressSMTP客户端的ip地址client_nameSMTP客户端ip地址反解(PTR)APF 根本原理(3)lV2.0 协议增补了一些新的属性名及策略调整标签名描述Result_type有效值:USR DFT ADV OLDAuth_userSMTP 认证的用户名Auth_methodSMTP认证的方法(plain,cram-md5等)Auth_senderSMTP认证后的sendersize邮件大小l其他变化未来考虑增加诸如信件MD5,更细化的特征传递等module1=fail/ok,reason stringmoduleN=fail/ok,reason string(v2.0结果格式)APF 根本原理(4)l判决结果lV1.0lV2.0action=4xx/5xx reason text link statusbadhelo=DUNNOwhitelist=OKdnsbl=fail,blocked by bl.domain.tld,reason:ip4 addr string.mspf=fail,domain.tld was not designate ip4 addr.fakehelo=fail,reason:fqdn may be forgery for ip4 addr应用APF的典型例子client_addresshelo_namesenderrecipient(APF v1.0)APF的优势l综合本钱低l结构简单l部署简便l能灵活定制l功能强大APF主要策略模块介绍lHostnameldnsbl+lRatestatlMSBL/SPF+lafslFakehelolotherAPF策略模块:hostnamel功能:校验HELO及信头相关主机名是否合法l非法主机名例子rsproxy.myhost.local*abc$?-/!-myhost 最新娱乐情报.请进入SzAvadsuzqpzs%$i95qaw/khs&*I()APF策略模块:dnsbl+l描述:集成了RBL/RBLs及域名黑名单等l功能:实现了对多个不同类型的rbl/rhsbl的综合查询。l目前支持的RBL站点:anti-spam.org (CASA)relays.ordb.orgsbl.spamhaus.orgdsn.rfc-ignorant.orgAPF策略模块:ratestatl描述:连接/发送频率监视及统计l功能:对SMTP会话过程中客户的RCPT或连接频率进行统计及限制,自动封锁超标IP并能自动解封l实现细节:l内存中使用hash表来保存统计信息l对每台APS客户机都保存一个单独的hash表l多进程之间共享数据APF策略模块:MSBL/SPF+l描述:该模块提供了对SPF的前后向兼容支持,用于识别邮件是否经过授权发送l特点:支持标准SPF记录及MSPF记录,并优先采纳标准SPF记录。可以完美地从MSPF过渡到SPFMSPFSPFMSPF介绍l定义:MSPF是一个经过小量修改的SPF实现,MSBL那么是对应的查询列表效劳,保存了没有支持SPF但授权以其域名发送邮件的主机地址的域名信息。l优点:便于向SPF过渡,降低了使用SPF的门槛,对域名管理员要求低,能对SPF实现前后向兼容,本钱低。MSPF原理l关键点关键点:变分布数据为集中数据domain.tldv=spf1 a mx ip4:192.168.234.0/24-allTXTdomain.tld.msbl.damail SPFMSPF如何实现前后向兼容SPF?l本质在SPF未普及前使用MSPF同时推广SPF,并保证优先采信域名的SPF记录l结论:如果某个域名增加了SPF记录,那么MSBL记录里的SPF记录将自动作废 SPF 记录?MSPF 记录?Sender=foo.tld Client=10.1.1.3 Helo=smtp.foo.tld foo.tld TXT v=spf1 xxxxxxx TXT v=spf1 xxxx 下一级别处理 MSBL介绍l定义:MSBL是一个支持MSPF并可供查询记录在案的域名SPF记录列表l特点:除了支持MSPF外,还集成了域名黑名单列表及IP地址黑名单列表RHSBL+RBL,一个列表多种用途。RBLRHSBLSPFThree in ONE!使用MSBLl使用方法l只使用RBL/RHSBL局部:与使用其他RBL/RHSBL无异常:l以postfix为例子l只使用SPF记录局部:l使用APF插件或精简之l用户自行开发补丁smtpd_sender_restrictions=reject_non_fqdn_sender reject_rhsbl_sender msbl.damail reject_unknow_senderAPF策略模块:AFSl描述:AFSAnti Forgery Sender用于识别伪造来信人的邮件,作为MSPF的补充。l功能:通过综合各种有关信息DNS,IP地址,HELO信息,whois信息及PTR,AFS 数据库等判决,对没有MSPF也没有SPF支持的域名有效hzqbbc A/MX 210.21.115.69Cleint_address:69.157.172.209Sender:asd28zkishzqbbc 69.157.172.209 Bell Canada210.21.115.69 CHINA CNCAPF策略模块:fakehelol描述:针对局部垃圾邮件发送效劳器发送假冒的HELO主机名而设计l功能:屏蔽一些伪造的HELO 主机名行为,例如:Q:与国内某些大ISP过去的做法有些什么不同?A:使用不同的算法,判决条件及根据不同,:使用不同的算法,判决条件及根据不同,fakehelo同样也使用类似同样也使用类似AFS的手段及猜测技术,的手段及猜测技术,误伤率更低误伤率更低helo_name=smtp.hzqbbc client_address=152.3.65.2smtp.hzqbbc A 210.21.115.69APF其他策略模块l更深入地分析邮件特征l更智能的判决及自我学习、积累l使用加权的方法l更友好的处理误伤lAPF实现软件APF与配套资源l官方网站l :/apf.org l技术文档l :/apf.org/docs/l支持软件/插件l :/apf.org/addon/lMSPF登陆l :/apf.org/msbl/l支持论坛l :/apf.org/forum/APF插件/补丁l目前提供的支持APF的插件/补丁有:apf-sendmail(milter)apf-qmail(patch)apf-postfix(policy)l除了apf-qmail是补丁外其他都是addon形式APF addon/patch 结构MTA适配层Customize层APF CONNAPF PROCqmai/postfixsendmailAPFServer自定义层可以增加诸如:ip/域名及email地址的黑/白名单,对邮件的高级ACL等功能TCP/UDP连接APF-qmaill关键思路:“功能外移,结果回送l补丁优点:l实现功能外移l绝大多数功能不需改动qmaill便于大量定制 Incoming email Qmail-smtpd smtp 请求 Reject Delay Warn 查询 acl_server.pl(local)OK/DUNNO remote APF Server 250 OK Accept to queue badfromRBL/RHSBLnullenvsender mfcheckRelay-rejectbadfrom-wildcardAPF-qmailAPF-sendmaill原理:使用Milter技术,调用Sendmail:Milterl特点:多线程,高度可定制,纯perl编写Milter APIAPF 客户端APF效劳端APF-postfixl原理:使用postfix内置的check_policy_service,通过插入一层中间处理代码,可方便的实现定制l特点:可以实现连接复用(Multiplex),高度可定制,纯perl语言编写APF插件/补丁的优点l防止了为实现功能往MTA里塞大段代码l可以非常容易实现高级ACLl高度可定制,远非patch/addon可比l便于与其他组件结合例如SAl以qmail为例子:lAPF-qmail可替代10多种qmail补丁l对qmail修改非常少l从不同版本/功能的补丁困境中解放出来!APF的扩展:高级ACLl需求1:某公司需要限制某些用户外发邮件l需求2:某些公司员工不能发送/接收外部邮件l需求3:限制局部人每日发送邮件不超100封APF的扩展:高级ACLl实现框架APF CONN自定义ACLAPF PROCl内插自定义ACLl实现需求1/2/3l更可实现根据时间、来信人、用户名、ip地址等元素进行综合限制的高级ACLMTA适配层lAPF高级话题提升APF/APS单机性能l背景由于APF是集中结构的C/S应用,当大量用户使用时,就需要考虑单机的性能问题。l解决APF/APS设计初就已考虑这些问题,通过如下方法可以很好的解决l大量的使用Memory cachel使用local DNS cachel客户端本地Cache技术l使用UDP协议降低网络开销lMSBL使用专用高效dns效劳器扩充APF的效劳能力l实现方法:DNS轮询分布式APSIP层负载均衡客户端Cache基于DNS轮询msbl.damail A 210.21.117.xxA 61.144.34.xx A 219.137.238.xxA 61.145.114.xx优点:优点:实现本钱低,效果不实现本钱低,效果不错,不需额外支持错,不需额外支持缺点:缺点:如用户设置固定访问如用户设置固定访问ip那么造成负载不均那么造成负载不均衡衡req 1req 2req 3req 4分布式APSWest ChinaSouth ChinaSouth east ChinaEast ChinaNorth China只允许北部IP访问,其他IP那么返回拒绝或提示信息基于IP归属地的大区式访问IP层负载均衡的APSWest ChinaSouth ChinaSouth east ChinaEast ChinaNorth China交换中心DX1交换中心DX3交换中心DX2APF客户端CacheAPFClient请求1请求2请求3本地cache远端APF server客户端Cache:将第一次出现的请求送给APF server,等待结果并保存到本地cache里,下一次出现同样请求时,如果cache依然alive,那么直接从本地cache里提取判决结果,这样大幅度提升了客户端的处理速度。l关于APF的疑问性能问题lQ:APS性能到底怎样?lA:目前APS资源占用非常低,绝大多数操作都是非常轻量级的,因此负载很低。测试数据:100个并发(tcp)负载2.9 1.8 1.0这相当于同时效劳几十个日信件量在20-50万之间的Email效劳器。而如果使用UDP协议负载会更低。lQ:APS响应速度怎么样?lA:一般APF客户端与APF Server端交换的数据平均只有200-300字节,因此扣除网络延迟及DNS操作的耗时,反响速度平均都在100ms以下,还是比较快的。APS运营本钱问题lQ:APS是否免费使用?lA:目前APS中的MSBL/APS-udp/APS-tcp/APS-版本都是免费的lQ:APS运营由谁负责?lA:主要由广州市大邮信息科技负责,欢送合作建立更多的APS效劳器!APS可靠性lQ:APS如果出问题怎办?lA:目前我们使用了多种手段保证了APS可以提供不间断效劳:l多台APS主机,分布在不同物理地点及物理线路上,做到多路冗余l客户端程序在连接APS失败时都返回DUNNO,保证MTA正常接收邮件。l使用DNS轮询也保证了客户端能访问到正常的APS主机lAPF应对公安部4号令如何用APF应对公安部4号令?l实质:实质:要求要求ISP、email效劳供给商、企业及效劳供给商、企业及个人都努力遏止垃圾邮件泛滥,并利个人都努力遏止垃圾邮件泛滥,并利用技术手段尽最大可能减少垃圾邮件用技术手段尽最大可能减少垃圾邮件的侵扰。的侵扰。lHOW TO?如何实现如何实现4号令的要求?利用号令的要求?利用APF能以能以较低本钱满足公安部较低本钱满足公安部4号令的要求!号令的要求!公安部4号令对邮件系统的要求l一具备对发送垃圾电子邮件的特定网络地址、电子邮箱进行屏蔽的功能;l二具备限制来自相同客户端网络地址的并发连接数量超过最大限制值的功能;l三具备限制来自相同客户端网络地址的连接频率超过最大限制值的功能;l四具备限制本地电子邮件用户一次性发送同一电子邮件发送数量的功能;l五具备判别电子邮件虚假路由,对伪造虚假路由的电子邮件限制发送的功能;l六具备关闭电子邮件效劳器匿名转发或采取用户身份认证、电子邮件转发授权控制措施的功能;l七具备对大量群发、连发同样特征的垃圾电子邮件进行拦截的功能,其中特征指电子邮件长度、信头字段、信体符合特定条件。APF应对4号令l哪些功能APF能实现?除了第七条内容过滤外,都可以实现!l如何实现?QmailPostfixSendmailAPF+APS+屏蔽IP/dns及email地址l方法1:qmail:使用badfrom+tcpserver及一些补丁postfix:使用check_sender_access及check_client_access 等+access(5)+hash/pcre等l方法2:使用APF补丁/插件,在用户定制层增加对IP/DNS,email地址的ACL即可。限制并发数量/连接频率l方法1:qmail:修改tcpserver可实现postfix:最新版可局部实现l方法2:使用APF插件/补丁,调用APS中的ratestat可以实现连接频率的统计,配合本地的ip层ACL工具如使用iptables可完全实现。限制一次性发信数量判别虚假路由l方法1:qmail:使用spamcontrol+spf补丁postfix:使用支持spf的smtpd-policy脚本sendmail:使用支持spf的milter缺乏:仍无法处理大量无spf记录的domainl方法2:使用APF插件/补丁,调用APS的mspf/afs等模块,配合MSBL,更智能的识别虚假路由,兼容性更好,误判更低。总结:实现公安部4号令l方法1:l对于三大流行MTA而言,必须综合使用各种补丁/软件才能局部实现4号令的功能。l有些软件只能实现某些功能的局部,如连接频率或并发数量l集成众多补丁/软件本钱高,可靠性低。l方法2:l使用APF/APS可以大幅度降低部署本钱l对于不具备较高研发能力的企业也能实现或接近公安部4号令的要求!谢谢!
展开阅读全文