许多企业为规避IaaS层面的安全风险,选择了一个看似简便的方案——在数据上传至云端前先行加密。然而,同样的策略应用在PaaS上,效果却大打折扣。
PaaS的核心在于构建一个既能处理数据、又能访问数据的运行环境。数据一旦进入,就需要被读取、修改,再重新存储,这意味着加密与解密操作必须频繁切换。久而久之,管理复杂度随之攀升,成为新的棘手难题。
加密仅仅是PaaS安全挑战的冰山一角。接下来,我们来探讨企业在与PaaS服务商签订合同时,究竟应当重点关注哪些安全问题。
PaaS安全挑战:数据位置
PaaS提供的是软件开发环境,以及结果输出或文件存储的能力。但这里的“平台”并非单一主机,而是一组集群。换言之,你的数据并不会固定在主机的某个特定扇区。数据位置不唯一,安全防护的难度自然显著增加——毕竟,守住一个点远比守住一群点要容易。
PaaS的卖点在于降低软件开发成本,它提供了开发工具、存储区域、工作区等全套基础设施。为了提升效率,PaaS环境通常会实施数据去重。去重为开发者和用户带来了高可用性,但问题在于:数据并不会被完全删除,被清除的只是指向数据的指针。这样一来,数据残留便散落在各处,而精确位置往往难以追溯,威胁也就更难定位。
PaaS安全挑战:特许存取
PaaS中一个颇受欢迎的功能是“内置调试”。开发人员通过调试来查找代码中的错误,这要求他们能够访问数据和内存位置,以便逐行检查代码、修改数值、测试不同输出。调试相当于赋予了开发者特权级的访问权限——这对程序员来说是利器,对黑客同样如此。
企业选择PaaS的另一个优势,是不必再自行权衡安全与程序员特权之间的矛盾。程序员通常希望在一个特权环境中工作,他们往往直接要求完整访问权限,而非仔细推敲到底需要哪些权限。将开发迁移到PaaS上,相当于把这一敏感问题转交给了云服务提供商。这当然不能保证解决方案最为安全,但至少将责任整体转移了出去。
PaaS安全挑战:分布式系统
PaaS的文件系统通常高度分布。一个常见的实现是Hadoop分布式文件系统(HDFS),它通过独立管理的命名节点(Namenode)进行协调;节点之间可能相互独立,但云服务提供商拥有集群,因此配置路径往往趋于标准化。HDFS默认使用端口50070、50075和50090——这些都是TCP端口,但也正是攻击的入口。各类输出可以借助这些端口尝试引发故障或发起DoS攻击。
再比如,使用Map Reduce就需要开放TCP端口50030和50060。此外,Namenode、Datanode、Backupnode、Jobtracker、Tasktracker还有各自所需的端口。一旦这些端口被用于操作和管理,它们同样会成为潜在的攻击载体。
需要强调的是,意识到潜在攻击载体并不等同于找到了真正的漏洞,而是意味着在投入PaaS架构之前,还有一项分析工作要做。合理的流量评估和安全机制是最低要求。云服务提供商理应提供必要的安全保障,但核查这些安全措施是否到位,最终是客户自身的责任。
