赛迪网 > IT技术 网络安全 > 最新更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

反垃圾邮件防火墙的核心技术分析 (2)

发布时间:2005.04.03 22:06     来源:赛迪网    作者:江河水

垃圾邮件的来历和技术根源
反垃圾邮件技术的解析
反垃圾邮件防火墙和防火墙的关系

反垃圾邮件技术的解析

我们以一款垃圾邮件厂商博威特-梭子鱼反垃圾邮件防火墙所用的防护技术为代表,来分析一下反垃圾邮件防火墙使用了哪些技术。以下是这款反垃圾邮件防火墙使用的防护技术:

1 拒绝服务攻击和安全防护
2 IP阻挡清单
3 速率控制
4 双层病毒扫描
5 用户自定义规则
6 垃圾邮件指纹检查
7 邮件意图分析
8 贝叶斯智能分析
9 基于规则的评分系统
10 解压缩文件的病毒防护


由于速率控制、病毒扫描以及解压缩文件的病毒防护针对病毒的,属于反垃圾邮件的附属功能我们暂不讨论,值得一提的是防火墙的防止DDOS攻击和反垃圾邮件防火墙防止DOS攻击是不一样的。根据博威特技术工程师的介绍:反垃圾邮件防火墙的防止DOS攻击主要是防止往一个邮件地址在一个较短的时间内发送大量的垃圾邮件,从而形成Dos攻击。

而针对垃圾邮件的核心技术有贝叶斯智能分析、垃圾邮件指纹检查、基于规则的评分系统、用户自定义规则,其核心是贝叶斯智能分析、垃圾邮件指纹检查技术。下面我们来逐一分析反垃圾邮件过滤技术:

1 垃圾邮件指纹检查

谈到对垃圾邮件的指纹检查,很多人觉得有些神秘,其实所谓邮件的指纹,就是邮件内容中的一些字符串的组合,又称为快照。就是从类似、但不相同的信息,识别其中已经被确认为垃圾邮件的信息。举例来说:如果您经常受垃圾邮件此地困扰一定对下面的词汇不会陌生:"代理服务"、"招生"、"现金",是不是在你一看到他们就不免联想到垃圾邮件呢?

其实这就是垃圾邮件的指纹,和反病毒技术的特征码识别的思想是共通的。反垃圾邮件防火墙通过识别类似、但不相同的信息,找出其中已经被确认为垃圾邮件的信息,最后完成对垃圾邮件的识别。

当然指纹检查的准确性依赖于垃圾邮件的指纹库,反垃圾邮件防火墙先给邮件中出现的每一个字符赋予一个数值,值得一提的是这个数值的确定是按照特定垃圾的用词规律特点进行分类,再利用统计方法然后再给这封邮件计算出一个综合的数值。也可以根据是否与其他多次收到的邮件相似来判定(多次收到相似的邮件很可能就是垃圾邮件)。

2 贝叶斯智能分析

贝叶斯智能分析的说法在我看来有赶时髦的嫌疑,主要是受上学时人工智能课程的毒害,和对智能字眼满天飞的视觉疲劳,毕竟一个技术如果能和智能挂钩的话,多少显得高深了不少。事实上这个智能分析就是一个统计学定律的应用而已,当然客观的说这个统计学的应用确实让反垃圾邮件聪明了不少。好了闲话说多了浪费大家时间,我们今天不讲贝叶斯定律,直接开始介绍贝叶斯反垃圾邮件算法,通过算法我们可以看出这个智能分析其实是将IP阻挡名单、垃圾邮件指纹检查、统计规律结合起来实现反垃圾邮件的智能分析。

贝叶斯反垃圾邮件算法如下:
1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。
2) 提取邮件主题和邮件体中的独立字串例如 ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。
3) 每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。
4) 计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)
5) 综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:
A事件----邮件为垃圾邮件;
t1,t2 …….tn代表TOKEN串 则P(A|ti)表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。设 P1(ti)=(ti在hashtable_good中的值)
P2(ti)=(ti在hashtable_ bad中的值)
则 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
6) 建立新的哈希表 hashtable_probability存储TOKEN串ti到P(A|ti)的映射

7) 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表 hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。
当新到一封邮件时,按照步骤2)生成TOKEN串。查询hashtable_probability得到该TOKEN 串的键值。
假设由该邮件共得到N个TOKEN串,t1,t2…….tn,hashtable_probability中对应的值为P1,P2,。。。。。。PN,P(A|t1 ,t2, t3……tn)表示在邮件中同时出现多个TOKEN串t1,t2…….tn时,该邮件为垃圾邮件的概率。
由复合概率公式可得P(A|t1 ,t2, t3……tn)=(P1*P2*。。。。PN)/[P1*P2*。。。。。PN+(1-P1)*(1-P2)*。。。(1-PN)]当P(A|t1 ,t2, t3……tn)超过预定阈值时,就可以判断邮件为垃圾邮件。

贝叶斯过滤算法举例

例如:一封含有"法轮功"字样的垃圾邮件 A和 一封含有"法律"字样的非垃圾邮件B 根据邮件A生成hashtable_ bad,该哈希表中的记录为:

法:1次
轮:1次
功:1次
计算得在本表中:
法出现的概率为0.3
轮出现的概率为0.3
功出现的概率为0.3

根据邮件B生成hashtable_good,该哈希表中的记录为:

法:1
律:1
计算得在本表中:
法出现的概率为0.5
律出现的概率为0.5
综合考虑两个哈希表,共有四个TOKEN串: 法 轮 功 律 当邮件中出现"法"时,该邮件为垃圾邮件的概率为:

P=0.3/(0.3+0.5)=0.375
出现"轮"时:
P=0.3/(0.3+0)=1
出现"功"时:
P=0.3/(0.3+0)=1
出现"律"时
P=0/(0+0.5)=0;
由此可得第三个哈希表:hashtable_probability 其数据为:

法:0.375
轮:1
功:1
律:0
当新到一封含有"功律"的邮件时,我们可得到两个TOKEN串,功 律 查询哈希表hashtable_probability可得

P(垃圾邮件| 功)=1
P (垃圾邮件|律)=0
此时该邮件为垃圾邮件的可能性为:

P=(0*1)/[0*1+(1-0)*(1-1)]=0
由此可推出该邮件为非垃圾邮件

(注:贝叶斯算法和举例来自反垃圾邮件论坛)

<<上一页 1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 深度包检测技术的演进历程和技术反思 (03-30) · 好网络还要好保镖 (03-29)
· NEC等三十余家日本企业组建反垃圾邮件联盟 (03-16) · Linux防火墙配置基础篇 (03-15)
· 谈防火墙固有的安全与效率的矛盾 (03-09) · 08年安全软件营收55亿美元 VPN防火墙为商机 (03-05)
· Juniper列入Gartner防火墙的领导群厂商 (02-28) · 谈防火墙及防火墙的渗透技术 (02-28)
· 了解黑客攻击模式方能选择正确的防御政策 (02-25) · 东软NetEye防火墙中标中国农业银行总行 (01-31)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网站建设市场重新洗牌 一卡通引领革命潮流
· 北京加快信息化建设 医保一卡通年底前启动
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统