新型防火墙技术(下)

来源 :互联网世界 | 被引量 : 0次 | 上传用户:wsdadoudou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  IP层处理
  从一般的概念来说,ARP和ICMP都属于IP层,实际上,ICMP在IP层之上,利用IP层收、发数据包,而ARP/RARP则在IP层之下,它们本身并不使用IP层,而是直接在数据链路层上进行收发。但是ARP和ICMP所提供的功能是为IP服务的。


  (1)ARP
  IP层的处理较复杂,且可做许多安全方面的工作。ARP的功能是进行地址的解析,包括IP地址到MAC地址(ARP)和MAC地址到IP地址(RARP)的解析。在ARP协议上所做的工作主要可达到以下几个目的:
  *防止ARP欺骗(即MAC地址欺骗);
  *有条件地禁止ARP工作;
  *查询主机硬件地址;
  *提供ARP服务;
  *检测ARP报文。
  利用上述几项功能,能确保内部ARP欺骗的无效,查出欺骗的主机并记录,尤其能防止ARP层的拒绝服务。接下来谈谈实现它们的机制。
  主机级被动检测:作为基本的预防措施,它被动地接收来自网络上的ARP报文请求,若ARP报文目标地与目标IP地址是不一致,则认为是一种欺骗,反过来说,若发送者MAC地址与IP地址不一致,也可认为是一种欺骗。
  主机级主动检测:检测ARP欺骗的另一种预防措施是安排主机在预先启动时或随后定期发送对自己IP地址的ARP请求报文。如果能收到ARP响应,则IP软件将向主机用户或管理人员报告检测到的ARP欺骗。用自己的IP地址主动询问ARP能发觉由于粗心大意造成的IP地址配置错误,还能抓住简单使用操作系统故意配错IP地址进行ARP欺骗的攻击者。然而,攻击者仍有可能发动一个更高级的攻击来挫败主动询问检测方法。一个反击主动询问检测方法的简单措施是不响应来自正被盗用IP地址的合法接口的ARP请求,当然,这相当复杂,对一般的计算机用户是不可能的,但不是不可能的。
  在本系统中,我们把子网的MAC地址与IP地址存贮到数据库中,然后,定期向子网内每台主机发送ARP请求报文,若响应且MAC地址与IP地址一致,则无欺骗,否则则认为是欺骗。因为我们可以工作在底层,所以杜绝那种不响应。
  服务器级检测:作为另一种选择,更复杂的预防措施是从响应报文中获得的硬件地址生成一个RARP请求报文,以此来检验ARP响应的真实性。RARP协议的格式与ARP相同,同样也广播发送请求。RARP请求询问这样的问题:“与我提供的硬件地址相关联的IP地址是什么?”RARP依赖于一个或多个维护硬件地址与相应IP地址关系数据库的RARP服务器,这点在上一步已从功能上实现。
  网络级检测:检测ARP欺骗的一个更健壮更快速机制是将网络中的某个接口保持在“PPROMISCUOUS”(混杂、杂乱)模式。混杂接口所在主机上的一个程序可审查网络中发送的每一个包。因此,利用它,我们可以取得网上每一数据包的MAC地址与IP地址,然后与数据库相对照,若发现不一致,则要么是欺骗,要么是用户更改了网卡而没有通知管理员。
  查询主机硬件地址:硬件地址,有时对系统管理员是必要且实用的。如绑定等。利用ARP我们能查出子网内任何一台主机的硬件地址,这一点实现主要是发送ARP请求报文,虽然实现很复杂,但思路较简单。
  有条件地禁止ARP:当有人利用ARP协议进行欺骗和攻击时,最好和最实用的办法是禁止ARP,即不响应。ARP协议攻击主要是造成拒绝服务。攻击者发送大量的ARP请求报文,且报文的IP地址与MAC地址不一致,造成响应主机不得不花很多时间处理这些请求。在Windows9x和WindowNT上,可以轻易地从网上让它“死机”,而Unix(Linux)虽然不死机,但性能急剧下降。从而可见ARP攻击的危险性。若是一个实时性要求很高的网络中(如交通),其危险性绝不能低估。为对付这种攻击,可采取的策略是不响应、不处理。且反过来跟踪、记录攻击的“痕迹”(以上的不响应、不处理是指不把系统资源给它占用。这点可通过设置线程、进程的优先级别做到。如发生大量的ARP报文,从TCP/IP协议设计来看,要么是TCP/IP软件出错,要么是有人在攻击,然后我们把处理线程优先级设置成idle(空闲),也就是最低级来避免受攻击。必要时,可以向攻击者进行拒绝服务的“攻击”,让它停机。)。
  (2)ICMP
  ICMP是为了允许路由器向主机报告投递出错的原因和一些控制而设计的。但事实上,任一台主机都可以向任何其他机器发送ICMP报文,如Ping。ICMP在本系统中的作用主要是:
  *隐藏子网内主机信息:子网主机的信息,从安全的角度来说,不应过多地暴露,在通常的路由器中,要么内部主机“Ping”到外部主机的同时,外部主机也能“Ping”到内部主机;要么二者都禁止。若是前者,又会暴露主机信息,不利于安全;若是后者,又给用户带来不便。利用ICMP协议可以做到能“Ping”到外面,而外面“Ping”不到内部,实现子网的隐藏而又为用户透明。
  *施加一些控制。ICMP虽然有一定的作用,如差错报告,但也有更大的安全隐患。一般来讲,对外部,ICMP应禁止(很多过滤路由器有此项功能)。
  本系统主要采用三种策略:


  *对内部主机的ICMP包,虽然转发,但改写了ICMP包中的源IP地址,使外部不能看到内部的IP地址。
  *外部ICMP请求包一律抛弃
  *对内部有请求时,才动态地接收外部主机的响应,且一些ICMP危胁安全的响应也抛弃,如改变路由的ICMP包。
  另外,还可以借助ICMP来获得一些参数和一些控制,如时钟同步、地址掩码,并可利用ICMP目的地不可达报文“优雅”地通知不受欢迎的主机。
  (3)IP
  IP是通信子网的最高层,它的主要任务是寻址和转发。IP虽然效率较高,但基本上无安全措施。IP层最大的安全问题是IP欺骗,且很多上层的安全隐患源于IP欺骗,如DNS欺骗。
  IP层常用的安全措施是根据源地址、目的地址进行过滤,这一点已在很多路由器中得到应用。
  在本系统的IP层主要完成以下几个功能:
  *IP地址过滤:除了对从外部来的数据包进行过滤外,还可过滤出去的数据包。当从内部来的数据包的目的IP地址不符合规定(如浏览某些暴力、色情、反动站点),该模块将抛弃报文包,或改写它的目的IP地址,重定向到一个管理站点,给其发出警告。
  *IP地址与MAC绑定,防止IP欺骗:针对子网内IP盗用的情况越来越普遍,这不便于管理、记费,还留下了许多安全漏洞,使系统的安全性遭到削弱。如把子网内的IP地址与MAC地址在防火墙上绑定,能确保避免这种情况。
  *为上层提供一种通道。
  
  TCP/UDP协议处理
  TCP/UDP是TCP/IP协议最高层(除应用层外),它们存在如下安全隐患:数据包伪装(TCP/UDP)和SYNFlood攻击,造成拒绝服务(TCP)。
  TCP/UDP数据包是作为IP层数据发出,而IP数据包要在不同的网络中寻址转发,这就不能保证IP的有效性、正确性,因为仅凭一个IP地址验证其合法性是远远不够的,再说在广域中,我们也无法把MAC地址与IP地址绑定。
  为避免上述情况,必须要增加一定的验证措施,TCP报文头部中,有两个元素可以用于验证TCP报文的有效性。一个是序号,另一个是确认号。序号指出发送者的TCP数据第一个字节序号,而确认号是指收方收到的最高字节序号加1,也就是下次希望收到的第一个字节序号。这两个序号基准一般是随机产生的(也有的是有规律的),不易被伪造、猜测。我们利用这二个TCP的特征,设计了一种较有效的过滤手段,对TCP报文的有效性进行确认。
  
  总结
  新型防火墙所采用的部分技术覆盖了传统包过滤防火墙的全部功能,而且在全面对抗IP欺骗、SYNFlood、ICMP、ARP等攻击手段方面具有优势,赋予了包过滤防火墙新的生命力。通过与增强代理服务相融合,再加上智能过滤技术,使得新型防火墙的安全性提升至崭新的高度。
  
其他文献