在实现 “环保化” 的过程中,公司对其业务采用了新的策略。一些公司致力于通过鼓励远程办公减少交通和办公空间的能源消耗。其他公司则试图通过使用 “mashup” 应用程序或外包托管来减少对系统资源的需求。随着资源逐渐脱离企业的集中控制,风险控制变得更富挑战性。安全程序变得更加重要,并且需要对每一个组件执行进一步检查。
在本文中,我们将查看在这个日益环保化的环境中的一些主要参与者,以及应当加以解决的特定风险领域。我们将考察远程办公、mashup 应用程序和应用程序托管。
远程办公正在成为减少办公开销的一个流行选择。由于远程办公可以减少日常驾驶、获得更灵活的时间安排,并且拥有家庭办公的所有舒适性,因此员工可以从远程办公中获益。远程办公还有利于实现环保。它减少了交通堵塞及相关的问题。它减少了行业内无限制扩展的办公空间,以及有关暖气、制冷和清理等相关资源。
然而,由于员工在企业环境之外的位置办公,远程办公凸显出某些安全性问题。过去一贯被封锁起来的数据忽然之间出现在员工的家庭里,无法进行控制。但是,这并不表示远程办公是危险的并需要加以避免。这只是说明进行远程办公的员工需要注意到这些风险,并使用一些策略和方法来安全地实现远程工作。
大多数企业已经可以熟练地对用户使用 VPN 连接来获取后端数据。然而,远程办公者对各种协作工具的需求更加迫切,比如即时消息传递和远程会议功能。您的员工目前使用的工具是否安全并且对于您的环境是私有的?或者他们使用的是可以跨越 Internet 公开通信的公共工具?
您可以通过商业工具(比如 IBM Lotus® Sametime)获得安全的即时消息传递功能,或者使用 Jabber 之类的开源工具。其他协作工具,比如 wikis 和虚拟会议功能,也可能需要用来提高远程员工的通信效率。可以选择通过您的 VPN 以内部的方式提供这些工具,或者将它们外包出去,但是应当检查这些做法的安全性,并确保没有将机密信息意外地泄漏出去。
远程办公链中的另一个薄弱环节在于用户的笔记本电脑。您对开机密码是否使用了策略?对于用户将数据存储在其笔记本中有哪些限制?您的应用程序是否将未经保护的机密数据缓存放到本地机器上?是否为用户提供了在其本地机器上加密数据的选项?一些商业电子邮件系统,比如 Lotus Notes,提供了自动加密本地电子邮件的方法。许多人使用外部系统(比如开源的 GPG)来加密电子邮件。在提供加密的硬盘空间方面,有很多策略可供选择,同时包括商业的和开源的选择。
问题的关键在于使用明确的策略和指导来帮助远程办公人员保护机密数据。他们应该清晰地理解自己在安全链中的角色,并在工具和培训方面获得支持。
与使用自己的资源构建应用程序相反,Mashup 是一种很棒的资源节省技术,可以使用任何可用的资源构建更加健壮的应用程序。Mashups 集成了来自多个来源的信息,比如 Web 站点、企业数据库或电子邮件,构建一个统一的视图。Mashup 通常使用 Ajax 编写,集成来自内部和外部来源的数据。开发人员可以将信息与 Google Maps 等工具聚合起来,以支持路线选择和客户分析应用程序,帮助非技术用户了解比较复杂的情形。
然而,mashup 也带来了自身特有的各种风险。您是否清楚自己正在使用的数据的来源?它是否是合法的?当调用由其他应用程序定义的回调函数时会发生什么?是否会不小心与第三方共享机密数据?提出这些问题并不是要把您吓跑并远离 mashup 应用程序,但是在针对企业开发 mashup 时应当考虑到这些问题并进行检验。
例如,开发人员发现人们不赞成使用 MySpace API。使用这些 API 的 Mashup 应用程序容易受到黑客的攻击,因为黑客利用了这些不受支持的 API。
那么,如何保证 mashup 应用程序的安全性?关注有关所使用资源被攻击的新闻。Google Maps 之类的工具攻击问题在发现之后通常就会公布于众。查找有关攻击的资料并保持关注。Security Focus(参见 参考资料)之类的站点收集了大量有关攻击和安全漏洞的信息,值得一看。
针对安全漏洞提供防护的一种新方法就是使用更加智能的工具,这些工具能够感知到危险的资源和技术。经过调查后会发现有多种选择,但是我们这里将关注 IBM Research 的 WebSphere® sMash,这是用于构建动态 Web 应用程序的开发和执行平台。它建立在 Project Zero 孵化项目的基础之上,并且可以免费下载,用于跨多个平台的有限部署。
WebSphere sMash 使用 Web 2.0 技术,将 PHP 脚本、REST 和 Dojo 组合到一个集成的运行时和工具包中。其 PHP 5.2 或更高版本的运行时使用 Java™ 实现。PHP 程序员可以利用 Java 库,而 Java 程序员则访问可通过 Java 和 Groovy 代码聚合起来的 PHP 应用程序和库。
通过实现系统级身份验证和授权,WebSphere sMash 可以帮助防御恶意代码。使用称为 Active Content Filtering (ACF) 的工具,应用程序开发人员定义了安全规则,包括确定对哪些资源实施保护、使用什么方法实施保护,以及允许哪些用户和组访问这些资源。具体来说,ACF 旨在帮助防御跨站点请求伪造(Cross Site Request Forgery,CSRF)和跨站点脚本(Cross-Site Scripting,XSS)攻击。在 CSRF 攻击中,从 Web 站点信任的用户处传播未经授权的命令。XSS 利用了用户对某个 Web 应用程序的信任。例如,用户单击一个链接打开包含恶意 JavaScript 的 Web 应用程序,这些恶意 JavaScript 代码将中断用户的会话。
随着 mashup 的日益流行,我们将看到会有越来越多的其他策略和工具涌现出来,以增强 mashup 的安全性。
现有 mashup 应用程序的例子包括 Jibes 的可以读取客户 Excel 表并将其与 ERP 系统集成的应用程序;以及 ZSL 的 Enterprise 2.0 SocNet,它可以促进员工之间的协作、知识共享和交互。ZSL 将这个工具扩展为面向服务的云计算服务,现在可以作为 Collaboration as a Service (CaaS) 使用,也被称为 Collaboration in Cloud (CiC)。
您应当为这些和其他 mashup 资源的使用设定您自己的安全标准。
最后,我们简单谈一下外包。通过远程托管系统和应用程序,您可以节省大量能耗和资源。但是,您再一次将资源放到了企业的 “安全区” 以外。在与境外公司合作时,如何提供安全性并防止出现宕机问题?提出正确的问题,然后提前签订可靠的协议。
任何外包应当都会伴随着生成清晰的、详细的服务级别协议(Service Level Agreement,SLA)。SLA 是服务提供商和客户之间签订的正式合约,确保在某个具体级别上实现可度量的网络性能。服务提供商可能是一家内部 IT 组织、一个应用程序服务提供商(ASP)、一个网络服务提供商(NSP)、一个 Internet 服务提供商(ISP)、一个托管服务提供商(MSP),或者任何其他类型服务的提供商。
SLA 内容可以非常宽泛,也可以非常的详细,并且通常包括服务提供商和客户在出现故障时应当采取的步骤。服务提供商保证它所提供的服务具有一定的可用性,使用时间百分比表示,例如 99.9%。
服务提供商还可以完成四件事情:第一,可以对 Web 应用服务器的最大响应时间和平均响应时间施加限制。其次,可以对内容访问或资源共享设置最大时间。第三,可以对同时享受服务的用户的最大数量施加限制。第四,可以向客户通知 SLA 宕机事件,或在对网络接口作出修改之前通知。
如果服务提供商在超过指定的时间期限后无法交付规定的性能水平,客户将保留处理权限和补救方法。这些权限、补救方法和免责条款因 SLA 而异。客户还可能同意接受合约的一般条款中规定的例外情况。
问题在于,服务提供商可能并不会按照您(作为一名开发人员或部署人员)的意愿提供服务。您应当作出明智的决策,确定服务提供商的托管位置以及存在的安全漏洞。您可能会选择冒一定的风险,或者自己完成服务提供商未履行的一些事情。作为一名开发人员,您应当意识到这些风险以及如何知道服务提供商没有完成哪些事情。例如应用安全控制来缓解风险。提出您的问题。如果服务提供商没有给出您希望的答案,那么准备好为您的 mashup 和其他类型的 Web 应用程序提供安全性。
下表展示了您应当向服务提供商提出的样例问题。
表 1. 样例问题
| 类别 | 问题 |
|---|---|
| 状态 | 服务器在随后的状态中是否正确响应?要完成某项任务,状态的结构是怎样的? |
| 访问控制 | 未经授权的用户能否成功地访问只有管理员才有权使用的控制权? |
| 响应时间 | 应用服务器的响应时间是否很长(比如,超过了 10 秒钟)?导致响应时间过长的原因是否是因为丢失了大量包? |
| 超时 | 服务超时后会发生什么?是否会引起系统宕机?是否会回滚到以前的状态? |
| 版本化 | 新的构建是否会影响现有应用程序的正常工作? |
| 资源共享 | 资源空闲后会发生什么?是否可以在任意给定的时间共享它们? |
得到这些答案后,确定哪些安全控制是服务提供商无法提供的,从而将高等和中等程度的风险降至一个可接受的范围。付出的成本绝对不能超过安全控制所带来的优势。如果成本太高的话,可能需要改变安全控制来节省资金。应用了安全控制之后,可能依旧存有风险,这也称为残余风险。您可能需要修改安全控制或更新应用程序,以降低残余的高风险的数量。
安全人员和开发人员应当注意,运行 Web 应用程序的虚拟化环境在迁移到虚拟化之前是如何按照强制的 SLA 工作和交付的。远程办公者的计算机和后端系统上的虚拟机如何抵御影响系统正常运行的恶意行为?
考虑使用 VMware 的 VMSafe 之类的程序来更好地将安全性集成到虚拟化环境中。IBM 是该项目的成员之一,像许多安全性公司一样,它计划使用或已经使用了 VMware API 来进入到 hypervisor 领域并生产旨在加强 hypervisor 并延长系统正常运行时间的产品。
VMSafe 是一组可以以一定程度深入到 VMware 的 hypervisor 的 API。这些 API 使安全性供应商可以开发工具来锁定病毒、监视网络通信量、构建防火墙来集成虚拟机,甚至执行管理和漏洞评估。VMSafe 克服了一些有关以虚拟设备运行的虚拟屏蔽(shield)问题,比如与现有安全监视系统的局部集成。IBM 研究人员正在开发新的安全技术,为 hypervisor 提供保护并监控虚拟环境之间的通信。
出于业务和环境方面的原因,企业在节约资源方面承受了很大的压力。不要因为忽略细节而招致风险。确保您的远程办公人员能够清晰地了解他们负有的安全职责,并为他们提供必要的工具来安全地处理机密信息(或提供指导)。清楚地了解 mashup 应用程序中的安全漏洞,并寻找新的方法来避免包含未经授权的数据和恶意代码。最后,在寻找外包托管和应用程序提供商时要更灵活一些。提出正确的问题,并签订可靠的协定来保护您的利益和客户的利益。
关注细节将帮助您自信地、相对安全地将新技术应用到业务中。
学习
- 在 developerWorks Green Spaces 中了解所有有关环保化的主题。
- 在 Secure Focus Web 站点 中了解攻击和安全漏洞问题。
- 了解有关 IBM Research 的 sMash 的更多信息,为 mashup 及其基础项目 Project Zero 提供保护。
- 通过 developerWorks 文章 “将 Active Content Filtering 用于 Project Zero 和 WebSphere sMash 应用程序的安全性” 了解有关 ACF 的更多信息。
- 从 VMWare 的 VMSafe 站点了解有关它的更多内容。
- 希望进一步了解 Ajax 工具吗?请阅读 “Ajax -- 困惑者指南,第 1 部分: Ajax 工具和技术综述”。
- 阅读 “SOA 中的紧密耦合 Web Services”。
- 阅读 Judith M. Myerson 的 The Complete Book of Middleware,本书关注系统设计的基本原理和优先级别,并强调了电子商务和分布式集成系统的出现打来的新需求。
- 通过阅读 Enterprise Systems Integration, Second Edition 获得业务洞察力和技术知识,确保实现成功的系统集成。
- 阅读 RFID in the Supply Chain 使您的企业跟上发展步伐,其中解释了业务流程、操作和实现问题、风险、安全漏洞、安全性和私密性。
- developerWorks 技术活动和网络广播:随时关注 developerWorks 技术活动和网络广播。
-
developerWorks Web development
专区:通过专门关于 Web 技术的文章和教程,扩展您在网站开发方面的技能。
- 通过 My developerWorks 定制您的 developerWorks 体验。
获得产品和技术
- 从项目网站下载 WebSphere sMash Developer Edition。
- 了解用于架构管理的 IBM
Rational Web Developer for WebSphere Software、用于变更和版本管理的 IBM Rational ClearQuest 以及用于质量管理的 IBM Rational Functional Tester Plus 如何为开发 Ajax 和其他应用程序提供帮助。这些来自 IBM 的工具通过减少测试时间和企业测试实验室的成本来帮助您提高生产力。
-
下载 IBM 试用产品:使用可直接从 developerWorks 下载的 IBM 试用软件构建您的下一个开发项目。