Nov 5, 2009

深入理解GFW:路由扩散技术

GFW的重要工作方式之一是在网络层的针对IP的封锁。事实上,GFW采用的是一种比传统的访问控制列表(Access Control List,ACL)高效得多的控制访问方式——路由扩散技术。分析这种新的技术之前先看看传统的技术,并介绍几个概念。

访问控制列表(ACL)

ACL可以工作在网络的二层(链路层)或是三层(网络层),以工作在三层的ACL为例,基本原理如下:想在某个路由器上用ACL控制(比如说是切断)对某个IP地址的访问,那么只要把这个IP地址通过配置加入到ACL中,并且针对这个IP地址规定一个控制动作,比如说最简单的丢弃。当有报文经过这个路由器的时候,在转发报文之前首先对ACL进行匹配,若这个报文的目的IP地址存在于ACL中,那么根据之前ACL中针对该IP地址定义的控制动作进行操作,比如丢弃掉这个报文。这样通过ACL就可以切断对于这个IP的访问。ACL同样也可以针对报文的源地址进行控制。如果ACL工作在二层的话,那么ACL控制的对象就从三层的IP地址变成二层的MAC地址。从ACL的工作原理可以看出来,ACL是在正常报文转发的流程中插入了一个匹配ACL的操作,这肯定会影响到报文转发的效率,如果需要控制的IP地址比较多,则ACL列表会更长,匹配ACL的时间也更长,那么报文的转发效率会更低,这对于一些骨干路由器来讲是不可忍受的。

路由协议与路由重分发

而GFW的网络管控方法是利用了OSPF等路由协议的路由重分发redistribution)功能,可以说是“歪用”了这个本来是正常的功能。

Nov 2, 2009

GFW钓鱼计划

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

原理

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

Oct 27, 2009

深入理解GFW:总论

GFW,Great Firewall of China,防火长城,通常把它看作一个国家级的网络审查系统。关于网络审查,人们通常首先会有一番政治性的话要说,不过政治批评这个角度的言论实在是过多,GFW的实体在“GFW”这个这个巨大的外壳之下隐藏了多年,人们只是对着“GFW”这个词空发怒气却并不知道它究竟是什么。实际上GFW除了是一个让网民十分不舒服的系统之外,在技术上它还是一个非常复杂有趣的黑箱,一个通关奖品是网络自由的解谜游戏。接下来一段时间我们便会对GFW进行深入的探索和理解,大家很快就会了解到它的趣味。提示:阅读此“深入理解GFW”系列之前建议读者对TCP/IP协议族、网络安全、反向工程有基本的了解。

Oct 23, 2009