当前位置:支点网 >> 资讯
滚动新闻:

制定保护大型SOA应用程序的路线图

作者:佚名  来源:IBM  时间:2008-7-1 17:30:58
如果从最开始的重点就是传统安全机制(如防火墙、入侵检测系统和安全监视),这将完全与SOA安全实现不沾边。您将负责通过制定详细的项目计划和预算,清楚地说明和反映SOA安全实现所必需的东西,确保每个人都对此心里有底。

 

  第6步 确定和使用正确的工具进行需求收集

  在第6步中,开始收集需求前,务必选择正确的工具,以便团队进行协作和方便地记录SOA安全需求和创建SOA安全模型。正确的需求与分析工具将帮助团队了解问题领域、捕获和管理不断发展的需求、建模用户交互、在整个项目生命周期中包含参与者反馈,而最为重要的是进行协作。

  良好的安全需求与分析实践将极大地减少系统安全风险。IBM? Rational?需求与分析工具非常适合用于了解和表示参与者需求、指导和协调客户和业务需求的收集和验证工作、记录和组织系统的需求及向整个团队说明相关需求。我自己在使用IBM Rational RequisitePro?、WebSphere? Business Modeler和Rational Software Architect,建议大家也使用这些工具。

  第7步 遵循SOA安全实现的SDLC流程

  考虑到所必须收集的海量信息、必须编写的体系结构构件的数量以及将构造的特定SOA安全服务,SOA安全团队应该遵循软件开发生命周期(Software Development Life Cycle,SDLC)的标准步骤:

  ·确定安全需求和约束
  ·得出和收集安全需求
  ·创建安全体系结构设计
  ·形成详细的安全SOA设计文档
  ·实现SOA(包括SOA治理)
  ·测试
  ·部署
  ·维护

  乍看之下,这些步骤可能非常明显,但安全团队很少采用SDLC流程。他们不习惯坐在房间里讨论相关工作和编写详细需求、设计安全抽象设计,以及创建详尽测试用例来验证系统是否具有可靠的安全性。(抽象设计和测试用例将在本系列的第2部分和第3部分进行讨论。)

  团队开始设计解决方案前,必须对需求进行收集。对于安全实现,既有显式需求,也有隐式需求。对于显式需求,一个很好的着手点就是按照第5步中所示收集每个参与者的需求。而对于隐式需求,最好使用安全框架,如保密性、完整性和可靠性(Confidentiality, Integrity, and Accountability,CIA)三部曲,以便在其中列出所有安全系统的具体需求。CIA 三部曲是广泛使用的信息保证(Information Assurance,IA)模型,此模型将保密性、完整性和可用性定义为所有信息系统的基础安全特征。

  团队应该考虑此SOA实现将如何确保系统保密性(即数据保密),并构建清楚的流程图,以详细说明如何保证仅由目标授权接收方、个人、流程或设备访问传输中的消息。将消息泄漏给非授权实体(如使用非授权网络探查的恶意用户)就违反了保密性,SOA实现必须指定将在何种情况下在整个系统中使用加密技术(存储和传输保密信息的方法)。

  与此类似,SOA安全模型要求提供完整性(确保消息不会被更改)。SOA安全负责确保信息在从原始位置传输到接收方的过程中不会被更改(数据完整性),并负责保证该信息的发送方是预期的发送方(来源完整性)且接收方是预期的接收方(接收方完整性)。在预期接收方收到信息前,如果数据被有意或意外地更改或破坏,数据完整性就遭到了破坏。如果代理冒充发送方身份并向接收方提供不正确的信息,则来源完整性就遭到了破坏。数据签名和哈希算法是用于提供数据完整性的机制。

  另外,授权用户对数据服务器的及时可靠访问(可用性)也是一项SOA安全需求:SOA实现必须确保信息和资源在需要时可用,这意味着资源的提供速度应该足够满足较大的系统执行其预期任务所需的速度。当然可能在保密性和完整性得到保护的情况下,入侵者仍然可能导致资源在需要时可用性降低,或根本不可用。具体来说,当ESB之类的SOA系统组件负责“代理消息”时,必须在SOA安全需求文档中详细说明高可用性协议、完全冗余网络体系结构和系统硬件,不要存在任何单点故障,从而保证系统的可靠性和稳健性。SOA安全团队负责全面地表示这些区域,并确保记录了相应的用例(且能充分说明特定的需求)。

  第8步 找出现有模型并从中吸取经验教训

  SOA安全需求团队花时间确定了所有需求后,团队成员会发现没有任何第三方工具能满足其全部需求。他们必须自己编写SOA安全服务来满足特定需求。比完全闭门造车好得多的做法是,对现有的模型进行分析,在团队开始抽象设计阶段前了解已经开发的内容。在此步骤(第8步)中,我们建议参考Intelligrid的以下模型(请参见参考资料)。可以在其中看到常用安全实用工具服务的列表,可能需要在SOA安全实现中提供这些服务。我将在下一篇文章中对这些服务进行更为详细的说明,但为了方便起见,我在此将其列出供参考:

  ·Audit Common Service
  ·Authorization Service for Access Control
  ·Confidentiality Service
  ·Credential Conversion Service
  ·Credential Renewal Service
  ·Delegation Service
  ·Firewall Traversal Service
  ·Identity Establishment Service
  ·Identity Mapping Service
  ·Information Integrity Service
  ·Inter-Domain Security Service
  ·Non-repudiation Service
  ·Path Routing and QoS Service
  ·Security Policy Service
  ·Policy Exchange Service
  ·Privacy Service
  ·Profile Service (User Profile Service)
  ·Quality of Identity Service
  ·Security Against Denial of Service (DoS)
  ·Security Assurance Management Service
  ·Security Protocol Mapping Service
  ·Security Service Availability Discovery Service
  ·Single Sign-on Service
  ·Trust Establishment Service

  您可能并不需要其中的全部服务。SOA security团队必须将需求映射到每个服务,然后为需要的所有服务创建SOA安全模型,以满足第7步中确定的所有需求。

  第9步 熟悉WS-Security标准

  完成此流程后,就收集了足够的信息可进行第9步了,即分析WS-Security标准,确定哪个标准适用于您的特定SOA安全实现。图1列出了需要参考的所有WS-Security标准。

 

  图1. WS-Security标准

  随着更为详细的模型的出现,必须熟悉组成WS-Security的各种SOA安全标准,并了解它们如何彼此相关以及其与SOA安全模型需求的关系。这些安全标准将用于构造整个SOA实现中的安全消息。

  第10步 为第三方供应商制定标准

  最后,在第10步中,SOA安全团队将负责为第三方供应商创建一组标准和应用程序编程接口(Application Program Interface,API)。SOA的一个主要卖点是,系统将利用其开放性访问第三方供应商提供的服务。每个供应商必须熟悉SOA实现安全标准,并清楚地知道服务将如何与SOA实现的安全服务进行交互。

  在整个过程中,必须维护详细的安全术语表,以确保所形成的所有文档采用相同的术语和定义。我建议从Oasis Security Services TC Glossary着手。应该与所有供应商共享此术语表,以确保所有人都采用相同的术语。

  总结

  在本文中,我们了解了常见SOA安全路线图的10个步骤:

  ·选择正确的团队。
  ·制定详细的项目计划。
  ·维护SOA支持安全决策表
  ·使用“内部安全性”和风险管理框架方法创建初步草案。
  ·定义内部和外部参与者。
  ·确定和使用正确的工具进行需求收集。
  ·遵循SOA安全实现的SDLC流程。
  ·找出现有模型并从中吸取经验教训。
  ·熟悉WS-Security标准。
  ·为第三方供应商制定标准。

  如果遵循所有这些步骤,就在SOA安全性方面有了一个好的开头。

  关注这个包括三部分的系列文章的后续部分,了解SOA安全团队进行成功SOA安全性实现所需的主要项目:路线图(第1部分)、抽象设计(第2部分)以及测试用例(第3部分)。

[1] [2] 
责任编辑:李伟
【字体: 】【打印此文】【关闭窗口】【论坛
相关信息
相关评论