信息化 频道

让企业SOA项目更可控之必备十大戒条

  9.不要相信系统

  SOA安全

  如果你的身体使用与大多数Web网站相同的防御规则来抵制外物,只消一天你就会死亡。我们生活在一个怀有敌意的世界,这里唯一能够避免信息系统遭受攻击的办法就是让它们不可访问。在这样的世界,SOA是一种绝妙的安全概念。原则上说,唯一必须让其通过防火墙的消息是牢牢封装好的XML消息。它们可以以这样的方式通过防火墙:在进一步处理之前它们会接受格式良好、XSD一致性以及授权有效性方面的检查。这样,造成危害的可能性非常小。缓冲区溢出只能够在安全防御区内爆发,而SQL注入不过是我们对其充耳不闻的一种语言上的祸害。像这样畸形的消息在其作出任何伤害之前就能被识别出来。

  认识到这点很重要:即这种方法的优势是基于消息的认证和校验而非系统的。这是必要的,因为封装好的XML常常通过那些对其内容不负任何责任的系统传递,以至于检查消息是否来自认证过的系统并不能保证什么。它更健壮,因为某信息系统或电脑一次成功侵入并不会为其他侵入打开大门。

  SOA的安全和数据库时代基于系统的安全形成了鲜明对比。有了基于系统的安全保障,对每个消息类型和数据项来说,每个系统的任务就是避免缓冲区溢出。有上千个点可能成为出错点。因此,就少不了薄弱点存在的可能性。而另一方面,某个SOA关守(gatekeeper),可以在单一的点上完成所有这些。基于系统的访问安全倾向于把授权控制构建到系统中,这不仅使得跟踪记录变得几乎不可能,而且引入结构性改变(比如把外部组织的客户添加进来)也是很昂贵的花销。

  使用SOA关守的另一大优势在于可以保证所有输出消息被适当加密和签名,这样就没人能够窃取消息或在传输中篡改消息。原则上,大部分WS-*标准都可以完全由SOA关守处理。

  超越基于系统的授权

  基于系统的安全也会产生了一些心态,这些心态更多的是由基于系统的思维决定的,而不是如我们所愿意承认的那样。因为系统是围绕着功能点和数据结构构建的,授权就是这样表达的。例如,雇员要么有权限改变产品价格,要么没有,这是基于他在组织中的角色而定。对后端雇员不会遇到这种问题,但对管理层雇员以及用户而言,这就不适合了。对他们来说,允许他们查看和完成事情的决定因素是横跨所有系统和数据库的手头客户的信息切片。一个简单的信息安全文献扫描就足以构建那些信息安全咨询公司尚未企及的一点:对每一个基于切片的访问安全引用有数以千记的基于角色的访问安全。从积极的角度看,涌现出大量的概念,它们对充分发挥SOA提供的各项技术(基于声明的访问控制、联邦身份及网络边界去除技术)的优点来实现访问安全有长期正面的影响。

  可管理之理论

  想要取得SOA最大化的利益,仅仅采用新的行为准则是不够的。组织机构考虑自身的方式及IT方式也需要改变。否则当前的组织将还是退回到老样子,并不是因为它想要这样,而是因为它把这看作是控制自身日常行为的唯一方法。为了克服这点,你必须从项目的组织去着手。

0
相关文章