如何防止网站不被误击 苏月桐 1999年 第19期 28版 编者按:5月9日~10日,大批自称“中国黑客”的网民攻击了美国站点,数量巨大,达到数百个之多,北约站点http://www.nato.org被迫关闭,美国能源部、内政部等被成功黑掉。BBC、ABC新闻作了前所未有的报道。由于黑客攻占了一些非官方网页,况且还存在大批的美国纳粹狂热分子,按常情,可能会有大量国外黑客进行报复。站点管理员一定要提高警惕,时刻防备国外黑客的“误击”。5月10日,上海网盛(www.netsh.com)招致不明原因攻击,估计就是一例。希望本文对广大网管人员有所裨益。 计算机的安全性历来都是人们讨论的主要话题之一。而计算机安全主要研究的是计算机病毒的防治和系统的安全。在计算机网络日益扩展和普及的今天,对计算机安全的要求更高、涉及面更广。不但要求防治病毒,还要求系统具有抵抗外来黑客入侵的能力。另外,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。 当然,计算机系统安全是个很大的范畴,本文仅仅讨论在Web服务器应用过程中,如何更好地防止黑客对服务器的攻击。 黑客(Hacker)一词来源于英语动词Hack,意为“劈、砍”,这个词被引申为“干了一件非常漂亮的工作”。最初的黑客正是这样的一些编程高手,他们发现了系统安全漏洞并能进行修补。而Cracker们则不一定会编程,但他们可以利用黑客技术攻入系统获得利益,他们也把自己称为黑客。现在这个区分似乎不那么清晰了。黑客行为几乎与计算机犯罪之间划上了等号。在许多人的心目中,黑客行为似乎就是“计算机犯罪”,可也有人认为黑客是网络时代的牛仔,甚至是反传统文化的斗士。但不管你对黑客现象或褒或贬,有一点却是我们必须承认的:哪里有网络,哪里就会留下黑客的影子。当今世界里,人们对计算机网络技术的依赖性越来越大,网络安全问题越来越突出。黑客的活动比你想象的更复杂,他们可以超越国界去参与战争。 尽管对黑客行为的解释全在于个人的理解,但黑客技术首先是一种计算机技术,对黑客行为的评判,全在于把技术用在什么地方和用来干什么。 我国现行计算机网络体系抗黑客攻击能力差、缺乏整体防范保护措施,国内由于缺乏必要的安全防护技术,近来,以高技术手段攻击计算机网络系统的行为有增多的趋势。随着国内第一套专门针对黑客非法入侵、抵御高智能计算机犯罪的局域网络安全防御体系的推出,可望得到改善。 #1 一、网站被攻击的几种方式 要想成功抵制住黑客的攻击,我们必须深入了解关于黑客的一些详细情况。一份基于网络安全的报告调查称:在Internet上约有20%的单位曾被黑客侵入;约40%的单位并未安装防火墙(Firewall)以及30%的入侵事件是在安装防火墙之后发生的。同时他们也统计出黑客入侵的几种方式: ●Data Diddling——未经授权删除档案、更改其资料(15.5%) ●Scanner——利用工具寻找暗门漏洞(15.8%) ●Sniffer——监听加密之封包(11.2%) ●Denial of Service——使其系统瘫痪(16.2%) ●IP Spoofing——冒充系统内网络的地址(12.4%) ●Other——其他(13.9%) 黑客为什么这么容易进入系统?为什么那些安装了防火墙的系统一样会被黑客入侵呢?最主要的原因有: ●系统本身就存在有许多漏洞(暗门); ●以往黑客多是单枪匹马,但现在由于Internet盛行使得黑客们联络更加方便,从而“结伙抢劫”。据说美国有一家称作“大屠杀2600(Genocide 2600)”的黑客组织,现拥有150多万成员。他们扎根在西北地区和阿拉斯加,并开始向东海岸地区扩展。他们来自各行各业,年龄从14岁到52岁; ●Internet上有许多现成的黑客工具软件,例如“Rootkit”、“Satan”等,这些模拟程序成为黑客方便好用的工具; ● 以错误的方式安装防火墙。 #1 二、防范黑客攻击的措施 #1 1.选用安全的口令 根据十几个黑客软件的工作原理,参照口令破译的难易程度,以破解需要的时间为排序指标,这里列出了常见的危险口令:用户名(账号)作为口令;用户名(账号)的变换形式作为口令;使用生日作为口令;常用的英文单词作为口令;5位或5位以下的字符作为口令。 因此,我们在设置口令时应遵循以下原则: ●口令应该包括大写字母、小写字母及数字,有控制符更好; ●口令不要太常见; ●口令至少应有八位长度; ●应保守口令秘密并经常改变口令。最糟糕的口令是具有明显特征的口令,不要循环使用旧的口令; ●至少每九十天把所有的口令改变一次,对于那些具有高安全特权的口令更应经常地改变; ●应把所有的缺省口令都从系统中去掉,如果服务器是由某个服务公司建立的,要注意找出类似GUEST、MANAGER、SERVICE等的口令并立即改变这些口令; ●如果接收到两个错误的口令就应断开系统联接; ●应及时取消调离或停止工作的雇员的账号以及无用的账号; ●在验证过程中,口令不得以明文方式传输; ●口令不得以明文方式存放于系统中,确保口令以加密的形式写在硬盘上并且包含口令的文件是只读的; ●用户输入的明口令,在内存逗留的时间尽可能缩短,用后及时消毁; ●一次身份验证只限于当次登录(login),其寿命与会话长度相等; ●除用户输入口令准备登录外,网络中的其它验证过程对用户是透明的。 我们之所以如此强调口令设置的重要性,是因为关于网站安全调查的结果表明:超过80%的安全侵犯都是由于人们选用了拙劣的口令而导致的。这样,我们可以推断,80%的入侵可以通过选择好的口令来阻止。 #1 2.实施存取控制 存取控制规定何种主体对何种客体具有何种操作权力。存取控制是内部网安全理论的重要方面。它包括人员权限、数据标识、权限控制、控制类型、风险分析等内容。 #1 3.保证数据的完整性 完整性是在数据处理过程中,在原来数据和现行数据之间保持完全一致的证明手段。一般常用数字签名和数据谪压算法来保证。 #1 4.确保数据的安全 通过加密算法对数据进行加密,并采用数字签名及认证来确保数据的安全。 #1 5.使用安全的服务器系统 如今可以选择的服务器系统是很多的:Unix、Windows NT、Novell、Intranet等,但是关键服务器最好使用Unix系统。 #1 6.谨慎开放缺乏安全保障的应用和端口 #1 7.定期分析系统日志 这类分析工具在Unix中随处可见。NT Server的用户现在可以利用Intrusion Detection公司的Kane Security Analyst(KSA)来进行这项工作。欲了解其更多的细节可查看地址为http://www.intmsion.com的Web网点。 #1 8.不断完善服务器系统的安全性能 很多服务器系统都被发现有不少漏洞,服务商会不断在网上发布系统的补丁。为了保证系统的安全性,应随时关注这些信息,及时完善自己的系统。 #1 9.排除人为因素 再完善的安全体制,没有足够重视和足够安全意识和技术的人员经常维护,安全性将大打折扣。 #1 10.进行动态站点监控 及时发现网络遭受攻击情况并加以防范,避免对网络造成任何损失。 #1 11.攻击自己的站点 测试网络安全的最好方法是自己尝试进攻自己的系统,并且不是做一次,而是定期地做,最好能在入侵者发现安全漏洞之前自己先发现。如果我们从Internet上下载一个口令攻击程序并利用它,这可能会更有利于我们的口令选择。如果能在入侵者之前自己发现不好的或易猜测的口令,这是再好不过的了。 #1 12.请第三方评估机构或专家来完成网络安全的评估 这样做的好处是能对自己所处的环境有个更加清醒的认识,把未来可能的风险降到最小。 #1 13.谨慎利用共享软件 许多程序员为了测试和调试的方便,都在他们看起来无害的软件中藏有后门、秘诀及陷阱,发布软件时却忘了去掉它们。对于共享软件和免费软件,一定要彻底地检测它们。如果不这样做,可能会损失惨重。 #1 14.做好数据的备份工作 这是非常关键的一个步骤,有了完整的数据备份,才是我们在遭到攻击或系统出现故障时能迅速恢复我们的系统。 #1 15.主动防御 我们也可以使用自己喜欢的搜索引擎来寻找口令攻击软件和黑客攻击软件,并且在自己的网络上利用它们来寻找可能包含系统信息的文件。这样我们也许就能够发现某些我们还未觉察到的安全风险。 相关软件的站点推荐如下: http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.txt http://www.cerf.net/~paulp/cgi-security http://theory.lcs.mit.edu/~revest/crypt-security.html ftp://ftp.netcom.com/pub/qwerty/ http://www.psy.uq.oz.au/~ftp/crypto/ http://www.umr.edu/~cgiwrap SSL 文档:http://home.netscape.com/info/SSl.html 附加文档:http://home.mcom.com/newsref/ref/internet-security.html 库下载:ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL PGP 简介:http://web.mit.edu/network/pgp-form.html 欧洲版本:ftp://ftp.infomatik.uni-hamburg.de/virus/crpt/pgp/tools 公共密匙加密:http://world.std.com/~franl/crypto/crypto.html RSA加密专利公司:http://www.rsa.com.faq/ #1 16.使用防火墙 防火墙正在成为控制对网络系统访问的非常流行的方法。事实上,在Internet上的Web网点中,超过三分之一的Web网点都是由某种形式的防火墙加以保护的,这是对黑客防范最严、安全性较强的一种方式,任何关键性的服务器,都建议放在防火墙之后,任何对关键服务器的访问都必须通过代理服务器,这虽然降低了服务器的交互能力,但为了安全,这点牺牲是值得的。 但是,防火墙也存在以下的局限性: ●防火墙不能防范不经由防火墙的攻击。如果内部网用户与Internet服务提供商建立直接的SLIP或PPP连接,则绕过了防火墙系统所提供的安全保护; ●防火墙不能防范人为因素的攻击; ●防火墙不能防止受病毒感染的软件或文件的传输; ●防火墙不能防止数据驱动式的攻击。当有些表面看来无害的数据邮寄或拷贝到内部网的主机上并被执行时,可能会发生数据驱动式的攻击。 对此,提出以下几点建议; (1)对敏感性页面不允许缓存; (2)不要打开未知者发来的邮件附件; (3)不要使用微软的安全系统; (4)不要迷信防火墙。