账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
Linux-based Web Server之网路安全探讨
 

【作者: 呂俊良】2000年07月01日 星期六

浏览人次:【4846】

前言

自今年初以来发生了许多病毒攻击的事件,诸如︰CIH、Melissa与ILOVEYOU等,病毒似乎防不胜防。笔者记得就读大学二年级时碰到的第一只病毒是C_BRAIN,当时要防止病毒的肆虐是轻而易举、相当容易─就是不要随便执行来路不明的档案。几曾何时,这个定律在Internet时代已不再成立。 Internet虽然带来了便利,产生了许多商机,但也萌生了许多安全问题。如何维护网路的安全,不仅重要,而且复杂。当然病毒只是网路安全的一部份,也不是本文讨论的重点。网路安全性这个问题的范围相当大,可以从内部/外部、人为/软硬体、使用者资讯安全教育、电脑/网路安全管理、重要资料备份/完整备份管理政策,以及机房进出管制等方面来讨论。


Internet普及,为公司架设一个WWW伺服器,制作漂亮的Homepage已成为各大公司必备工作。稍具规模的公司甚至拥有两个以上的网站。再加上许多网路公司年轻员工一夕致富的例子,吸引许多人纷纷投入这个行业。以笔者服务的公司而言,寻求一位Programmer所收到的网路履历表中,100封网路求职信大概有75封是应征网页设计,这些人又以非资讯科系及社会新鲜人占大多数。即使是资讯科系毕业生,问起他们是否懂得C/C++程式设计,通常得到的答案为「学校修过,但精通Dreamweaver、Frontpage及ASP」。你很难想像在日益复杂的网路时代,这会有多大的弊端产生。因此,本文试着从Linux-based Web Server的安全建置作个粗浅的讨论。文中所讨论的系以Apache为主,但也会比较到一切其他的Web Server。


Linux-based Web Server的优缺点

Netscape的技术总监Eric Hahn在其Heresy Document中曾提到Linux的五大优点:免费、技术优异、原始码开放、有较多的开发者及能提供较佳支援。以笔者所用的Linux为例,1200元新台币的盒装版内附9片光碟与两本说明书,还加送一只可爱的企鹅,其中包含了众多功能强大的Server软体如︰Apache Server、Mail Sever、Ftp Server、Firewall + Proxy and Commercial Database,可说物超所值。而Linux当中所附的Apache Server是Internet中使用最广的Web Server,我们从Apache与微软IIS的比较(表一),以及Apache的规格说明(表二)可以得到一些概念。



《表一 June 1999 Market Penetration》
《表一 June 1999 Market Penetration》

《表二 Apache规格说明》
《表二 Apache规格说明》

由表一与表二可以看出免费并不代表功能不完整或不实用。当然,除了Apache Server外,Linux上还有许多Web Server,且各有各的优点。不同于Windows NT,由于Microsoft的强势Marketing策略,配合完整的发展工具,因此Microsoft的IIS几乎成为Windows NT的唯一选择。但反观Linux,于Linux上的Web Server可以说是蓬勃发展,而且大多免费且为Open Source。以下列举常用的Web Server︰


●AOLserver a full-featured web server from AOL


●Apache HTTP Server a public domain HTTP server for UNIX and Linux


●Apache-SSL secure web server, based on Apache and SSLeay


●Boa a fast, lightweight web server for unix-like computers


●Hawkeye a complete, highly extensible Internet/Intranet server suite


●NCSA httpd Server web server from the developers of Mosaic


●Roxena modularised, object oriented World Wide Web server


●Stronghold commercial version of Apache web-server which uses SSL


●XS-HTTPD 2.3 very small and fast LINUX WWW server


●W3C (CERN) httpd web server from the World Wide Web Consortium (CERN)


众所皆知,Linux的特点为开放原始码(Open Source Code),平心而论,Open Source是武器也是罩门,对许多使用Open Source的WWW Server之机构而言,系统管理者可以迅速找到程式的漏洞而加以补救,但这也意味着入侵者可以检视原始码而寻找后门。


有一个相当有名的小故事,Netscape于释出Mozilla时,曾小心翼翼地将程式中有关于加密技术的模组拿掉,原因很简单,因为美国政府基于安全理由,不允许此类的技术输出美国本土。但就在Mozilla释出不到15个小时,有个名为Mozilla Crypto Group的团体在Netscape的模组中,以SSLeay为基础,提供了美国政府所不允许的全功能加密编码系统。这个团体有12个成员,其中9个在澳洲,3个在英国。藉由网路团体的支援和其他的Open Source,在短短的15个小时中解掉一个重大的安全问题。但你可以想像相同的情况在Window NT4.0 + IIS4.0的状况了。以下列举一些提供加密技术的网站︰


●SSLeay︰http://www2.psy.uq.edu.au/~ftp/Crypto


●OpenSSL︰http://www.openssl.org


●Apatch-SSL︰http://www.apache-ssl.com/


相同的,Open Source的缺点也为业界所熟知,最有名的就是发生在1988年,被一位名叫Robert T. Morris的人利用的finger臭虫。原来的fingerd程式有下列几行:




char line[512];


line[0]='\0';


gets(line);


程式似乎很简单,但Morris利用get()函数不检查文字行长度的漏洞,写了一段程式让fingerd执行shell程式,再加上fingerd通常以root执行,等于让入侵者取得所有控制权。


Open Source的开发者来自全球各地是不争的事实,但即使如此,是否能提供较佳的技术支援,笔者认为这是见仁见智的问题。其实提供较佳的支援与Open Source是相辅相成的,由表一亦可以看出国外对Apache的评价,但国内使用者经常将Free Software的Free范围扩大到技术支援,也因此造成国内从事Linux Service厂商的困扰。其实以Open Source所省下的软硬体费用(Linux+Apache所需的硬体需求较小),可以买到物超所值的技术支援,更何况NT所需的技术支援费用更加昂贵且无效率。


建置安全的Linux-based Web Server

在争奇斗艳的网路环境中,如何制作一个又炫又酷的Home Page往往反而比起网路安全更令公司所重视。在电子交易还未普及之际,或许看不出问题,但当电子交易成为企业的必须时,安全其实是第一要务。有些建置安全Web Server的问题是经常被忽视的:


CGI的安全问题

Home Page因有Web Server的支援而功能更佳,但也因此而对Client Users和WWW Server产生安全漏洞,例如原本WWW Server只允许存取某些特定的资料夹,但没有安全概念的CGI Script或Program却可能无意破坏其他目录的档案。无经验的Web Programmer所写的CGI Script可能包含某些安全漏洞而被入侵者拿来执行Server上的任何程式。


单纯的环境

由于Linux有众多的网路资源,使其成为相当优秀的网路伺服器,您可以使用Linux来执行Ftp、Telnet、Printer Server、File Server与Mail Server等。但越多的Service在同一台机器上执行,代表可能的漏洞越多,也越容易让入侵者得逞。


不要以root执行Web Server

在Apache之conf档httpd.conf中有一段设定:




# User/Group: The name (or #number) of the user/group to run httpd as.


# On SCO (ODT 3) use User nouser and Group nogroup


# On HPUX you may not be able to use shared memory as nobody, and the


# suggested workaround is to create a user www and use that user.


# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)


# when the value of (unsigned)Group is above 60000;


# don't use Group nobody on these systems!


User nobody


Group nobody


这代表无论Http Service要用什么使用者来启动它,千万不要将其设为root,虽然这会有些小小的不便,但您可以想像所有的CGI Script都以root权力执行的后果。


正确的设定存取权

许多使用者并没有注意到正确的设定存取权,以CGI执行的目录而言,如果我们将其存取权设定为:




drwx-x--x 5 root www 1024 Aug 8 00:01 cgi-bin/


则httpd可以执行其底下的CGI程式,但除非以root登入,否则无法对其进行修改或观看。同样的道理,Apache Server 以httpd.conf来控制伺服器的组态、档案的读取权及伺服器资源表(早期的Apache将其分为三个档案httpd.conf、access.conf与srm.conf )。如果入侵者知道这个档案的内容,将可以轻易地找出伺服器组态的​​漏洞。若我们将其存取权设定为:




-rw------ 1 root www 1024 Aug 8 00:01 httpd.conf


则可限制只有root能对其修改及观看。


正确的设定伺服器组态

在Apache Server的httpd.conf中,有些组态是必须小心设定的。如


Automatic directory listing, Symbolic-link following, Server-side including。你必须了解这些设定的意义并且小心地使用,例如将Automatic directory listing设定为ON,则当浏览器Browser到一个没有index.htm的目录时,使用者可以清楚的看到伺服器的档案组态,这是多么危险的一件事。


别假设上网的人都是无恶意的

别认为使用者都会遵守规则,恶意的入侵者会想尽一切办法破坏规则,因此网页设计者要确实检查如Selection List 传回值,使用者直接执行CGI程式或使用者故意传回不合法的Cookie 。


预防窃听

为了预防入侵者窃听网路资讯(在TCP/IP的环境中是轻而易举的),通常你必须对你的资料加密,一种方法是直接加密档案本身,一种是Client/Server使用相同的加密技术对IP Package进行加密。无论如何,别低估Internet的开放性。


适时的升级Linux Kernel

Linux核心至2.2.15以前的版本﹐都含有一个严重的臭虫,以让一般使用者取得root权限。 2.2.15系列的使用者只要升级到最新的Linux 2.2.16版核心,就可以解决。这个漏洞只要系统里有setuid root的程式,可能被利用。主要问题发生在一个少有说明的函式-setcap,etcap函式可以​​让使用者获得任意setuid程式的能力,进而入侵系统。因此适时的升级Linux Kernel是必要的。系统管理者应经常注意这方面的资讯,必要时也要自行编译Kernel以防止漏洞。


结语

由于版面的因素,许多问题都只能点到为止,以CGI为例,可以讨论的安全问题就可以写一本书,有兴趣的读者可以上百资网站(http://www.linpus.com. tw)。笔者会在上面发表一系列文章。倒是对于许多急于学习网页设计的新鲜人而言,笔者倒是建议多了解一些系统架构及安全问题。笔者其实可以大胆预测,由于开发工具的进步,未来制作网页将有如使用Word打文件一般,是必须的技能而非工作的专长,反而是网路安全专家奇货可居。


相关文章
强化转型核心动力 打造更强数位韧性
数位转型下的工具机发展趋势
OLED与Mini LED争逐主流PC显示技术
企业迎向数位创新的关键思考
USB 4实现更高传输速度
comments powered by Disqus
相关讨论
  相关新闻
» 微软《Cyber Signals》研究:与OpenAI合作避免网路攻击
» 微软生成式AI助??度科技优化法律服务品质
» 联想与微软合推全新一体化AI解决方案简化安全部署
» AI浪潮来袭!伺服器面临高热密度挑战 Vertiv协助矽谷主机代管商在既有机房突破散热瓶颈
» 微软与产官学研合作提高台湾新创能量 共创AI智慧未来


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83SE05OXESTACUKP
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw