Nov 2, 2009

GFW钓鱼计划

社会工程从来都是在安全领域最有趣味的话题。钓鱼(phishing)是社会工程的一种。最近韩寒童鞋揭露了出现在上海的某种钓鱼小把戏,我们也不妨来讨论一下某种GFW钓鱼小把戏。面对GFW这个黑箱,我们希望对它的内部的行政机制有所了解,这当然是技术性的逆向工程无法解决的问题,所以这里主要讨论社会工程的方法。

原理

对GFW进行黑箱式分析,就会发现一种非常确定的刺激-反应的行为模式。一般来说是这样的过程:1)一个网站处于含有敏感内容的状态;2)在某个时刻GFW感知到这个网站(“先期侦察”)并受到刺激;3)然后通过GFW内部的某种过程;4)最后形成对这个网站的封锁反应。一般只有最后的封锁反应是公开可观测的GFW特征,然而由于GFW的封锁采取伪造的方式进行,我们很难从这种封锁动作中获得信息。而如果我们特制一个网站并作为网站控制者让GFW对它进行感知,并利用GFW自认为置身暗处而不采取防护的漏洞,那么在刺激这个环节就很有可能观测到GFW的真实信息。简而言之GFW你不是特别会封吗?这次我造一个网站让你封,来啊。然后将GFW在这个环节泄漏的信息全部记录下来。这就是钓鱼,有人也把这个叫做蜜罐,在蜜罐里放一些GFW特别喜欢的东西,苍蝇循着香味飞进来就黏住了。根据先验知识我们还可以知道,在对目标进行侦察之后,GFW内部还会有关于反应方式的评估。这个过程虽然是无法观测的,不过当蜜罐收集到的数据量比较充分之后进行分析,就会找到这个过程的某些模式,分离出时间周期、地域、主题偏好等要素,对GFW内部的机制有一个轮廓性的刻画。

方法

在8月份我们就进行了这样一次钓鱼。钓鱼有这么几个要件:诱饵,钩子,鱼,渔。在这里鱼是GFW,渔是我们,诱饵是一个充满了敏感词的网站,钩子是这个网站内置的日志记录器。诱饵的建设是体力活,比较麻烦,行为跟spammer差不多了。首先寻找国外的免费空间和免费域名,然后用一个php+.htaccess/mod_rewrite做一个网页反向代理,代理到某个特别敏感的网站,然后php内置日志记录器将访问时间和访问者的IP地址和HTTP头全部记录下来。网站看起来是一模一样的,差别只在域名,这就建好了。然后到伟大光荣正确的国新办网站net.china.cn举报之,尽情选最高最反动的那档,然后坐等鱼儿上钩、苍蝇入罐。

数据和讨论

等的过程这里读者就不用体验了(高兴的读者可以自行体验)直接给出结果,就是这个表格。这次钓鱼的一个很大失误就是忘记设置robots.txt,让搜索引擎的爬虫造成了大量噪音,给日志分析带来很大困难,这里展示的数据已经把搜索引擎直接产生的噪音去掉了,但是搜索引擎引来的访问者却很难办。

我们来对数据进行一些分析。首先拿到IP要做一下whois,看看究竟who is it。这就有结果了,看whois那栏,一个是公安部的网监,一个是BAOSHAN-POLICE,呵呵,上海的。它们的其他各项header相似性很高,其中奇怪的是Accept-Language是en-us的,其他header也给得很少。难道我们机智的警警察察已经人人都考过英语四级了,用英语版Windows?显然不是,根据先验知识加以推测,这应该就是金盾网的内网出口。根据这一特征,又找到CHINANET-FJ和CHINANET-GD 的两个警警察察。注意到,在31日就有报告说整个co.cc被封,9月1日的那位还能访问,这说明两件事情:1)警警察察枪决罪犯以后要验尸;2)警警察察上网没有墙。

那个UNICOM-TJ的是怎么回事?我们来分析一下这个诱饵是怎么被咬掉的。我们建立的诱饵之一域名是shangwang.co.cc,然而最终被封掉的却是co.cc。我们来观察一下17日凌晨这位来自天津的朋友他的referrer是:http://www.google.cn/search?q=gfw+co.cc+dns&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:zh-CN:official&client=firefox。就是说这位朋友通过在谷歌中文搜索“gfw co.cc dns”这个关键词找到了这个网站,为什么要这样搜索呢?为什么过了几天整个co.cc就被封了呢?这无疑是抓你一个,杀你全家的做法。结合当时的情况,net.ru在这之前被封掉,idv.tw在这之后被封掉,做法都是直接把cctld列为关键词,我们不难这样推测GFW的习惯:看见一个不熟悉的域名,先谷歌一下看你是不是属于大户人家,一搜发现哦原来net.ru和co.cc你们都是些免费的弃儿,就杀你全家,斩草又除根春风吹不生,反正没人知道。不过天津的那位又是谁呢?难不成是坐落在天津的公安部麾下“国家计算机病毒应急处理中心”?天津这位朋友后来居然还会从瑞士走代理来访问,而且我们设置的两个诱饵他都碰了,这确实非常先进了。

未来研究

这只是一次孤立的钓鱼,数据还是不具有普遍性,如果这样的实验成规模地重复,那么GFW的工作周期和口味都能有更清晰的了解。如果利用javascript甚至更侵入性的手段,还可收集到更多信息。另外一个直接的提示就是,网站管理者应该调查APNIC的whois数据库查出属于网监的IP段并“软性屏蔽”之,这样对于避免安全问题可以起到一定效果。一个需要考虑的问题是,如果以后GFW在先期侦察和验尸的时候都注意隐藏信息,调查访问者身份就会增加一些困难,但是如果搜索引擎隔离得足够好还是问题不大的。

结论

我们通过利用GFW在侦察目标时自认为置身暗处而不采取防护的漏洞,进行了一次钓鱼实验并获取了适量数据进行分析,证实了net.china.cn举报平台与GFW在工作流程上的密切关系,并发现了可能来自金盾网的举报验证,以及证实了金盾网使用“防外线”不受GFW影响的传言。我们还分析发现了一种GFW对于小站点的极端封锁策略,以及一种封锁实施后验证封锁的行为方式。不幸的是,这次钓鱼带来一个意想不到的后果就是co.cc全军覆没,对那些采用co.cc做域名的站长们在这里只好抱歉了。我们原来还试图生成一个de bruijn序列来高效证明著名的法轮猜想——“任意其他GFW关键词的长度都大于"falun"”,没想到短短时间就又出现一个长度为5的新秀与老牌关键词falun并驾齐驱,真是出乎意料。

总结这次实验,钓鱼的哲学有两条:一条是钓鱼比的是想象力,感兴趣的童鞋可以观赏Mitnick的The Art of Deception会有更多收获;另外一条是,钓鱼需要耐心,这次钓鱼实验持续近半个月一无所获,“那是极端反动的大妓院啊怎么不快快封掉?!”我们几乎以为失败,鱼最终才上钩,如果没有比鱼更多的耐心是钓不到的。同理推之不难想象,上海的哪个闲得蛋疼人士也可以开着一辆破车去钓鱼,只要把一个对方的“钩子”钓到自己车上,之后想做什么那都好办了。

38 comments:

  1. 同学……啥也不说了,眼泪汪汪的。

    替 co.cc 域上的无辜阵亡 Blogger、GHS、appspot 等烈士们问候一下,下回请自己注册个域名作试验好吧?大家都不容易。

    ReplyDelete
  2. 我觉得要尽快弄出一份详细的IP表……我的虚拟主机是支持IP屏蔽功能的。

    ReplyDelete
  3. 简单的屏蔽GFW的IP地址是不明智的,把敏感的信息针对IP做rewrite输出为内容已被删除,效果会好很多

    ReplyDelete
  4. 用中国的话骂一句, 搞这种东西的就是SB!!!, 你以为资源都是自己的就可以随便乱折腾吗?不要把自己愚蠢的250智商造成的过错都推到GFW身上, 你们这种做法同那些为了试验法律的严谨性而亲自以身试法上街偷个钱包再被抓住没什么区别.为了验证什么封锁流程搞这种东西以为自己水平有多高,最后伤害的都是其他人,还钓鱼呢,你们自己这条鱼就臭透了.

    ReplyDelete
  5. 楼上开始骂街了..

    ReplyDelete
  6. 楼上的们都怪错的人,已经斯德哥尔摩综合症了。
    各种co.cc被封只是迟早的事,五年前dyndns就已经全军覆没了。

    支持最后出一个IP屏蔽列表。lz +U。

    ReplyDelete
  7. 没人能预测到 GFW 因为这个居然会屏蔽 "co.cc" 的, 这真是个意外...

    ReplyDelete
  8. 楼上某乱吠的所谓中国人,别把GFW跟法律扯一块儿,GFW的存在本就是非法的,花老百姓的钱干坑害老百姓的事,比小偷无耻万倍,支持博主,支持所有以各种方式冲击GFW的义士,加油!

    ReplyDelete
  9. 中国人,看吧,网狗们能自由访问任何网站,而我们却为此费尽心力,更荒谬的是,网狗们还是我们出钱养活的,这叫什么事啊!

    ReplyDelete
  10. 费尽心力倒不至于,其实都蛮简单的

    ReplyDelete
  11. :“在网上,没有人知道我是一个网络警察。” *_*

    ReplyDelete
  12. gfw的狗说:在网上,没人知道我是一条狗!

    ReplyDelete
  13. 现在在国外也能注册 .cn 域名了。下次再钓鱼就在国外做一个 .cn 域名的网站更好些。

    ReplyDelete
  14. 俺的co.cc域名啊,就这样光荣了,桑心

    今天总算看到个交代,就当为国捐躯了

    ReplyDelete
  15. 墙内的杯具...

    ReplyDelete
  16. 7年了,才看到这么好的文章

    ReplyDelete

  17. Online Review MarketTeaches You The best Seo,Blogging,Make Money Online,Girl Whatsapp Group Join,Mobile Review,Link Building Tips and Tricks For Free


    100+Hot Girl Whatsapp Group Join Link

    Xiaomi Mi Band 4 Features Price and Specification

    ReplyDelete
  18. Your blog is too much amazing. I have found with ease what I was looking. Moreover, the content quality is awesome. If you're looking for the best Things to do in the world, this list has something for everybody! From adventure to culture, food to history .

    ReplyDelete
  19. She mastered a good number of things, not to mention how it is like to have an awesome teaching spirit to let the rest very easily know precisely selected multifaceted subject areas.

    How To Get Followers On Instagram?
    How to Apply for fresh Indian Passport Online.

    ReplyDelete
  20. Thanks For Sharing A Great Content Thank You So Much For Article
    Filmymaza
    techhelper
    Chichore
    Nia Sharma



    ReplyDelete
  21. Thanks For Sharing A Great Content Thank You So Much For Article
    Android Mod

    ReplyDelete
  22. To activate your chase card visit chase.com/verify card and follow the activation process. You can also make a call on our number to confirm your card.
    chase.com/verifycard

    ReplyDelete
  23. Thank you for making this blog and for sharing useful information. Continue doing your passion and keep on blogging.

    Online School Management Software In India

    ReplyDelete