2004年08月03日

 
  为什么难以跟踪?
  
  Yahoo等网站被黑客利用DDoS技术攻击后,很难跟踪到攻击的来源。为什么?不是每个攻击的数据包都有IP地址显示出数据包的来源吗?
  这是因为入侵者使用了一种叫”伪IP(IP spoofing)”的技术,这也是当前Internet的一个缺陷。让我来解释一下:
  当计算机之间相互通信时,会将信息打成”包”,每一个包中都包含源IP地址和目的IP地址。当这样的数据包在Internet 中传递的时候,首先会遇到最近的一个路由器。通常此路由器是此局域网与Internet的连接处,这种路由器叫边界路由器。(当然,在大公司中的情况可能复杂得多,会由多个局域网构成)。当数据包到达边界路由器后,再由此路由器传递到上一级核心路由器上,这个路由器可能位于主干网上,连接着所有其它的核心路由器。数据包在路由器之间传递,直到目的地址为止。在每次传递时,源IP目的地址通常被路由器忽略,仅仅是保留在数据包中不作处理,路由器只关心数据的目的地址,就好象邮递员只关心收件人地址一样。但因为这样,才产生了现在面临的问题。
  所有的DDoS攻击,都使用伪IP。收到此数据包的第一个边界路由器能够很容易发现这个问题,因为它知道和它连接的网络地址,以便将进来的数据包分发给局域网内的机器,因此它也能发现从它这出去的数据包是不是用了非局域网内的地址。可是,大多数的边界路由器并不进行此项检查。 而一旦装有伪IP的数据包通过了第一个路由器,那么以后,这个谎话永远也不会有人发现了。因此说,每一个边界路由器都对出去的数据包进行IP 地址的效验,防止IP Spoofing是解决DDoS问题最根本的方案。
  让我们从被攻击对象的角度来看看吧,当你发现自己的服务器出现问题的时候,正有成千上万的数据包同时从世界各地的网点向你涌来,不久你会发现你的路由器崩溃了,接着会发现你的服务器已经不堪重负。你想看看到底出了什么事,捕获到其中的一个数据包,打开一看:上面除了把你的IP地址当作目的地址外,还有任意的一个IP地址作为源地址(这个地址也许根本就不存在)你都不知道这个数据包是从哪儿发给你的。用最底层的工具查看一下数据包硬件地址(MAC)吧,在数据包中只有上一级的路由器的硬件地址。
  
  
  怎样发现自己被攻击
  
  怎样确定自己的网站真的遭受到DDoS的攻击呢?通常来说,突然出现大量的数据包,服务器突然超负载运作,性能突然降低,这些都有可能是受攻击的征兆,但是也有可能是网站遇上了正常情况下的使用高峰。检查一下来往的数据包,如果都是正常的服务连接和应答,那么你的网站应该升级扩容,或是提高网络服务器的性能,增加新的设备。但如果出现以下几类情况,那么你就可以断定是遭到了DDoS的攻击。
  1. 网站的数据流量突然超出平常的十几倍甚至上百倍,而且,同时到达网站的数据包分别来自大量不同的网站。
  2. 大量到达的数据包(包括TCP包和UDP包)并不是网站服务连接的一部分,往往指向你机器任意的端口。比如:你的网站是Web服务器,而数据包却直奔你的FTP端口和其它任意的端口,那么你正在被攻击。
  顺便提一句,有很多工具都可以用来分析数据包的结构,如TCPDUMP(数据包头分析工具)是我最常用的。
  
  
  被攻击以后怎么办
  
  如果发现自己的网站正遭受DDoS的攻击,那么应该立即采取以下措施:
  首先是尽可能保护网站的服务器,主要是防火墙以外的服务器,因为它最容易遭到攻击。尽可能关闭不必要的服务,减轻服务器的负担;增加数据包过滤器,限制进出的数据流量。若实在不行,减少服务器可连接的通道数量,牺牲一些性能来保住服务器。如果DDoS的攻击耗尽了你网站的带宽资源的话,实际上已经没有什么事情可做了,认栽吧,你的服务器已经终止服务了。这时你应该加大防火墙的阻塞力度,限制通过防火墙的流量,以保护你防火墙内部的服务器免受伤害。
  要想使你的网站恢复正常工作的话,只有一条路,那就是找到攻击你网站的攻击点机器和控制点机器,让它们停止攻击。记住,这些机器不是元凶,它们只不过是别人手中的武器,它们自己丝毫不知道自己在攻击你,因此在找到这些机器以后,需要和这些机器的管理员合作,才能解决问题,合作是唯一的方法。 怎样才能找到那些攻击的机器呢?攻击所用的数据包使用了伪IP,直接找是不可能的,但每个数据包中都有上一级路由器的物理地址,你能够定位攻击的数据包要通过的上一级路由器。然后通过你的ISP,或通过你的上一级部门,或是网络中心与此路由器所在单位联系,请他们一起合作一步一步住上查,直到定位到进行攻击的机器为止,再与此机器的单位一起合作,查出机器中所带的攻击程序,才能消除对你的攻击。
  可是,对网站进行攻击的机器也许有成千上万台,这样一台一台地找,工作量太大,短时间内无法完成。要尽快恢复被攻击网站的服务,最聪明的办法是先找到一些控制点的机器,因为这些机器控制着下层大量的机器,如果这些机器被你查到,它们再也发不出攻击的信号,那么,攻击点的机器所进行的攻击也不会持续很久,群龙无首,剩下的不过是一些乌合之众罢了。只有这样,才能迅速缓解攻击的强度。
  除此之外,还应注意以下事项:
  1. 很好地记录下每一步分析的过程和结果。
  2. 攻击发生以后,最好先与你的网站供应商和你的上级部门联系,因为他们的规模比你大,有更多分析和解决问题的能力,能更快地发现攻击的源头,至少他们能在更宽的网络管道上过滤数据包,减轻你网站的压力。
  
  
  使自己不要成为帮凶
  如何使自己的机器不成为帮凶呢?只有使你的机器更加安全。从DDoS攻击反映出来的问题来看,自己的主机如果不安全,不仅危害了自己,还危害了别人。
  首先,应该经常修补系统的Bug和漏洞,经常查询最新的安全信息,仔细地规划安全方案,管理好自己的用户。特别是管理好边界路由器的入口和出口,对出口的数据包进行检查,防止伪IP的出现,这是解决DDoS的关键。另外,也要注意不要滥用”直接广播”等耗费资源较大的协议。保持系统的安全是一个长期的过程,也是必不可少的工作。
  
  
  后话
  
  虽然在Yahoo等著名网站遭到攻击的时候,国内很少有站点同时被攻击,但这并不能说明这是我国网络的安全性很好。从发展的角度看,我国的Internet大有市场,不少企业相当有实力,发展速度极快,因此一定要把网络安全放在非常重要的位置上。从DDoS攻击的教训看,Internet是个大家庭,无论谁得了病,其他人都会遭殃,因此,怎样才能保持Internet总体上的安全性,这不仅仅是个技术问题,还可能是个社会问题.面对目前影响巨大的DDoS(分布式拒绝服务攻击)攻击,可以说没有有效的方法防御,但是我们知道,大部分的DDoS都是利用一些假地址做为源地址对服务器发起进攻,而按照TCP/IP本身定义来说,这样的地址不应该出现在互联网中。所以只要我们遵循RFC1918和RFC2827的规定,在每个网络边界的路由器、防火墙上对如上RFC中的地址进行过滤,必然可以在根本上遏制DDoS攻击的蔓延。当然这是个系统工程,它需要网络中所有的网络管理者联合起来,共同完成这项任务,只要有少数人不参与到这个工程当中,就无法真正实现对DDoS的防御。

2004年08月02日

  揭密手机SIM卡

  SIM卡的中文名称可以叫做用户识别卡,其实它就是一个在内部包含有大规模集成电路的卡片,由此就可以看出这块卡片真的是不一般了。在这张卡片当中,存储着数字移动电话用户的个人资料以及其它一些相关的信息,现在的数字电话都是必须要安装SIM卡之后才可以使用,如果不安装的话,那么后果相信也就也不用我多说了。在没有安装SIM卡的情况下,我们仅仅只能拨打像119、112这种紧急电话的号码。

  以目前的情况来看,

  SIM卡能够存储的数据类型主要被分为以下四种:能够存储有关的电话号码,也就是具备电话簿功能;存储手机的固定信息,主要包括国际移动用户识别号(IMSI)以及加密算法等等;有关于网络方面的数据,像移动用户暂时识别码(TMSI)以及区域识别码等等;相关的业务代码,这一点相信也是大家很熟悉的,那就是非常重要的个人识别码(也就使我们平常所说的PIN码),还有就是解开锁定用的解锁码(PUK)等等。

  以上四种类型的数据都是存储在SIM卡当中的,而我们通常也是可以利用这些数据来进行手机的设置,每张SIM卡个人密码(PIN)都是可以由用户设置,利用加密的功能可以实现防止手机被其它人所盗用甚至被窃听,由此看来SIM卡不仅仅可以为我们提供打电话的功能,而且还为我们保护自己的隐私而提供了安全的保障。

  在SIM卡的背面有以五个一排,被排成四排的一组数字,在这组数字最前面的六位数字所代表的是中国的代号。第七位数字则代表的是接入号码,如果是5的话,那么这张SIM卡的电话号码前三位就是135的,而如果是6的话,则代表其前三位数字为136,其它的也都以此类推。第八位数字代表的是该SIM卡的功能位,一般情况下显示的数字为0。第九和第十位数字代表了该SIM卡所处的省份。至于第十一和第十二位数字则代表的是该SIM卡的年号,而第十三位数字则是SIM卡供应商的代码。从第十四位开始至第十九位数字则代表了该SIM卡的用户识别码。最后一个数字是校验位

版本号可拆成5部分

例: S28ZCWF1拆成S38 ZC W F 1
第一部分,机型部分
英文机:
S30 = S300
S3M = S300M
V20 = V200
T10 = T100
N62 = N620
C10 = C100
etc. 
中文机:
S38 = S308
V28 = V208
T18 = T108
N68 = N628
T58 = T508
etc. 
第二部分:地区部分
XX - 西欧
XE - 东欧
ZC - 亚洲 
ZJ - 亚洲 
DC - 未知
AI - 未知(知道的可补上)
第三部分,年份
X = 2004 
W = 2003
V = 2002
U = 2001
第四部分,月份
A = 一月
B = 二月
C = 三月
D = 四月
etc. 
第五部分,当月第几版
A1 = 一月第一版
A2 = 一月第二版