65.9K
CodeProject 正在变化。 阅读更多。
Home

网络安全基础

2002年9月23日

7分钟阅读

viewsIcon

115991

网络安全系列文章的第一篇,面向 Web 开发人员

网络安全基础

这是(希望)一系列安全文章中的第一篇。这些文章主要面向 Web 开发人员,但我希望它们对任何想了解该主题的人都有帮助。

作为开发人员,我们一直在进行一场持续的斗争——我们需要让我们的应用程序对用户尽可能简单,但同时也要让黑客尽可能难破解。在此阶段有一个重要的说明——传统上,黑客是优秀的程序员,而恶意的程序员/黑客被称为破解者。不幸的是,由于好莱坞电影的影响,破解者现在被称为黑客。目前我将继续称他们为破解者——欢迎就此问题提供反馈。

从安全角度来看,一个基本的企业网络

企业网络应该位于防火墙后面。任何具有永久(宽带/ADSL)连接的家庭 PC 也应该至少有一个软件防火墙,例如 Zonealarm (www.zonelabs.com)。防火墙基本上是这样工作的:

防火墙有 3 个区域——不可信区、可信区和 DMZ(非军事区)。

不可信端口接收到外部世界的连接(例如 ADSL 线)。

DMZ 是您网络中包含全世界都可以访问的服务器的区域,最常见的例子是您的 Web 服务器。邮件中继服务器也位于此区域。

可信区域是您网络内部的 LAN。您的所有用户都位于可信区域。明智的做法是在网络的 DMZ 和可信区域使用两个完全不同的 IP 地址范围和子网(不可信 IP 没有选择——它由您的 ISP 分配)。这意味着即使破解者设法攻破了您 DMZ 中的一台计算机,他们也无法获取有关您如何设置网络可信区域的任何信息。为您的可信网络使用一个管理员用户名和密码,并为 DMZ 中的每台服务器使用完全不同的用户名和密码也是明智的。同样,如果破解者攻破了一个 Web 服务器的管理用户名和密码,您 DMZ 中的其他 Web 服务器将保持安全。但是,这种情况永远不应该发生。

预防胜于治疗——这一点在网络安全方面怎么强调都不为过。

想象一下——您有一个电子商务网站,人们正在愉快地通过您的网站购物,使用他们的信用卡。某个恶意个人发现他无法进入并窃取有关使用您网站的人的任何信息,或他们的信用卡详细信息。然而,他设法在您的网站上放置了他自己的 index.htm 页面,其中包含一个骷髅旗帜和文字“您被黑了!”。此时,您可以关门大吉了。无论您如何尝试解释没有信息被盗——负面宣传都会摧毁您。承诺将来改进安全性也无济于事,公众将对您的品牌失去信心。

保护您网络的初始步骤

切勿使用 administrator、guest、test 或 user 等帐户名。立即删除或禁用 guest 帐户。重命名 administrator 帐户——但不要重命名为 admin!需要记住的用户名和密码太多本身就可能导致失误,但幸运的是,整个可信端只需要一个管理员帐户。正如我上面所说,为 DMZ 区域中的每台计算机分别命名管理员帐户是明智的。这些服务器最有可能受到攻击,因为它们必须至少有一个端口对外开放(Web 服务器是 80 和 443),并且当有窗口打开时,足够决心的人就能找到办法进入。

找到一个可靠的端口扫描器,并从您的网络外部(例如,晚上在家)扫描开放端口。有 65353 个端口,前 1024 个称为常用端口(它们被分配了某种用途——如果您编写网络软件,请始终使用 1024 以上的端口)。如果其中一个端口是开放的,就存在一个漏洞。不幸的是,为了有用,服务器至少需要有一个端口开放。我们在 DMZ 中最关心的主要端口是 80(HTTP)、443(HTTPS——安全)和 25(SMTP——用于邮件中继服务器)。所有其他端口都应关闭。不幸的是,Windows 倾向于打开许多端口,以便在您运行的程序想要使用其中一个端口时节省处理时间。从用户角度来看很好,但从安全角度来看非常糟糕。经常从家里、朋友的办公室等地方扫描您的网络。如果发现开放端口,请将其关闭。

还需要扫描 TCP 和 UDP 端口。由于许多公司只检查其 TCP 端口是否关闭,破解者会隐藏在 UDP 端口中以便闯入您的计算机。

另一件重要的事情是切勿将您的主页命名为 index、default 或 home。将您的 Web 服务器设置为查找其他内容(例如,companynamehome.asp),这样,如果黑客设法将他自己的 index 版本复制到您的 Web 服务器上,它也不会显示,因为您的服务器正在查找其他内容。

每天检查您的服务器日志。这很有用,原因有几个。首先,您可以查看每天有多少人使用您的网站。您可以使用报告软件(例如 Crystal Reports)以比防火墙提供的文本文件更友好的格式显示此信息。此外,您会注意到是否有人反复搜索您的服务器上的可疑内容——我经常在日志中看到对 cmd.exe 的请求。如果有人能够访问 cmd.exe,他们就控制了您的计算机。学习识别可疑活动不会花费太长时间。幸运的是,您可以采取措施解决这个问题——如果您看到某个 IP 地址不断请求不是您网站一部分的内容,请对其进行 whois 查询。最简单的方法是访问 www.samspade.org,然后在 IP Whois 字段中输入 IP 地址。这将为您提供有关该人所在国家/地区以及其 ISP 的信息。如果此活动继续,请联系 ISP。他们将被要求联系该人,并解释通过其门户进行破解是不可接受的。

这样定期检查您的日志是您对抗破解者的最佳防御。如果您能在他们获取任何有关您网络的有用信息之前阻止他们,他们就无处可入。

早期的警惕将为您节省很多麻烦,也为您的公司节省很多尴尬。

上述方法只是您避免巨大损失的几种方式。幸运的是,人们越来越意识到正确网络安全的好处。您使用的编程方法也会对破解者是否能够滥用您的网站产生巨大影响。我的下一篇文章将重点介绍这些方法。

最后,我想说的是,我的眼睛大约在 6 个月前才意识到严格网络安全的重要性。我发现最令人惊讶的是,大多数破解者并不是拥有计算机系统深刻理解的高度复杂的个人。大多数是“脚本小子”——13 岁的孩子,他们下载了免费的网络安全工具(例如端口扫描器),仅仅学会了如何运行它们,却不理解它们的工作原理。当扫描器向他们发出漏洞警报时,他们就会进入并涂鸦网站——他们对窃取您的数据几乎不感兴趣。不幸的是,他们的涂鸦足以摧毁一家优秀的公司。当我意识到这一点时,我决定从那时起,我想完全控制我的网站,而不是将其交由这些人摆布。在我看来,实现这一目标的最佳方法是让开发人员以与破解者相同的方式共享信息。

扫描愉快!

© . All rights reserved.