※黑客攻防指南※===>黑客入门==>远程入侵网吧
影响所有系统的最危险的网络安全弱点

G1--默认安装的操作系统和应用软件

G1.1 描述

大部分软件,包括操作系统和应用软件,一般按照安装说明或安装程序来安装。这些安装程序的目的是为了尽可能快的安装软件,它拥有系统管理员的权限,它可以使用最有用的程序。为了达到这些目的,安装说明安装了比用户需要的更多的部件。卖主的思考方式是,如果能激活那些不必需的函数以让用户安装额外的他们需要的功能,那就太好了。这些安装步骤,对用户来说是方便了,但产生了许多最危险的安全隐患,因为用户通常不会积极地维护和修补那些对用户没用的部件。况且,大部分用户根本不知道它到底安装了些什麽,对系统可能存在的危险置之不理,仅因为用户不知道它们是否存在。

这些没打补丁的服务,让攻击者找到控制计算机的途径。

对操作系统而言,默认安装几乎都包含了额外的服务以及相应的开放端口。攻击者通过这些端口入侵系统。在多数情况下,越少的开放端口,越少的能被攻击者利用的能危及您的网络的途径。对应用软件而言,默认安装通常包含了不必需的例子程序和脚本程序。一个对Web服务最危险的弱点是脚本程序例子;攻击者能用这些脚本程序危及系统或得到系统的信息。在多数情况下,被危害系统的系统管理员并没有意识到这些例子脚本程序已经安装了。例子脚本程序之所以成为问题,是因为它们与其它的软件不是经受一样的质量控制过程。实际上,由于各种原因,它们被写得非常的脆弱。错误检查经常被忘记,例子脚本程序为攻击者提供了缓冲溢出攻击肥沃的土壤。

G1.2 影响的系统

应该牢记的是,大部分操作系统和应用软件,以及由第三方提供的Web扩展服务,都带有例子文件,其中很多是非常危险的。

G1.3 检测方法

如果您总用安装程序来安装系统或服务软件(和几乎所有的公司一样),并且没有去掉不必需的服务,没有安装所有的安全补丁,则您的计算机系统很容易受到黑客的攻击。

甚至连您完成了相当多的安全配置工作,您依然可能会受到攻击。您应该对每一种连到因特网的系统作端点扫描和弱点扫描。当分析结果时,应该牢记以下原则,既您的系统应运行尽可能少的服务,并且运行的服务应该要求尽可能少的软件包。每一个额外的程序或服务都会给攻击者提供一个工具----特别是那些系统管理员还没有打补丁的服务或那些不被经常用到的程序。

G1.4 解决方法

除掉非必需的软件,关掉必需的服务,关闭额外的端口。这可能令人乏味并且很费时间。因为这个原因,许多大的机构对他们用到的所有操作系统和应用软件作了标准的安装的指导方针。这个指导方针只包括能有效的运行功能的最小安装。

因特网安全中心(CIS)已经做了关于Solaris和Windows 2000的一致同意的最低安全配置的基准,它参照了十几个国家的170多个组织的经念和知识(请看http://www.cisecurity.org/)。对其它操作系统的所作的最低安全配置基准和测试工具还在进行中。CIS的工具能用来测试安全的等级和系统各方面的安全状况。CIS指导方针可以改善大多数操作系统的安全。

G2 无密码或弱密码的帐号

G2.1 描述

大部分的系统配置密码来作为第一道,往往是唯一一道安全防线。用户名是很容易得到的,许多公司还可以通过电话拨号来访问,这样就绕过了防火墙。因此,如果攻击者能够确定一个帐号的用户名和密码,他就能够登录这个网络。容易猜测的密码和默认的密码是一个大问题,但更大的问题是一个根本没有密码的帐号。习惯上,应该删除那些有弱密码,默认密码和空密码的帐号。

另外,很多系统已经存在着予建立的或默认的帐号。在安装软件时,这些帐号拥有同样的密码。攻击者一般会寻找这些帐号,因为这些帐号在黑客团体中是家喻户晓的。因此,所有的予建立的和默认的帐号都应该找出来并把它删除。

G2.2 影响的系统

所有的操作系统或应用软件都是通过用户名和密码来作用户鉴定的。

G2.3 检测方法

为了确定您是否容易受到攻击,您得知道您的系统上有什麽样的帐号。完成以下几个步骤:

1、 统计您的系统上的帐号数,并生成一个管理表。不要忘记检查系统上的密码,比如路由器和与因特网相连的数字打印机的密码,以及复印机和打印机管理器的密码。
2、 生成在您的表上可以添加授权的用户的帐号,而在它没有用时删除的程序。
3、 经常的审查这张表,确认是否加入新的帐号和删除无效的帐号。
4、 运行密码破解工具来查找弱密码或无密码的帐号。(确认您有运行密码破解工具的正式的许可。)

下面是一些密码破解工具:

a. LC3--Microsoft Windows NT 和 Microsoft Windows 2000: http://www.atstake.com/
b. Microsoft Personal Security Advisor--Microsoft Windows NT 和 Microsoft Windows 2000: www.microsoft.com/security/mpsa
c. John the Ripper--Unix: http://www.openwall.com/john
d. Pandora--Novell: http://www.nmrc.org/pandora

5、 具有严格的手续来删除那些员工或客户离开后的帐号,以及不再有效的帐号。

G2.4 解决方法

为了消除这些密码问题,需要完成两个步骤。第一步,把所有无密码的帐号加上密码,或者把它删除,而弱密码则把它加强。可悲的是,当要求用户更改并加强他们的密码时,他们往往换另外一个容易被猜出的密码。这时需要我们采取第二个步骤。当用户更改密码时需要得到确认。计算机程序可以拒绝那些不符合您的安全政策的密码的改变。下面介绍一些流行的程序:

1a、 对 UNIX: Npasswd(SunOS 4/5,Digital Unix,HP/UX,AIX)http://www.utexas.deu/cc/unix/software/npasswd
1b、 对 UNIX: Cracklib andassociated PAM modules(Linux)
2、 对 Windows NT: Passfilt http://support.microsoft.com/support/
kb/articles/Q161/9/90.asp"

这些程序确保了当密码被更改时,它们符合长度和成分的要求,以使猜测和破解密码变得更难。注意,对Unix系统,许多卖主对密码问题提供了因特网解决方案,这个问题可以用其它的补丁解决。

一些机构还补充了密码控制程序,确保经常地更换密码,而且用过的密码不会重复使用。如果一个密码已经用过一段时间了,应该提醒用户,并在密码到期之前更改密码。当接到这条消息时:“您的密码已经过期了,请更换密码!”时,用户会倾向于随便用一个不合适的密码。

Microsoft Windows 2000 在组策略中包括了密码约束项。管理员能配置网络,使得用户密码必须满足以下条件:某种最小的长度,某种最短和最长的生存时间,还有一些别的限制。对密码要求有最短的生存时间是很重要的。如果不要求这一点,用户就会倾向于,当需要该密码时,他们改密码后,马上就把密码又改回去。最短生存时间让用户记住这些密码,而不会马上改回去。

另外一个重要的补充是,让用户知道要怎样去训练,才能知道为什么和怎样才能得到一个强壮的密码。最普通的建议是,在一首歌中,找到带有数字的一些短语或一行歌词,然后每个单词的第一个或第二个字母,然后加上任意个数的数字组合成密码。如果再加上标点符号,那密码就更难被破解了。

另一个防止无密码或弱密码的方法,就是用密码生成器来产生密码。您可以在密码生成器生成的密码中作选择。

G3----没有或不完整的备份

G3.1 描述

当有事件发生时(在所有的组织中都有可能发生),从事件中恢复过来需要有最近的备份和存储的数据正确性的证明方法。一些组织也许能每天备份,但从不核实备份是否有用。另一些组织构造了备份的方针和手续,但没有实施备份。这些错误经常导致在攻击者入侵系统后数据被部分或全部毁坏。

另一个问题备份的方法不是有效的物理防护。包含敏感数据的备份应该放在服务器上,并已同样的风格保护起来。

G3.2 影响的系统

所有的系统。

G3.3 检测方法

确定一份拥有所有危急的系统的名单。然后对这些系统做风险分析,找出风险和相应的危险。备份的方针和手续应该确实的适合那些关键的服务器。当完成这些体系的核实后,实行以下几步:

1、这些备份手续是针对这些系统吗?
2、备份的时间间隔是否合理?
3、这些系统的备份是否合乎手续?
4、这些备份的载体是否已经得到核实来保证数据得到了正确地备份?
5、备份的载体是否在内部得到了充分的保护并且在外部做了另外的备份?
6、操作系统和有用的存储的拷贝是否在外部做了另外的备份(包括访问备份的密码)?
7、备份的手续是否已经得到了确认和做了测试?

G3.4 解决方法

备份至少每天做一次。一些组织的最低要求为每周做一次完全的备份然后每天增加一些。每个月,最少对服务器做一次备份的载体的检查,来查看数据是否得到了正确的备份。这是最低的要求。一些公司每天都做完全的备份或一天做几次。最终的备份解决方案是对每一个有足够空间的网络上的计算机做备份--金融和e-商务系统做实时备份、管理下层组织的系统、美国国防部的一些部门。

G4--大量的开放端口

G4.1 描述

合法的用户和攻击者都是通过开放端口来访问系统的。系统上开放的端口越多,人们连接上您的系统的可能性越大。因此,只开放能完成系统功能的少量的端口是很重要的。其它的端口必须关掉。

G4.2 影响的系统

大部分操作系统。

G4.3 检测方法

运行netstat本地命令可以确定什麽端口是开放的,当更好的方法是对您的系统运行外部端口扫描程序。这样能够找出正在倾听的端口。如果运行netstat命令的结果与运行端口扫描程序的结果不同,您应该研究以下为什麽会这样。如果这两个结果是一样的,查看结果并弄清楚为什麽端口是开放的。

在许多端口扫描程序中,nmap程序是最受欢迎的。nmap程序的Unix版本可在下列网址找到:

http://www.insecure.org/nmap/。
这版本也适用于NT系统。nmap程序的NT版本可在下列网址找到:

http://www.eeye.com/html/Research/Tools/nmspnt.html。
其它的端口扫描程序也很管用。不管您用什麽端口扫描程序,您必须扫描从1-65535的全部TCP和UDP端口。

在您运行端口扫描程序全面扫描组织里的系统的端口之前,您一般得填写许可书。一些操作系统,部分集成了TCP/IP协议的设备,当被扫描时也许有不可预知的行为。扫描也可能干扰防火墙的防护体系,如果没有给予正确的说明,这可能被解释为攻击。

G4.4 解决方法

当您已经确定了哪些端口是开放的,您的任务就是决定最少可以保留哪些端口来充分的实现您的系统的功能--然后关掉其它的端口。找到相应的服务程序并把它关掉甚至把它删除,您就可以关闭这个端口了。

在Unix系统中,很多服务由inted控制,而它相应的配置文件,inetd.conf,inetd.conf列出了在给定的端口上倾听的服务,它也经常被用来关闭这些端口。从inetd.conf中删掉一个服务,然后重起inted,那就使相应的端口关闭了。其它的服务根据导入时的原本来启动(例如/etc/rc、/etc/rc.local、或在/etc/rc* 目录中找到的原本)。参考您的系统上的如何时这些原本无效的文挡,不同的Unix版本之间或许会不同。另外,一个叫作Lsof的程序可以用来确认Unix系统的开放端口。Lsof程序可以从http://vic.cc.purdue.edu/pub/tools/
UNIX/lsof/lsof.tar.gz下载。

对于Windows NT 和Windows 2000,一个叫作fport的程序(http://www.foundstone.com/)可以用来确认某些特定端口是否有服务/程序在倾听。对于Windows XP,用带有-o的netstat命令,可以确定在一个端口上哪些程序在倾听。这些信息可以让您决定关闭哪些服务来关闭这个端口。

G5--对IP包没有进行过滤以校正进出的地址

G5.1 描述

当攻击者攻击一个受害者时,IP地址欺骗是很普通的掩盖他们的轨迹的方法。例如,很流行的smurf攻击,利用路由器的特征向几千台机器发送一串包。每个包的源地址是假的,是受害者的IP地址。被欺骗的计算机向受害者的计算机发送大量的包,经常使受害者的计算机关闭或网络瘫痪。对您的网络做进入和外出过滤可以提高网络的防护水平。过滤的原则如以下所示:

1、从外部网络进入您的网络的包不应该有您的内部网络的源IP地址。
2、从外部网络进入您的网络的包应具有您的内部网络的目的IP地址。
3、离开您的网络的包应具有您的内部网络的源IP地址。
4、离开您的网络的包不应该有您的内部网络的目的IP地址。
5、任何进出您的网络的包的源IP地址和目的IP地址不应该是私人的IP地址,或在RFC1918中保留的地址。这些地址包括10.x.x.x/8、172.16.x.x/12或192.168.x.x/16和环路网络地址127.0.0.0/8。
6、阻塞所有的源路由包(source routed packets)和固定的IP项的包。
7、阻塞保留的、DHCP自构造的和多点发送的包:
0.0.0.0/8
169.254.0.0/16
192.0.2.0/4
224.0.0.0/4
240.0.0.0'4

G5.2 影响的系统

大多数的操作系统和网络设备。

G5.3 检测方法

发送一个欺骗包,看看您的外部防火墙或路由器能不能阻塞它。您的设备不仅仅应该阻塞它,还应该在它的日志文件中记录这个欺骗包已经被拦截了。注意,无论如何,这样启开了被攻击的另一扇门--日志文件溢出。确保您的日志系统能承受很大的负担,否则,可能会遭到DoS攻击。象nmap这样的程序能发送诱骗包或欺骗包来测试有没有这样的过滤器。装上过滤器后,不要认为它总是能有效的工作。应该经常测试它。

G5.4 解决方法

为了防御这种攻击,在您的外部防火墙或路由器上建立过滤的规则。下面是Cisco路由器的一些规则:

1、进入过滤
连续层面上的0
IP地址 10.80.71.1 255.255.255.0
包括在以下的11 IP访问组
拒绝 192.168.0.0 0.0.255.255 的 11 访问名单
拒绝 172.16.0.0 0.15.255.255 的 11 访问名单
拒绝 10.0.0.0 0.255.255.255 的 11 访问名单
拒绝<您的内部网络>的 11 访问名单
任何许可11 访问名单
2、外出过滤
以太网层面上的0
IP地址 10.81.71.1 255.255.255.0
包括在许可<您的内部网络>的 11 访问名单的11 IP访问组

G6--没有或不完整的日志

G6.1 描述

有一条这样的安全座右铭,“预防是理想的情况下的,而探测是实际的。”当您允许您的网络和因特网通信时,被攻击者偷偷的进入您的网络的可能性是存在的。每周都有新的弱点暴露出来,而当攻击者使用新的弱点时,您通常没有办法来抵抗。一旦您被攻击,如果没有日志的话,那麽,您几乎不可能知道攻击者到底干了些什麽。这时,您的组织有两种选择,或者从原来的载体中完全从装系统并希望备份的数据完整无误,或者冒可能被攻击者控制的风险,运行您的系统。

如果您不知道您的网络上有什麽的话,您是不知道该怎样去抵抗攻击。日志提供了发生了的细节,什麽系统正在被攻击,什麽系统已经处在危险中。

对所有关键的系统,记录日志必须依照正规的原则来完成,日志文件也必须存储和备份,因为,或许哪天您会用着它。大多数专家建议,把您的日志文件以只写一次的形式在一个日志中央服务器中存储,这样,攻击者就不能覆盖您的日志文件并避免被探测到。

G6.2 影响的系统

所有操作系统和网络设备。
G6.3 检测方法

查看每个主要系统的系统日志文件。如果您没有日志文件,或者它们没有被集中的存储和备份,则您是容易受攻击的。

G6.4 解决方法

建立本地的系统来记录日志,然后把日志文件送到远端系统。这样提供了冗余的和额外的安全层次。现在,可以用一个日志文件来比较另一个日志文件。任何差别显示了在系统上有可疑的活动。另外,可以交叉检查日志文件。在一个服务器的日志文件上的一行,可能不会显示出可疑的活动,但在不到一分钟,机构的50台服务器上都有这一条,那就是大问题的标志。

只要有可能,用只写一次的形式把日志信息写进设备里。

G7--危险的CGI程序

G7.1 描述

大部分的Web服务,包括微软的IIS和Apache,支持通用网关接口(CGI)程序,来提供网页交互功能,例如数据的收集和确认。事实上,大部分的Web服务发表时(和安装时)都带有CGI程序的例子。不幸的是,太多的CGI程序员没有考虑到,他们的程序提供了,从因特网任何地方的用户到运行Web服务的计算机的操作系统的直接连接。危险的CGI程序是入侵者的显著的受欢迎的目标,因为利用Web服务软件本身的特权和能力,他们可以相对容易的去定位和操作。入侵者知道怎样使用危险的CGI程序来破坏网页、窃取信用卡信息和为将来的入侵设置后门。当审议网站的部门遭到破坏时,一个深刻的评估认为,CGI漏洞是危险系统的最有可能的途径。Web服务软件的易受攻击性与由有意破坏或粗心的程序员产生的威吓差不多。作为一条通用的规则,样板程序应该从产品系统中删除。

G7.2 影响的系统

所有的Web服务器。

G7.3 检测方法

如果在您的Web服务器上有任何样板代码,那您就是容易受到攻击的。如果您有合理的CGI程序,确保您在运行它的最后版本,然后运行一个弱点扫描工具来扫描您的网站。通过模仿攻击者会怎麽做,您也许对怎样保护您的系统有些准备。为了找到危险的CGI脚本,您可以使用一个叫做whisker的CGI扫描器,它可以在下列地址得到:
http://www.wiretrip.net/rfp/

G7.5 解决方法

下列是抵御危险的CGI程序的关键事项:

1、在您的产品Web服务器中删除所有的CGI样板程序。
2、在所有Web服务器中审查剩下的CGI脚本并删除不安全的CGI脚本。
3、确保所有CGI程序员遵循严格的输入缓冲区长度检查的方针。
4、为不能删除的弱点做补丁。
5、弄清楚您的cgi-bin目录里没有包含任何编译器或解释器。
6、从cgi-bin目录中删除“view-source”脚本。
7、不要运行具有管理员或根目录特权的Web服务器。大多数Web服务器可以配置象“nobody”的具有少量特权的帐号。
8、不必需的CGI支持就不要配置了。

主目录 分目录

Copyright By「黑白网络工作室」2002 All Rights Reserve