吳麗杰,竇維江
(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等.