首页 / 软件开发 / 数据结构与算法 / SOA安全性基础知识,第1部分: 制定保护大型SOA应用程序的路线图
SOA安全性基础知识,第1部分: 制定保护大型SOA应用程序的路线图2011-10-01 IBM John Betancourt实现更好的 SOA 安全性的十个步骤简介:本系列提供面向服务的体系结构(Service-Oriented Architecture, SOA)安全实现路线图。本系列共三部分,本文是其中的第1部分,将介绍一个包 括十个步骤的流程,以帮助您进行从构建SOA安全团队到创建有效的需求收集流程 等各个方面的工作。在第2部分,我们将了解如何创建抽象设计,第3部分将讨论 测试用例。最近我有机会参与了一个SOA项目——具体来说,是一个大型自动控制系统的 安全实现。我尽可能地阅读了很多关于此主题的书籍;我在网上对此进行研究, 甚至向以前的同事和朋友发送电子邮件询问相关事项。让我意外的是,没有提供 我所需的逐步流程的路线图,不能帮助我完成保护大型SOA应用程序的目标。最后,我不得不自己创建了一个这样的流程。我开发了本文中所述的包含10个 步骤的简单流程。第1步 选择正确的团队将大型关键基础设施应用程序迁移到SOA的工作令人望而生畏。对其进行保护 甚至更为困难,经常需要采用全新的视角对其加以认识——甚至可能需要一组全 新的安全人员进行相关工作。大部分安全团队在SOA方面甚至编程方面的培训极少 。安全权威机构常用的方法是,只管发出要求并希望组织能够加以遵循。因此, 第1步(这经常是最难的部分)是确保拥有正确的团队。团队应该有个负责人,该负责人应该具有安全性和软件体系结构方面的知识, 最好也能了解SOA的相关知识。与企业架构师类似,安全企业架构师(Security Enterprise Architect,SEA)将负责创建总体SOA安全模型,以便在每个粒度级 别集成所有不同的安全性需求。SEA将进入SOA治理委员会,与企业架构师 (Enterprise Architect,EA)一起确保所有 SOA 实现都符合安全性需求的相关 要求,并对负责创建整个流程中所需的构件的安全业务分析人员(Security Business Analyst,SBA)和安全系统工程师(Security Systems Engineers, SSE)团队进行指导。SEA还将负责与编写安全性服务代码的程序员及在部署系统 前对其进行测试的安全性系统测试人员合作。第2步 创建详细项目计划对于大型SOA系统,第2步要求高层管理了解,将无法通过改进新的SOA将其纳 入旧安全模型中:这样做根本行不通。如果从最开始的重点就是传统安全机制( 如防火墙、入侵检测系统和安全监视),这将完全与SOA安全实现不沾边。您将负 责通过制定详细的项目计划和预算,清楚地说明和反映SOA安全实现所必需的东西 ,确保每个人都对此心里有底。您必需让大家认识到,到SOA模型的任何转换都会涉及到固有的安全矛盾:系 统的SOA特征越明显,其安全性越差。通过面向服务的建模和分析技术将当前系统 转换为SOA的过程要求形成业务设计的相关文档。通过使用可将业务设计与信息系 统相关的正式语言,通常仅能说明矛盾、低效而复杂的非 SOA 系统的情况。不过 ,这个复杂性会掩盖住大部分问题所在,从而使寻找机会破坏企业系统的人难于 找到这些脆弱的环节。对这些系统进行分解并启用SOA后,恶意用户所面对的体系 结构就会简单一些,从而更便于进行破坏。SOA支持者可能对此会加以否认,但负责保护系统安全的人知道,具有集中控 制点且启用了Web的开放系统本身安全性就较差,而需要更为反应灵敏而灵活便利 的方法。没有办法绕开这个问题,项目规划人员(经常会向SOA安全性方面分配一 组适当的任务)必须记住,SOA安全性需要详细的项目规划和预算,为安全性团队 分配必要的时间,以便分析和了解SOA实现所带来的新挑战。