CSA大数据安全防护技术实践:(一)分布式编程框架安全

编者注:本主题为系列文章,为各位网友总结介绍CSA联盟提出的大数据安全最佳实践,从技术实践角度为大数据服务提供方提供加强系统安全性的建议。

“大数据”是指公司、政府等收集的与人及环境相关的海量数字信息。根据近年来的预测,全世界范围内产生的数据量每两年会翻一番,2012年只有约2,500艾字节(2^60字节),到2020年,这一数字将会增加到40,000艾。在大数据环境下,数据量大、数据多样性强、处理速度要求快等技术特点,也将系统的安全和隐私问题成倍放大。同时,大规模云基础架构、数据源类型及数据格式的多样性、数据采集的流式特征及批量数据迁移等新的技术特性,也产生了很多大数据环境下特有的安全漏洞类型。

新的安全挑战并非仅仅是由于数据量的增加造成的。实际上,近十年以来,大数据一直在被人类收集和利用。但是,与以往相比,当前大数据应用领域的最大差别在于,各种规模大小的组织都能够有足够的资金和技术能力去获取并利用海量数据。过去,大数据应用仅限于政府和超大型企业等大规模用户,只有他们有能力建设和运维用于存储与挖掘大数据的基础设施。今天,通过公有云等基础设施,各类组织都能够方便快捷地实现大数据应用,Hadoop等基础软件更是使开发人员实现上千个计算节点的并行计算变得非常便捷。上述技术的发展成熟,再加上通过公有云供应商获取低成本计算能力的便捷性,均大大推动了大数据应用的发展。

与此同时,构建大数据环境普遍采用的硬件、操作系统及基础软件等多家企业商用产品之间存在的技术异构性,也使得整体安全体系的设计实现难度极高。

另外,在云环境下,如异常行为检测等产生的流数据类数据对象,其规模往往会随时间成数量级增长,针对此类数据,针对防火墙或类隔离网络所产生的小规模静态数据集的传统分析技术已无法应对。并且在现有技术架构基础上,也缺乏对此类数据源实施优化的好的技术手段。同时,流数据安全和隐私解决方案还需要极快的响应时间。

以上各类大数据环境中新出现的安全问题,都亟需有效的技术解决方案。

分布式编程框架计算安全

在分布式编程框架(如Apache Hadoop)中,确保mapper与数据的可信性等安全问题至关重要,同时还要采取技术手段防止在mapper的输出中出现数据泄漏。在确保分布式编程框架计算安全方面,可以从以下多个角度采取相应的技术措施:

1 确保初始信任建立过程安全

本环节的主要目的是确保mapper的可信性。建议采用的具体技术手段为:在工作主机向主服务器发送连接请求时,应使用Kerberos或类似安全级别的身份认证机制来建立双方的初始信任关系,同时应注意,认证方式应采用双向认证,在确认工作主机身份的同时确保主服务器的身份真实性。除了身份认证手段之外,对于安全要求更高的环境,还可以考虑采用可信平台模块TPM(Trusted Platform Module)、可信密码模块TCM(Trusted Cryptography Module)等硬件机制实现完整性检测。

2 确保预定义安全策略有效

本环节的主要目的是确保大数据环境在计算过程中的高安全性。建议采用的具体技术手段为:定期检查每个工作节点的安全属性,如检查主节点的Hadoop-policy.xml文件,确保其与其他工作节点的安全策略相匹配。

3 消除数据的标识性

本环节的主要目的是防止因数据主体的身份与外部数据产生关联而导致的主体隐私泄漏。建议采用的具体技术手段为:将所有具备个人标识性的信息,如姓名、地址、身份证号等进行屏蔽或加密,或在不影响系统功能的情况下直接删除此类数据。除了上述这些信息,还应该注意其他类标识性信息,如出生日期、性别、邮编等有可能部分标识数据主体的信息。另外,还可以考虑采用k-匿名模型等技术来减少重识别风险。

4 采用预定义安全策略对文件访问进行授权

本环节的主要目的是保证mapper类的输入信息完整性。建议采用的具体技术手段为:针对数据文件访问实施强制访问控制,即对数据对象标定安全级别,给用户授予某级别的访问许可,对任一数据对象,只有授权用户能够存取,并且不允许用户将其存取权限转授给其他用户。

5提升分布式数据库自身的访问安全性

本环节的主要目的是隐私保护。建议采用的具体技术手段为:为了提升HBASE的安全性,用Sentry来实现细粒度、基于角色的强制访问控制。在Hadoop中,将数据节点中数据块的访问令牌配置成只有被授权用户才能访问的形式。

6 防止在数据输出环节产生信息泄漏

本环节的主要目的是安全和隐私保护。在实际环境中,大量技术失误,如加密技术非正确应用等,均有可能导致数据泄露。另外,系统调试信息、非受控的输出信息流、系统日志记录功能、错误页面的信息详情等,也都有可能使攻击者了解系统情况并制定针对性的攻击方案。针对这些问题可采用的技术手段包括:1)在系统功能设计时防止出现有可能导致信息泄漏的代码;2)对系统的后台功能(如通过网络通信实现版本更新等)是否有可能造成信息泄露进行专门的检查;3)在网络层,根据数据泄漏防护策略过滤所有被传输数据。另外,消除数据的标识性也有助于降低数据泄漏产生的影响。

7 工作节点维护

本环节的主要目的是确保工作节点正常运转。建议采用的具体技术手段为:对工作节点进行定期检查和维护维修,确保其配置正确。

8 非法假节点检测

本环节的主要目的是避免云或虚拟化环境中攻击行为的发生。建议采用的具体技术手段为:通过有效的技术手段,对通过创建合法节点快照而进入环境的非法假节点实施检测,从而在攻击发生前发现并删除被攻击者植入的假节点。

9mapper保护

本环节的主要目的是避免在计算结果输出环节产生不正确的输出。建议采用的具体技术手段为:采用技术手段对有可能由于被篡改而导致返回错误计算结果的mapper进行检测,及时发现并实施修正。

10 副本节点检查

本环节的主要目的是避免云计算或虚拟化环境中攻击行为的发生。建议采用的具体技术手段为:对新建的副本节点进行检测,确保此类节点的合法性,如利用哈希计算、单元数据时间戳等技术实现强制的完整性校验。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180425B18U2L00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券