- 论坛徽章:
- 1
|
To abel:
其实我所谓的“各种手段之间的相互绝缘”意思就是说么一种反垃圾逻辑都是独立的,举个例子来说,有一种垃圾邮件特征比较明显,
Message-ID: <674a01c763d2$15add154$a4a52c16@etang.com>
From: HGHLife <bglenna@etang.com>
To: lucindax@citiz.net
Subject: Decrease fat reserves
Date: Sun, 11 Mar 2007 14:40:31 +0300
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0000_0E1EF4BF.B3F3987D"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express V6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
这个MIME head中的所谓的boudary string看上去好像是符合MS Outlook Express生成的
邮件特征的,但实际上真正的MS OE是不可能产生第二段的"_0000_"的,一般都是类似于
"_0034_"的,当然还会有其它的一些特征啦,我们一般会将这种特征识别逻辑 coding在
一个plugin之中,不同的plugin之间是没有任何联系,这样的话source code就能够按照
plugin来进行classify了,就像你说的很好地maintain了。以后假如这种类型的spam消失
的话,那么我们就将这个 plugin作废,就像你所说的追着spam跑
不同的X-Mailer特征都不一样的,我们能做到的就是尽量寻找那些数量比较庞大的spam的特
征,一般不会去对特定的MUA的做限制的,因为指不定哪天这种MUA就变更了。所以你说的
office 2007, vista的windows mail确实对我们是很大的挑战,不过没关系,船到桥头自然
直,方法是人想出来的,不是吗?
苦呀~我本來打了好多要回給您,可沒想到 NB 竟然給我當機 =-=
確實,我並沒有實作 Modules/Plugin ,不過這種東西您看過的程式裏,應該可以注意到,
多數的東西我是從第一層開始 'if' 的,前後的東西都儘量不寫在一個大的 if 中, 絕緣
問題我在寫時有想過,只是沒有想到要實現他,畢竟它並不是產品,只是一套自己使用的東
西而以. 不過我這輩子還沒有做過什麼產品,工作七年幾乎就都是在現在的公司
不過人不能停滯不前,努力接收新知還是要的
不同的X-Mailer特征都不一样的,我们能做到的就是尽量寻找那些数量比较庞大的spam的特
征,一般不会去对特定的MUA的做限制的,因为指不定哪天这种MUA就变更了。所以你说的
office 2007, vista的windows mail确实对我们是很大的挑战,不过没关系,船到桥头自然
直,方法是人想出来的,不是吗?
這裏有些看法不錯,不過就我的經驗來看,X-Mailer 不見得會出現,也可能以其他的 header
name 出現 (Ex: User-Agent), X-Mailer 可能不是 MUA, 而是 PHP 或 Perl 的一些模組
等等, 而像不同的 openwebmail 版本其 boundary 算法可能都不同,如果這個東西能整理
出來,那巳經是不小的工作了,所以只能針對大量使用的 MUA 來進行判讀,可是像 yahoo 或
gmail 的判讀可能又不太相同,看來來似乎是一件不小的工程 (我沒做過,所以不知工程大小
及實作性程度,但對 OE 應該是有一定的效果的)
不過這裏一個個人的疑問,對於 folding/unfolding , 像一般您們做 antispam 是如何看待的 ?
是像 DKIM 那樣做 relaxed 或 simple 類的判斷 ? 或是根本不理會? (我想後者的可能性居多)
(這問題就像我前面提過的變形,內容可以有很大的變化,但是還是表示同一件事情),
以一般 SA 觀念 DCC 算法早晚恐怕也會有問題,因為它是假設在大量發送相同的內容,如果內容
有變異,那 checksum 結果也會不一樣,我知道市面上有些 antispam 產品是有類似的做法
做运营商级别的海量企业邮箱反垃圾最让人头大的就是misjudge,所以我们一般奉行的是无罪推
断,也就是说只有找到足够的特征,才能将这封邮件block掉,否则用户就要抱怨“怎么回事
情,XXX给我发邮件怎么发不进来”所以一般SA的score机制我们不大采用,不过也不绝对
我認為 block 有來種實現方法,一種是 rejection (r), 一種是 quarantine (q), 一般用到 SA
(或其他評分方案)都是後者 (q),行為識別則通常是 (r), 後者消耗資源這是公認的,理論上想要
愈準確就會消耗更多資源(Ex: MUA + X-Mailer + boundary 識別),最後的取捨都要經過微調
通常郵件量愈大的,通常就愈不考慮內容,不是不想做,而是副作用太多
有一种方法其实很好的,我们也是借鉴了某个非常知名的anti-spam provider的做法,好像
现在采用这种方法的gateway不是很多,具体的做法就是当gateway获得的spam特征不充分的
时候(例如: helo myxp),在\r\n.\r\n之后,gateway返回4xx system is busy now,
please try later ...之类的消息,让remote side进行retry,差劲一点的spam program是
不会进行retry的,其实就是grey-list的一种扩展啦,不过实际情况下效果却是蛮好的,对
于降低misjudgement是很有好处的。
我認為 grey-list (under mis-configuration) 是會有問題的, 以像我們單位而言,信件有
很大的比例是客戶服務,這個 grey delay 的動作會影響問題處理速度 (客戶端感覺),尤其在
mis-configuration 時,信件會根本無法傳送,暫時沒有退信,會讓 user 誤以為自己的信件巳
經寄出了,而若此時 grey-list MTA 有做 rate control, 那這種 delay 情況恐怕會更嚴重,
即使 admin 巳經 fixed 問題了,但信件恐怕仍無法及時投送完成.當然,對於 spam-ware 的東
西,這個是有用的,因其無 retry 機制
spam的locality是比较强的,比virus还要强。所以美国的好的产品到中国来就不一定有效了,
相信台湾的产品到大陆来也是差不多的,不过感觉上现在的zombie可能威胁更大,所以很多大的
系统动不动就down掉了,为了这个我们还专门开发了一个mail system专用的watch dog,监控后
端邮件系统的队列,我发现你的这几个chart很漂亮的说,是你自己画的吗?(Y)我们也有类似的
东东,不过你知道这种运行商级别的海量系统一般会要求看real state的,所以我们用widget做
了个实时的东东。以后多多交流哦
非常同意,
我們的 Server 做很多監控 (也是我一個人寫,人少就是這樣),就 mail 來說就不下十來項,畫圖
只是讓自己好看,重點在於情況的判斷準備度,誤報會讓人麻木,就像狼來了一樣,所以我在這方
面花了不少心力(不過這也不算我的主力業務),基本上可以控制誤報在 5% 以下,某些類別的警
告誤報率更可以低於 1%,圖我是用 rrdtool 畫的, 一般來說, threshold check & alert 是最難的
而看 mail 的連接除了用一些貴貴的設備外,其實 cisco 的 netflow 就很好用了,若搭配 GeoIP,
可以做的非常 fancy (我還沒做,主要是沒有時間).
與ctuyoung兄討論確實不錯,就事論事,觀點特別 |
|