三、Web服务器设备和相关软件的安全考虑
Web服务器的硬件设备和相关软件的安全性是建立安全的Web站点的坚实基础。人们在选择Web服务器主机设备和相关软件时,除了考虑价格、功能、性能和容量等因素外,切莫忽略安全因素,因为有些服务器用于提供某些网络服务时存在安全漏洞。挑选Web服务器技术通常要在一系列有冲突的需求之间作出折中的选择,要同时考虑建立网站典型的功能需求和安全要求
对于Web服务器,最基本的性能要求是响应时间和吞吐量。响应时间通常以服务器在单位时间内最多允许的链接数来衡量,吞吐量则以单位时间内服务器传输到网络上的字节数来计算。
典型的功能需求有:提供静态页面和多种动态页面服务的能力;接受和处理用户信息的能力;提供站点搜索服务的能力;远程管理的能力。
典型的安全需求有:在已知的Web服务器(包括软、硬件)漏洞中,针对该类型Web服务器的攻击最少;对服务器的管理操作只能由授权用户执行;拒绝通过Web访问Web服务器上不公开的内容;能够禁止内嵌在操作系统或Web服务器软件中的不必要的网络服务;有能力控制对各种形式的执行程序的访问;能对某些Web操作进行日志记录,以便与入侵检测和入侵企图分析;具有适当的容错功能。
所以,在选择Web服务器时,首先要从建立网站的单位的实际情况出发,根据安全政策决定具体的需求,广泛地收集分析产品信息和相关知识,借鉴优秀方案或实施案例的精华,选择你认为能够最好地满足本单位包括安全考虑在内的需求的产品组合。
四、建立安全的Web网站
在本篇文章的开始讨论过Web站点的组成的三个部分。需要强调的是,主机操作系统是Web的直接支撑者,合理配置主机系统,能为Web服务器提供强健的安全支持。
1、理解配置主机操作系统
(1) 仅仅提供必要的服务
已经安装完毕的操作系统都有一系列常用的服务,UNIX系统将提供Finger、Rwho、RPC、LPD、Sendmail、FTP、NFS、IP转发等服务。Windows NT系统将提供RPC(远程过程调用)IP(网际协议)转发、FTP(文件传输协议)、SMTP(简单邮件传输协议)等。而且,系统在缺省的情况下自动启用这些服务,或提供简单易用的配置向导。这些配置简单的服务应用在方便管理员而且增强系统功能的同时,也埋下了安全隐患。因为,关于这些应用服务的说明文档或是没有足够的提醒,或是细碎繁杂使人无暇细研,不熟练的管理员甚至没有认真检查这些服务的配置是否清除了已知的安全隐患。
为此,在安装操作系统时,应该只选择安装必要的协议和服务;对于UNIX系统,应检查/etc/rc.d/目录下的各个目录中的文件,删除不必要的文件;对于Windows系统,应删除没有用到的网络协议,不要安装不必要的应用软件,如C/C++编译程序等。一般情况下,应关闭Web服务器的IP转发功能。
系统功能越单纯,结构越简单,可能出现的漏洞越少,因此越容易进行安全维护。对于专门提供Web信息服务(含提供虚拟服务器)的网站,最好由专门的主机(或主机群)作Web服务器系统,对外只提供Web服务,没有其他任务。这样,可以保证(1)使系统最好地为Web服务提供支持;(2)管理人员单一,避免发生管理员之间的合作不调而出现安全漏洞的现象;(3)用户访问单一,便于控制;(4)日志文件较少,减轻系统负担。
对于必须提供其他服务,如(提供需拟网站服务)FTP服务与Web服务共用文件空间,既FTP和HTTP共享目录,则必须仔细设置各个目录、文件的访问权限,确保远程用户无法上传通过Web服务所能读取或执行的文件。
(2) 使用必要的辅助工具,简化主机的安全管理
启用系统的日志(系统帐户日志和Web服务器日志)记录功能。监视并记录访问企图是主机安全的一个重要机制,以利于提高主机的一致性以及其数据保密性。
Unix系统,可以在服务器上安装tcp_wrapper工具。它在其他网络服务启动之前首先启动。tcp_wrapper的配置文件可以控制只有本主机上的用户才可以用登陆(Telnet)到本服务器。
Windows NT提供端口访问控制功能,有助于加强Web服务器的安全。在网络→协议→TCP/IP协议属性→高级,选用“启用安全机制” → 配置,将出现窗口。选择“仅允许”,便可以利用“添加”功能,设置允许访问的端口。
2、合理配置Web服务器
(1)在Unix OS中,以非特权用户而不是Root身份运行Web服务器。(如Nobody、www、Daemon)
(2)设置Web服务器访问控制。通过IP地址控制、子网域名来控制,未被允许的IP地址、IP子网域发来的请求将被拒绝;
(3)通过用户名和口令限制。只有当远程用户输入正确的用户名和口令的时候,访问才能被正确响应。
(4)用公用密钥加密方法。对文件的访问请求和文件本身都将加密,以便只有预计的用户才能读取文件内容。
3、设置Web服务器有关目录的权限
为了安全起见,管理员应对“文档根目录”(HTML文件存放的位置)和“服务器根目录”(日志文件和配置文件存放的位置)做严格的访问权限控制;
(1)服务器根目录下存放日志文件、配置文件等敏感信息,它们对系统的安全至关重要,不能让用户随意读取或删改;
(2)服务器根目录下存放CGI脚本程序,用户对这些程序有执行权限,恶意用户有可能利用其中的漏洞进行越权操作,比如,增、删、改;
(3)服务器根目录下的某些文件需要由Root来写或者执行,如Web服务器需要Root来启动,如果其他用户对Web服务器的执行程序有写权限,则该用户可以用其他代码替换掉Web服务器的执行程序,当Root 再次执行这个程序时,用户设定的代码将以Root身份运行。
4、谨慎组织Web服务器的内容
5、安全管理Web服务器
Web服务器的日常管理、维护工作包括Web服务器的内容更新,日志文件的审计,安装一些新的工具、软件,更改服务器配置,对Web进行安全检查等。主要注意以下几点:
(1)以安全的方式更新Web服务器(尽量在服务器本地操作);
(2)经常审查有关日志记录;
(3)进行必要的数据备份;
(4)定期对Web服务器进行安全检查;
(5)冷静处理意外事件。
五、Web网站的安全管理
1、建立安全的Web网站,首先要全盘考虑Web服务器的安全设计和实施。无论是政府网站,还是企业、商业机构或是社会团体,各自都有其特殊的安全要求,所以,根据本单位的实际情况出发,周密制定安全政策是实现系统安全的前提。
2、对Web系统进行安全评估,也就是说,权衡考虑各类安全资源的价值和对它们实施保护所需要的费用。这个当中不能只考虑看得见的资源实体,应该综合考虑资源带来的效益,资源发生不安全情况的几率,资源的安全保护被突然破坏时将可能带来的损失。
3、制定安全策略的基本原则和管理规定,即指明各类资源的基本安全要求以及为了达到这种安全要求应该实施的事项。安全管理是由个人或组织针对为了达到特定的安全水平而制定的一整套要求有关部门人员必须遵守的规则和违规罚则。对于Web服务提供者来说,安全管理的一个重要的组成是哪个人可以访问哪些Web文挡,获权访问Web文档和使用这些访问的人的有关部门权利和责任,有关人员对设备、系统的管理权限和维护守则,失职处罚等。
4、对员工的安全培训,培养员工主动学习安全知识的意识和能力。一个网站的安全政策必须被每一个工作人员所理解,这样才可能让每一个员工自觉遵守、维护它。
尽管如此,Web网站的安全是相对的,没有绝对的安全,我们只能把遭受攻击的可能性降到最低。更重要的是,必须做到“有法必依”,把安全政策体现到设备的选购、网络结构的设计、人员的配置、管理及每一个人的日常的工作中。
本文所用到的英汉缩略说明:
Web 是 World Wide Web 的简称
HTTP(Hyper Text Transfer Protocol) 超文本传输协议
IIS (Internet Information Server) Internet 信息服务器
CGI(Common Gateway Interface) 公共网关接口
LAN(Local Area Network) 局域网
RPC(Remote Procedure Call) 远程过程调用
TCP(Transmission Control Protocol) 传输控制协议
IP(Internet Protocol) 网际协议
FTP(File Transfer Protocol) 文件传输协议
SMTP(Simple Mail Transfer Protocol) 简单邮件传送协议
PC(Personal Computer) 个人计算机
OS(Operating System) 操作系统