CN104778410A - 一种应用程序完整性验证方法 - Google Patents

一种应用程序完整性验证方法 Download PDF

Info

Publication number
CN104778410A
CN104778410A CN201510179575.9A CN201510179575A CN104778410A CN 104778410 A CN104778410 A CN 104778410A CN 201510179575 A CN201510179575 A CN 201510179575A CN 104778410 A CN104778410 A CN 104778410A
Authority
CN
China
Prior art keywords
application program
extended attribute
integrity
integrity verification
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510179575.9A
Other languages
English (en)
Other versions
CN104778410B (zh
Inventor
杨霞
桑楠
雷林
石鹏
刘志伟
孙超群
孙海泳
任飞
吴开均
刘维飞
武琼
袁艺
杨姗
李昊星
唐伟文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201510179575.9A priority Critical patent/CN104778410B/zh
Publication of CN104778410A publication Critical patent/CN104778410A/zh
Application granted granted Critical
Publication of CN104778410B publication Critical patent/CN104778410B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种应用程序完整性验证方法。内核层捕获打开文件系统调用后,触发内核层中的验证代理模块;验证代理模块获取当前应用程序的文件描述符,通过该文件描述符查看应用程序,判断应用程序是否有完整性扩展属性值,验证代理模块获取应用程序为完整性验证所添加的扩展属性值,计算当前打开应用程序的完整性校验值,再与获取的扩展属性值进行比较。本发明与文件系统完整性验证方法相比减少了验证开销;通过使用文件系统自带的扩展属性存完整性扩展属性值,不需要辅助硬件的存储支持。

Description

一种应用程序完整性验证方法
技术领域
本发明涉及计算机安全技术。
背景技术
随着物联网、移动互联网和云计算等新型技术的快速发展,信息技术已深刻影响到人们的生活方式,无处不在的信息已经成为国家、企业和个人的重要资产。随着网络安全威胁种类日益多样化,这些重要的信息资产将暴露在越来越多的威胁中。比如恶意软件的非法篡改:恶意软件常常通过篡改正常程序的代码和数据,并植入恶意代码来完成自身想要到达的目的。一旦被篡改程序被执行,从而威胁到系统的安全,可能给用户带来巨大的损失和灾难性的打击。因此,只要能在恶意软件或代码执行前发现并阻止其运行,就可以保证应用程序的安全。
现有的软件完整性验证与保护技术通常需要额外的硬件支持。一方面增加了硬件成本开销;另一方面,由于引入了硬件处理,增加了与硬件的交互,带来了额外的性能开销。
发明内容
本发明所要解决的技术问题是,提供一种不需要硬件开销的应用程序完整性验证方法。
本发明为解决上述技术问题所采用的技术方案是,一种应用程序完整性验证方法,包括以下步骤:
1)设置步骤:
1-1)应用层接收对应用程序完整性验证进行设置的请求,触发应用层中的标识设置模块;
1-2)标识设置模块判断请求类型,当请求类型为添加完整性验证时,则计算该应用程序的完整性校验值,在该应用程序的扩展属性中添加完整性扩展属性,并将完整性校验值作为该完整性扩展属性的值;当请求类型为取消完整性验证时,则删除该应用程序的完整性扩展属性值;
2)验证步骤:
2-1)内核层捕获打开文件系统调用后,触发内核层中的验证代理模块;
2-2)验证代理模块获取当前应用程序的文件描述符,通过该文件描述符查看应用程序,判断应用程序是否有完整性扩展属性值,如是,进入步骤2-3),如否,进入步骤2-5);
2-3)验证代理模块获取应用程序为完整性验证所添加的扩展属性值,计算当前打开应用程序的完整性校验值,再与获取的扩展属性值进行比较,当比较结果相同则进入步骤2-5),否则进入步骤2-4);
2-4)验证代理模块返回打开文件系统调用一个无用的文件描述符,同时提示应用程序被破坏;
2-5)验证代理模块返回打开文件系统调用正确的文件描述符。
本发明的有益效果是,本发明属于加载期的验证方法,与文件系统完整性验证方法相比减少了验证开销;通过使用文件系统自带的扩展属性存完整性扩展属性值,不需要辅助硬件的存储支持,降低了成本、提高了性能、增加了灵活性。
附图说明
图1应用程序完整性验证框架图;
图2应用程序完整性验证流程图;
图3内核验证代理执行过程图;
图4标识设置程序执行过程图。
具体实施方式
接下来依次结合附图1、附图2、附图3以及附图4对本发明申请的技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
图1为具有应用程序完整性验证功能的操作系统100,在原有操作系统上修改两个部分,分别是应用层101中添加标识设置程序103以及在内核102中添加验证代理104。标识设置程序103为方便用户对有权限的应用程序设置是否需要完整性验证,验证代理104用于对需要完整性验证的应用程序进行验证。
其中标识设置程序103所包含的构成元素有:
Hash计算模块105,根据可信计算中完整性验证的方法,优选使用Hash算法对应用程序进行完整性验证。该模块用于计算应用程序预期的完整性度量值。其中的Hash函数包括MD4、MD5、SHA1、SHA2等。
扩展属性添加模块107,该模块用于标记需要完整性验证的应用程序,通过添加扩展属性的方法,扩展属性的值为Hash计算模块105的计算结果。
扩展属性删除模块109,该模块用于取消应用程序的完整性验证标记,通过删除为完整性验证所添加的扩展属性。
其中验证代理104所包含的构成元素有:
Hash计算模块106:该模块是和Hash计算模块105相同,只是该模块位于内核层,完成对需要完整性验证的应用程序进行Hash计算。
文件扩展属性获取模块108:该模块用于获取应用程序的扩展属性值,此扩展属性值是为完整性验证而添加的扩展属性值。
比较模块110:该模块用于比较Hash计算模块106和文件扩展属性获取模块108所获得的两值。
打开文件系统调用111:有对文件的重要操作,如读、写、执行等,都需要先打开文件。应用层101通过打开文件系统调用111对文件进行各种操作,内核中验证代理104通过在打开文件系统调用111中完成对需要完整性验证的程序的验证。
参考图2为本发明实施案例所使用的应用程序完整性验证流程图。
其具体步骤是:
开始步骤200,启动系统,为应用程序的执行提供环境。
步骤201:用户根据当前对应用程序安全级别的要求,发出对应用程序完整性验证请求。
步骤202:判断用户请求类型。用户的请求可以是为应用程序添加完整性验证,也可以是取消完整性验证功能。
步骤203:当用户请求201是删除完整性验证功能时,删除为完整性验证而添加的扩展属性。
步骤204:当用户请求是添加完整性验证功能时,需要计算应用程序的Hash值。
步骤205:为完整性验证添加扩展属性,其扩展属性的值是步骤204计算所得的Hash值。
步骤206:内核层捕获打开文件系统调用,获取文件描述符。
步骤207:据步骤206获取的文件描述符查找该应用程序,判断应用程序是否有为完整性验证而设置的扩展属性。
步骤208:当步骤208中判断结果是有完整性扩展属性时,获取该文件的完整性扩展属性的值。
步骤209:Hash值计算。此处计算的Hash值是内核中验证完整性时,对应图1中的106模块,而步骤204是执行在应用层,为内核验证提供比较参考值,对应图1中的105模块。
步骤210:判断步骤208和步骤209所得的两值是否相等。如果两值不相等,则可证明该应用程序的完整性遭到破坏;如果两值相等,则可说明该应用程序是完整的,未遭篡改。
步骤211:当步骤210返回结果为不相等时,给步骤206的系统调用返回无用的文件描述符,使对应用程序后续的操作失效,同时提示用户该应用程序的完整性遭到破坏。
步骤212:当步骤207中应用程序没有完整性扩展属性或是步骤210返回结果为相等,给打开文件系统调用返回正确的文件描述符,使继续执行应用程序后续的操作。同时提示用户该应用程序完整。
步骤213:检测完毕。
参考图3为本发明实施案例所使用的内核验证代理执行过程图
其具体步骤是:
开始步骤300,捕获打开文件系统调用。
其中,所述步骤300更详细的情况是,应用层需要打开文件,调用了内核中打开文件的系统调用,内核捕获到以后,获得了文件描述符。
继续步骤301,判断有无为完整性验证而添加的扩展属性。
所述步骤301更详细的情况是,根据步骤300获得的文件描述符和步骤403设置的扩展属性名,调用扩展属性判断函数判断有无步骤403所设置的扩展属性名。根据判断返回的结果标识,分为两种情况:
情况1:如果结果标识表示没有相应的扩展属性,则表示该应用程序无需进行完整性验证,就不需要继续后面的验证,给应用层返回正确的文件描述符。
情况2:如果结果标识表示有相应的扩展属性,则表示该应用程序需要进行完整性验证,继续后续的验证步骤。
继续步骤302,获取文件为完整性验证而添加的扩展属性。
所述步骤302更详细的情况是,根据步骤300获得的文件描述符和步骤403设置的扩展属性名,调用扩展属性值获取函数得到扩展属性值。
继续步骤303,计算Hash值。
所述步骤303更详细的情况是,先判断步骤300打开文件方式是否以读的方式打开,结果分为两种情况:
情况1:如果没有以读的方式打开文件,那么计算Hash值时不能够读取文件内容,所以再一次用读的方式打开文件,获得新的文件描述符,利用新的文件描述符获取应用程序,再计算应用程序的Hash值。
情况2:如果是以读的方式打开文件,那么利用步骤300所获得的文件描述符获取应用程序,计算应用程序的Hash值。
继续步骤304,返回比较结果。
步骤304的详细过程是,比较步骤302获得的扩展属性值和步骤303计算所得的Hash值,比较结果分为两种情况:
情况1:如果比较结果相等,证明文件是完整的,此时返回步骤300所获得的文件描述符。
情况2:如果比较结果不相等,证明文件的完整性遭到破坏,此时返回一个无用的文件描述符,通过此文件描述符不能对任何文件进行任何操作,同时提示文件遭到破坏。
系统通过文件描述符来查看文件相关的所有东西。验证模块是在操作系统内核中,不需要返回文件描述符自己就可以使用。而应用层上面的用户能否操作文件,需要内核返回给应用层正确的文件描述符。应用层是通过内核的打开文件系统调用获取文件描述符。
参考图4为本发明实施案例所使用的标识设置程序执行过程图
其具体步骤是:
开始步骤400,用户发出请求。
步骤400详细的过程是,用户根据自己的需求决定哪些应用程序需要完整性检测,哪些应用程序需要取消完整性检测。结果分为两种情况:
情况1:当需要为程序添加完整性检测时,继续执行步骤402计算Hash值,当计算得到应用程序的Hash值后,利用扩展属性设置函数继续执行步骤403设置扩展属性,该扩展属性的值为步骤402计算出来的Hash值,扩展属性名根据文件系统扩展属性名命名规则和方便理解的原则而命名。
情况2:当需要为程序删除完整性检测时,继续执行步骤401删除完整性扩展属性,这样在以后对应用程序的各种操作中跳过完整性检测。
继续步骤404,返回请求结果。
步骤404详细的情况是,根据用户不同的要求,请求结果分为两种情况:
情况1:当用户的请求是删除应用程序完整性扩展属性,返回是否成功删除信息提示用户。如果不成功,可重试删除请求。
情况2:当用户的请求是添加应用程序完整性扩展属性,返回是否成功添加的信息提示用户。如果不成功,可重试添加请求。
以上公开的仅为本发明的具体实施案例,但本发明并非局限于此,任何本领域的技术人员都可以在上述实施例的基础上作多种变化,同样能够实现本发明的目的,都应落在本发明的保护范围内。

Claims (3)

1.一种应用程序完整性验证方法,其特征在于,包括以下步骤:
1)设置步骤:
1-1)应用层接收对应用程序完整性验证进行设置的请求,触发应用层中的标识设置模块;
1-2)标识设置模块判断请求类型,当请求类型为添加完整性验证时,则计算该应用程序的哈希完整性校验值,在该应用程序的扩展属性中添加完整性扩展属性,并将完整性校验值作为该完整性扩展属性的值;当请求类型为取消完整性验证时,则删除该应用程序的完整性扩展属性值;
2)验证步骤:
2-1)内核层捕获打开文件系统调用后,触发内核层中的验证代理模块;
2-2)验证代理模块获取当前应用程序的文件描述符,通过该文件描述符查看应用程序,判断应用程序是否有完整性扩展属性值,如是,进入步骤2-3),如否,进入步骤2-5);
2-3)验证代理模块计算当前打开应用程序的完整性校验值,再与获取完整性扩展属性值进行比较,当比较结果相同则进入步骤2-5),否则进入步骤2-4);
2-4)验证代理模块返回打开文件系统调用一个无用的文件描述符,同时提示应用程序被破坏;
2-5)验证代理模块返回打开文件系统调用正确的文件描述符。
2.如权利要求1所述一种应用程序完整性验证方法,其特征在于,步骤2-3)中验证代理模块计算当前打开应用程序的完整性校验值之前,判断当前打开应用程序的方式是否以读的方式打开,如是,则计算当前打开应用程序的完整性校验值,如否,使用读的方式重新打开当前应用程序后再计算当前打开应用程序的完整性校验值。
3.如权利要求1所述一种应用程序完整性验证方法,其特征在于,完整性校验值为哈希Hash值。
CN201510179575.9A 2015-04-16 2015-04-16 一种应用程序完整性验证方法 Expired - Fee Related CN104778410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510179575.9A CN104778410B (zh) 2015-04-16 2015-04-16 一种应用程序完整性验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510179575.9A CN104778410B (zh) 2015-04-16 2015-04-16 一种应用程序完整性验证方法

Publications (2)

Publication Number Publication Date
CN104778410A true CN104778410A (zh) 2015-07-15
CN104778410B CN104778410B (zh) 2017-07-11

Family

ID=53619865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510179575.9A Expired - Fee Related CN104778410B (zh) 2015-04-16 2015-04-16 一种应用程序完整性验证方法

Country Status (1)

Country Link
CN (1) CN104778410B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105306434A (zh) * 2015-09-11 2016-02-03 北京金山安全软件有限公司 程序文件校验方法及装置、服务器和终端
CN106686107A (zh) * 2017-01-10 2017-05-17 南方电网科学研究院有限责任公司 基于计量自动化系统的自动抄表率指标的监控方法及装置
CN107545181A (zh) * 2017-08-16 2018-01-05 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
CN111274204A (zh) * 2019-12-20 2020-06-12 上海淇玥信息技术有限公司 终端识别方法、生成移动设备标识组合码的方法及其装置、终端、网络侧设备和存储介质
CN112597450A (zh) * 2020-12-22 2021-04-02 深圳市道通科技股份有限公司 可编程芯片程序检测、存储方法和可编程芯片
CN113254397A (zh) * 2021-06-15 2021-08-13 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN114417426A (zh) * 2022-03-29 2022-04-29 北京凝思软件股份有限公司 基于紧耦合规则的可信验证方法、装置、存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1305611A (zh) * 1998-05-15 2001-07-25 特里迪姆公司 利用计算机网络对各种机电系统进行面向对象的控制的系统和方法
CN100501635C (zh) * 2004-11-10 2009-06-17 中国人民解放军国防科学技术大学 数据完整性保护方法
CN102307197A (zh) * 2011-08-29 2012-01-04 浙江中烟工业有限责任公司 多级安全互联平台的可信增强子系统
CN102640160A (zh) * 2009-10-09 2012-08-15 诺基亚公司 平台安全
CN102880828A (zh) * 2012-09-07 2013-01-16 普华基础软件股份有限公司 一种针对虚拟化支撑环境的入侵检测与恢复系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1305611A (zh) * 1998-05-15 2001-07-25 特里迪姆公司 利用计算机网络对各种机电系统进行面向对象的控制的系统和方法
CN100501635C (zh) * 2004-11-10 2009-06-17 中国人民解放军国防科学技术大学 数据完整性保护方法
CN102640160A (zh) * 2009-10-09 2012-08-15 诺基亚公司 平台安全
CN102307197A (zh) * 2011-08-29 2012-01-04 浙江中烟工业有限责任公司 多级安全互联平台的可信增强子系统
CN102880828A (zh) * 2012-09-07 2013-01-16 普华基础软件股份有限公司 一种针对虚拟化支撑环境的入侵检测与恢复系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105306434A (zh) * 2015-09-11 2016-02-03 北京金山安全软件有限公司 程序文件校验方法及装置、服务器和终端
CN106686107A (zh) * 2017-01-10 2017-05-17 南方电网科学研究院有限责任公司 基于计量自动化系统的自动抄表率指标的监控方法及装置
CN107545181A (zh) * 2017-08-16 2018-01-05 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
CN107545181B (zh) * 2017-08-16 2021-04-27 上海策赢网络科技有限公司 程序运行方法、终端及计算机可读存储介质
CN111274204A (zh) * 2019-12-20 2020-06-12 上海淇玥信息技术有限公司 终端识别方法、生成移动设备标识组合码的方法及其装置、终端、网络侧设备和存储介质
CN112597450A (zh) * 2020-12-22 2021-04-02 深圳市道通科技股份有限公司 可编程芯片程序检测、存储方法和可编程芯片
CN113254397A (zh) * 2021-06-15 2021-08-13 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN114417426A (zh) * 2022-03-29 2022-04-29 北京凝思软件股份有限公司 基于紧耦合规则的可信验证方法、装置、存储介质和电子设备
CN114417426B (zh) * 2022-03-29 2022-07-01 北京凝思软件股份有限公司 基于紧耦合规则的可信验证方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN104778410B (zh) 2017-07-11

Similar Documents

Publication Publication Date Title
CN104778410A (zh) 一种应用程序完整性验证方法
Aljawarneh et al. Cloud security engineering: Early stages of SDLC
US9946880B2 (en) Software vulnerability analysis method and device
CN108399338B (zh) 基于进程行为的平台完整性状态信息度量方法
US9270467B1 (en) Systems and methods for trust propagation of signed files across devices
US20090158385A1 (en) Apparatus and method for automatically generating SELinux security policy based on selt
CN110445769B (zh) 业务系统的访问方法及装置
US20150154398A1 (en) Optimizing virus scanning of files using file fingerprints
CN106951345A (zh) 一种虚拟机磁盘数据的一致性测试方法及装置
US10664619B1 (en) Automated agent for data copies verification
NL2027556B1 (en) Method and system for generating a list of indicators of compromise
CN113449327A (zh) 一种文件访问控制系统、方法及计算设备
CN105260653A (zh) 一种基于Linux的程序安全加载方法及系统
US11537735B2 (en) Trusted enterprise data assets via data confidence fabrics
CN111291001B (zh) 计算机文件的读取方法、装置、计算机系统及存储介质
KR102124049B1 (ko) 블록체인 및 스마트컨트랙트를 이용한 보안 이벤트를 처리하기 위한 장치 및 이를 위한 방법
US11080403B1 (en) Securely constructing a trusted virtual environment
WO2020233044A1 (zh) 一种插件校验方法、设备、服务器及计算机可读存储介质
CN116226865A (zh) 云原生应用的安全检测方法、装置、服务器、介质及产品
CN115758356A (zh) 一种对Android应用实施可信静态度量的方法、存储介质及设备
CN112214769B (zh) 基于SGX架构的Windows系统的主动度量系统
CN109002710A (zh) 一种检测方法、装置及计算机可读存储介质
KR101092342B1 (ko) 파일 축약 정보 생성, 시그니쳐 생성 및 시그너쳐 패턴 검증 장치 및 방법
CN117034368B (zh) 一种数据完整性的保护方法、装置、设备及存储介质
US11296882B1 (en) System for intelligent identification of unauthorized users in a distributed register network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170711

Termination date: 20200416