數據安全之剩余信息保護

2019-06-13 01:54:19 網絡空間安全 2019年1期

徐麗娟 李杺恬 唐剛

摘? ?要:隨著信息化進程的加快,全球信息量呈爆炸式增長。隨之而來的數據安全問題也日益增多,侵犯個人隱私、竊取個人信息等違法犯罪行為時有發生,數據安全問題日趨嚴重,已經成為影響國家公共安全、社會安全的突出問題。數據安全中的一個重要問題是對剩余信息的保護,即對用戶使用過的信息,當該用戶不再使用或不再存在時,應當采取一定的措施進行保護,防止剩余信息造成用戶隱私的泄露。論文從標準要求、保護對象、在等級保護測評中面臨的挑戰、檢測方法等多方面對剩余信息保護進行了分析,為等級保護測評中的剩余信息保護測試提供了全方位的技術支撐。

關鍵詞:網絡安全;數據安全;等級保護;剩余信息保護

中圖分類號:TP309? ? ? ? ? 文獻標識碼:B

Abstract: With the acceleration of the information process, the global information volume has exploded. The importance of ensuing data security issues is also increasing. Criminal violations such as personal privacy and theft of personal information have occurred from time to time. Data security issues have become increasingly serious and have become a prominent problem affecting national public security and social security. An important issue in data security is the protection of the residual information, that is, the information used by the user. When the user no longer uses or no longer exists, certain measures should be taken to protect the user from leaking the privacy of the remaining information. This paper analyzes the residual information protection from the requirements of standards, protection objects, challenges in the classified protection assessment, and detection methods, and provides a full range of technical support for the residual information testing in the classified protection assessment.

Key words: cybersecurity; data security; classified protection; residual information protection

1 引言

數據安全是網絡安全中的一個重要方向。數據安全中一個重要的問題就是對剩余信息(Residual Information)保護,也就是說對用戶使用過的信息,當該用戶不再使用或不再存在時,應當采取一定的措施進行保護。在GB/T 22239-2008 《信息技術信息系統安全等級保護基本要求》中,剩余信息保護是對三級以上的系統的要求,而在GB/T 22239-2008的修訂版本中,即《信息安全技術網絡安全等級保護基本要求》(征求意見稿)(20170813版)中,剩余信息保護變為對二級以上的系統的要求,可見剩余信息保護的重要性逐漸被得到重視。

本文從剩余信息保護的標準要求、剩余信息保護的保護對象、剩余信息保護在等級保護測評中面臨的挑戰以及剩余信息保護檢測方法等方面進行介紹,為等級保護測評中剩余信息保護測試提供技術支撐。

2 剩余信息保護的標準要求

剩余信息保護的概念來源于美國國防部的《可信計算機評估準則》(TCSEC,1985),在該準則的“客體重用”一章中對剩余信息提出了保護要求[1]:“……允許分配給其他的客體,但必須確保重用的客體不能從以前用戶所使用的存儲介質(磁盤或內存)中恢復信息。”隨著數據安全的重要性被世界各國所重視,各國相繼出臺了針對數據安全保護的法律法規,尤其對剩余信息保護提出了諸多標準要求。

2.1 各國針對數據安全保護的法律法規

針對數據安全各國均出臺了法律法規進行約束,2018年5月25日,歐盟正式施行新的網絡數據隱私保護條例《通用數據保護條例》[2](General Data Protection Regulation,GDPR),嚴格限制企業對個人數據的使用權,處罰力度空前加強,全方位地保護上網者的數據安全,要求數據主體在不希望自身數據被利用且無合法必要理由保留時,有權要求刪除該數據,這實質上就是對“剩余信息”提出的保護要求。Facebook、微軟、Twitter、Apple 等公司紛紛修改其在歐盟境內對用戶個人數據的處理方式。微信也于日前發布聲明,如歐盟地區微信客戶有需求,微信平臺公眾號運營者會在三周內,從服務器中刪除該用戶相關的所有信息,包括用戶昵稱、頭像、OpenID及與該用戶關聯的服務信息。

日本于2003年頒布《個人信息保護法》,2015年頒布實施《個人信息保護法》修正案,規范和限制個人信息持有者和處理者(政府部門、企業)的行為。韓國在2001年頒布《振興信息與通訊網絡的利用與數據保護法》,2011年頒布《個人信息保護法》,規定個人信息保護的基本原則、基準,信息主體的權利保障,個人信息自決權的救濟問題。

習近平總書記強調,互聯網企業要切實承擔起社會責任,保護用戶隱私,保障數據安全,維護網民權益。要切實保障國家數據安全,強化國家關鍵數據資源保護能力,增強數據安全預警和溯源能力。《中華人民共和國網絡安全法》于2017年6月1日正式施行,明確加強對個人信息的保護,防止信息泄露、毀損、丟失。《關于做好引導和規范共享經濟健康良性發展有關工作的通知》(發改辦高技〔2018〕586號)明確提出保護個人信息安全,提高個人信息保護水平,防止信息泄露、損毀和丟失。2018年5月1日實施的GB/T 35273《信息安全技術個人信息安全規范》從國家標準層面,規范了個人信息控制者在收集、保存、使用、共享、轉讓、公開披露等信息處理環節中的相關行為,旨在遏制個人信息非法收集、濫用、泄露等亂象,最大程度地保障個人的合法權益和社會公共利益。可見,防止信息泄露、保護數據安全已成為時代主題,是法定事項。

2.2 剩余信息保護的標準要求

《信息技術安全性評估準則》(CC準則)進一步將殘余信息分成子集殘余信息保護(FDP_RIP.1.1)和完全殘余信息保護(FDP_RIP.2.1),要求“確保任何資源的任何殘余信息內容,在資源分配或釋放時,對于所有客體都是不可再利用的[3]。”從安全功能來看,要求新產生的客體不能包含以前客體的信息。從安全機制來看,要求產品或系統具備刪除或釋放已刪除主體的信息的能力。

2008年頒布的GB/T 22239-2008 《信息技術信息系統安全等級保護基本要求》中,剩余信息保護是三級以上的要求,包括兩條[4]:一是應保證用戶鑒別信息所在的存儲空間被釋放或再分配給其他用戶前得到完全清除,無論這些信息是存放在硬盤上還是在內存中;二是應保證系統內的文件、目錄和數據庫記錄等資源所在的存儲空間被釋放或重新分配給其他用戶前得到完全清除。

GB/T 22239-2008分別針對主機安全和應用安全提出了剩余信息保護要求,保護對象是鑒別信息、用戶信息,屬于CC準則中“用戶數據”的范疇,具體內容是系統內的文件、目錄、相關進程等;安全功能的提供者是操作系統、數據庫系統和應用軟件,操作的對象是用戶信息的存儲介質,包括內存和磁盤控件。兩者相結合,即用戶信息(鑒別信息、用戶文件、目錄)等資源所在的存儲空間被釋放或重新分配給其他用戶前應該得到“完全清除”。

在GB/T 22239-2008的修訂版本中,即《信息安全技術網絡安全等級保護基本要求》(征求意見稿)[5]的第1部分安全通用要求中,在第二級安全要求中增加了剩余信息保護的要求,應保證鑒別信息所在的存儲空間被釋放或重新分配前得到完全清除。在第三級及第四級安全要求中對剩余信息保護要求:應保證鑒別信息所在的存儲空間被釋放或重新分配前得到完全清除;應保證存有敏感數據的存儲空間被釋放或重新分配前得到完全清除。

3 剩余信息保護的對象

要對剩余信息進行保護,首先要能識別剩余信息,以及剩余信息的邏輯載體與物理載體。剩余信息的邏輯載體主要是指操作系統、數據庫系統、應用系統等;剩余信息的物理載體則是各種類型的存儲介質,主要包括機械磁盤和固態存儲設備。

3.1 剩余信息的邏輯載體

剩余信息的邏輯載體主要是指操作系統、數據庫系統、應用系統[6],接下來具體介紹一下各種邏輯載體中的剩余信息類型。

3.1.1 操作系統

在操作系統層面,用戶信息主要包括:鑒別信息、用戶擁有的文件或目錄、用戶操作過程中產生的過程文件等。

鑒別信息:操作系統用戶的鑒別信息主要指用戶名和密碼。Windows操作系統通常保存在C:\WINDOWS\system32\config目錄下的sam文件中;Linux操作系統一般保存在/etc/passwd(或者/etc/shadow);AIX系統保存在/etc/security/passwd;HP-UX保存在/etc/passwd(或者/etc/shadow)。

文件或目錄:操作系統用戶的文件或目錄表現為兩種方式,一是系統管理員專門為其開辟的空間,如用戶的根目錄,如Windows下的SystemDrive/Documents and Settings/用戶名,Unix下的/home/用戶名;二是散落在整個文件系統中,但以該用戶作為標記的文件空間,比如用戶創建的,屬主是用戶的文件或目錄。

過程文件:操作系統用戶在使用過程中產生的信息,如Windows下的Temp文件、Cookies等,Unix下的.sh_history等,這是另一類的用戶信息。

3.1.2 數據庫系統

在數據庫系統層面,用戶信息主要包括:鑒別信息、數據表、數據文件等。例如,對Oracle數據庫,鑒別信息存放于DBA_USERS視圖的Password列中。如果采用口令文件驗證,對于Oracle 10.2.0.1,鑒別信息保存在/oracle/app/product/10.2.0.1/dbs目錄下的Orapwsid文件(或者ORACLE_HOME/dbs/PWDsid.ora)中。數據文件保存在/oracle/app/oradata/目錄下,每個實例都有自己的數據文件,屬于dbf文件類型。

從本質上來看,數據庫系統的用戶信息還是操作系統的文件,但不同的數據類型,由數據庫管理系統實現標記、管理和分別存儲。

3.1.3 應用軟件

對應用軟件,用戶信息的形式較為多樣化。絕大部分是以數據庫記錄的方式存在,也有以文件方式獨立存在的。應用軟件的用戶,有的就是獨立的數據庫系統用戶;有的不是獨立的數據庫系統用戶,而是由多個登錄到應用軟件的用戶共同使用一個或幾個數據庫用戶登錄到數據庫。因此,對應用軟件中用戶信息的標記就相對復雜,也不可能由數據庫系統或操作系統獨立完成。

除了以上信息類型,剩余信息還包括系統中的敏感數據。

3.2 剩余信息的物理載體

剩余信息的物理載體是各種類型的存儲介質,主要包括機械磁盤,固態存儲設備(如固態硬盤SSD、SD卡、TF卡、U盤)等。由于各種存儲介質的存儲原理不同,對剩余信息的安全刪除,實現剩余信息的保護措施也不同。基于機械磁盤和基于閃存的固態存儲系統的邏輯結構圖如圖1所示,呈現多層次結構[7]。

存儲系統的底層是實際存儲數據的物理介質,例如磁盤或閃存存儲器。物理存儲介質總是通過控制器訪問。控制器的基本功能是將物理存儲介質上的數據格式(例如,電壓)轉換成上層可理解的格式(例如,二進制數值),并且提供一個標準化的,定義明確的硬件接口,例如ATA和SCSI接口,它允許從/向物理存儲介質讀取/寫入數據。

機械磁盤采用數據原位更新,因此其控制器通常將邏輯塊地址映射到物理存儲介質上的某個存儲位置。固態存儲設備采用非原位更新,通常通過閃存轉換層(Flash Translation Layer,FTL)或閃存專用文件系統(如YAFFS文件系統)進行管理。設備驅動程序以軟件形式,通過一個簡單的通用接口來整合對不同類型硬件的訪問。塊設備驅動程序接口允許在邏輯地址中讀取和寫入塊,如塊設備、內存技術設備(MTD)、及建立在MTD上的未分類的塊圖像(UBI)設備驅動。

文件系統負責通過設備驅動程序提供的接口在物理存儲介質上的可用塊之間組織邏輯數據序列。包括建立在塊設備之上的塊文件系統,例如FAT32、EXT4和NTFS等;構建在MTD設備之上的閃存文件系統,例如YAFFS;建立在UBI設備之上的UBI文件系統。存儲系統的最頂層是應用層,為用戶提供一個數據操作接口。

4 剩余信息保護面臨的挑戰

在GB/T 22239-2008中剩余信息保護安全項主要體現在主機安全方面和應用安全方面。具體的要求應保證用戶(操作系統和數據庫系統用戶)鑒別信息所在的存儲空間被釋放或再分配給其他用戶前得到完全清除,無論這些信息是存放在硬盤上還是在內存中,應保證系統內的文件、目錄和數據庫記錄等資源所在的存儲空間被釋放或重新分配給其他用戶前得到完全清除[4]。從剩余信息保護要求項的描述來看,該要求項要保護的“剩余信息”主要是內存或者硬盤的存儲空間,要保護的信息是用戶鑒別信息,要保護的時間是被釋放或重新分配給其他用戶后。

4.1 內存中的剩余信息保護

應用程序對用戶的身份鑒別流程一般情況下是這樣的,應用程序會先將用戶輸入的用戶名和口令存儲在兩個字符串類型(也可能是數組等)變量中。通常情況下,為了防止攻擊者采用自動腳本對應用程序進行攻擊,應用系統會要求用戶輸入校驗碼,并優先對校驗碼進行驗證。如果用戶輸入的校驗碼錯誤,應用系統應要求用戶重新輸入校驗碼。在校驗碼驗證通過后,應用系統應從數據庫中讀取用戶身份信息表,并在其中查找是否存在用戶輸入的用戶名。如果未查找到,則應用系統應返回“用戶名不存在”(或者較模糊地返回“用戶名不存在或者密碼錯誤”)。如果在用戶身份信息表中找到用戶名,應用程序一般應采用一種雜湊算法(通常是MD5算法)對用戶輸入的密碼進行運算得到其哈希值,并與數據庫用戶身份信息表中存儲的密碼哈希值進行比較。這里需要說明的是,數據庫中一般不明文存儲用戶的密碼,而是存儲密碼的MD5值。通常情況下,應用系統在使用完內存中信息后,是不會對其使用過的內存進行清理的。這些存儲著信息的內存在程序的身份認證函數(或者方法)退出后,仍然存儲在內存中,如果攻擊者對內存進行掃描就會得到存儲在其中的信息。

更嚴重的情況是在涉及到密碼運算過程中,由于內存中的剩余信息的不及時清除帶來的密鑰數據泄露。首先,作為計算機系統進程中的內存數據,密鑰也面臨各類系統攻擊和安全威脅,包括Cold-Boot攻擊[8]、DMA攻擊[9-11]、計算機系統功能導致的數據擴散和軟件漏洞導致的內存信息泄露[12,13](例如,OpenSSL心臟出血)。攻擊者可以通過各種各樣的攻擊獲取密鑰。因此,針對計算機系統中的內存信息泄露漏洞和攻擊,各種原理不同的密鑰安全方案近幾年也分別被提出,包括基于寄存器的密鑰安全方案[14],完全在寄存器中完成密碼計算,從而抵抗冷啟動攻擊、提高內存信息泄露攻擊難度;基于TrustZone機制的密鑰安全方案[15],利用ARM TrustZone機制,構建隔離的安全計算環境。2014年,Intel公司推出SGX機制,實現了由CPU硬件創建的隔離計算環境,在SGX執行環境中的數據,只在Cache中出現、交換到內存芯片時會自動由CPU加密,可以抵抗惡意操作系統以及惡意進程讀取敏感數據、篡改可執行代碼。Intel SGX機制利用密碼技術在CPU中創建安全的計算環境,也可以在SGX執行環境中實現密碼算法、由SGX機制來保護密鑰數據。但是,近年來的最新研究成果表明,SGX執行環境仍然面臨著多種側信道攻擊獲取密鑰等敏感數據、控制程序執行流程等安全威脅。2018年,Meltdown漏洞和Spectre漏洞的發現,引起了網絡空間安全各界的極大關注。該漏洞影響了不同廠商、不同型號的大量CPU,使得攻擊者非授權地讀取數據(包括密鑰等敏感數據),也可以突破SGX機制的保護。這一事件顯示,安全漏洞的發現會逐漸從軟件推進到硬件,將來會有更多的硬件相關漏洞被發現。

4.2 硬盤上的剩余信息保護

在物理介質層,由于沒有上層文件系統的語義信息,只能通過消磁或者物理破壞的辦法將數據銷毀。在控制器層,可以通過SCSI和ATA提供的安全擦除命令,擦除存儲設備上的所有數據。以上兩種方法,顯然對連續運行的操作系統是不可行的。

在文件系統層,傳統的塊設備文件系統,如FAT32、NTFS、EXT2/3/4等,都是通過修改元數據來指示數據被“刪除”。如在FAT32文件系統中,只是通過將被刪除文件的目錄項的第一個字節改為“0xE5”來指示文件被刪除,而真正的目標刪除文件數據仍然保存在存儲介質中。因此,常規的文件系統并不支持剩余信息的保護。

在應用程序層,程序只能與兼容可移植操作系統接口(Posix)的文件系統進行通信。應用層需要通過文件系統層、驅動器層、控制器層的轉換,才能對最底層的物理介質進行訪問,所以在應用層中實現數據的安全刪除是最困難的,而且其達到的安全程度是最低的[7],例如一些文件覆蓋工具(Srm 和Wipe等)。

目前,主要有機械磁盤和固態硬盤兩種存儲設備。機械磁盤基于磁性介質,采用數據的原位更新,也就是說,當文件被更新(或刪除)時,舊版本文件可以被新文件(或隨機信息)替換。固態存儲設備由于寫數據和擦除數據的最小單位不一樣,寫入數據之前必須執行刪除操作。因此,固態存儲設備采用數據非原位更新,也就是說,更新數據時,不對原數據進行修改,而是直接在新位置寫入新數據。數據非原位更新將會導致在固態存儲設備中存在多個版本的剩余信息,有研究表明,針對機械磁盤的剩余信息保護措施(比如用隨機數重寫、數據覆蓋)對固態存儲設備都是不適用的[16]。

5 剩余信息保護的解決方案

無論是內存還是硬盤的存儲空間,剩余信息保護的重點都是:在釋放內存前,將存儲的剩余信息刪除,也即將存儲剩余信息的空間清空或者寫入隨機的無關信息。

5.1 內存中剩余信息保護的解決方案

針對應用程序在內存中遺留的信息,為了達到對剩余信息進行保護的目的,需要身份認證函數在使用完用戶名和密碼信息后,對曾經存儲過這些信息的內存空間進行重新的寫入操作,將無關(或者垃圾)信息寫入該內存空間,也可以對該內存空間進行清零操作。

針對密鑰數據泄露產生的剩余信息保護問題,關鍵在于構建隔離的安全計算環境。安全計算環境的構建依賴加密算法,更依賴計算環境物理硬件的安全性。

通過以上介紹我們可以看到,在內存中實現剩余信息的保護的任務是艱巨的,這需要在應用程序設計、開發與使用的各個階段進行有效的數據保護,而且還要針對各種軟件、硬件安全漏洞的攻擊提供有效的預防措施,全方位地對剩余信息進行保護。

5.2 硬盤中剩余信息保護的解決方案

對于硬盤上的剩余信息的保護,無論是機械磁盤還是固態硬盤,最有效的方法就是通過對數據進行加密,通過刪除對應密鑰來對剩余信息進行保護。但是,前提是系統支持加密操作,且加密操作不會對系統帶來大的開銷,而且需要與內存中的剩余信息保護技術相結合,實現真正的剩余信息保護技術體系。

6 等級測評中剩余信息保護的檢查方法

在等級保護測評過程中,對實際的應用系統進行剩余信息保護的檢測,主要從訪談、檢查和測試三部分分別進行[6]。

6.1 訪談

詢問應用系統開發人員,是否對應用系統中的剩余信息進行了保護。首先,詢問應用系統開發人員對剩余信息的判斷,以及在內存、硬盤中剩余信息保護的具體措施,如果開發人員連剩余信息保護的概念都不清楚,那么也就不可能對剩余信息進行保護。

6.2 檢查

查看源代碼,重點監測在內存釋放或者刪除文件前,應用系統是否進行了處理,比如內存空間回收、清零;存儲空間是否加密并刪除密鑰,是否使用特定的剩余數據清除工具。檢查應用系統操作手冊中是否有相關的描述。

6.3 測試

為了確認內存中是否有剩余信息,可以采用內存掃描軟件(或者內存監視軟件)進行掃描。對于存儲在磁盤中的文件,可以嘗試在應用系統刪除文件后,用恢復軟件恢復文件,并對比恢復文件和原文件。

7 結束語

剩余信息保護在等級保護測試中的重要性逐漸凸顯,這是網絡安全,尤其是數據安全逐漸被人們所重視的必然要求。但是從國內外標準和信息系統實踐來看,等級保護標準中對剩余信息保護的“完全清除”的實現存在一定的技術難度。就目前技術而言,在內存中實現敏感數據的快速消除缺乏驗證技術,且會對系統性能帶來一定影響;在機械磁盤、固態硬盤等存儲設備中實現“消磁”“覆蓋”等要求,對絕大部分連續運行的信息系統而言也是不現實的。在應用層面,對用戶數據當其不再使用時,應該以“標記后另存”方式實現,既滿足系統的安全要求,又符合對用戶交易記錄的保存要求。對鑒別數據,無論是管理員還是用戶,做到當其不再擔任這個角色或不再使用時,以刪除相應的用戶注冊、同時修改訪問控制策略更有實際意義。

參考文獻

[1] Book T O. Department of Defense Trusted Computer System Evaluation Criteria[J]. DoD 5200.28-STD, 1985.

[2] e安全.歐盟《通用數據保護條例》合規指南[OL] https://www.easyaq.com/news/2092730864.shtml, May 29,2018.

[3] GB/T 18336-2008,信息技術 安全技術 信息技術安全性評估準則[S].

[4] GB/T 22239—2008,信息系統安全等級保護基本要求[S].

[5] 信息安全技術 網絡安全等級保護基本要求(征求意見稿)[S].

[6] 應力.剩余信息保護——理解與應用[J].Industry Express,2012:37-40.

[7] Reardon J , Basin D , Capkun S . SoK: Secure Data Deletion[C]. Security & Privacy, IEEE, 2013: 301-315.

[8] J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, and Edward W. Felten. Lest We Remember: Cold Boot Attacks on Encryption Keys[C]. Communications of the ACM - Security in the Browser, 2009,52(5):91-98.

[9] Colp P, Zhang J, Gleeson J, et al. Protecting Data on Smartphones and Tablets from Memory Attacks[J]. architectural support for programming languages and operating systems, 2015, 43(1): 177-189.

[10] Stewin P, Bystrov I. Understanding DMA malware[C].International conference on detection of intrusions and malware and vulnerability assessment, 2012: 21-41.

[11] Blass E, Robertson W K. TRESOR-HUNT: attacking CPU-bound encryption[C]. annual computer security applications conference, 2012: 71-78.

[12] Harrison K , Xu S X S . Protecting Cryptographic Keys from Memory Disclosure Attacks[C]. International Conference on Dependable Systems & Networks, IEEE, 2007:137-143.

[13] J. Chow, B. Pfaff, T. Garfinkel, K. Christopher, M. Rosenblum. Understanding Data Lifetime via Whole System Simulation[J]. Proc of Usenix Security Symposium, 2004,l3:321-336.

[14] Muller T, Freiling F C, Dewald A, et al. TRESOR runs encryption securely outside RAM[C]. usenix security symposium, 2011: 17-17.

[15] Zhang N, Sun K, Lou W, et al. CaSE: Cache-Assisted Secure Execution on ARM Processors[C]. ieee symposium on security and privacy, 2016: 72-90.

[16] Wei M Y, Grupp L M, Spada F E, et al. Reliably erasing data from flash-based solid state drives[C]. file and storage technologies, 2011: 8-8.

作者簡介:

徐麗娟(1988-),女,漢族,內蒙古自治區呼和浩特人,北京郵電大學,碩士,中國軟件評測中心;主要研究方向和關注領域:網絡安全。

李杺恬(1988-),女,蒙古族,吉林白城人,北京理工大學,碩士,中國軟件評測中心;主要研究方向和關注領域:關鍵信息基礎設施安全、網絡關鍵設備安全。

唐剛(1981-),男,漢族,北京人,北京航空航天大學,碩士,中國軟件評測中心,高級工程師;主要研究方向和關注領域:網絡安全檢測與評估。

福建36选7走势图幸
浙江体彩6十1开奖结果 大众麻将游戏 湖北30选5几点开奖结果查询 股票开盘竞价技巧 快乐血战到底麻将 陕西快乐10分20选5个中4个 开户股票 湖南幸运赛车开奖网址 哈哈湖南麻将 吉林11选5玩法 广东福利快乐十分 曼联赛程 棋牌游戏送彩金活动 科乐长春麻将 北京自动麻将机 澳洲幸运5宝贝计划