第四部分:防范网络攻击
一、保护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服务器
1、 禁止匿名登录。在Windows 2000中,最初安置的ftp服务默认允许匿名登陆,它是一种可以让没有用户帐户的人登陆你的ftp服务器的方法。允许匿名访问有时会导致被利用传送非法文件。
取消匿名登录,只允许被预定义的用户帐号登录, 配置被定义在FTP 主目录的ACLs [ 访问控制列表] 来进行访问控制,并使用NTFS 许可证。
2、设置访问日志。通过访问日志可以准确得到哪些IP 地址和用户访问的准确纪录。定期维护日志能估计站点访问量和找出安全威胁和漏洞。
3、强化访问控制列表。采用NTFS 访问许可,运用ACL[访问控制列表] 控制对您的FTP 目录的的访问。
4、 设置站点为不可视。如您只需要用户传送文件到服务器而不是从服务器下载文件,可以考虑配置站点为不可视。 这意味着用户被允许从FTP 目录写入文件不能读取。 这样可以阻止未授权用户访问站点。要配置站点为不可视,应当在“站点”和“主目录”设置访问许可。
5、使用磁盘配额。磁盘配额可能有效地限制每个用户所使用的磁盘空间。授予用户对自己上传的文件的完全控制权。使用磁盘配额可以检查用户是否超出了使用空间,能有效地限制站点被攻破所带来的破坏。 并且,限制用户能拥有的磁盘空间,站点将不会成为那些寻找空间共享媒体文件的黑客的目标。
6、使用访问时间限制。Windows2000 访问时间限制是从nt4.0继承而来。这个选项限制用户只能在指定的日期的时间内才能登陆访问站点。这可以限制在唯一被批准的时间才能访问服务器。如果站点在企业环境中使用,可以限制只有在工作时间才能访问服务请。 下班以后就禁止登录以保障安全。
7、基于IP策略的访问控制。Windows2000的 FTP 可以限制具体IP 地址的访问。限制只能由特定的个体才能访问站点,可以减少未批准者登录访问的危险。
8、审计登陆事件。审计帐户登录事件,能在安全日志察看器里查看企图登陆站点的(成功/失败)事件,以警觉一名恶意用户设法入侵的可疑活动。 它也作为历史记录用于站点入侵检测。
9、使用安全密码策略。复杂的密码是采用终端用户认证的安全方式。这是巩固站点安全的一个关键部分,FTP 用户帐号选择密码时必须遵守以下规则:不包含用户帐号名字的全部或部份;必须是至少6 个字符长;包含英文大、小写字符、数字和特殊字符等多个类别。
10、限制登录次数。 Windows2000 安全策略允许管理员当帐户在规定的次数内未登入的情况下将帐户锁定。
四、邮件服务器易受哪些攻击,如何保护邮件服务器
目前互连网上的邮件服务器所受攻击有两类:一类就是中继利用(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攻击,目前尚没有很好的监测和防御方法,不过如果系统管理员熟悉攻击方法和系统架构,通过一系列的设定,也能从一定程度上降低被攻击系统的负荷,减轻负面的影响。
对于WindowsNT/2000而言,它的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报文随机丢弃,保证系统的稳定性。
十、防范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错误。
对付这种类型得攻击最好的方法就是要及时为操作系统打补丁了,但是Teardrop攻击仍然会耗费处理器的资源和主机带宽。
十四、防范拒绝服务攻击
尽管目前没有哪个网络可以免受拒绝服务(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. 检查所有网络设备、主机和服务器系统的日志。只要日志出现漏洞或时间出现变更,几乎可以肯定:相关的主机安全受到了危胁。
第六部分:Windows操作系统安全
一、设置安全强壮密码的原则
操作系统的密码(口令)十分重要,它是抵抗攻击的第一道防线,我们必须把密码安全作为安全策略的第一步。如果攻击者未能窃取到系统密码,那么他就不能很好地和系统进行交互信息,对系统所能采取的入侵的方法也就不多了。因此,必须设置安全强壮的密码。所有安全强壮的密码至少要有下列四方面内容的三种:
· 大写字母
· 小写字母
· 数字
· 非字母数字的字符,如标点符号等
安全的密码还要符合下列的规则
· 不使用普通的名字或昵称
· 不使用普通的个人信息,如生日日期
· 密码里不含有重复的字母或数字
· 至少使用八个字符 另外,应该还要求用户42天必须修改一次密码。
以下举例说明强壮密码的重要性:假设密码设置为6位(包括任意五个字母和一位数字或符号),则其可能性将近有163亿种。不过这只是是理论估算,实际上密码比这有规律得多。例如,英文常用词条约5000条,从5000个词中任取一个字母与一个字符合成口令,仅有688万种可能性,在一台赛扬600(CPU 主频)的计算机上每秒可运算10万次,则破解时间仅需1分钟!即使采用穷举方法,也只需9个小时;因此6位密码十分不可靠。而对于8位密码(包括七个字母和一位数字或符号)来说,若完全破解,则需要将近三年的时间。因此,密码不要用全部数字,不要用自己的中英文名,不要用字典上的词,一定要数字和字母交替夹杂,并最好加入@#$%!&*?之类的字符。
二、如何强制使用安全强壮的密码
WindowsNT/2000系统在默认配置下允许任何字符或字符串作为密码,包括空格,这是相当不安全的,下面我们通过修改注册表使得用户设定的密码中必须同时包含字母和数字,从而增强系统的安全性。具体设置如下:
首先在“开始”“运行”菜单中输入regedit.exe程序,如下图:
然后进入主键:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies
新建Network子键(项),
在右侧窗口中新建(右键选择“新建”)一个名为AlphanumPwds的双字节(操作系统的不同,出来的菜单可能有不同,Dword同样表示双字节)值,(右键选择”新建”)
数值为1即可。
(注:后面将会有大量操作注册表的描述,过程如上图大致类似,就不再采用图示。)注册表各项解释如下:名称: 指某个值的标示名,比如上图的AlphanumPwds 。
类型: 指该名称的数据类型,共有三种:REG_SZ 字符串型,它的数据可以是字符串;REG_BINARY 二进制数据类型,它的数据就只能是0和1的组合; REG_DWORD 是双字节数据类型,它的数据可以是十六进制数据。
数据: 表示该值的内容。
我们还可以在密码策略中进行相关的设置。
在”控制面板” “管理工具” “本地安全策略” “帐户策略”中的”密码策略”, 双击想要更改的项目,比如修改密码长度最小值:点确定就可以了。按照上面的步骤作如下设置: 密码复杂性要求 启用 密码长度最小值 8位 强制密码历史 5次强制密码历史 42天
注:后两项会因操作系统的不同,设置名称等会不尽相同,但意义都一样。
最后,请重新启动计算机生效。
共8页: 上一页 [1] [2] 3 [4] [5] [6] [7] [8] 下一页 |