在过去的十几年里,随着信息技术的高速发展和企业信息化步伐的深入,企业在利用信息技术实现其商业目标的同时也变得越来越依赖于信息技术。以银行业为例,为了降低运营成本,提高用户满意度,今天的银行普遍利用信息技术支持的电话银行、ATM及网络银行系统为客户提供个性化、差异化的服务。另外,银行也在不断利用信息技术收集和分析大量的与客户有关的数据和信息,为新产品开发提供决策支持,从而达到提高盈利水平的目标。在今天的企业信息环境里,如何保证信息系统以及信息本身的安全性已然变得至关重要了。事实上,在今天具有一定规模的企业的IT环境里往往存在着少则几百个多则上千个大大小小的业务应用(Line of Business Applications),小到支持几个人的小规模团队的协同应用,大到贯穿于一个企业生产、经营、管理全过程的企业级应用。如何降低信息技术给企业带来的各种安全风险呢?无疑已成为当今所有企业面临的新挑战。
企业信息安全的涵盖面非常广,涉及到人员、流程和技术等诸多方面的因素。正因为如此,一方面信息安全越来越受到广泛的关注,并且企业在信息安全方面的投入不断增加,而另一方面各种给企业造成负面影响的安全事件却层出不穷。单纯的技术手段往往无法帮助企业彻底消除存在的诸多安全问题,只有建立起一整套安全策略和流程,通过合理地资源配置并且充分利用各种技术和非技术手段,企业才有可能更加有效地管理各类安全风险。
信息安全包括安全体系的构建和管理、物理和环境安全、数据中心和网络安全、系统开发和维护安全等多方面内容。今天我们在这里讨论的话题将主要围绕安全系统开发,即企业在业务应用的开发过程中应该如何应对各种可能对应用造成影响的安全性问题。微软看来,保证和提高应用安全性的最佳时机是在应用的开发阶段。微软信息安全部门的ACE团队通过多年来在应用安全领域的实践经验,创建了一整套安全开发流程,即信息技术安全开发生命周期流程(Secure Development Lifecycle for Information Technology,缩写为SDL-IT)。该流程包含有一系列的最佳实践和工具,多年以来不仅被用于微软内部业务应用的开发过程中,而且也被成功地应用在许多微软客户的开发项目中。
SDL-IT流程涵盖了软件开发生命周期的整个过程。目的是通过在软件开发生命周期的每个阶段执行必要的安全控制或任务,保证应用安全最佳实践得以很好地应用。SDL-IT强调在业务应用的开发和部署过程中对应用安全给予充分的关注,通过预防、检测和监控措施相结合的方式,从而降低应用安全开发和维护的总成本。
SDL-IT流程的第一步首先是对所要开发的应用进行安全风险评估。根据应用的风险和影响程度确定在整个软件开发生命周期过程中需要采取的安全控制。在对应用进行安全风险评估时需要考虑的因素包括应用本身,应用存储和处理的数据类型(比如是否涉及高业务影响数据或个人身份信息等)以及应用的部署环境(比如Internet、Intranet或Extranet应用)等。评估通常是以问卷形式开展的,根据开发团队调查问卷的结果计算加权得分,确定应用的安全风险等级。微软的安全策略明确规定了不同安全风险等级的应用所需采取的安全控制。