文章信息
- 杨彦臣, 李淑华.
- Yang Yanchen, Li Shuhua.
- 林业信息共享Web应用程序安全的保护技术与策略
- Security Technologies and Strategies of Web Application Procedure about Forestry Information Sharing
- 林业科学, 2006, 42(增刊1): 72-79.
- Scientia Silvae Sinicae, 2006, 42(增刊1): 72-79.
-
文章历史
- 收稿日期:2005-07-22
-
作者相关文章
21世纪是信息化世纪, Internet迅猛发展, 成为全球最大的全开放的信息超级市场, 信息共享的程度随之提高, 数字信息越来越深入地影响着社会生活的各个方面, 而网络上的信息安全问题也日益突出。接入互联网络的用户面临诸多的风险:信息泄密、信息篡改、资源盗用、声誉损害等。这些风险的存在阻碍了计算机网络的应用与发展。在网络化、信息化进程不可逆转的形势下, 建立安全可靠的网络信息系统是一种必然选择。自Internet问世以来, 资源共享和信息安全就一直作为一对矛盾体而存在(赵晓林, 2001), 目前政府、金融、企事业单位和个人都日益重视这一重要问题。“数字林业”的核心是林业数据资源的共享, 资源共享的实施又必须以保护网络信息安全为前提。如何保护林业信息安全和网络安全, 最大限度地减少或避免因信息泄密、破坏等安全问题所造成的政治、经济损失及对社会形象的影响, 是亟需解决的一项具有重大战略意义的课题。
1 林业信息共享Web应用程序面临的威胁没有安全防范措施的Web应用程序极易受到攻击并瘫痪, 这些攻击根据其目标和目的可以分为6类。
1.1 欺骗欺骗就是试图使用伪造的假身份访问系统。这可以通过使用盗窃来的用户凭据或者假IP地址来实现。
1.2 篡改篡改就是未授权的第三方不仅获得对资源的访问权而且篡改信息, 如篡改数据文件中的值, 修改程序使其操作异样以及变更网上传输的消息内容(苏莹莹, 2003)。
1.3 否认否认就是用户(合法的或非法的)否认他们曾执行过特定操作或事务的能力。审核不足, 则很难检验否认攻击。
1.4 侦听侦听就是未授权的第三方(可能是个人、程序或计算机)取得对资源的访问权, 如窃听并获取网上传输的数据, 非法拷贝文件与程序。经常被侦听的信息包括隐藏的表单项、包含数据库连接字符串和连接细节的Web页注释以及可能导致暴露内部系统细节的异常处理信息(苏莹莹, 2003)。
1.5 中断中断就是使系统或应用程序不可使用的过程(苏莹莹, 2003)。例如, 通过请求来冲击服务器, 以消耗掉所有的系统可用资源, 或者通过给服务器传递格式错误的输入数据以使一个应用程序进程崩溃。
1.6 提高特权提高特权在这样的情况下就会出现:具有有限特权的用户假冒特权用户的身份来对应用程序进行特权访问。例如, 具有有限特权的攻击者可能会提高其特权级别来损害并控制具有更高特权与受信任的用户。
2 林业信息共享Web应用程序安全目标林业信息共享Web应用程序安全的目标主要是保障网络信息的安全, 即保密性(confidentiality)、完整性(integrity)、可用性(availability)、可控性(access contro1)和不可抵赖性(nonrepudiation) (Schneier, 2000)。
2.1 保密性保密性是网络信息不被泄露给非授权的用户、实体, 以避免信息被非法利用的特性。常用保密技术包括防侦听、防辐射、信息加密、物理保密。
2.2 完整性完整性是网络信息未经授权不能进行改变的特性, 即网络信息在存储或传输过程中保持不被偶然或蓄意删除、修改、伪造、乱序、重放、插入等破坏和丢失的特性。保障网络信息完整性的主要方法有协议、纠错编码方法、密码校验和方法、数字签名、公证等。
2.3 可用性可用性是网络信息可被授权实体访问并合法使用的特性。可用性还应该满足身份识别与确认、访问控制、审计跟踪、业务流控制等功能。
2.4 可控性可控性是对网络信息的传播及内容具有控制能力的特性。
2.5 不可抵赖性不可抵赖性也称作不可否认性, 在网络信息系统的信息交互过程中, 确信参与者的真实同一性, 即所有参与者都不可能否认或抵赖曾经完成的操作和承诺。
3 网络信息安全防卫的技术手段由于林业信息共享Web应用程序安全的目标主要是保障网络信息的安全, 因此其防卫技术手段也主要针对网络信息的安全。
3.1 网络访问控制技术防火墙技术是一种有效的网络安全机制, 用于确定哪些内部服务允许外部访问, 以及允许哪些外部服务访问内部服务, 其准则就是:一切未被允许的就是禁止的; 一切未被禁止的就是允许的。防火墙系统的安全防御能力很强, 能抵抗各种进攻和渗透。
防火墙技术可分为网络层与应用层2类, 分别对应于分组(或包)过滤路由器与应用层网关和电路层网关(吴亚青, 2004)。
3.1.1 网络层防火墙网络层防火墙保护整个网络不受非法入侵, 其典型技术是分组(或包)过滤技术, 即检查进入网络的分组, 将不符合预先设定标准的分组丢掉, 而让符合标准的分组通过。
3.1.2 应用层网关防火墙应用层网关防火墙控制对应用程序的访问, 即允许访问某些应用程序而阻止访问其他应用程序。采用的方法是在应用层网关上安装代理软件, 每个代理模块分别针对不同的应用。
3.1.3 电路层网关防火墙由于应用层代理服务器是为特定的服务而编写的软件, 如果网关没有为指定的服务设置代理服务器, 对应于这一服务的报文是不能通过网关的, 这就限制了它所能处理的应用协议。电路层网关不管任何应用协议, 只根据规则建立一个网络到另一个网络的连接, 不做任何审查、过滤或Telnet协议管理, 只在内部连接和外部连接之间来回拷贝数据。
3.2 信息确认技术信息确认技术通过严格限定信息的共享范围来达到防止信息被非法伪造、篡改和假冒(王海欣, 2004)。安全系统的建立依赖于系统用户之间存在的各种信任关系。目前在安全解决方案中, 多采用2种确认方式:一种是第三方信任, 另一种是直接信任, 以防止信息被非法窃取或伪造。可靠的信息确认技术应具有:合法身份的用户可以校验所接收的信息是否真实可靠, 并且十分清楚发送方是谁; 发送信息者必须是合法身份用户, 任何人不可能冒名顶替伪造信息; 出现异常时, 可由认证系统进行处理(赵晓林, 2001)。
目前, 信息确认技术已较成熟, 如信息认证、用户认证和密钥认证、数字签名等, 为信息安全提供了可靠保障。
3.2.1 信息认证为了保证在公开网络中传输信息的保密性, 认证机构或信息服务商应提供以下几方面的认证功能:1)对敏感的文件进行加密, 这样即使别人截获文件也无法得到其内容; 2)保证数据的完整性, 防止截获人在文件中加入其他信息; 3)对数据和信息的来源进行验证, 以确保发信人的身份。
通常采用秘密密钥加密系统(secret key encryption)、公开密钥加密系统(public key encryption)或者两者相结合的方式, 以保证信息的安全认证(赵晓林, 2001)。
3.2.2 用户认证这是一种从数据库到操作系统等各类软件中都很常见的安全防范技术。系统的每一位用户都被分配了一个唯一的用户名, 对关联该用户名的资源或功能的访问都要接受特定口令的保护。在应用层外的Web服务器级别可以采用HTTP基本授权方案(basic authentication scheme)来进行用户认证。用户认证机制的主要优点是它可以为创造出更复杂的授权方案提供选择。
3.3 密钥安全技术网络安全中, 加密技术种类繁多, 它是保障信息安全最关键和最基本的技术手段和理论基础, 信息加密的方法有对称密钥加密、非对称加密和不可逆加密。
3.3.1 对称密钥加密在此方法中加密和解密使用同样的密钥。这种方法的优点是计算量小、加密效率高; 但在分布式的系统中密钥管理较困难, 使用成本也较高。
3.3.2 非对称密钥加密在此方法中加密和解密使用不同密钥, 即公开密钥和秘密密钥, 公开密钥用于机密性信息的加密; 秘密密钥用于对加密信息的解密。非对称密钥加密在互联网中得到了广泛应用, 使用这种加密时要注意如何管理和确认公用密钥的合法性。
非对称加密的另一用法称为“数字签名” (digital signature)技术, 即数据源使用其私有密钥对数据的校验或其他与数据内容有关的变量进行加密, 而数据接收方则用相应的公用密钥解读“数字签名”并将解读结果用于对数据完整性的检验(李彦旭等, 2002)。
3.3.3 不可逆加密这种加密的特征是加密过程不需要密钥, 且经过加密后的数据无法被解密, 只有同样的输入数据经过同样的不可逆加密算法才能得到相同的加密数据(李彦旭等, 2002)。由于其加密计算工作非常复杂, 通常仅用于数据量较小情况下的加密。
4 林业信息共享Web应用程序安全的保护技术与策略保护林业信息共享Web应用程序安全的策略应该从整体性出发, 在3个层次上应用安全措施来确保Web应用程序的安全:网络层、主机层和应用程序层。本文主要讨论基于共享网站应用程序的安全保护技术与策略。
4.1 网络层安全的Web应用程序依赖于安全的网络基础结构。安全的网络作用不仅是保护其自身免受基于TCP/IP的攻击, 还要实施对策, 例如安全的管理接口和可靠的密码。安全的网络还要负责保证正在传输的通信量的完整性。在网络层, 主要利用先进且适合应用情况的防火墙技术来保障网络安全。
4.2 主机层需要保护的主机一般包括Web服务器、应用程序服务器和数据库服务器等, 但无论是哪种主机, 具体的保护措施都是对其进行安全的配置。
4.2.1 修补程序及时下载最新的补丁并更新是保障服务器安全的第一步, 否则将给攻击者带来更多潜在的机会。
4.2.2 服务服务集合由服务器的角色和其承载的应用程序决定。通过禁用不必要和不用的服务, 可以快速轻松地减少受攻击的区域范围。
4.2.3 协议为减少受攻击的区域范围和为攻击者开放的通路, 禁用任何不必要或不用的网络协议。
4.2.4 账户服务器可以访问的账户应该限制在必要的服务集合和用户账户上。另外, 应该加强相应的账户策略, 例如强制使用可靠的密码。
4.2.5 文件和目录文件和目录应该使用受限的NTFS权限保证其安全, 仅允许必要的服务和用户账户访问。
4.2.6 共享应该去除所有不必要的文件共享, 包括不需要的默认管理共享。使用受限的NTFS权限保证剩余共享的安全。
4.2.7 端口运行在服务器上的服务监听特定端口以对传入的请求进行服务。必须知道并定期审核服务器上的开放端口, 保证不安全的服务未处于监听状态且对于通信不是可用的。在最坏的情况下, 入侵者可以检测到监听端口, 但管理员却并未开启此端口。
4.2.8 审核和日志记录审核是识别入侵者或正在进行攻击的重要辅助手段。日志记录在确定入侵或攻击如何执行时是特别有用的呈堂证供。另外, 使用审核和日志分析还有助于检测入侵标记。推荐使用以下策略:1)审核失败的登陆尝试, 有助于发现非法侵入和破译密码的企图; 2)审核数据检索、网络通讯和管理功能(例如:启用和禁用日志记录); 3)保护审核文件和日志文件。
4.3 应用程序层 4.3.1 用户认证1) 用户认证 对于应用程序本身需要采取的安全防护策略是检查应用程序如何对调用者进行身份认证, 在哪里使用身份认证以及如何保证认证凭据在存储时和在网络中传递时仍保持安全。有缺陷的身份认证使应用程序容易受到欺骗攻击、字典攻击、会话劫持以及其他攻击。应该尽量避免的身份认证中可能存在的缺陷:①脆弱的密码增加了密码破译和字典攻击的风险。程序应该提醒用户尽量不要使用姓名、生日、电话号码、门牌号码等相对容易破解的字母或数字作为密码。②将明文凭据存储在配置文件中可以访问服务器的其他内部人员或者利用主机的缺陷下载配置文件的攻击者能够访问凭据, 因此不要存储明文凭据, 应该存储用于验证的密码哈希值。③在网络上传递明文凭据攻击者能够侦听网络以窃取身份认证凭据和骗取身份。④长时间会话增加了会话劫持相关的风险。⑤混合个性化和身份验证用户的个性化数据适于存放在持久的cookie, 但不应该保留身份验证cookie。值得注意的是, 为避免恶意用户申请多个账号, 可以利用个人电子邮箱数目非常有限这一事实, 采用电子邮件注册的方式。具体实施方案是:用户注册必须填写电子邮件地址, 然后程序自动生成字母与数字组合而成的密码, 通过邮件发送至用户填写的邮箱, 用户只有从邮箱内取得密码后才能登陆及修改密码。
2) 用会话变量(session)完善用户认证过程1)用户认证 由于Web的基本构成块(TCP/IP、HTTP和HTML)不提供任何内建的基础结构来追踪用户所处的状态, 造成了Web的无状态特性, 因此在没有其他工作的情况下, 每个页面的访问都是独立的, 在其内部发生; 当用户在站点中从一个页面转到另一个页面时, 没有用于追踪用户的进程和选择的方法(Ben et al., 2001)。由此, 当需要在站点内部记录用户在页面间的访问和不同访问间的状态时, 应用程序服务器软件提供了一些解决方案:客户端在连接到服务器后, 就由Web服务器产生并维护一个客户端的会话; 当客户端通过无状态HTTP协议再次连接到服务器时, 服务器根据客户端提交的某种凭据, 如session或cookie参数, 将客户关联到某个会话上。在此, 便可以利用session变量来记录用户登陆的合法身份, 使用户在指定时间范围内只需登陆一次即可浏览站点内部的所有授权Web页面。
记录用户合法身份或者其他数据时, 有2种方式:将数据存储入session变量或者cookie变量, 两者最大的区别在于前者session变量将变量的值存储于服务器端, 而后者cookie变量却是将值存储于客户机端。从安全性方面考虑, 应采用session变量。当特定的用户第一次访问站点时, 服务器产生一个惟一的ID号——session ID来识别该用户的浏览器, 当在代码中设置session变量时, 服务器在变量中存储session ID并将其与变量值一起存储在服务器端, 当以后访问或输出该变量时, 服务器只简单地基于变量名称和session ID来检索该值。session ID是经过加密的, 加密算法比较复杂, 因此绕过session检测的可能性极小, 安全性极高。
应用程序需要管理会话保障应用程序的整体安全性。不要在未被加密的通道中传递会话标识符, 保证会话标识符仅通过加密的通道(例如SSL)进行传递, 否则攻击者可以捕获会话标识符从而骗取身份; 不要设置过长的会话生存期, 否则将增加受到会话劫持和重放攻击的风险; 不要将重要的信息存放在不安全的会话中, 尽量避免使用cookie存放重要的信息, 因为这使得攻击者有访问用户的私有会话数据的可能; 不要将会话标识符包含在查询字符串中, 这样可以很容易在客户端修改会话标识符以骗取身份并作为另一用户访问应用程序。
4.3.2 IP地址认证相对而言, IP地址访问限制是最有效的一种安全解决方案。Internet是由数以千万计的电脑互联组成的, 在这样庞大的系统中, 要能正确地访问每台机器, 就必须有一个能唯一标识该电脑在网上位置的东西, 这就是IP地址。其中, I是Internet, P是Protocol (协议), 即用Internet协议语言表示的地址。这和现实生活中每个人都必须有个住址才能找到一样, 应用程序可以利用IP地址的唯一性来限制用户的访问。IP地址访问限制适用于用户拥有固定IP或者IP段的情况, 由于IP地址是唯一的, 所以相对而言, 这是最有效的一种安全措施。例如, 网站的管理程序需要安全保障, 只有拥有管理权限的角色(管理员)才可以使用。一般管理员都会设置登陆密码, 但是在密码泄漏的情况下, 管理程序就陷入了极度危险的境地, 而使用IP地址限制的方案将有效解决此问题。通过检测向服务器发出数据请求的客户机的IP地址, 仅允许网站管理员所在的IP或者IP段访问网站管理程序。同样, 如果记录了被网站程序认为是非法的客户机的IP地址, 那么通过匹配当前客户机的IP地址, 如果相同则拒绝此客户机请求服务器资源, 从而保障服务器资源的安全性。
代码片断示例(以CFML为例) :
网站经常会存有被站外恶意脚本程序不断提交表单申请服务器资源的危险, 例如有的程序企图破解用户密码, 有的程序向服务器提交垃圾数据等。如何避免因这些恶意程序攻击所造成的损失呢?下面提供2种解决途径。
1) 验证表单提交页 采用验证表单提交页是否属于本网站的方式来防止站外数据提交。这将用到一个非常重要的变量:CGI.HTTP-REFERRER, 它记录了本次申请服务器资源的网页URL, 通过检测此URL是否属于本站可以达到防止站外数据提交的目的。
代码片断示例(以CFML为例) :
2) 图形验证码 这种方案主要针对使用恶意程序向服务器提交数据的情况。当一些狡猾的程序采取伪装域名的方式绕过表单提交页验证程序时, 他们会发现前面还有“图形验证码”这道安全大门。“图形验证码”的原理即:由服务器生成随机的数字、字母组成的验证码, 并且将验证码嵌入图片内, 然后将此图形验证码显示在客户机浏览器上, 用户在向服务器端请求资源时必须正确地输入验证码才能得到批准。由于目前能够自动从图片中读取字母和数字的技术较难达到, 所以应用图形验证码防止站外数据循环提交的方案相当有效。
4.3.4 输入合法性认证很多攻击者故意使用格式错误的输入进行攻击。没有输入验证或者仅有简单的输入验证的Web应用程序, 易于受到SQL注入、跨站点脚本编写(XSS)、缓冲区溢出、代码注入以及大量其他中断和提高特权等攻击, 这也是目前林业信息共享网站最容易产生的安全漏洞。
应用程序应该对其收到的所有输入进行限制和清理, 拒绝非法输入。其中限制输入是指将输入内容限制为已知合法的类型、模式或范围内, 这是输入合法性认证最好的办法。清理输入是指清除输入内容中有可能会引起安全问题的部分, 例如“insert、select、delete、update”等。
安全的应用程序应该采取以下输入合法性认证措施:1)确定程序的入口点, 跟踪接收输入内容后的流程。2)强制验证所有来自不可信方的输入内容, 包括常规的和隐藏的表单字段、查询字符串、URL参数以及cookie。3)不要依赖客户端的验证, 因为其非常容易被跳过, 应该应用服务器端验证。4)不要使用通过输入文件名、用户名、或者URL进行安全性决策的方式, 这样容易出现标准化错误, 导致安全漏洞。5)对于用来生成SQL查询的输入进行强制多重验证, 否则将使程序易于受到SQL注入攻击。
攻击者通过提交一段数据库查询代码, (一般是在浏览器地址栏进行, 通过正常的www端口访问)根据程序返回的结果, 获得某些他想得知的数据, 这就是所谓的SQL Injection, 即SQL注入。
例如, 很多数据库查询SQL语句形同
select * from table-name where col-name=#col#
当输入地址为http://www.site.com/mypage.asp? col=1 or 0=0时, SQL语句变成
select * from table-name where col-name=1 or 0=0
这样便能非法取出表“table-name”中的所有记录。
解决这个漏洞的原则:过滤所有http请求中的参数信息中的非法字符, 如:“and、exec、& apos; 、insert、select、delete、update、count、*、%、chr、mid、master、truncate、char、declare”等。
6) 验证将包含在超文本标记语言(HTML)输出流中的输入, 否则应用程序容易受到XSS (跨站点编写脚本)攻击。
跨站点编写脚本是将代码插入由另一个源发送的网页之中的过程。利用跨站点编写脚本的一种方式是通过HTML格式, 将信息帖到公告牌上就是跨站点脚本编写的一个很好范例。恶意的用户会在公告牌上帖上包含有恶意的JavaScript代码的信息。当用户查看这个公告牌时, 服务器就会发送, HTML与这个恶意的用户代码一起显示。客户端的浏览器会执行该代码, 因为它认为这是来自Web服务器的有效代码。
解决XSS的方法有2种, 第一种就是验证输入, 并严格限制用户名所包含的内容。例如, 可以使用正则表达式检查该名称是否只包含一个普通的字符子集, 并且不太大。
代码片断示例(以C#为例)
第二种防范措施是对所有作为输出的输入进行HTML编码。这会减少危险的HTML标记, 使之变成更安全的转义符。
4.3.5 页面文字保护为防止用户非法引用、传播网站资源, 尤其是文字性资源而采取的安全策略。
1) 禁止右键粘贴、键盘、查看源文件等 依赖于浏览器对于JavaScript脚本的编译运行而实现, 安全性较差, 如果用户的浏览器禁止运行JavaScript脚本, 那么此方案则完全失败; 但是此方案方便灵活, 执行效率较高。在页面文字保护要求低的情况下, 可以选择这种解决方案。
程序代码示例(使页面上的文字不能被鼠标选择) :
2) 将文字信息嵌入图片或生成flash/pdf等格式发布 安全性很高, 一般需要利用第三方程序来完成, 但是可能会造成下载速度等效率问题。在页面文字保护要求较高的情况下, 可以选择这种解决方案。
示例:利用Web应用程序服务器COLDFUSION MX 7.0提供的功能, 将包括有文字甚至图片的Web页面直接转换为Flash。
程序代码片段(CFML) :
Web应用程序的安全是相对的, 没有绝对的安全, 因此为了保障在攻击者已经入侵的情况下将损失降到最低, 应用程序还应该采用风险缓解策略。
1) 在应用程序中授权最终用户 确定最终用户可以访问的资源范围和可以进行的操作, 并确保其不能访问授权范围外的资源和不能进行授权外的操作。不依赖于单一的网关防卫, 可以选择利用IIS Web权限、NTFS权限、URL授权以及用户权限要求等中至少2种以上的方式进行安全防卫。
2) 在数据库中授权应用程序 应用程序用来连接数据库的账户拥有的权限应该是有限的, 能满足程序的要求就可以, 不要超出权限。推荐应用程序使用存储过程访问数据库, 这样应用程序只被授予访问存储过程的权限, 攻击者不能登陆数据库直接进行创建、增加、修改、删除的操作。如非必要, 绝对不要使用“sa”用户连接数据库, 可以使用预先定义的具有合适角色的账号连接。
3) 在系统级别中授权应用程序 为确保攻击者不能利用应用程序访问其他系统资源, 应用程序应该只被授予最小的必需资源访问权限。如果应用程序被损害, 这是限制损害程度的风险缓解策略。例如采用沙盒技术对代码的访问权限进行限制, 这样恶意代码只能破坏执行环境的很小一部分(杨波等, 2002)。比如浏览器中执行的JavaApplet, 限制它只可以在屏幕上画图, 但是不能访问本地文件系统。
5 结语林业资源信息共享是我国林业信息化发展的基础, 而共享信息的安全又是林业资源信息共享的重要基础。近年来, 随着“数字林业”的发展, 林业资源信息共享程度日益加强, 信息安全问题的重要性也日益突出。本文概括了林业信息共享网站基于应用程序的安全保护技术与策略, 这些技术与策略具有普遍性, 但随着网络应用技术的发展将不断完善和补充; 这些技术与策略不仅是几年来林业信息共享安全工作的总结, 也是日后林业信息共享平台的安全建设依据。
李彦旭, 巴大志, 成立. 2002. 网络信息安全技术综述. 半导体技术, (10): 9-12. DOI:10.3969/j.issn.1003-353X.2002.10.005 |
苏莹莹. 2003. Web安全技术. 牙膏工业, (4): 40-43. |
吴亚青. 2004. 网络安全的现状及策略. 前言, (1): 195-198. |
王海欣. 2004. 数字图书馆建设中的版权问题综述. 图书馆工作与研究, (3): 50-52. DOI:10.3969/j.issn.1005-6610.2004.03.018 |
杨波, 朱秋萍. 2002. Web安全技术综述. 计算机应用研究, (10): 1-4. DOI:10.3969/j.issn.1001-3695.2002.10.001 |
赵晓林. 2001. 网络信息安全的保护技术和策略. 微电脑世界, (3): 18-21. |
Ben F, Nate W, Leson C, et al. 2001. The coldfusion 5 web application construction kit. 4th Edition. Pearson Education, 400-439.
|
Schneier B. 2000. Secrets and lies.Digital security in a networked world. New York: John Wiley Press.
|