免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8875 | 回复: 14

[Mail] 退信攻击式垃圾邮件 [复制链接]

论坛徽章:
0
发表于 2008-06-18 16:46 |显示全部楼层
最近遇到很多次一个地址,一天收几百封,甚至上千封退信式垃圾邮件的,看了几个邮件好像模式是这样的

1 发垃圾邮件的冒充你的地址发信出去,比如你的地址是 001@abc.com ,设置from地址是001@abc.com一次发出去几十万封垃圾邮件出去。

2 一部分收到这些垃圾邮件的服务器(比如发到002@cde.com)会先收下来,比如有的邮件服务器前面放个杀毒的,垃圾邮件过滤网关之类的,然后他们在内部处理的时候出现错误,比如 to地址不存在,然后这个cde.com的服务器就生成一封退信退还给发信人就是退信发给001@abc.com

3 由于发送邮件服务器不是垃圾邮件发送人,ip地址基本上也是清白的,这时候001@abc.com的服务器会收下这封退信到001@abc.com去。

4 第2步的每台服务器基本上不会发很多退信,很多情况下就是一封退信,但是垃圾邮件发送人发出去的10万封垃圾邮件中,就算有百分之一是第2步这种情况的服务器,就有1000个退信从不同的邮件服务器发给001@abc.com,这些邮件基本上都不是黑名单都会被判断为ham,这样001@abc.com的用户就收到1大堆的垃圾邮件。不过基本比较有规律,主题是 return mail之类,发信人是MAILER-DAEMON@xxx.com,实际上rcpt过程中的发信人from一般是空地址<>。

我尝试过通过主题关键字或发信人关键字过滤,但是有时候001@abc.com发出的正常邮件也会出现退信,也可能是发到了对方服务器后出现问题在打回,和垃圾邮件发送人造成的退信无法区分。

abc.com 域名使用spf之类的认证效果也不明显,因为很多服务器不做spf认证的,不知道大家有没有遇到这样的问题,有什么好办法处理。

论坛徽章:
0
发表于 2008-06-18 17:02 |显示全部楼层
把这种邮件重定向到/dev/null,要如何实现,还尚无思路,要根据实际情况。

论坛徽章:
0
发表于 2008-06-18 17:15 |显示全部楼层

回复 #1 刘五十三 的帖子

你不是得罪了什么人了吧

论坛徽章:
0
发表于 2008-06-19 10:55 |显示全部楼层
这种情况spf是最好的方案,但是目前很多网站的邮件域名还不支持spf,查询不到SPF记录,这就给假冒者可趁之机了,我的方案是先spf查询真实性,如果没有spf记录,就比对IP,如果IP和查询到的A记录明显不是一个网段的,就block掉。这种方法的误判率非常低,实际效果还是不错的。

什么叫明显不是一个网段的? 举例:

abc.com 查询到MX记录,再查询A记录,假设IP是202.90.28.12
如果实际来连接的IP是61.192.93.82 ,这两个IP一比对,非常明显,99.9%的可能性是伪造的。
如果查出来是202.90.27.36,我就认为他不是伪造的,因为有些大型邮件系统的收发邮件都是分布在不同网段的服务器上的,我的判断 原则是前两个数字必须相同,当然是在spf过滤没有记录下再做这一步,用python,perl等写脚本实现,有现成的模块可以用。

论坛徽章:
0
发表于 2008-06-19 10:58 |显示全部楼层
当然,要避免,首先自己的邮件域名要支持SPF,让别人可以根据SPF记录来判定邮件的真假。否则自己的域名被别人冒用了,就难免经常收到这种退信攻击信。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2008-06-19 11:56 |显示全部楼层
1. Reject Sender=<> , 這種情況會把外部所有的退信都給檔了, 但自己信從自己的 Server 退給自己的 User 時, IP 會有一定特徵
劉兄可參考如下 code

  1. if ($ip !~ /$my_network/) {
  2.         if ($sender=~/<>/) {

  3.                 return ('REJECT',"we did not accept the empty address <>") if ($ip !~ /210.17.57.|140.92|140.112/);
  4.         }
  5. #..以上略, my_network 內容即如: qw(127.0.0.1|211.72.21[01]|61.220.48|203.73.24|210.17.9|140.[123][0-9]|192.83.166)
复制代码


另外,我把以前說的再 quote 一下
一般來說業界目前的做法不過兩種, 但是非得把他講的玄的又玄
SPF 是個好方法, 但是實做的太少,我查過全台灣的域名,有 SPF 才不過 1%, 這 1% 並沒有什麼意義!

方法:
1. 在由你發出的信中,加入一個 Tag (Ex: X-Relay-Host: my_server) , 這個 Tag 可以是一個固定值,或是一個 singing
的方法當有退信發生時, MDA/Milter 檢查郵件內容是否含此 Tag , 無則 discard
PS: 退信發生怎判斷 ? Sender, Subject or Header

2. 在發出去時,在 SMTP negotiation 階段, 修改 Mail From 內容,例如原送件人是 abel 則改為 abel+bouncing ,退發生時
也必是 abel+bouncing , 如此則是標準的退信,如果退信發生時無 +bouncing, 那就是退信攻擊的情況

兩種方式無非是收下來檢查有無 Tag 再決定行為, 或是在 SMTP negotiation 直接退

论坛徽章:
0
发表于 2008-06-19 15:36 |显示全部楼层
原帖由 abel 于 2008-6-19 11:56 发表
1. Reject Sender= , 這種情況會把外部所有的退信都給檔了, 但自己信從自己的 Server 退給自己的 User 時, IP 會有一定特徵
劉兄可參考如下 code

if ($ip !~ /$my_network/) {
        if ($sender=~//) { ...



其实我觉得第一种方法很好.在header加tag.

论坛徽章:
0
发表于 2008-06-19 15:39 |显示全部楼层
原帖由 abel 于 2008-6-19 11:56 发表
1. Reject Sender= , 這種情況會把外部所有的退信都給檔了, 但自己信從自己的 Server 退給自己的 User 時, IP 會有一定特徵
劉兄可參考如下 code


自己的信发到对方的服务器在发信过程中被退可以分辨出来,但是如果自己的信发给对方,对方服务器收下了,然后在对方服务器
内部处理的时候出错,比如对方的连接internet的杀毒网关发到真正服务器的时候发现用户的邮箱满了,这时候对方的真实服务器会产生一封退信,这封退信是从对方的服务器ip发出的,和垃圾邮件产生的退信看不出区别来。实际上这样产生的退信和我的文章中第2步产生的退信没有区别。

我这边可以根据信头发信ip之类的方法区分出自己的服务器产生的退信,但是没用,正常用户发给那些地址事先不知道。碰上cde.com的服务器一定要自己先收下来,然后内部处理出错了发送退信给收件人的话,自己也不知道这封信被退了。

我猜想发送垃圾邮件的人会随便取一个实际存在的用户作为发件人,冒充一个不存在的域名会被很多服务器拒绝,自己申请域名还要花钱。现在这种情况好像影响还不大大家不是很重视,看来只有等到这样的问题多了,对spf之类的认证才会重视起来才能解决问题了。现有的情况下解决这问题我觉得很悲观。

论坛徽章:
0
发表于 2008-06-19 15:42 |显示全部楼层
刚回复又看到abel老兄下面还有具体方法

1. 在由你發出的信中,加入一個 Tag (Ex: X-Relay-Host: my_server) , 這個 Tag 可以是一個固定值,或是一個 singing
的方法當有退信發生時, MDA/Milter 檢查郵件內容是否含此 Tag , 無則 discard
PS: 退信發生怎判斷 ? Sender, Subject or Header

2. 在發出去時,在 SMTP negotiation 階段, 修改 Mail From 內容,例如原送件人是 abel 則改為 abel+bouncing ,退發生時
也必是 abel+bouncing , 如此則是標準的退信,如果退信發生時無 +bouncing, 那就是退信攻擊的情況

兩種方式無非是收下來檢查有無 Tag 再決定行為, 或是在 SMTP negotiation 直接退


这个办法看来不错,具体操作在退信中需要对方服务器发信的时候包含原信或原信的邮件头,我研究看看。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2008-06-19 15:49 |显示全部楼层
我自己是用 $sender=~/<>/ 這種方式,理論上會有誤殺退信, 不過實際上我還未看過 (我巳經 run 四年這種方式了)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP