1.2 服务器的安全
服务器是客户机的信息资源不对等实体,它对外提供资源的共享和访问。对于电子商务的实施,建立安全的电子商务服务器系统是至关重要的。要防止服务器被破坏和非法获取信息,重点要考察其入口。服务器的入口包括WWW服务器及其软件、公共网关接口(CGI)程序、asp、jsp、pl、php等其他工具程序,以及任何有数据的后台程序,如数据库和数据库服务器。
1.2.1 服务器的安全威胁
1.对WWW服务器的安全威胁
WWW服务器软件涉及的主要目标是支持WWW服务和方便使用,即响应HTTP请求进行页面传输。其面临的安全威胁主要有:
① WWW服务器如果以高权限状态运行,就构成对WWW服务器的安全威胁,破坏者就可利用WWW服务器的能力执行高权限的指令。
② WWW服务器如果不更改目录显示的默认设置,它的保密性就会大打折扣。如果一个服务器的文件夹名能让浏览器看到,就会破坏保密性。
③WWW服务器要求输入的用户名和口令可能被泄露,Cookie信息有可能被窃听者复制。
④ 嵌入由服务器执行的页面上的小程序会造成服务器的不安全,比如,黑客入侵网站使用的“小马”和“大马”。
⑤ FTP程序会对WWW服务器的完整性带来安全威胁。如果对FTP用户可浏览的文件夹没有进行保护,就可能发生未经授权的信息泄露。
⑥ 存放用户名和口令的文件可能没有得到保护。
⑦ 用户所选的口令也会构成安全威胁。
Microsoft Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态的、交互的Web服务器应用程序。使用ASP可以组合HTML页、脚本命令和Active X组件以创建交互的Web页和基于Web的功能强大的应用程序。现在很多网站,特别是电子商务方面的网站,在前台上大多用ASP来实现,以至于目前ASP在网站上的应用很普遍。
ASP脚本是一系列按特定语法(目前支持VBScript和JavaScript两种脚本语言)编写的与标准HTML页面混合在一起的脚本所构成的文本格式的文件。当客户端的最终用户用Web浏览器通过Internet来访问基于ASP脚本的应用时,Web浏览器将向Web服务器发出HTTP请求。Web服务器分析、判断出该请求是ASP脚本的应用后,自动通过ISAPI接口调用ASP脚本的解释运行引擎(ASP.DLL)。ASP.DLL将从文件系统或内部缓冲区获取指定的ASP脚本文件,接着就进行语法分析并解释执行。最终的处理结果将形成HTML格式的内容,通过Web服务器“原路”返回Web浏览器,由Web浏览器在客户端形成最终的结果呈现。这样就完成了一次完整的ASP脚本调用。若干个相关的ASP脚本调用就组成了一个完整的ASP脚本应用。
当使用ASP时,必须将存放.asp文件的目录设置为“Excute(执行)”。建议在设置Web站点时,将HTML文件同ASP文件分开放置在不同的目录下,然后将HTML子目录设置为“读”,将ASP子目录设置为“执行”,这不仅方便了对Web的管理,而且最重要的是提高了ASP程序的安全性,防止了程序内容被客户端访问。
2.对数据库的安全威胁
把电子商务、电子贸易的着眼点集中于Web服务器、Java和其他新技术的同时,应该记住这些以用户为导向和企业对企业的系统都是以Web服务器后的关系数据库为基础的。它的安全直接关系到系统的有效性、数据和交易的完整性与保密性。系统的延时会降低效率欠佳,不仅影响商业活动,还会影响公司的信誉。不可避免地,这些系统受到入侵的可能性更大,但是并未对商业伙伴和客户敏感信息的保密性加以更有效的防范。此外,ERP和管理系统,如ASPR/3和PeopleSoft等,都是建立在相同标准的数据库系统中的。无人管理的安全漏洞与时间拖延、系统完整性和客户信任等问题有直接的关系。
数据库的安全威胁主要包括事务内部的故障、系统范围内的故障、介质故障、计算机病毒与黑客。其中,数据库系统故障又称数据库软故障,是指系统突然停止运行时造成的数据库故障,如CPU故障、突然断电和操作系统故障。介质故障又称数据库硬故障,主要指外存故障,如磁盘磁头碰撞和瞬时的强磁场干扰等。
① 数据库系统的安全性要求:包括物理上的完整性、逻辑上的完整性、元素的完整性、可审计性、访问控制、用户认证、可获(用)性,如表1.1所示。
表1.1 数据库系统对安全性的要求
② 数据库系统信息安全性依赖于两个层次:一层是数据库管理系统本身提供的用户名/口令字识别、视图、使用权限控制、审计等管理措施;另一层就是靠应用程序设置的控制管理。
③ 数据库保护:主要是指数据库的安全性、完整性、并发控制和数据库恢复。
3.公共网关接口(CGI)程序、asp、jsp、pl、php等其他工具程序的安全威胁
公共网关接口(CGI)程序、asp、jsp、pl、php等其他工具程序,都可以实现从WWW服务器到另一个程序的信息传输,如果滥用就会带来安全威胁。它们能够提高运行权限,以至于能自由访问系统资源;同时,它们很难追踪和管理。攻击者能够追踪这些工具程序,检查并了解它们,然后加以利用。
4.服务器所运行程序的安全威胁
① 通过客户机传输给WWW服务器或直接驻留在服务器上的Java或C++程序造成的缓存溢出性攻击。
② 服务器被用做攻击跳板的攻击威胁,如邮件炸弹。
1.2.2 保护电子商务服务器
电子商务服务器软件包括WWW服务器、FTP服务器、电子邮件服务器、远程登录服务器、数据库服务器、域名服务器和主机上的操作系统等。每种服务器软件都需要单独考虑制定其安全模式,还要做到整体上的统一协调。
1.商务服务器的安全解决方案
(1)访问控制和认证
访问控制和认证是指控制访问商务服务器的人和访问内容。服务器可用多种方式对用户进行认证。第一,证书是用户的许可证;第二,服务器检查证书上的时间标记以确认证书是否过期,并拒绝为过期证书提供服务;第三,服务器可使用呼叫系统,即根据用户名和为其指定的客户机地址的清单来核对用户名和客户机地址。
服务器若采用用户名与口令对用户进行认证,就必须维护合法用户的用户名与口令的数据库。以明文形式保存用户名,而用加密方式来保存口令。
WWW服务器一般是以提供访问控制列表的方式来限制用户的文件访问权限。访问控制列表是文件和其他资源及有权访问这些文件和其他资源的用户名的清单或数据库。每个文件都有自己的访问控制列表。当客户机请求WWW服务器以便访问一个已设置好访问检查的文件时,WWW服务器即检查此资源的访问控制列表以确定此用户是否有权访问此文件。
(2)操作系统控制
操作系统为运行在其上的WWW服务器提供了安全子系统,UNIX和Windows操作系统是大多数WWW服务器的运行平台。
UNIX系统的资源访问控制是基于文件的,为了维护系统的安全性,系统中每一个文件都具有一定的访问权限,只有具有这种访问权限的用户才能访问该文件,否则系统将给出Permission或Denied的错误信息。有3类用户:用户本人、用户所在组的用户、其他用户。允许权:R—读,W—写,X—执行。允许权组:A—管理员(所有权利),V—属主, G—组,O—其他每个人。
Windows的NTFS文件系统是一种安全的文件系统,因为它支持文件访问控制,人们可以设置文件和目录的访问权限,控制谁可以使用这个文件,以及如何使用这个文件。5个预定义的许可为:拒绝访问,读取,更改,完全控制和选择性访问。
(3)为电子商务服务器配置防火墙
防火墙在内网和外网之间建立了一层保护,通常也是第一道保护。公司同因特网间的通信都要经过防火墙,要保护的网络和计算机放在防火墙内,其他网络则处在防火墙之外。防火墙相当于一个过滤设备,它允许特定的信息流入或流出被保护的网络。
2.如何配置Web服务器的安全特性
(1)检查危及安全的漏洞
通常,如果IP地址设置不正确,就不能转换。一旦Web服务器获得IP地址和客户可能的域名,它就开始执行一系列验证手段。这里,有3个安全漏洞:
① 客户可能永远得不到要求的信息,因为服务器伪造了域名。客户可能无法获得授权访问的信息。
② 服务器可能向另一用户发送信息,因为客户伪造域名。
③ 误认闯入者是合法用户,服务器可能允许闯入者访问。
(2)加强服务器的安全的具体措施
① 认真配置服务器,使用它的访问和安全特性。
② 可将Web服务器当做无权的用户运行。
③ 检查驱动器和共享的权限,将系统设为只读状态。
④ 可将敏感文件放在基本系统中,再设二级系统,所有的敏感数据都不向因特网开放。
⑤ 充分考虑最糟糕的情况后,配置自己的系统。
⑥ 检查HTTP服务器使用的Applet脚本和客户交互作用的CGI脚本。防止外部用户执行内部指令。
⑦ 建议在Windows NT类服务器上运行Web服务器,这样会比较安全,尽管它不能提供像UNIX和Sun那样多的功能。
3.如何排除站点中的安全漏洞
最基本的安全措施是排除站点中的安全漏洞,使其降到最少,通常表现为以下4种方式。
① 物理的漏洞由未授权人员访问引起,由于他们能浏览那些不被允许的地方。用户不仅能浏览Web,而且可以改变浏览器的配置并取得站点信息,如IP地址、DNS入口等。
② 软件漏洞是由“错误授权”的应用程序引起的。例如,脚本和Applet,它会执行不应执行的功能。一条首要规则是:不要轻易相信脚本和 Applet。使用时,应确信能掌握它们的功能。
③ 不兼容问题漏洞是由不良系统集成引起的。一个硬件或软件运行时可能工作良好,一旦和其他设备集成后(如作为一个系统),就可能出现问题。这类问题很难确认,所以对每一个部件在集成进入系统之前,都必须进行测试。
④ 缺乏安全策略。如果用户用他们的电话号码作为口令,无论口令授权体制如何安全都没用。必须有一个包含所有安全必备(如覆盖阻止等)的安全策略。
4.防止和追踪黑客闯入和内部滥用
为了防止和追踪黑客闯入或内部滥用,需要对Web站点上的出入情况进行监视控制。
(1)监控请求
① 服务器日常受访次数是多少?受访次数增加了吗?
② 用户从哪里连接的?
③ 一周中哪天最忙?一天中何时最忙?
④ 服务器上哪类信息被访问?哪些页面最受欢迎?每个目录下有多少页被访问?
⑤ 每个目录下有多少用户访问?访问站点的是哪些浏览器?与站点对话的是哪种操作系统?
⑥ 更多的选择是哪种提交方式?
(2)测算访问次数和访问者数目
以下两个指标直接影响安全保护,也会促进安全性的提高和改善。
① 确定站点访问次数。访问次数是一个原始数字,仅仅描述了站点上文件下载的平均数目。
② 确定站点访问者数目。将访问次数与主页文件联系在一起时,该数字接近于某个时期内访问者数目,但不是百分之百的准确。
(3)传输
Web由传输协议、数据格式(HTML)及浏览器组成。使用协议、数据格式或浏览器,无须任何特别要求。
(4)传输更新
Web站点的连接信息必须不停地更新、重建与改变,否则,将严重限制Web站点的服务质量。一般来说,Web站点只允许单一种类的文本作为连接资源。
Apache是一个非常优秀的Web服务器。Apache的安装维护中需要注意以下问题:
① 检查文件和目录的权限是否恰当。
② httpd.conf、srm.conf和access.conf文件的设置是否适当。
③ 使服务器日志文件能够记录尽可能详细的信息。
④ 对某些需要特别保护的目录使用密码保护(.htaccess)。
⑤ 对CGI脚本或者程序进行封装。
⑥ 如果CGI使用Perl编写,要详细检查其安全性。
⑦ 检查SSI命令。
⑧ 使用TCP Wrappers和Tripwire。