吴丽杰,窦维江
(1.安徽粮食工程职业学院 信息技术系,安徽 合肥 230011;2.安徽省医药集中采购服务中心 信息科,安徽 合肥 230001)
目前大数据技术已经给科学研究、公共管理、商业等领域带来重大变革[1].我国政府先后发布《促进大数据发展行动纲要》、《大数据产业发展规划(2016-2020年)》,将大数据纳入国家战略.大数据是不同硬件和软件技术的集合,这些技术具有异构的基础结构.在主流大数据平台中,Hadoop在存储和处理大数据方面起着主导作用.Hadoop是基于分布式计算模型的开源框架,适用于在商用计算机集群上处理和存储数据.它为大数据提供了快速且经济高效的解决方案,并被用于医疗保健,保险和社交媒体等不同领域[2].
随着大数据技术的蓬勃发展,随之带来的安全问题也日益凸显.由于数据来源的未知,匿名数据可以被重新识别,传统访问权限、防火墙、传输层的安全性可以被打破等原因,大数据平台需要采取更为先进的技术来保护、监测和审计大数据过程的基础设施、应用程序和数据以确保大数据平台的安全[3].《中华人民共和国网络安全法》第十八条也指出:国家鼓励开发网络数据安全保护和利用技术,促进公共数据资源开放,推动技术创新和经济社会发展[4].网络安全问题也最终被提升到国家战略层面[5].为此,我国从2019年12月起执行网络安全等级保护2.0制度,实现了对移动互联、云计算、物联网、工业控制及大数据系统的等级保护全覆盖[6].
由于大数据平台各系统的复杂性,测评公司在执行等保测评时,针对大数据各系统的安全配置检查尤为重要.然而测评师往往需要登录各系统的众多配置文件中去检查需要加强的安全配置,这不仅效率低下且容易遗漏重要配置项.文章针对业界现有状况,设计一种适于Hadoop大数据平台的安全配置检测系统,用于提高测评师的工作效率.
Hadoop是由Mahout、Hive、Drill、Pig、Spark等众多组件构成,是一个完整的大数据生态链平台,Hadoop2.0框架如图1所示[7].其中,HDFS是分布式文件存储系统,Hbase是分布式列式存储数据库系统,Spark是数据分析集群计算框架,YARN是集群的资源管理系统.
所有Hadoop环境组件(如Sentry、Flink和Storm)都容易受到各种漏洞的攻击.由于Hadoop各组件系统的配置较弱,许多默认设置(例如默认端口和IP地址)容易受到攻击,如Hadoop Web界面容易受到XSS脚本攻击(例如Hue)[2].
图1 Hadoop框架
根据《GB/T 28448-2019 信息安全技术网络安全等级保护测评要求》[8]、《GB/T 36627-2018 信息安全技术网络安全等级保护测试评估技术指南》[9],等保测评过程中应进行系统的配置检查.
配置检查的主要功能是通过检查测评对象的安全策略设置和安全配置文件,评价测评对象安全策略配置的强度.进行配置检查时,可考虑评估如下要素:开启必要的审计策略;合理设置文件访问权限;依据安全策略进行加固或配置等.
为了提高测评师工作效率及准确率,系统需要根据知识库自动出具检测报告.本系统基于开源系统BDA[10],实现了Hadoop各组件的安全配置检测.系统采用Python编程语言,使用Configparser读取各系统配置文件,使用时只需将配置文件拷贝至测评设备或将本系统拷贝至大数据平台服务器中,具有很强的兼容性及便利性.
3.2.1 建立安全配置知识库
建立Hadoop常用组件系统的安全配置知识库,是本系统的核心所在.根据等保测评2.0要求,本系统初步建立授权、认证、加密、访问控制等常用安全知识库,如下所示:
#开启Hadoop安全授权机制
hadoop.security.authorization=true
#安全认证机制设置为Kerberos
hadoop.security.authentication=Kerberos
#启用HDFS的权限检查及ACL控制
dfs.permissions.enabled=true
dfs.namenode.acls.enabled=true
#当读写加密空间时使用密匙进行交互
dfs.encryption.key.provider.uri=KeyProvider
#开启应用程序及Spark的ACL
yarn.acl.enable=true
spark.acls.enable=true
#开启Spark的身份认证及SSL
spark.authenticate=true
spark.ssl.enable=true
#记录Spark的事件日志
spark.eventLog.enabled=true
#开启HBase安全授权机制及安全认证机制
hbase.security.authorization=true
hbase.security.authentication=Kerberos
3.2.2 系统安全配置检测
系统分别检测了利用Apache Ambari部署的Hadoop平台的HDFS、YARN、Hbase及Spark组件.各组件系统的配置文件分别为core-site.xml(Hadoop Core的配置项,如HDFS、MapReduce等常用I/O的配置)、hdfs-site.xml(Hadoop守护进程的配置项,如NameNode、DataNode存放位置的配置)、yarn-site.xml(集群资源管理系统参数的配置项,如ResourceManager、NodeManager通讯端口的配置)、hbase-site.xml(Hbase集群的相关配置,如zookeeper集群的URL配置)、spark-defaults.conf(Spark应用程序的配置项,如集群master节点、executor可用内存的配置).
测评师运行系统的Python脚本,指定需要检测的平台组件及组件配置文件位置,即可检查测评对象的安全策略设置及加固建议.Hadoop常用组件检测结果如图2所示.
图2 HDFS、YARN检测结果
图2表示检测系统建议开启HDFS及YARN组件的安全授权机制、安全认证机制,启用HDFS的权限检查及ACL控制等.
图3表示检测系统建议将Hbase的安全认证机制设置为Kerberos.
图3 Hbase检测结果
图4表示检测系统建议开启Spark组件的安全认证机制,ACL控制,SSL,事件日志记录等.
图4 Spark检测结果
通过本系统检测可知,利用Apache Ambari部署的Hadoop各组件系统的默认配置较弱,如hbase.security.authorization=false,需要进行安全性调整.本系统可以根据知识库,直接出具配置检查结果,很大程度上提高了测评师工作效率.
由于大数据需要高计算能力和大存储量,因此大数据平台各组件一般使用分布式系统.由于这些系统涉及多方,在大数据生命周期的各个阶段,即数据生成、存储和处理,都面临着安全及隐私保护问题[11].如今,大数据的预测能力已广泛用于医学和天文学,对大数据平台各系统的安全保护也显得日益重要.文章提出的安全配置检测系统可提高测评师在等保测评过程中的工作效率.下一步,通过完善安全配置知识库,将本系统应用于大数据平台各组件系统中,如Storm、Flume、Kafka、MongoDB等.