随着网络的普及,目前几乎所有的数字校园应用都是基于网络的,软件技术主要包括C/S、B/S两类。近年来,随着服务器硬件技术、网络技术的发展,B/S应用以其开放性、通用性、灵活性的优点,逐步占据了数字校园应用开发技术的主流地位。以清华大学数字校园建设为例,目前90%以上的应用基于B/S技术。
随着Web应用的普及,Web应用也成为了黑客攻击的首选目标,但是,不容乐观的是,Web应用的安全性并不高。根据360发布的《2013年中国高校网站安全报告》,高校校网站安全平均得分由2012年的37分增长到了55分,但平均分仍然不及格。同时,高校网站平均每五个漏洞中就有一个高危漏洞,这就意味着中国高校网站依然存在着大量高危漏洞。
考虑到Web应用是目前高校信息系统的主要应用类型,本文将以Web应用为例,对高校信息系统的安全开发流程和上线安全评估方法进行探讨。下文首先分析Web应用常见的安全威胁,接着介绍Web应用安全开发流程及上线安全评估方法。
Web应用常见的安全威胁
开源Web应用安全计划总结了Web应用程序的十大安全漏洞。
在这10大安全漏洞中,不但包括了Web应用程序的脆弱性介绍,还包括了OWASP(开放式Web应用程序安全项目)的建议内容,帮助程序开发人员和企业尽量避免这些脆弱点给企业系统带来的风险。下面列举了2013年版的OWASP十大安全漏洞,也是数字校园Web应用常见的安全威胁。
1.注入式攻击(Injection Flaws)。Web应用可能使用许多外部系统,比如系统调用、SQL database和模版系统。Web应用使用这些程序时往往要传入参数。恶意代码可以通过参数传给解释程序,然后被执行。
2.失效的账户和session管理(Broken Authenticationand Session Management)。会话令牌,比如密码、钥匙和会话cookies需要得到保护,否则认证机制形同虚设。
3.跨站点脚本攻击(Cross Site Scripting,XSS)。浏览器执行来自站点的代码,比如javascript、flash等。攻击者将可执行的恶意代码脚本作为输入的一部分传给Web应用,这些脚本然后在其他用户的浏览器中运行,从而对使用它的其他用户造成损害。造成的结果是盗取会话令牌,攻击机器或者哄骗用户。
4.不安全的直接对象引用。当开发人员暴露一个对内部实现对象的引用时,例如,一个文件、目录或者数据库密匙,就会产生一个不安全的直接对象引用。在没有访问控制检测或其他保护时,攻击者会操控这些引用去访问未授权数据。
5.不安全的配置管理(Insecure Configuration Management)。网站和应用程序服务器有许多安全相关的配置选项。比如,默认的账号和密码;不必要的默认设置、备份、样例程序和库;显示过多信息的错误信息;错误的SSL认证等,这些都给服务器带来了潜在的危险。
6.敏感信息泄露。应用程序总是要处理各种各样的错误,比如内存溢出、过多用户、超时、数据库错误、认证错误、访问控制错误,输入错误等。应用程序错误处理机制需要明确地告诉用户出现什么错误,但是不留下任何可用来攻击服务器的信息。比如,操作系统,数据库的版本和数据库的驱动等信息等。
7.失效的访问控制(Broken Access Control)。很多站点的访问控制策略过于复杂或者实现不当。攻击者可以看到自己本不应当看到的内容,并且提高自己的权限。通过正确的实现访问控制,确保用户只能看到自己有权限看到的东西。
8.跨站请求伪造(CSRF)。一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTTP请求,包括该用户的会话cookie和其他认证信息,发送到一个存在漏洞的Web应用程序。这就允许了攻击者迫使用户浏览器向存在漏洞的应用程序发送请求,而这些请求会被应用程序认为是用户的合法请求。
9.使用含有已知漏洞的组件非法输入(UnvalidatedInput)。比如:库文件、框架和其它软件模块,几乎总是以全部的权限运行。如果一个带有漏洞的组件被利用,这种攻击可以造成更为严重的数据丢失或服务器接管。应用程序使用带有已知漏洞的组件会破坏应用程序防御系统,并使一系列可能的攻击和影响成为可能。
10.未验证的重定向和转发。Web应用程序经常将用户重定向和转发到其他网页和网站,并且利用不可信的数据去判定目的页面。如果没有得到适当验证,攻击者可以重定向受害用户到钓鱼软件或恶意网站,或者使用转发去访问未授权的页面。
Web应用安全开发流程
如果待Web应用开发完成后才着手考虑安全问题,那么消耗的代价是巨大的,只能取得事倍功半的效果,业界一直认可的做法是在将安全考虑嵌入到整个软件开发生命周期,也就是secure Software Development Life Cycle(S SDLC)的方法。EDUCAUSE的SECURITYINITIAL的应用安全建议提出了Web应用安全开发的8个步骤,包括规范建设、人员培训、安全需求分析、确定组织安全角色、将安全作为开发或者购买软件的必需环节、应用实施、运行维护、应用终止。美国国家标准技术研究院(National Institute of Standards andTechnoligy,NIST)的标准规范文件从应用的启动、需求、开发、部署、运行几个阶段提出了相应的安全建议。微软提出了安全软件开发生命周期的方法。
这些标准和建议是很有借鉴意义的,但过于复杂,在高校信息化过程中完全实现是不现实的。而且这些流程都由国外的组织提出,并没有考虑中国关于信息系统安全保护相关的标准和法律法规。因此我们结合自己的经验提出了适合中国高校特点的信息系统生命周期安全管理流程模型,如图1所示。
在此流程中,我们在信息系统生命周期的五个阶段分别设置了安全控制点并建立了所需的技术和管理规范:
1.立项阶段。立项阶段的主要任务是明确信息系统的安全保护等级,以便根据信息系统的重要性实施分等级的安全防护。参考规范是《信息系统分级规范》。信息系统安全等级保护国家标准将信息系统的安全保护等级划分为5级,高校信息系统大都为2级,在实际工作中,建议在学校内部将二级进一步拆分为2A和2B级,并通过校内规范(如《信息系统分级规范》)的形式说明两个等级的防护要求。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。