六、路由器面临有哪些威胁,如何保护路由器的安全
路由器作为互联网上重要的地址信息路由设备,直接暴露于网络之中。攻击路由器会浪费CPU周期,误导信息流量,使网络陷于瘫痪。路由器面临的威胁有:
将路由器作为攻击平台:入侵者利用不安全的路由器作为生成对其他站点扫描或侦察的平台;
拒绝服务:尽管路由器在设计上可以传送大量的数据流,但是它同样不能处理传送给大于它传输能力的流量。入侵者利用这种特性攻击连接到网络上的路由器,而不是直接攻击网络上的系统,从而造成对路由器的拒绝服务攻击;
明文传输配置信息:许多网络管理员未关闭或加密Telnet会话,因此若明文传输的口令被截取,黑客就可以任意配置路由器。
好的路由器本身会采取一个好的安全机制来保护自己,但是仅此一点是远远不够的。保护路由器安全还需要网管员在配置和管理路由器过程中采取相应的安全措施:
(一)限制系统物理访问:限制系统物理访问是确保路由器安全的最有效方法之一,即将控制台和终端会话配置成在较短闲置时间后自动退出系统;避免将调制解调器连接至路由器的辅助端口也很重要。一旦限制了路由器的物理访问,用户一定要确保路由器的安全补丁是最新的。因为漏洞常常是在供应商发行补丁之前被披露,这就使得黑客抢在供应商发行补丁之前利用受影响的系统,这需要引起用户的关注。
(二)加强口令安全:黑客常常利用弱口令或默认口令进行攻击。加长口令、选用30到60天的口令有效期等措施有助于防止这类漏洞。另外,一旦重要的网管员工辞职,用户应该立即更换口令。用户应该启用路由器上的口令加密功能,实施合理的验证控制以便路由器安全地传输数据。
(三)应用身份验证功能:在大多数路由器上,用户可以配置一些加密和认证协议,如远程验证拨入用户服务。验证控制可以将用户的验证请求转发给通常在后端网络上的验证服务器,验证服务器还可以要求用户使用双因素验证,以此加强验证系统。
(四)禁用不必要服务:拥有众多路由服务是件好事,但近来许多安全事件都凸显了禁用不需要本地服务的重要性,如禁止CDP服务;需要注意的是,禁用路由器上的CDP可能会影响路由器的性能。定时对有效操作网络是必不可少的,即使用户确保了部署期间时间同步,经过一段时间后,时钟仍有可能逐渐失去同步。由此,用户可以利用名为网络时间协议(NTP)的服务,对照有效准确的时间源以确保网络上的设备时针同步;不过,确保网络设备时钟同步的最佳方式不是通过路由器,而是在防火墙保护的网络区段放一台NTP服务器,将该服务器配置成仅允许向外面的可信公共时间源提出时间请求。另外,在路由器上,对于SNMP、DHCP以及WEB管理服务等,只有绝对必要的时候才可使用这些服务。
(五)限制逻辑访问:限制逻辑访问主要是借助于合理处置访问控制列表,限制远程终端会话有助于防止黑客获得系统逻辑访问。其中SSH是优先的逻辑访问方法,还可以使用终端访问控制,以限制只能访问可信主机。因此,用户需要给Telnet在路由器上使用的虚拟终端端口添加一份访问列表。
(六)有限使用ICMP消息类型:控制消息协议(ICMP)有助于排除故障,但也为攻击者提供了用来浏览网络设备、确定本地时间戳和网络掩码以及对OS修正版本作出推测的信息。因此,为了防止黑客搜集上述信息,只允许以下类型的ICMP流量进入用户网络:主机无法到达的、端口无法到达的、源抑制的以及超出生存时间(TTL)的。此外,还应禁止ICMP流量以外的所有流量,以防止拒绝服务攻击。
(七)控制流量有限进入网络:为了避免路由器成为DoS攻击目标,用户应该拒绝以下流量进入:没有IP地址的包、采用本地主机地址、广播地址、多播地址以及任何假冒的内部地址的包。虽然用户无法杜绝DoS攻击,但用户可以限制DoS的危害;另外,用户还可以采取增加SYN ACK队列长度、缩短ACK超时等措施来保护路由器免受TCP SYN的攻击。
(八)安全使用SNMP/TELNET:如果用户使用SNMP,那么一定要选择功能强大的共用字符串,最好是使用提供消息加密功能的SNMP V3。如果不通过SNMP管理对设备进行远程配置,用户最好将SNMP设备配置成只读;拒绝对这些设备进行写操作,用户就能防止黑客改动或关闭接口。为进一步确保安全管理,用户可以使用SSH等加密机制,利用SSH与路由器建立加密的远程会话;为了加强保护,用户还应该限制SSH会话协商,只允许会话用于同用户经常使用的几个可信系统进行通信。
七、防范缓冲区溢出攻击
缓冲区溢出(又称堆栈溢出)攻击是最常用的黑客技术之一。这种攻击之所以泛滥,是由于开放源代码程序的本质决定的。Unix本身以及其上的许多应用程序都是用C语言编写的,而C语言不检查缓冲区的边界。在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区,这就称作“缓冲区溢出”。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误;但是,如果输入的数据是经过“黑客”精心设计的,覆盖缓冲区的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。尽管这项攻击的技术要求非常高,而一旦执行这项攻击的程序被设计出来却是非常简单的。
由于缓冲区溢出是一个编程问题,所以他们只能通过修复被破坏的程序代码来解决问题。从“缓冲区溢出攻击”的原理可以看出,要防止此类攻击,我们可以在开放程序时仔细检查溢出情况,不允许数据溢出缓冲区。经常检查操作系统和应用程序提供商的站点,一旦发现补丁程序就马上下载是最好的方法。
八、防范IP欺骗攻击
IP欺骗技术就是伪造某台主机的IP地址的技术。通过IP地址的伪装使得某台主机能够伪装另外的一台主机,而这台主机往往具有某种特权或者被另外的主机所信任。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。
虽然IP欺骗攻击有着相当难度,但我们应该清醒地意识到,这种攻击非常广泛,入侵往往由这里开始。预防这种攻击还是比较容易的,比如删除UNIX中所有的/etc/hosts.equiv、$HOME/.rhosts文件,修改/etc/inetd.conf文件,使得RPC机制无法应用。另外,还可以通过设置防火墙过滤来自外部而信源地址却是内部IP的报文。
九、防范Syn Flood攻击
SYN Food攻击是利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。如果你的SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。此时,服务器已经无法再提供正常的服务了,所以SYN Food攻击是拒绝服务攻击。
对于SYN Flood攻击,目前尚没有很好的监测和防御方法,不过如果系统管理员熟悉攻击方法和系统架构,通过一系列的设定,也能从一定程度上降低被攻击系统的负荷,减轻负面的影响。
对于Windows系统而言,它的SYN攻击保护机制可以这样考虑:正常情况下,OS对TCP连接的一些重要参数有一个常规的设置:SYN Timeout时间、SYN-ACK的重试次数、SYN报文从路由器到系统再到Winsock的延时等等。这个常规设置针对系统优化,可以给用户提供方便快捷的服务;一旦服务器受到攻击,SYN Half link 的数量超过系统中TCP活动Half Connction最大连接数的设置,系统将会认为自己受到了SYN Flood攻击,并将根据攻击的判断情况作出反应:减短SYN Timeout时间、减少SYN-ACK的重试次数、自动对缓冲区中的报文进行延时等等措施,力图将攻击危害减到最低。如果攻击继续,超过了系统允许的最大Half Connection值,系统已经不能提供正常的服务了,为了保证系统不崩溃,可以将任何超出最大Half Connection 值范围的SYN报文随机丢弃,保证系统的稳定性。
十、防范UDP Flood攻击
UDP Flood攻击是导致基于主机的服务拒绝攻击的一种。UDP 是一种无连接的协议,而且它不需要用任何程序建立连接来传输数据。当攻击者随机地向受害系统的端口发送UDP数据包的时候,就可能发生了UDP Flood攻击。当受害系统接收到一个UDP数据包的时候,它会确定目的端口正在等待中的应用程序。当它发现该端口中并不存在正在等待的应用程序,它就会产生一个目的地址无法连接的ICMP数据包发送给该伪造的源地址。如果向受害者计算机端口发送了足够多的UDP数据包的时候,整个系统就会瘫痪。
在网络的关键之处使用防火墙对来源不明的有害数据进行过滤可以有效减轻 UDP Flood攻击。此外,在用户的网络中还应采取如下的措施:
(一)禁用或过滤监控和响应服务。
(二)禁用或过滤其它的 UDP 服务。
(三)如果用户必须提供一些 UDP 服务的外部访问,那么需要使用代理机制来保护那种服务,使它不会被滥用。
(四)对用户的网络进行监控以了解哪些系统在使用这些服务,并对滥用的迹象进行监控。
(五)对于一些小型的服务器,可以直接用防火墙添加规则的方法屏蔽掉。
十一、防范Land攻击
Land攻击发生的条件是攻击者发送具有相同IP源地址、目标地址和TCP端口号的伪造TCP SYN数据包信息流。必须设置好SYN标记。其结果是该计算机系统将试图向自己发送响应信息,而受害系统将会受到干扰并会瘫痪或重启。最近的研究发现Windows XP SP2和 Windows 2003的系统对这种攻击的防范还是非常薄弱的。事实上,Sun 的操作系,BSD 和 Mac对这种攻击的防范都是非常薄弱的,所有这些系统都共享基于 TCP/IP 协议栈的BSD。
服务供应商可以在边缘路由器的进入端口上安装过滤器对所有入内数据包的IP源地址进行检查,这样就可以阻止发生在会聚点后的LAND攻击。如果该源地址的前缀在预先规定的范围之内,则该数据包被转发,否则被丢弃。