读书频道 > 网站 > 网页设计 > 安全模式最佳实践
1.1 为什么需要安全模式
15-06-25    下载编辑
收藏    我要投稿   

本文所属图书 > 安全模式最佳实践

《安全模式最佳实践》分为三部分:第一部分(第1~3章)描述使用安全模式的动机、经验,以及本书所面向的对象,并且展示了作者的安全开发方法论;第二部分(第4~15章)详细介绍各种常用的安全模式,包括计算机系统立即去当当网订购

现代应用系统大都是分布式且联网的—通过互联网、局域网或其他专用网络相连,并支持Web界面、Web 服务以及代理。这类系统的复杂性不仅带来了对其理解、设计和维护上的困难,也导致了漏洞的产生,以及由此所引发的安全攻击。功能强大的移动设备和感应设备的日益广泛使用,使得安全问题愈发突出。全世界每天都有网站或数据库遭受攻击的报道,而由这些攻击造成的直接或间接经济损失高达数百万美元。各类系统持续不断地遭受攻击和入侵,也引发了人们对国家的基础设施可能遭受敌人攻击破坏的担忧。

为何对这些系统的安全加固失败了?一个重要原因是:系统自身的复杂性导致了错误增多以及漏洞难以发现。另一个重要原因是:安全加固是以修修补补的方式进行的,系统各部分虽然都采用了特定的安全措施,却鲜有针对完整系统的整体安全分析。就算有,分析系统各部分所采用的安全模型也不相同,比如数据库用一个模型,无线设备用另一个模型。遗憾的是,想要阻断所有可能的攻击,在安全上就必需采用一种全面详尽的方法。安全组件再安全,如果没能覆盖到系统的每个角落或者各组件间不协调同步,也无法保障系统整体的安全。威胁分析通常针对系统的各个部分进行,但很多威胁只在系统各部分连通时才会出现。此外,建设安全系统的方法多是针对新建系统的,而大多数在用的系统都是处在不断维护状态中的旧有系统。就算是精心建设的系统也可能遭受“软件架构侵蚀”,即由于产品实现与架构设计出现偏差,从而导致安全防护措施失效或削弱。

我们需要以某种方式应对新系统的复杂性,并以系统性、整体性的方式确保安全。对于旧有系统的安全改造,需要跟踪代码的更改,检测并修正其对安全机制的影响。软件开发人员通常都熟悉特定的开发语言和环境,但对安全知之甚少,这就导致他们的系统中存在大量可被攻击者利用的漏洞。此外他们还面临尽早交付产品的压力。

建设安全的系统应采用系统化的方式,即安全性应当如系统的可靠性和其他系统特性那样,成为软件生命周期中一个不可或缺的组成部分[Fer04b][How06][McG06]。如果在应用软件开发时能够将中间件、操作系统及网络等因素进行整体考虑,我们就能抵御来自内/外部全系列攻击。我们认为,为了开发安全的应用软件,将底层平台和应用软件隔离开分别进行安全设计、而后拼接的方式并不奏效;而应该将应用软件和底层平台一起设计,并使得底层平台和应用软件相匹配。此外,所有安全性和可靠性的约束条件都应在其语义能够被理解的应用层级定义,而后再向体系架构较低的层级传递[Fer99b][Fer06b][Sum97]。

体系架构中较低层级的安全保证来自于上层应用遵循约束条件,换句话说,保证无法绕过这些约束条件。在由众多不同部分所组成的系统中,想要统一提供这种保证,唯一的选择是使用抽象。进一步说,我们可以通过使用“模式”提供这种抽象。模式封装了反复出现的系统问题的解决方案,同时精确地表述了系统要求和解决方案,也为设计人员提供了相互交流的工具[Bus96][Gam94]。采用模式的系统架构描述比较容易让人看懂,也为设计和分析提供了指南,还定义了使架构更安全的方法。安全模式使得不具备专业安全知识的应用开发人员也可以使用安全措施。我们还可以通过分析现有系统看它们是否包含特定的模式,进而评估它们的安全性。此外,我们可以在改造旧有系统时,利用模式来添加系统中缺失的安全特性。(下面我会把基于模式的安全建设方法和其他方法做个比较。)

我们需要将一个系统横向、纵向的架构统一起来,具体说就是将系统开发的各个阶段(横向)以及系统架构的各层级(纵向)[Fer11a]统一起来,以运用系统安全建设的整体性方法。本书为读者呈现了一种完全基于模式的构建安全系统的方法,涵盖纯信息系统和嵌入式系统。我在[Fer06b]中阐述过本书的主要观点,并不断地完善和扩充直至现在。我的长远目标是推广这样的概念:“模式可为建立安全、可靠的系统提供行之有效的方法”。

Neumann基于坚实的概念方法,提出了“有原则的”系统概念[Neu04]:模式意味着隐式地应用了原则。我已经为达到这个目标做了大量工作,但还需要进一步加以巩固和扩展。[Uzu12c]对基于模式的安全建设方法和其他方法进行了综述。

为了设计一个安全的系统,我们首先需要搞清楚这个系统可能会面临的威胁。我们在[Bra08a]和[Fer06c]中提出了一种识别威胁的方法,即通过分析每个使用案例中的活动来识别威胁。这一方法能够找到来自系统架构较低层级产生的威胁(攻击者的目标)。我们要弄明白体系架构的各特定的组成部分,是如何被攻破的,或者如何被攻击者利用来达到其攻击目标。我们用“滥用”(攻击)模式为系统中真实的滥用建模。

对于标准和规范,需要用一种方法来定义和落实;对此,我们提出的基于模式的方法非常有价值。事实上,一些标准和规范(如HIPAA、FEMA和Sarbanes-Oxley)要么十分复杂,要么有歧义;而采用模式可以准确地描述它们,使其更容易理解、更易使用。此外,利用模式可以很好地满足Web服务和云计算提出的服务认证需求[Dam09]。

我们所说的“建模”,不是一种新的授权访问模型,而是整合计算机系统里不同设备和单元的安全控制的模型,对于复杂的系统来说这是重要的基础。通过添加各种模式以涵盖系统各层面的威胁,才能获得更全面的防护,使安全系统整体更接近完美。我们认为这也是防御可能出现的网络战争的好方法。模式本身不提供可证明的安全性,但对日益复杂的系统来说,安全模式确实很实用。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站