张正东
由于B/S架构的兼容性和开放性,以及Web访问对用户端的低成本需求,Web应用系统被大量部署和采用,因此,Web应用系统安全隐患的识别、检测与防范十分重要,需要从技术层面进行分析,并结合运维实践,提出安全技术措施。
一、Web访问机理概述
Web在网页设计中称为网页,表现为三种形式,即超文本(Hypertext)、超媒体(Hypermedia)、超文本传输协议(HTTP)等。用户的Web访问具有不确定性,其浏览顺序和内容完全由用户自己决定,用户通过填写FORM向服务器提交获得动态信息的请求、服务器根据用户请求返回结果信息。
用户在浏览器上输入URL(Uniform Resource Locator统一资源定位符),域名系统进行解析后确定IP地址,向在IP地址映射的服务器发送一个HTTP请求。在通常情况下HTML文本、图片和该网页的一切其他文件会被逐一推送回用户端,浏览器生成用户所看到的“网页”。
由于B/S架构和Web访问对用户端的配置需求和维护成本极低,越来越多的应用系统采用此种方式进行部署,成为Web应用系统。
二、Web应用系统面临安全威胁
Web应用系统面临的安全威胁主要表现在非授权访问、伪用户登录、破坏数据完整性等方面。它们主要利用以下途径:应用软件系统自身的漏洞、应用软件系统的安全体系缺陷、合法用户的安全意识薄弱以及安全管理制度缺失。安全威胁分为人为威胁和自然威胁,人为威胁都是有目的的恶意攻击,人为威胁分为主动性攻击和被动性攻击两大类。
(一)主动性攻击
主动攻击是指攻击者未经授权和许可,截获或篡改系统管理权限、拒绝或中止某些用户对系统的合法访问行为。这方面攻击往往是对数据通道中正在传输的数据单元进行更改、删除、延迟、拷贝重发或插入、合成或伪造等各种恶意处理行为,并以更改报文流、拒绝报文服务、伪造连结初始化等形式达到攻击目的。主动攻击通常易于探测但却难于防范。
(二)被动性攻击
被动攻击是指攻击者通过监听网络上传输的信息流、截获信息内容的行为。这类攻击主要是为了获得信息流长度、传输频率等技术性要素,同时观察和解析数据单元包含的信息(如用户数据、协议控制信息),但不纂改或破坏数据单元内容。攻击者通过这种看似“安全”行为来了解和熟悉正在进行的通信详情,以便达到用其他方法窃取或破坏应用系统和数据资源的攻击目的。因此,相对主动性攻击而言,信息发送者和接收者发现被动攻击是困难的。通常情况下,通过对用户信息进行加密可以避免被动攻击。
由此可见,Web应用系统可能受到的攻击和攻击形式是多种多样的,而且往往是多种攻击同时存在。如何有效防范非法攻击、提高应用系统安全性是一项复杂的任务,需要通过多种安全服务措施和健全管理机制来实现。
三、如何有效地提高Web应用系统的安全性
为了保证应用系统的安全运行,保护计算机硬件、软件和系统数据不被攻击、破坏、更改或泄漏,需要从技术方面采用以下安全措施。
(一)应用防火墙技术
防火墙技术是建立在现代通信网络技术和信息安全技术基础上的网络应用安全技术,可应用在企事业单位内部专用网络,以及内部网络与外部公用网络互联环境条件下,尤其是以接入Internet网络使用最为广泛。
防火墙是指设置在不同网络(如可信任的企业内部网和不可信的外部公共网)或网络安全域之间的一系列硬件和软件的组合,是不同网络或网络安全域之间信息的唯一出入口,它能根据用户的安全政策(允许、拒绝、监测)控制出入网络的信息流,且有较强的抗攻击能力。防火墙能够提供信息安全服务,在逻辑上,防火墙既是一个分离器、限制器,又是一个分析器,能够有效地监控内部网和外部公用网络的信息交互活动,以保证内部网络的安全。
1. 企业网络级防火墙,用来防止整个内部安全网络检测外部的非法入侵,包括分组过滤和授权服务器。分组过滤负责检查所有流入内部网络的信息,拒绝所有不符合内部网络预定安全策略的数据,授权服务器则检查系统用户的登录是否合法。
2. 企业应用级防火墙,从应用程序入手对访问接入进行控制。通常使用应用网关或代理服务器来区分各种应用,如只允许某类用户访问外部网络,但阻止FTP应用的通过。
(二)增强用户管理的安全性
Web应用系统企事业单位内部多个单位及部门的用户同时登录和使用,因此在系統安全性设计上,可采用角色管理和用户身份验证的安全策略。
1. 角色管理
角色管理将应用系统中不同模块权限和对象权限建立映射关系而形成集合,即角色。通过对系统功能模块的划分,不同角色对不同模块具有不同的访问控制权限,从而限制了无关用户对特定功能模块的访问。
2. 系统用户身份验证
身份验证技术通过登录用户向应用系统出示自己身份证明、系统核查用户身份证明的有效性来判断和确认通信双方的真实有效身份。应用系统依靠Internet信息服务(IIS)的身份验证技术和Windows NT文件系统的访问控制。访问请求通过网络客户进入IIS,IIS可以选择使用基本的、简要的或集成的Windows 身份验证技术对客户进行身份验证。如果验证通过。那么IIS将根据验证后的结构生成新的对ASP.NET程序的访问,从而简化了系统设计中安全验证的工作量。如图1。
(三)增强ASP.NET程序的安全性
Web应用系统在程序设计过程中,采取以下措施来提高安全性。
1. 防止SQL注入攻击。在编写代码时,要禁止用户输入非法、危险和内定义的字符,如单引号(或)、or、and、*、<、>、空格等,同时在客户端和服务器端都要对用户输入的信息进行验证;同时,在编写程序中要尽量使用存储过程技术。使用存储过程不仅可以防止某些类型的SQL注入式攻击,还可以提高SQL语句的执行速度;在程序出现异常时,程序会自动跳转到固定页面,而不是将错误信息显示给用户,防止代码被截获。
2. 为了有效管控对业务数据的访问授权,防止用户冒名登录、或者直接在浏览器地址栏中输入链接地址、从而进入某个超出用户权限的页面,可为Session设置有效期。当Session值过期时,该登录账号失去了再次使用系统的权利,必须重新登录系统,这样可以防止用户离开计算机时被冒名使用。如图2。
3. Web应用系统一般具有附件上传和导出下载功能。在附件上传时,为了防止恶意上传破坏系统,需要在上传时对文件类型进行判断和验证。除特定文件类型外,其他类型的文件一律禁止上传,尤其是后缀为asp、aspx及exe的文件。
(四)在数据库管理中应用数据加密技术
由于应用系统的关键信息和数据都存储在数据库中,因此,数据库加密是Web应用系统安全的重要环节。数据加密技术是把重要应用数据经过特定算法加密后、再进行传送;加密后的数据信息不易被非法入侵者阅读或理解,到达目的地后再进行解密还原。根据加密密钥和解密密钥在性质上的不同,ASP.NET应用中提供了两种加密算法,即对称加密算法和非对称加密算法。
1. 对称加密是加密和解密使用相同密钥的加密算法。它的优点是保密程度较高、运算负载小、处理速度快、使用方便快捷、密钥短且破译困难。由于持有密钥的双方都可以使用该密钥解密数据,因此必须保证密钥不被未经授权的非法用户得到。在对称加密算法中广泛使用的是DES加密算法。
2. 非对称加密是加密和解密使用不同密钥的加密算法。它使用了一对密钥,一个用于加密信息、另一个用于解密信息。通信双方无需事先交换密钥就可以进行保密通信。但是加密密钥不同于解密密钥,加密密钥是公开的,任何人都可以使用;而解密密钥只有解密方 掌握。两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一密钥进行解密,它只可加密少量数据。在非对称加密算法中普遍使用的是RSA加密算法。
在实际应用中,可采用RSA与DES混合加密体制的方式进行数据信息加密。可以用对称加密算法(DES加密算法)加密较长的明文,用非对称加密算法(RSA加密算法)加密数字签名等较短的数据,这样既保证了数据的保密强度,又加快了系统运算速度。
四、完善数据安全备份策略
Web应用系统的关系数据库管理系统,一般均具备数据备份功能。数据备份方式有完全备份、差异备份以及增量备份三种。
(一)完全备份(Full Backup)
完全备份是指对某一个时间点上所有数据或应用进行一个完全拷贝。实际应用中就是用一盘磁带对整个系统进行完全备份,包括其中的系统和所有数据,完全备份会清除 文件属性。完全备份的优点是大大节省系统或数据恢复的时间。缺点是,各个全备份磁带中的备份数据存在大量的重复信息;由于每次需要备份的数据量较大,因此备份所需时间较长。
(二)增量备份(Incremental Backup)
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。增量备份只备份有标记的选中的文件和文件夹,它清除标记,既:备份后标记文件,换言之,清除存档属性。
增量备份的优点就是没有重复的备份数据,因此备份数据量不大、备份所需的时间很短。缺点是对备份磁带连续性要求较高导致的可靠性降低,如果环节中间有一个磁带出现故障,整个数据恢复将失败、风险较大;其次是恢复过程必须沿着从全备份到依次增量备份的时间顺序倒序恢复,因此恢复时间较长。
(三)差异备份(Differential Backup)
差異备份是指在一次完全备份后至本次备份的时间段内,对增加或者修改文件进行备份。差异备份只备份有选中标记的文件和文件夹,不清除标记,即在备份后对已备份文件不做标记。换言之,不清除存档属性。在数据恢复时,只需对第一次全备份和最后一次差异备份进行恢复。
差异备份在避免了其它两种备份策略缺点的同时,兼顾了它们各自的优点。首先,它具有了增量备份需要时间短、节省磁盘空间的优势;其次,它又具有了全备份恢复所需磁带少、恢复时间短的特点。系统运维人员只需要两盘磁带,即全备份磁带与灾难发生前一天的差异备份磁带,就可以将数据恢复。
在数据库运维实践中,无论采用何种备份方式,运维人员都要严格执行技术规范和管理制度,首先在操作过程中对备份时间、备份对象、备份策略做好手工记录,其次在备份介质的标签上记录备份时间和备份编号,第三要把备份介质异地、安全保管,预防系统硬件和备份介质同时遭遇水、火、盗窃、电磁等灾难性事故。
Web应用系统的安全管理,要结合系统运行的具体环境和条件,从网络环境、用户管理、程序设计开发、数据加密和数据备份等方面对可能存在的安全威胁进行分析,制定有效可行的安全防护技术措施,最大限度地保障和管控系统安全,有效控制安全风险。