|
一、引言
近来(99年9月末),美国的PCWEEK杂志进行了一次关于操作系统安全的评测,他们所选择的系统是Redhat6.0和windows NT4.0。评测的结果很具有戏剧性。我本想把其中的主要文章翻译出来,方便大家了解。但是,当翻译了一部分以后,发现这次评测所涉及的背景相当复杂,如果单独看一两篇文章不可能真正的了解这次评测。所以我决定把相关的材料进行综合,以方便大家阅读。本文中大多为译文,并不完全代表我的观点,其原文版权归原文作者所有。
二、背景
美国PCWEEK杂志(ZDNet 的下属刊物),是以对PC产品的评测而闻名的。但就象其名字一样,他们的评测往往仅限于PC和相关的产品,对于向Linux这样的具有UNIX风格的类UNIX系统,他们是缺少经验的,这就直接的决定了其针对这类系统的评测的可信度。
在前一段时期,PCWEEK曾经进行过一次有关网络操作系统运行效率的测试(中文版见 http://www.zdnet.com.cn/),参评的系统有NetWare5、Redhat5.2、windows NT4.0和SUN的solaris7。其结果令很多人吃惊,NT4.0的性能似乎比solaris7的都要好。很多人都对其评测的结果表示怀疑,Novell的副总裁还亲自指出了评测中的一些失误。同时很多具有实际经验的用户指出,系统的效率只是评价系统的一个方面,在实际环境下,可靠性、成本和其他一些指标往往更加起决定性的作用。有些人更加直接的取笑PCWEEK为PCWEAK或PCLEAK。
似乎是针对上次的评测的不良反响,PCWEEK决定进行一次关于系统的可靠性、可用性、安全性和总体拥有成本的系列评测,而评测的第一项就是有关RedHat6.0和windowsNT4.0的安全性。
与上次评测不同的是,他们避免了单独的测试web服务器和操作系统,转而采取了另外一种方法。他们在不同的系统上建立实际的并且类似的应用,然后针对不同的系统上建立的类似的应用来评测该系统。这种方法看似合理,但却对进行评测的技术人员要求较高,进行起来有一定的难度。实践证明,正是由于这点导致了评测的戏剧性的结果。
三、经过
本文以下部分综合了与这次评测有关的内容,原文您可以从 http://www.hackpcweek.com/ 和 http://www.redhat.com/ 找到。
PCWEEK为本次评测准备的开场白很有趣:
“悬赏一千美金,来攻击我们的服务器
如何对系统的安全进行测试呢?我们首先在两种操作系统上安装类似的应用程序,然后让全世界来攻击。与过去不同的是,本次评测中服务器上运行的是现实世界里的程序,具体说来,是一个为报刊类站点设计的分类广告系统。这个测试不但是对操作系统的考验,同时也是对整体的测试。在NT平台,我们将采用ASP、IIS、MTS和SQLServer 7;在Linux平台上,我们将采用Apache和mod_perl。
游戏规则
所要攻击的目标是securelinux.hackpcweek.com和securent.hackpcweek.com。赢得1000美金礼卷的条件是成功的修改主页,或者取得一个名为top secret的绝密文件。我们拒绝任何人在没有取得成功的情况下,破坏服务器的运行。”
PCWEEK给出了简单的服务器配置清单。针对NT的配置清单很长,完全可以说这种配置是完美的了;而对于RedHat的配置短到了只有20行,每行大都只有三五个单词,可以说一般的用户配置都会接近这个水准。以下是对RedHat的配置清单:
“在磁盘上配置多个分区/usrvartmpvar(原文如此)。
安装RedHat 6.0 ,并且不安装SMTP、FTP和NEWS等服务。
安装Photoads (一个第三方软件,由perl写成的CGI,实现用户载入分类广告的功能,详见 http://www.hoffice.com/),
Chmod 777 the photoads directory ,
Chmod 755 cgi-bin ,
Chmod 766 kas_data.pl ,
Chmod 766 adnumber.num ,
Chmod 766 ads_data.pl ,
Chmod 755 all *.cgi files ,
为photoads配置缺省目录,
将上载文件的长度设置为0,
删除不需要的用户 。
Set root password to (to what?)。
在inetd.conf中禁止所有的服务。
以用户nobody来配置并运行 Apache服务器,
禁止SSI(server side includes )。
这种配置实现了security-howto中的建议和apache group的安全提示。”
PCWEEK到底真的实现了security-howto的建议了么?实际是没有的,作为一个系统管理人员,你的责任就是维护系统的运行,其中包括很重要的一点,就是更新有漏洞的软件。而且UNIX是极其灵活的系统,这种软件的更新完全可以自动的由系统来进行。
在如上所述的情况下,PCWEEK就将两台服务器安置在了防火墙后面,并且保留web服务的80号端口,以便访问和攻击。
结果是显而易见的,但对于一个有关操作系统的安全性的测试又是很有戏剧性的 。首先是在RedHat上安装的第三方软件存在漏洞,使一名叫jfs的cracker得以进入系统;然后jfs他们利用一个已知的系统漏洞(修补程序已经发布一个月左右了)得到了root的权限,并成功的修改了服务器的主页。
以下是jfs对攻击过程的叙述:
“一次实际攻击的解析(攻击PCWEEK服务器)By Jfs
首先,我必须搜集有关要攻击的主机的信息,看一看开放了哪些端口,有哪些端口可能进行攻击。经过一翻检查,我发现大部分的端口不是被防火墙保护着,就是由于tcp wrapper的原因而不能使用,只有HTTP服务器可以下手了。
lemming:~# telnet securelinux.hackpcweek.com 80
Trying 208.184.64.170...
Connected to securelinux.hackpcweek.com.
Escape character is '^]'.
POST X HTTP/1.0
HTTP/1.1 400 Bad Request
Date: Fri, 24 Sep 1999 23:42:15 GMT
Server: Apache/1.3.6 (Unix) (Red Hat/Linux)
(...)
Connection closed by foreign host.
lemming:~#
好,这是一台运行apache和Red Hat的机器。从PCWEEK的提示得知这台服务器也应该运行mod_perl,但是mod_perl会在服务器上留下一些特征,而这台服务器所发的报头却并没有这些迹象。
Apache 1.3.6并没有附加任何远端的用户可以使用的CGI程序,但我并不知到RedHat是否加了一些进去,所以我试着攻击了一些常见的CGI漏洞(tect-cgi,wwwboard,count.cgi……)
在试验无效的情况下,我试着找出这个web站点的目录结构,从HTML 页所获得的信息我推断,这个web服务器在DocumentRoot下有如下目录:
/
/cgi-bin
/photoads/
/photoads/cgi-bin
我马上对photoads产生了兴趣,我想这很可能是一个可安装的软件包。经过一翻网上搜索,我终于发现这个photoads是一个由“The Home Office Online”(www.hoffice.com)发行的商业软件包,售价149美圆,并且允许你使用其原代码(perl),这样你就可以修改它了。
我求助于一位朋友,让我看看他的photoads。这使我有机会看到securelinux上所使用的软件的拷贝。
我看了缺省的安装文件,我可以从广告数据库(在 http://securelinux.hackpcweek.com/photoads/ads_data.pl)中获得所有用户的广告口令。我也试着访问配置文件 /photoads/cgi-bin/photo_cfg.pl ,但由于服务器的安装设置使我没法达到目的。
我发现,通过脚本/photoads/cgi-bin/env.cgi(类似test-cgi)我可以知道DocumentRoot目录在文件系统中的位置(/home/httpd/html),另外还有一些其他的有用的数据(服务器以什么用户的身份运行的,这次是以nobody来运行的)。
所以,我首先试着用SSI(Server side includes )和mod_perl 向HTML中嵌入命令,方法如下:
[an error occurred while processing this directive] for SSI
[an error occurred while processing this directive]
|
专
题
回
顾 |
|
 |
|
 |
信息化优秀案例 |
 |
 |
精彩文章推荐 |
|