APP下载

基于OOXML的信息隐藏和检测方法研究

2021-12-14张刚刚

网络安全技术与应用 2021年11期
关键词:编辑器文档组件

◆张刚刚

基于OOXML的信息隐藏和检测方法研究

◆张刚刚

(首都师范大学 数字校园建设中心 北京 100048)

信息技术为各行各业用户带来极大便利的同时,也为网络空间的攻击者实施数据盗窃等网络空间犯罪行为提供了更加隐蔽的手段。采用微软办公套件Office生成的电子文件在网络空间电子文件中占比较大,攻击者不断尝试通过Office文件进行信息的隐蔽窃取和信息交换。研究基于Office文件的信息隐藏和检测方法能够使企业及早发现网络空间中存在的数据失窃风险。本文在研究新版Office文件格式的基础上,提出利用OOXML文件规范中的未知组件以及未知关系在OOXML文件包中隐藏信息的方法和隐藏信息的检测算法。实验结果表明,本文提出的方法具有鲁棒性高、信息容量大、用户无感知的特点,通过文中提出的监测算法在生产系统中检测到大量疑似隐藏信息的未知组件和未知关系,基于未知关系和未知组件的信息隐藏和检测方法有利于提前识别存在泄露数据的Office文件,降低企事业单位中通过Office文件泄露数据的风险。

OOXML文档;可扩展标记语言;信息隐藏;信息发现;网络安全;未知关系;未知组件;开放打包约定(OPC)

在信息技术飞速发展的今天,用户通过互联网丰富的应用交换了海量的电子文件。我国相继出台了《计算机信息系统国际联网保密管理规定》、《网络安全法》等一系列法律法规,以立法确立“网络空间绝不是法外之地”的普遍认识。数据安全作为网络安全的重要组成部分,任何组织都需要高度重视[1],很多数据窃取犯罪行为都是用电子文件作为载体盗窃组织的数据资产、知识产权,造成用户信息甚至国家机密信息的泄露。犯罪分子可能通过在文件中隐藏信息来交换情报信息。信息隐藏手段和隐藏信息的发现之间的斗争,总是此消彼长。从常规电子文件中发现“被隐藏”的信息具有非常高的现实意义和应用价值。

微软公司推出的Office办公套件(主要包括Word、Excel、PPT)在电子文件中占了很高的比例,许多研究者提出了基于Office文件的信息隐藏方法。张憧等人提出了通过颜色替换、改变字体大小的方式进行信息隐藏[2-4],这类方法从视觉上达到了信息隐藏的目的,在用户进行清除格式或再次编辑后就会破坏隐藏的信息。杨德明等人提出了利用Word(97格式)文档中未使用的数据块(Block)隐藏数据[5],这种方法仅对旧版本的Office文件有效且可隐藏的信息容量受限于未使用的文件块大小,并且无法抵御文件再次编辑对隐藏信息的破坏。刘玉玲等人通过对新版本Office文件格式标准的研究,利用文档中无实际含义的属性进行信息隐藏[6-10],但该方法受限于无用属性的规模,可隐藏的信息容量有限。

以上的研究都在一定程度上通过微软的办公套件达到了信息隐藏的目的,其隐蔽性、数据容量、信息隐藏鲁棒性等方面具有一定局限性。本文在研究OOXML文件格式的基础上,提出了一种适用于Office办公套件进行信息隐藏和信息发现的方法。

1 微软OOXML文件格式

微软Office办公套件自Office2007开始,使用基于XML语言的OOXML(Open Office Extensible Markup Language)格式取代了Office97版本使用的私有文件格式MSCDF(Microsoft Compound Documents Format)格式[11-13]。OOXML在2006年成为了ECMA规范的组成部分(编号ECMA-376),并在2008年通过国际标准化组织的表决成为了国际标准。表1显示了采用OOXML格式的文件与MSCDF文件最直观的区别在于文件扩展名上的变化,用户可以通过扩展名很容易判断出当前编辑的文件是基于何种格式。

笔者通过对所在单位各主要业务系统的电子文件进行统计发现,Office文件在所有类型的电子文件中占比在70%以上,这表明Office文件在日常工作中已经成为文件流转最主要的方式。图1展示了近8年Office新旧两种格式的占比情况,显而易见基于OOXML格式的Office文件所占比例在逐年提高,已经逐步取代了MSCDF文件格式的地位。Office文件作为最常用的文件格式,通过其进行信息隐藏较难引起用户的注意,研究基于OOXML文件格式的信息隐藏和发现方法具有重要的意义。

表1 Office文件扩展名对比

OOXML文件格式由一组文件组成,并通过ZIP压缩算法进行打包。我们可以通过ZIP软件直接打开OOXML格式的文档,解压后就是一组符合OOXML规范的文件。这组文件主要包括:文档所包含的所有文件类型注册文件[Content-Types].xml、关系文件(_rels)以及文件组件(parts)等。

图1 Office文件类型逐年占比情况

1.1 Open Office XML

OOXML文件格式遵循开放打包约定(Open Packaging Conventions,缩写OPC)[14]。开放打包约定是由微软公司发布的一种文件容器技术,用于将XML文件和非XML文件打包后共同构成一个单独的文件实体,方便用于文件的展示和传播。如今,开放打包约定已经广泛应用于各类文件格式,如CAD软件、Office软件等文件。ZIP压缩包是其主要的打包格式。OOXML文件格式由以下部分组成。

1)文件包(Package):OOXML文件格式遵循开放打包约定,采用了ZIP作为文件打包方式。ZIP虽然没有成为国际标准,但其在广泛的社区支持和开发人员的支持下,已成为事实上最通用的打包标准[15];

2)文件组件(Part):组成文件包的各个组件,如文件内容、元信息等,每个组件都有一个唯一标识,且其文件类型均在[Content_Types].xml中定义,这些文件组件组成了打包文件;

3)关系文件(Relationship):用于定义文件包、文件组件以及外部资源的关系信息。

1.1.1 OOXML文件包

OOXML遵循开放打包约定(OPC)[14],与单纯使用XML相比,基于OPC的文件格式保持了嵌入在文档中的文件实体不变的优点,并且生成的打包文件体积要小很多,相较于MSCDF文档格式提升了空间的利用率。Office编辑程序打开文件时,将文件包的组件进行解析和渲染,用户在保存文件时,编辑器又将各组件压缩成一个文件,这种方式既保留了用户使用单一文件编辑的使用体验,也便于其他厂商通过开放的接口协议对文件进行交换共享和编程处理。

1.1.2文件组件(Part)

图2展示了OOXML文件包内的文件结构,其中的document.xml、fontTable.xml、styles.xml等文件即OOXML的文件组件,Word编辑器在编辑文件时读入这些组件完成文件内容、格式的渲染。

图2 Office文件的构成

1.1.3关系文件(Relationship)

OOXML文件格式通过关系文件定义了对文件组件关联、引用关系。OOXML文件中插入的图片、音视频等资源文件,必须在关系文件中定义引用关系,只有定义了文件关系的文件组件才会被打包入文件包中。

关系文件必须存放于文件包里的_rels目录中,且文件名必须以.rels作为文件扩展名。文件包会存在多个关系文件,既有最外层的关系文件,也有各组件的的关系文件。通过关系文件,我们可以构建各文件组件之间的引用关系。以图3展示的Word文件为例,该文件中包含的图片,会被加入到关系文件document.xml.rels中,编辑器解析到这张图片的标签后,会根据ID在关系文件中找到对应的图片文件的位置,从而将文件内容读取到编辑器中进行渲染。

图3 关系文件

关系文件的Relationship标签有几个重要的属性用于组成关系的描述。Id在每个关系文件中具有唯一编号,Type是OOXML 规范里的文件类型,Target用于标识当前关系引用文件的位置,既可以是压缩包内部的文件组件,也可以是互联网位置上的文件[15]。

2 基于OOXML的信息隐藏方法

ECMA-376标准未明确规定文件中“未知关系”和“未知组件”应如何处理,微软的Office办公套件未对文件包内的未知关系和未知组件进行破坏。

1)未知关系

所有未在ECMA-376中定义的关系都被认为是未知关系(unknown relationship)[16]。OOXML遵循开放打包约定中关于关系文件的要求,包含未知关系的OOXML文件依然是有效的。复制文件、重命名文件都不会损坏OOXML中的未知关系,即使另存为也不会导致未知关系的丢失。

2)未知组件

文件包中未在关系文件中定义的文件组件被认为是未知组件(unknown parts)。ECMA-376标准规定未知组件应被忽略,在正式的环境中可由编辑器选择性地丢弃[16]。

3)基于未知关系和未知组件的信息隐藏方法

ECMA-376标准陆续经过了2006年到2016年5个版本的修订,对未知关系和未知组件的要求未发生实质性的变化。基于ECMA-376对未知关系和未知组件的处理要求,本文结合使用未知关系和未知组件,将测试文件加入到OOXML文件包中,从而隐藏信息。以“test.docx”文件为例,解压缩后将需要隐藏的文件“hidden_data1.zip”和“hidden_data2.zip”分别放在文件包的word目录和media目录中,如图2。被隐藏的文件不会出现在编辑器的界面中。

开放打包约定要求所有文件组件需要显式声明文件包中各组件的文件类型,被隐藏文件的扩展名必须在[Content_Types].xml文件中进行声明,如图4。

图4 显式定义文件类型

ECMA-376标准规定了编辑器可以自行决定是否舍弃文件包中的未知组件。微软的Office套件会在文件被编辑、另存为后将未知组件从文件包中删除。为了避免这种情况导致隐藏信息的丢失,我们需要在文件包内的任意一个关系文件中增加一条对未知组件的定义,如图5。新增关系的Type属性的值需要填写ECMA-376标准之外的任意值,从而构成不符合ECMA-376的未知关系。在关系文件中定义未知关系后,无论对Office文件进行何种操作(如:编辑、保存、另存为),被隐藏的文件都会保留在OOXML文件包中。

在Office文件中隐藏信息的方法既要满足OOXML规范的要求,也要在添加隐藏信息后文件仍能被无感知地编辑[4],同时还应具有一定的“抗编辑”能力。微软Office2016及之前的版本均不会对未知关系和未知组件进行检测,因此用户不会感知到被隐藏的文件。这种信息隐藏的方式相较于调整字体大小、文字颜色的方法具有更高的隐蔽性。

3 隐藏信息的发现方法

通过本文描述的方法,我们可以在OOXML文件包中隐藏大量的信息。检查OOXML文件中的未知关系、未知组件,并检查文件中是否存在未被引用的组件来推测OOXML文件中是否存在隐藏信息。使用本文描述方法进行隐藏的信息,通常具有如下特征:

1)关系文件中包含了Type为OOXML规范外的类型;

2)关系文件中定义的ID未被文档的其他组件使用。

图5 未知关系、未知组件

我们可以通过检查构成OOXML的文件组件和关系文件以判断文件内是否包含可能的隐藏信息。图5中编号为rId12的定义,其Type值不属于OOXML规范中的内容,即可推测其关联的文件可能是一个被非法隐藏到OOXML文件的隐藏文件。隐藏信息发现算法见伪代码1。

伪代码1 隐藏信息发现方法

输入: OOXML文件F,已知关系RS;输出:隐藏信息Data; BEGIN // 未知关系 T <- [] // 未知组件 C <- [] // 获取OOXML文件包组件列表 zip <- ReadOOXMLZip(F, 'r') parts <- zip.namelist() // 获取关系文件 rel_files <- FILTER(parts, endswith('.rels') // 遍历并解析关系文件 FOR REL IN rel_files FOR TYPE,TARGET_FILE in CheckRelationshipFile(REL) // 如果关系文件中的TYPE值不在已知关系中,则记录值C、T IF TYPE is not in RS C.append(TARGET_FILE) T.append(TYPE) ENDIF ENDFOR ENDFOR // 返回所有隐藏文件 RETURN C, TEND

4 实验结果与分析

本文在配置为Intel(R)Core(TM)i5-3320CPU@2.30GHz处理器、16 GB RAM 的64位Windows10操作系统,使用Jupyter Notebook6.1(Python3.8)工具套件以及Microsoft Word 2016的实验环境中进行实验验证。运用文中提出的信息隐藏和信息发现方法,通过实验在Word(OOXML格式)文件包中隐藏不同数量(500~10000个)的未知组件(文件大小均为500KB),并使用微软Office Word 2016标准版对隐藏信息后的文件进行编辑保存、另存为以及清除格式操作,验证隐藏信息的鲁棒性。同时,从笔者所在单位的业务系统中搜集到50万个OOXML格式的文件用于验证文中提出的检测方法。

表2的实验结果表明,对隐藏了信息的Word文件进行编辑、另存为和清除格式操作不会导致隐藏信息的丢失。同时隐藏不同数量的文件后,Word文件的打开速度上未出现明显减慢,这表明本文提出的信息隐藏方法有以下特点:

1)隐蔽性,使用该方法隐藏信息,普通用户使用文档时是无感知的,具有较好的隐蔽性;

2)容量分析,使用该方法理论上不存在隐藏信息容量的限制,隐藏信息的形式可表现为单个文件也可以多个文件的形式存在。实验表明,编辑器仅读入引用的组件,不会读入仅有未知关系的组件,即使隐藏了很多文件或体积很大的文件,文件打开速度没有明显减慢;

3)鲁棒性分析,OOXML文件在打开时,编辑器都会根据OOXML规范对文件进行合规性检查,具有很好的自我纠错机制,但根据OOXML规范中对未知组件和未知关系的约定为可以忽略,通过本文的信息隐藏方法在文件被编辑、另存为、复制、对内容进行格式清除时均可以保留被隐藏的信息。

表2 不同操作对隐藏信息的影响

表3的结果显示,在50万个OOXML格式的文件中存在未知关系的文件有3299个,其中大部分未知关系借用了有效的关系类型的部分内容,具有较高的迷惑性,普通用户很难凭借经验进行有效的识别。这表明,在实际工作产生的大量Office文档中存在着大量的未知关系,这些未知关系不仅浪费了计算机宝贵的存储资源,而且攻击者可以通过这些常见的未知关系隐藏自己盗取的信息,从而使企业遭受不必要的财产损失。

表3 未知关系类型

图6显示了在50万个OOXML文件所包含214个未知组件所在目录的占比情况,结果表明OOXML文件包中存在大量未知组件,这些未知组件的存在表明在现实工作生活中,存在利用OOXML文件隐藏信息的可能。

实验表明,文中所述隐藏信息的发现方法,可以优化指导涉及电子文件存储的业务系统,在文件流转过程中及时发现可能导致数据泄露的电子文件。

图6 未知组件所在目录情况

5 结语

在网络安全日趋复杂的今天,预防电子文件为载体的信息泄密,对于提高网络空间的安全性具有重要的意义。本文提出基于OOXML未知关系和未知组件的信息隐藏,能够在保证不影响用户使用体验的前提下从一定程度上提高隐藏信息的容量。与其他通过修改Office内容格式等方法进行信息隐藏的方法相比,具有较高的鲁棒性且理论上没有容量限制。实验表明,在一些业务系统产生的Office文件中存在一定数量通过未知组件和未知关系隐藏的信息。今后,我们将更加深入研究OOXML规范中可能被用于信息隐藏的方法,进一步降低网络空间攻击者通过Office文件窃取信息的概率。

[1]曹雷.高校信息安全保障系统的设计与实现[J].现代电子技术,2021,44(02):81-85.

[2]张憧,张守彬.基于Word文本文档的信息隐藏方法研究[J].电子技术与软件工程,2015(12):219.

[3]钱宗峰,曹学军,汤伟,等.基于Word文档缩放字符比例的信息隐藏算法研究[J].河北北方学院学报(自然科学版),2011,27(04):32-36.

[4]李兵兵,王衍波,徐敏,等.一种Word 2007中可无源检测的信息隐藏方法[J].计算机技术与发展,2010,20(05): 154-157.

[5]杨德明,郭盛.基于Word文档的数据隐藏方法[J].计算机应用与软件,2015,32(05):314-318.

[6]刘玉玲,万晶,辛国江.Excel 2007文档信息隐藏方法[J].计算机工程与应用,2010,46(28):70-72.

[7]郝宇,施勇,薛质.Office XML文档信息隐藏方法[J].计算机技术与发展,2017,27(10):96-100.

[8]李兵兵,王衍波,徐敏.基于ZIP文档格式的信息隐藏方法[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]郭儒佳.压缩文件格式分析与应用[D].北京理工大学,2015.

[16]ECMA-376,Standard ECMA-376[S].

猜你喜欢

编辑器文档组件
无人机智能巡检在光伏电站组件诊断中的应用
有人一声不吭向你扔了个文档
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
你距离微信创作达人还有多远?
车辆段收发车运行图编辑器的设计与实现
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
风起新一代光伏组件膜层:SSG纳米自清洁膜层
基于VLIW目标机的ELF二进制编辑器设计与实现