CSDN博客

img coderli

防范网络攻击

发表于2008/9/29 19:38:00  308人阅读

分类: 网络


第二部分:防范网络攻击

一、保护WEB服务器的关键是什么?

   WEB服务器自身脆弱性:Web服务器软件自身存在安全问题,如Web服务器软件缺省安装提供了过多的不必要功能,密码过于简单遭到破解,当服务器管理员使用了不安全协议的软件(如telnet)进行管理时,被监听而导致信息外泄。

   Web应用程序安全性差:主要是指CGI程序和ASP、PHP脚本等等程序的安全性。这些程序大大扩展了Web服务器的功能,但它们往往只重功能而忽视了安全性。

   保护WEB服务的方法:
  
   1、用防火墙保护网站,可以有效地对数据包进行过滤,是网站的第一道防线;

   2、用入侵监测系统监测网络数据包,可以捕捉危险或有恶意的访问动作,并能按指定的规则,以记录、阻断、发警报等等多种方式进行响应,既可以实时阻止入侵行为,又能够记录入侵行为以追查攻击者;

   3、正确配置Web服务器,跟踪并安装服务器软件的最新补丁;

   4、服务器软件只保留必要的功能,关闭不必要的诸如FTP、SMTP等公共服务,修改系统安装时设置的默认口令,使用足够安全的口令;

   5、远程管理服务器使用安全的方法如SSH,避免运行使用明文传输口令的telnet、ftp等程序;

   6、谨慎使用CGI程序和ASP、PHP脚本程序7、使用网络安全检测产品对安全情况进行检测,发现并弥补安全隐患。

二、如何防范CGI脚本漏洞

   CGI(COMMOM GATE INTERFACE)是外部应用程序与WEB服务器交互的一个标准接口,它可以完成客户端与服务器的交互操作。CGI带来了动态的网页服务,CGI脚本是主页安全漏洞的主要来源,这主要是由于CGI程序设计不当,暴露了未经授权的数据。通过构造特殊字符串给CGI程序就可能得到这种权限。

   防范CGI脚本漏洞主要是:

   1、使用最新版本的Web服务器,安装最新的补丁程序,正确配置服务器;

   2、按照帮助文件正确安装CGI程序,删除不必要的安装文件和临时文件;

   3、使用C编写CGI程序时,使用安全的函数;

   4、使用安全有效的验证用户身份的方法;

   5、验证用户的来源,防止用户短时间内过多动作;

   6、推荐过滤“& ; ` ' / ” | * ? ~ < > ^ ( ) [ ] { } $ /n /r /t /0 # ../;

   7、在设计CGI脚本时,其对输入数据的长度有严格限制;

   8、实现功能时制定安全合理的策略,CGI程序还应具有检查异常情况的功能,在检查出陌生数据后CGI应能及时处理这些情况。

三、如何保护FTP服务器

  (一)禁止匿名登录。允许匿名访问有时会导致被利用传送非法文件。取消匿名登录,只允许被预定义的用户帐号登录,配置被定义在FTP主目录的ACL[访问控制列表]来进行访问控制,并使用NTFS许可证。

  (二)设置访问日志。通过访问日志可以准确得到哪些IP地址和用户访问的准确纪录。定期维护日志能估计站点访问量和找出安全威胁和漏洞。

  (三)强化访问控制列表。采用NTFS访问许可,运用ACL[访问控制列表]控制对您的FTP目录的的访问。

  (四)设置站点为不可视。如您只需要用户传送文件到服务器而不是从服务器下载文件,可以考虑配置站点为不可视。这意味着用户被允许从FTP目录写入文件不能读取。这样可以阻止未授权用户访问站点。要配置站点为不可视,应当在“站点”和“主目录”设置访问许可。

  (五)使用磁盘配额。磁盘配额可能有效地限制每个用户所使用的磁盘空间。授予用户对自己上传的文件的完全控制权。使用磁盘配额可以检查用户是否超出了使用空间,能有效地限制站点被攻破所带来的破坏。并且,限制用户能拥有的磁盘空间,站点将不会成为那些寻找空间共享媒体文件的黑客的目标。

  (六)使用访问时间限制。限制用户只能在指定的日期的时间内才能登陆访问站点。如果站点在企业环境中使用,可以限制只有在工作时间才能访问服务请。下班以后就禁止登录以保障安全。

  (七)基于IP策略的访问控制。FTP可以限制具体IP地址的访问。限制只能由特定的个体才能访问站点,可以减少未批准者登录访问的危险。

  (八)审计登陆事件。审计帐户登录事件,能在安全日志查看器里查看企图登陆站点的(成功/失败)事件,以警觉一名恶意用户设法入侵的可疑活动。它也作为历史记录用于站点入侵检测。

  (九)使用安全密码策略。复杂的密码是采用终端用户认证的安全方式。这是巩固站点安全的一个关键部分,FTP用户帐号选择密码时必须遵守以下规则:不包含用户帐号名字的全部或部份;必须是至少6个字符长;包含英文大、小写字符、数字和特殊字符等多个类别。

  (十)限制登录次数。Windows系统安全策略允许管理员当帐户在规定的次数内未登入的情况下将帐户锁定。

四、邮件服务器易受哪些攻击,如何保护邮件服务器

   目前互连网上的邮件服务器所受攻击有两类:一类就是中继利用(Relay),即远程机器通过你的服务器来发信,这样任何人都可以利用你的服务器向任何地址发邮件,久而久之,你的机器不仅成为发送垃圾邮件的帮凶,也会使你的网络流量激增,同时将可能被网上的很多邮件服务器所拒绝;另一类攻击称为垃圾邮件(Spam),即人们常说的邮件炸弹,是指在很短时间内服务器可能接收大量无用的邮件,从而使邮件服务器不堪负载而出现瘫痪。这两种攻击都可能使邮件服务器无法正常工作。

   防止邮件服务器被攻击的方法有三种:

   第一种是升级高版本的服务器软件,利用软件自身的安全功能限制垃圾邮件的大量转发或订阅反垃圾邮件服务;
  
   第二种就是采用第三方软件利用诸如动态中继验证控制功能来实现,从而确保接受邮件的正确性;

   第三种是配置病毒网关、病毒过滤等功能,从网络的入口开始,阻止来自互联网的邮件病毒入侵,同时还要防止它们在进出公司内部网络时的传播。

五、DNS服务器易受哪些攻击,如何保护DNS服务器

   由于DNS服务使用UDP协议,因此对于攻击者而言,更容易把攻击焦点集中在DNS服务上。DNS服务面临的威胁包括:

   缓存区中毒:这种攻击是指黑客在主DNS服务器向辅DNS服务器进行区域传输时插入错误的DNS信息,一旦成功,攻击者便可使辅DNS服务器提供错误的名称到IP地址的解析信息;如果使用DNS缓存伪造信息的话,攻击者可以改变发向合法站点的传输流方向,使它传送到攻击者控制的站点上;

   拒绝服务:对某些域名服务器的大规模拒绝服务攻击会造成互联网速度普遍下降或停止运行;

   域劫持:通过利用客户升级自己的域注册信息所使用的不安全机制,攻击者可以接管域注册过程来控制合法的域;

   泄漏网络拓朴结构:设置不当的DNS将泄漏过多的网络拓朴结构:如果你的DNS服务器允许对任何人都进行区域传输的话,那么你的整个网络架构中的主机名、主机IP列表、路由器名、路由器IP列表,甚至包括你的机器所在的位置等信息都会不知不觉的泄露出去。

   为了保护DNS服务器不受攻击,首先应当保护DNS服务器所存储的信息,而且此信息应当由创建和设计者才能修改。部分注册信息的登录方式仍然采用一些比较过时的方法,如采用电子邮件的方式就可以升级DNS注册信息,这些过时的方法需要添加安全措施,例如采用加密的口令,或者采用安全的浏览器平台工具来提供管理域代码记录的方式;其次是正确配置区域传输,即只允许相互信任的DNS服务器之间才允许传输解析数据;还要应用防火墙配合使用,使得DNS服务器位于防火墙的保护之内,只开放相应的服务端口和协议;还有一点需要注意的是使用那些较新的DNS软件,因为他们中有些可以支持控制访问方式记录DNS信息,因此域名解析服务器只对那些合法的请求作出响应。内部的请求可以不受限制的访问区域信息,外部的请求仅能访问那些公开的信息;最后系统管理员也可以采用分离DNS的方式,内部的系统与外部系统分别访问不同的DNS系统,外部的计算机仅能访问公共的记录。

六、路由器面临有哪些威胁,如何保护路由器的安全

   路由器作为互联网上重要的地址信息路由设备,直接暴露于网络之中。攻击路由器会浪费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攻击。如果该源地址的前缀在预先规定的范围之内,则该数据包被转发,否则被丢弃。

十二、防范Smurf攻击

   Smurf攻击是利用Ping程序中使用的ICMP协议。攻击者首先制造出源地址是受攻击主机的IP地址的包;然后攻击者将这些包发送给不知情的第三方,使它们成为帮凶;如果攻击者发送足够的ICMP包,回应会超过受攻主机的承受能力;因此,Smurf攻击实际上是一种IP欺骗式的攻击,将导致拒绝服务攻击的结果。

十三、防范Fraggle攻击


   Fraggle攻击与Smurf攻击类似,只是利用UDP协议;虽然标准的端口是7,但是大多数使用Fraggle攻击的程序允许你指定其它的端口。
最好的防止系统受到Smurf和Fraggle攻击的方法是在防火墙上过滤掉ICMP报文,或者在服务器上禁止Ping,并且只在必要时才打开ping服务。

十四、防范Ping of Death攻击

   这种攻击通过发送大于65536字节的ICMP包使操作系统崩溃;通常不可能发送大于65536个字节的ICMP包,但可以把报文分割成片段,然后在目标主机上重组;最终会导致被攻击目标缓冲区溢出。
防止系统受到Ping of Death攻击的方法与防范Smurf和Fraggle攻击是相同的,可以在防火墙上过滤掉ICMP报文,或者在服务器上禁止Ping,并且只在必要时才打开ping服务。

十五、防范Tear Drop攻击

   Teardrop泪滴攻击利用UDP包重组时重叠偏移(假设数据包中第二片IP包的偏移量小于第一片结束的位移,而且算上第二片IP包的Data,也未超过第一片的尾部,这就是重叠现象。)的漏洞对系统主机发动拒绝服务攻击,最终导致主机菪掉;对于Windows系统会导致蓝屏死机,并显示STOP 0x0000000A错误。
检测这类攻击的方法是对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset)是否有误。反攻击的方法是添加系统补丁程序,丢弃收到的病态分片数据包并对这种攻击进行审计。尽可能采用最新的操作系统,或者在防火墙上设置分段重组功能,由防火墙先接收到同一原包中的所有拆分数据包,然后完成重组工作,而不是直接转发。因为防火墙上可以设置当出现重叠字段时所采用的规则。

十六、防范拒绝服务攻击

   尽管目前没有哪个网络可以免受拒绝服务(DoS)攻击,但如果采取以下几项措施,能起到一定的预防作用。

   1.确保所有服务器采用最新系统,并打上安全补丁。根据计算机紧急响应协调中心的发现,几乎每个受到DoS攻击的系统都没有及时打上补丁。

   2.确保管理员对所有主机进行检查,而不仅针对关键主机。这是为了确保管理员知道每个主机系统在运行什么?谁在使用主机?哪些人可以访问主机?否则,即使黑客侵犯了系统,也很难查明。

   3.确保从服务器相应的目录或文件数据库中删除未使用的服务,如FTP或NFS。

   4.禁止内部网通过Modem连接至PSTN系统。否则,黑客能通过电话线发现未受保护的主机,立刻就能访问极为机密的数据。

   5.禁止使用网络访问程序如Telnet、Ftp、Rsh、Rlogin和Rcp,使用加密的访问程序(如SSH)取代。SSH不会在网上以明文格式传送口令,而Telnet和Rlogin则正好相反,黑客能搜寻到这些口令,从而立即访问网络上的重要服务器。此外,若没有必要使用Rlogin登录,则最好在Unix上应该将.rhost和hosts.equiv文件删除,因为不用猜口令,这些文件就会提供登录访问。

   6.限制在防火墙外的网络文件共享。否则的话会使黑客有机会截获系统文件,并以特洛伊木马替换它,文件传输功能无异将陷入瘫痪。

   7.确保手头有一张最新的网络拓扑图。这张图应该详细标明TCP/IP地址、主机、路由器及其他网络设备,还应该包括网络边界、安全服务器区(SSN)及内部网部分。

   8.应用防火墙系统,在防火墙上运行端口映射程序或端口扫描程序。大多数事件是由于防火墙配置不当造成的,使DoS/DDoS攻击成功率很高,所以定要认真检查特权端口和非特权端口。

   9.检查所有网络设备、主机和服务器系统的日志。只要日志出现漏洞或时间出现变更,几乎可以肯定:相关的主机安全受到了危胁。

0 0

相关博文

我的热门文章

img
取 消
img