◆張剛剛
基于OOXML的信息隱藏和檢測(cè)方法研究
◆張剛剛
(首都師范大學(xué) 數(shù)字校園建設(shè)中心 北京 100048)
信息技術(shù)為各行各業(yè)用戶帶來(lái)極大便利的同時(shí),也為網(wǎng)絡(luò)空間的攻擊者實(shí)施數(shù)據(jù)盜竊等網(wǎng)絡(luò)空間犯罪行為提供了更加隱蔽的手段。采用微軟辦公套件Office生成的電子文件在網(wǎng)絡(luò)空間電子文件中占比較大,攻擊者不斷嘗試通過(guò)Office文件進(jìn)行信息的隱蔽竊取和信息交換。研究基于Office文件的信息隱藏和檢測(cè)方法能夠使企業(yè)及早發(fā)現(xiàn)網(wǎng)絡(luò)空間中存在的數(shù)據(jù)失竊風(fēng)險(xiǎn)。本文在研究新版Office文件格式的基礎(chǔ)上,提出利用OOXML文件規(guī)范中的未知組件以及未知關(guān)系在OOXML文件包中隱藏信息的方法和隱藏信息的檢測(cè)算法。實(shí)驗(yàn)結(jié)果表明,本文提出的方法具有魯棒性高、信息容量大、用戶無(wú)感知的特點(diǎn),通過(guò)文中提出的監(jiān)測(cè)算法在生產(chǎn)系統(tǒng)中檢測(cè)到大量疑似隱藏信息的未知組件和未知關(guān)系,基于未知關(guān)系和未知組件的信息隱藏和檢測(cè)方法有利于提前識(shí)別存在泄露數(shù)據(jù)的Office文件,降低企事業(yè)單位中通過(guò)Office文件泄露數(shù)據(jù)的風(fēng)險(xiǎn)。
OOXML文檔;可擴(kuò)展標(biāo)記語(yǔ)言;信息隱藏;信息發(fā)現(xiàn);網(wǎng)絡(luò)安全;未知關(guān)系;未知組件;開(kāi)放打包約定(OPC)
在信息技術(shù)飛速發(fā)展的今天,用戶通過(guò)互聯(lián)網(wǎng)豐富的應(yīng)用交換了海量的電子文件。我國(guó)相繼出臺(tái)了《計(jì)算機(jī)信息系統(tǒng)國(guó)際聯(lián)網(wǎng)保密管理規(guī)定》、《網(wǎng)絡(luò)安全法》等一系列法律法規(guī),以立法確立“網(wǎng)絡(luò)空間絕不是法外之地”的普遍認(rèn)識(shí)。數(shù)據(jù)安全作為網(wǎng)絡(luò)安全的重要組成部分,任何組織都需要高度重視[1],很多數(shù)據(jù)竊取犯罪行為都是用電子文件作為載體盜竊組織的數(shù)據(jù)資產(chǎn)、知識(shí)產(chǎn)權(quán),造成用戶信息甚至國(guó)家機(jī)密信息的泄露。犯罪分子可能通過(guò)在文件中隱藏信息來(lái)交換情報(bào)信息。信息隱藏手段和隱藏信息的發(fā)現(xiàn)之間的斗爭(zhēng),總是此消彼長(zhǎng)。從常規(guī)電子文件中發(fā)現(xiàn)“被隱藏”的信息具有非常高的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。
微軟公司推出的Office辦公套件(主要包括Word、Excel、PPT)在電子文件中占了很高的比例,許多研究者提出了基于Office文件的信息隱藏方法。張憧等人提出了通過(guò)顏色替換、改變字體大小的方式進(jìn)行信息隱藏[2-4],這類方法從視覺(jué)上達(dá)到了信息隱藏的目的,在用戶進(jìn)行清除格式或再次編輯后就會(huì)破壞隱藏的信息。楊德明等人提出了利用Word(97格式)文檔中未使用的數(shù)據(jù)塊(Block)隱藏?cái)?shù)據(jù)[5],這種方法僅對(duì)舊版本的Office文件有效且可隱藏的信息容量受限于未使用的文件塊大小,并且無(wú)法抵御文件再次編輯對(duì)隱藏信息的破壞。劉玉玲等人通過(guò)對(duì)新版本Office文件格式標(biāo)準(zhǔn)的研究,利用文檔中無(wú)實(shí)際含義的屬性進(jìn)行信息隱藏[6-10],但該方法受限于無(wú)用屬性的規(guī)模,可隱藏的信息容量有限。
以上的研究都在一定程度上通過(guò)微軟的辦公套件達(dá)到了信息隱藏的目的,其隱蔽性、數(shù)據(jù)容量、信息隱藏魯棒性等方面具有一定局限性。本文在研究OOXML文件格式的基礎(chǔ)上,提出了一種適用于Office辦公套件進(jìn)行信息隱藏和信息發(fā)現(xiàn)的方法。
微軟Office辦公套件自O(shè)ffice2007開(kāi)始,使用基于XML語(yǔ)言的OOXML(Open Office Extensible Markup Language)格式取代了Office97版本使用的私有文件格式MSCDF(Microsoft Compound Documents Format)格式[11-13]。OOXML在2006年成為了ECMA規(guī)范的組成部分(編號(hào)ECMA-376),并在2008年通過(guò)國(guó)際標(biāo)準(zhǔn)化組織的表決成為了國(guó)際標(biāo)準(zhǔn)。表1顯示了采用OOXML格式的文件與MSCDF文件最直觀的區(qū)別在于文件擴(kuò)展名上的變化,用戶可以通過(guò)擴(kuò)展名很容易判斷出當(dāng)前編輯的文件是基于何種格式。
筆者通過(guò)對(duì)所在單位各主要業(yè)務(wù)系統(tǒng)的電子文件進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn),Office文件在所有類型的電子文件中占比在70%以上,這表明Office文件在日常工作中已經(jīng)成為文件流轉(zhuǎn)最主要的方式。圖1展示了近8年Office新舊兩種格式的占比情況,顯而易見(jiàn)基于OOXML格式的Office文件所占比例在逐年提高,已經(jīng)逐步取代了MSCDF文件格式的地位。Office文件作為最常用的文件格式,通過(guò)其進(jìn)行信息隱藏較難引起用戶的注意,研究基于OOXML文件格式的信息隱藏和發(fā)現(xiàn)方法具有重要的意義。
表1 Office文件擴(kuò)展名對(duì)比
OOXML文件格式由一組文件組成,并通過(guò)ZIP壓縮算法進(jìn)行打包。我們可以通過(guò)ZIP軟件直接打開(kāi)OOXML格式的文檔,解壓后就是一組符合OOXML規(guī)范的文件。這組文件主要包括:文檔所包含的所有文件類型注冊(cè)文件[Content-Types].xml、關(guān)系文件(_rels)以及文件組件(parts)等。
圖1 Office文件類型逐年占比情況
OOXML文件格式遵循開(kāi)放打包約定(Open Packaging Conventions,縮寫(xiě)OPC)[14]。開(kāi)放打包約定是由微軟公司發(fā)布的一種文件容器技術(shù),用于將XML文件和非XML文件打包后共同構(gòu)成一個(gè)單獨(dú)的文件實(shí)體,方便用于文件的展示和傳播。如今,開(kāi)放打包約定已經(jīng)廣泛應(yīng)用于各類文件格式,如CAD軟件、Office軟件等文件。ZIP壓縮包是其主要的打包格式。OOXML文件格式由以下部分組成。
1)文件包(Package):OOXML文件格式遵循開(kāi)放打包約定,采用了ZIP作為文件打包方式。ZIP雖然沒(méi)有成為國(guó)際標(biāo)準(zhǔn),但其在廣泛的社區(qū)支持和開(kāi)發(fā)人員的支持下,已成為事實(shí)上最通用的打包標(biāo)準(zhǔn)[15];
2)文件組件(Part):組成文件包的各個(gè)組件,如文件內(nèi)容、元信息等,每個(gè)組件都有一個(gè)唯一標(biāo)識(shí),且其文件類型均在[Content_Types].xml中定義,這些文件組件組成了打包文件;
3)關(guān)系文件(Relationship):用于定義文件包、文件組件以及外部資源的關(guān)系信息。
1.1.1 OOXML文件包
OOXML遵循開(kāi)放打包約定(OPC)[14],與單純使用XML相比,基于OPC的文件格式保持了嵌入在文檔中的文件實(shí)體不變的優(yōu)點(diǎn),并且生成的打包文件體積要小很多,相較于MSCDF文檔格式提升了空間的利用率。Office編輯程序打開(kāi)文件時(shí),將文件包的組件進(jìn)行解析和渲染,用戶在保存文件時(shí),編輯器又將各組件壓縮成一個(gè)文件,這種方式既保留了用戶使用單一文件編輯的使用體驗(yàn),也便于其他廠商通過(guò)開(kāi)放的接口協(xié)議對(duì)文件進(jìn)行交換共享和編程處理。
1.1.2文件組件(Part)
圖2展示了OOXML文件包內(nèi)的文件結(jié)構(gòu),其中的document.xml、fontTable.xml、styles.xml等文件即OOXML的文件組件,Word編輯器在編輯文件時(shí)讀入這些組件完成文件內(nèi)容、格式的渲染。
圖2 Office文件的構(gòu)成
1.1.3關(guān)系文件(Relationship)
OOXML文件格式通過(guò)關(guān)系文件定義了對(duì)文件組件關(guān)聯(lián)、引用關(guān)系。OOXML文件中插入的圖片、音視頻等資源文件,必須在關(guān)系文件中定義引用關(guān)系,只有定義了文件關(guān)系的文件組件才會(huì)被打包入文件包中。
關(guān)系文件必須存放于文件包里的_rels目錄中,且文件名必須以.rels作為文件擴(kuò)展名。文件包會(huì)存在多個(gè)關(guān)系文件,既有最外層的關(guān)系文件,也有各組件的的關(guān)系文件。通過(guò)關(guān)系文件,我們可以構(gòu)建各文件組件之間的引用關(guān)系。以圖3展示的Word文件為例,該文件中包含的圖片,會(huì)被加入到關(guān)系文件document.xml.rels中,編輯器解析到這張圖片的標(biāo)簽后,會(huì)根據(jù)ID在關(guān)系文件中找到對(duì)應(yīng)的圖片文件的位置,從而將文件內(nèi)容讀取到編輯器中進(jìn)行渲染。
圖3 關(guān)系文件
關(guān)系文件的Relationship標(biāo)簽有幾個(gè)重要的屬性用于組成關(guān)系的描述。Id在每個(gè)關(guān)系文件中具有唯一編號(hào),Type是OOXML 規(guī)范里的文件類型,Target用于標(biāo)識(shí)當(dāng)前關(guān)系引用文件的位置,既可以是壓縮包內(nèi)部的文件組件,也可以是互聯(lián)網(wǎng)位置上的文件[15]。
ECMA-376標(biāo)準(zhǔn)未明確規(guī)定文件中“未知關(guān)系”和“未知組件”應(yīng)如何處理,微軟的Office辦公套件未對(duì)文件包內(nèi)的未知關(guān)系和未知組件進(jìn)行破壞。
1)未知關(guān)系
所有未在ECMA-376中定義的關(guān)系都被認(rèn)為是未知關(guān)系(unknown relationship)[16]。OOXML遵循開(kāi)放打包約定中關(guān)于關(guān)系文件的要求,包含未知關(guān)系的OOXML文件依然是有效的。復(fù)制文件、重命名文件都不會(huì)損壞OOXML中的未知關(guān)系,即使另存為也不會(huì)導(dǎo)致未知關(guān)系的丟失。
2)未知組件
文件包中未在關(guān)系文件中定義的文件組件被認(rèn)為是未知組件(unknown parts)。ECMA-376標(biāo)準(zhǔn)規(guī)定未知組件應(yīng)被忽略,在正式的環(huán)境中可由編輯器選擇性地丟棄[16]。
3)基于未知關(guān)系和未知組件的信息隱藏方法
ECMA-376標(biāo)準(zhǔn)陸續(xù)經(jīng)過(guò)了2006年到2016年5個(gè)版本的修訂,對(duì)未知關(guān)系和未知組件的要求未發(fā)生實(shí)質(zhì)性的變化。基于ECMA-376對(duì)未知關(guān)系和未知組件的處理要求,本文結(jié)合使用未知關(guān)系和未知組件,將測(cè)試文件加入到OOXML文件包中,從而隱藏信息。以“test.docx”文件為例,解壓縮后將需要隱藏的文件“hidden_data1.zip”和“hidden_data2.zip”分別放在文件包的word目錄和media目錄中,如圖2。被隱藏的文件不會(huì)出現(xiàn)在編輯器的界面中。
開(kāi)放打包約定要求所有文件組件需要顯式聲明文件包中各組件的文件類型,被隱藏文件的擴(kuò)展名必須在[Content_Types].xml文件中進(jìn)行聲明,如圖4。
圖4 顯式定義文件類型
ECMA-376標(biāo)準(zhǔn)規(guī)定了編輯器可以自行決定是否舍棄文件包中的未知組件。微軟的Office套件會(huì)在文件被編輯、另存為后將未知組件從文件包中刪除。為了避免這種情況導(dǎo)致隱藏信息的丟失,我們需要在文件包內(nèi)的任意一個(gè)關(guān)系文件中增加一條對(duì)未知組件的定義,如圖5。新增關(guān)系的Type屬性的值需要填寫(xiě)ECMA-376標(biāo)準(zhǔn)之外的任意值,從而構(gòu)成不符合ECMA-376的未知關(guān)系。在關(guān)系文件中定義未知關(guān)系后,無(wú)論對(duì)Office文件進(jìn)行何種操作(如:編輯、保存、另存為),被隱藏的文件都會(huì)保留在OOXML文件包中。
在Office文件中隱藏信息的方法既要滿足OOXML規(guī)范的要求,也要在添加隱藏信息后文件仍能被無(wú)感知地編輯[4],同時(shí)還應(yīng)具有一定的“抗編輯”能力。微軟Office2016及之前的版本均不會(huì)對(duì)未知關(guān)系和未知組件進(jìn)行檢測(cè),因此用戶不會(huì)感知到被隱藏的文件。這種信息隱藏的方式相較于調(diào)整字體大小、文字顏色的方法具有更高的隱蔽性。
通過(guò)本文描述的方法,我們可以在OOXML文件包中隱藏大量的信息。檢查OOXML文件中的未知關(guān)系、未知組件,并檢查文件中是否存在未被引用的組件來(lái)推測(cè)OOXML文件中是否存在隱藏信息。使用本文描述方法進(jìn)行隱藏的信息,通常具有如下特征:
1)關(guān)系文件中包含了Type為OOXML規(guī)范外的類型;
2)關(guān)系文件中定義的ID未被文檔的其他組件使用。
圖5 未知關(guān)系、未知組件
我們可以通過(guò)檢查構(gòu)成OOXML的文件組件和關(guān)系文件以判斷文件內(nèi)是否包含可能的隱藏信息。圖5中編號(hào)為rId12的定義,其Type值不屬于OOXML規(guī)范中的內(nèi)容,即可推測(cè)其關(guān)聯(lián)的文件可能是一個(gè)被非法隱藏到OOXML文件的隱藏文件。隱藏信息發(fā)現(xiàn)算法見(jiàn)偽代碼1。
偽代碼1 隱藏信息發(fā)現(xiàn)方法
輸入: OOXML文件F,已知關(guān)系RS;輸出:隱藏信息Data; BEGIN // 未知關(guān)系 T <- [] // 未知組件 C <- [] // 獲取OOXML文件包組件列表 zip <- ReadOOXMLZip(F, 'r') parts <- zip.namelist() // 獲取關(guān)系文件 rel_files <- FILTER(parts, endswith('.rels') // 遍歷并解析關(guān)系文件 FOR REL IN rel_files FOR TYPE,TARGET_FILE in CheckRelationshipFile(REL) // 如果關(guān)系文件中的TYPE值不在已知關(guān)系中,則記錄值C、T IF TYPE is not in RS C.append(TARGET_FILE) T.append(TYPE) ENDIF ENDFOR ENDFOR // 返回所有隱藏文件 RETURN C, TEND
本文在配置為Intel(R)Core(TM)i5-3320CPU@2.30GHz處理器、16 GB RAM 的64位Windows10操作系統(tǒng),使用Jupyter Notebook6.1(Python3.8)工具套件以及Microsoft Word 2016的實(shí)驗(yàn)環(huán)境中進(jìn)行實(shí)驗(yàn)驗(yàn)證。運(yùn)用文中提出的信息隱藏和信息發(fā)現(xiàn)方法,通過(guò)實(shí)驗(yàn)在Word(OOXML格式)文件包中隱藏不同數(shù)量(500~10000個(gè))的未知組件(文件大小均為500KB),并使用微軟Office Word 2016標(biāo)準(zhǔn)版對(duì)隱藏信息后的文件進(jìn)行編輯保存、另存為以及清除格式操作,驗(yàn)證隱藏信息的魯棒性。同時(shí),從筆者所在單位的業(yè)務(wù)系統(tǒng)中搜集到50萬(wàn)個(gè)OOXML格式的文件用于驗(yàn)證文中提出的檢測(cè)方法。
表2的實(shí)驗(yàn)結(jié)果表明,對(duì)隱藏了信息的Word文件進(jìn)行編輯、另存為和清除格式操作不會(huì)導(dǎo)致隱藏信息的丟失。同時(shí)隱藏不同數(shù)量的文件后,Word文件的打開(kāi)速度上未出現(xiàn)明顯減慢,這表明本文提出的信息隱藏方法有以下特點(diǎn):
1)隱蔽性,使用該方法隱藏信息,普通用戶使用文檔時(shí)是無(wú)感知的,具有較好的隱蔽性;
2)容量分析,使用該方法理論上不存在隱藏信息容量的限制,隱藏信息的形式可表現(xiàn)為單個(gè)文件也可以多個(gè)文件的形式存在。實(shí)驗(yàn)表明,編輯器僅讀入引用的組件,不會(huì)讀入僅有未知關(guān)系的組件,即使隱藏了很多文件或體積很大的文件,文件打開(kāi)速度沒(méi)有明顯減慢;
3)魯棒性分析,OOXML文件在打開(kāi)時(shí),編輯器都會(huì)根據(jù)OOXML規(guī)范對(duì)文件進(jìn)行合規(guī)性檢查,具有很好的自我糾錯(cuò)機(jī)制,但根據(jù)OOXML規(guī)范中對(duì)未知組件和未知關(guān)系的約定為可以忽略,通過(guò)本文的信息隱藏方法在文件被編輯、另存為、復(fù)制、對(duì)內(nèi)容進(jìn)行格式清除時(shí)均可以保留被隱藏的信息。
表2 不同操作對(duì)隱藏信息的影響
表3的結(jié)果顯示,在50萬(wàn)個(gè)OOXML格式的文件中存在未知關(guān)系的文件有3299個(gè),其中大部分未知關(guān)系借用了有效的關(guān)系類型的部分內(nèi)容,具有較高的迷惑性,普通用戶很難憑借經(jīng)驗(yàn)進(jìn)行有效的識(shí)別。這表明,在實(shí)際工作產(chǎn)生的大量Office文檔中存在著大量的未知關(guān)系,這些未知關(guān)系不僅浪費(fèi)了計(jì)算機(jī)寶貴的存儲(chǔ)資源,而且攻擊者可以通過(guò)這些常見(jiàn)的未知關(guān)系隱藏自己盜取的信息,從而使企業(yè)遭受不必要的財(cái)產(chǎn)損失。
表3 未知關(guān)系類型
圖6顯示了在50萬(wàn)個(gè)OOXML文件所包含214個(gè)未知組件所在目錄的占比情況,結(jié)果表明OOXML文件包中存在大量未知組件,這些未知組件的存在表明在現(xiàn)實(shí)工作生活中,存在利用OOXML文件隱藏信息的可能。
實(shí)驗(yàn)表明,文中所述隱藏信息的發(fā)現(xiàn)方法,可以優(yōu)化指導(dǎo)涉及電子文件存儲(chǔ)的業(yè)務(wù)系統(tǒng),在文件流轉(zhuǎn)過(guò)程中及時(shí)發(fā)現(xiàn)可能導(dǎo)致數(shù)據(jù)泄露的電子文件。
圖6 未知組件所在目錄情況
在網(wǎng)絡(luò)安全日趨復(fù)雜的今天,預(yù)防電子文件為載體的信息泄密,對(duì)于提高網(wǎng)絡(luò)空間的安全性具有重要的意義。本文提出基于OOXML未知關(guān)系和未知組件的信息隱藏,能夠在保證不影響用戶使用體驗(yàn)的前提下從一定程度上提高隱藏信息的容量。與其他通過(guò)修改Office內(nèi)容格式等方法進(jìn)行信息隱藏的方法相比,具有較高的魯棒性且理論上沒(méi)有容量限制。實(shí)驗(yàn)表明,在一些業(yè)務(wù)系統(tǒng)產(chǎn)生的Office文件中存在一定數(shù)量通過(guò)未知組件和未知關(guān)系隱藏的信息。今后,我們將更加深入研究OOXML規(guī)范中可能被用于信息隱藏的方法,進(jìn)一步降低網(wǎng)絡(luò)空間攻擊者通過(guò)Office文件竊取信息的概率。
[1]曹雷.高校信息安全保障系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2021,44(02):81-85.
[2]張憧,張守彬.基于Word文本文檔的信息隱藏方法研究[J].電子技術(shù)與軟件工程,2015(12):219.
[3]錢宗峰,曹學(xué)軍,湯偉,等.基于Word文檔縮放字符比例的信息隱藏算法研究[J].河北北方學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,27(04):32-36.
[4]李兵兵,王衍波,徐敏,等.一種Word 2007中可無(wú)源檢測(cè)的信息隱藏方法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(05): 154-157.
[5]楊德明,郭盛.基于Word文檔的數(shù)據(jù)隱藏方法[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(05):314-318.
[6]劉玉玲,萬(wàn)晶,辛國(guó)江.Excel 2007文檔信息隱藏方法[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(28):70-72.
[7]郝宇,施勇,薛質(zhì).Office XML文檔信息隱藏方法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(10):96-100.
[8]李兵兵,王衍波,徐敏.基于ZIP文檔格式的信息隱藏方法[J].計(jì)算機(jī)工程,2011,37(05):155-157+160.
[9]LIU T-Y,TSAI W-H.New steganographic method for data hiding in Microsoft Word documents by a change tracking technique[J].IEEE Transactions on Information Forensics and Security,2007,2(1):24–30.DOI:10.1109/TIFS.2006.890310.
[10]NISSIM N,COHEN A,ELOVICI Y.ALDOCX: Detection of Unknown Malicious Microsoft Office Documents Using Designated Active Learning Methods Based on New Structural Feature Extraction Methodology[J].IEEE Transactions on Information Forensics and Security,2017,12(3): 631-646.DOI:10.1109/TIFS.2016.2631905.
[11]DASARE A J,DHORE M L.Secured Approach for Hiding Data in MS Word Document Using MCDFF[M]//1st International Conference on Computing Communication Control and Automation Iccubea 2015.New York:Ieee,2015: 296-300.DOI:10.1109/ICCUBEA.2015.62.
[12]Wikipedia.Compound Document Format[EB/OL].https://en.wikipedia.org/wiki/Compound_File_Binary_Format.
[13]微軟.Microsoft Compound File Binary File Format,Version 3[EB/OL](2020-01-28)[2020-12-27] .https://www.loc.gov/preservation/digital/formats/fdd/fdd000380.shtml.
[14]ISO 29500-2:2008-2012,Open Packaging Conventions(Office Open XML)[S].
[15]郭儒佳.壓縮文件格式分析與應(yīng)用[D].北京理工大學(xué),2015.
[16]ECMA-376,Standard ECMA-376[S].
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2021年11期