CN115758356A - 一种对Android应用实施可信静态度量的方法、存储介质及设备 - Google Patents

一种对Android应用实施可信静态度量的方法、存储介质及设备 Download PDF

Info

Publication number
CN115758356A
CN115758356A CN202211457085.7A CN202211457085A CN115758356A CN 115758356 A CN115758356 A CN 115758356A CN 202211457085 A CN202211457085 A CN 202211457085A CN 115758356 A CN115758356 A CN 115758356A
Authority
CN
China
Prior art keywords
application
measurement
file
reference value
service
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.)
Pending
Application number
CN202211457085.7A
Other languages
English (en)
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.)
First Research Institute of Ministry of Public Security
Original Assignee
First Research Institute of Ministry of Public Security
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 First Research Institute of Ministry of Public Security filed Critical First Research Institute of Ministry of Public Security
Priority to CN202211457085.7A priority Critical patent/CN115758356A/zh
Publication of CN115758356A publication Critical patent/CN115758356A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种对Android应用实施可信静态度量的方法、存储介质及设备,首先确定应用类型和应用度量文件,在安装阶段,应用先进行合法性认证,通过认证后,在可信基准库中创建应用初始化信息,然后继续安装流程。完成安装后,使用度量算法生成应用安装路径下度量文件的基准值,更新写入可信基准库。在需要度量的应用启动运行前,首先在可信基准库中查找到此应用的基准值,再计算应用安装路径下度量文件的度量值,对比所述度量值和基准值。最后根据判断机制,判定该应用的可信性,决定是否启动运行。能够保证Android应用在每次启动运行前的合法性和完整性,提升Android系统中对应用的安全防护能力,有效防止应用被篡改。

Description

一种对Android应用实施可信静态度量的方法、存储介质及 设备
技术领域
本发明涉及移动应用安全技术领域,具体涉及一种对Android应用实施可信静态度量的方法、存储介质及设备。
背景技术
近年来,移动应用安全事件频发,据相关机构统计,2021年全球近四分之一的企业组织均发生过移动或物联网数据泄露事件。据国际安全机构Check Point Research在2021年4月发布的《全球威胁指数》报告显示,十三款Android应用暴露了包括社交信息、电子邮件、账户密码和图片照片在内的多项个人隐私数据,受影响用户数量多达1亿。海量移动应用在为用户提供便利的同时,极大地加剧了数据安全风险。如何有效防范移动互联网存在的安全威胁,已经成为当前应用厂商、研究机构和政府相关部门关注的重点内容。
当前针对移动应用的安全防护措施主要以应用加固技术手段为主,通过对程序文件加壳加密,防范应用被破解、反编译、调试、篡改、冒充、二次打包等。除此之外,还有应用安全检测、漏洞扫描、分发渠道监测,以及一些专业场景下的安全解决方案,如安全SDK、应用签名认证等。但是,以上方式仅在一定程度上满足了应用启动运行前的安全要求,无法保证应用在长期使用过程中的安全性。可信计算中的度量机制是解决上述问题的一个主要方法,能够实现对应用程序进行静态完整性度量,保证应用程序的可信启动。
国内外基于可信度量机制实现的相关解决方案,大多应用在网络系统和服务端应用,缺少针对移动应用的度量方案。
发明内容
针对现有技术的不足,本发明旨在提供一种对Android应用实施可信静态度量的方法、存储介质及设备。
为了实现上述目的,本发明采用如下技术方案:
一种对Android应用实施可信静态度量的方法,包括如下步骤:
S1、确定应用类型:需进行静态度量的应用类型包括预装应用和三方应用,系统内置应用不参与度量;
S2、确定应用的度量文件:度量文件包括应用安装路径下的镜像文件base.apk和lib目录下的所有库文件,不包括oat目录下临时过渡编译的各类变种字节码文件;
S3、安装应用:在Android系统的PMS服务中执行应用认证服务,对应用APK文件进行合法性认证,如果未通过认证,则阻止应用安装,如果通过认证,将应用的初始化信息更新写入到可信基准库,初始化信息包括应用标识和占位数据;继续执行后续安装流程,完成安装后,使用应用度量算法计算度量文件的基准值,根据应用标识,将基准值更新写入到可信基准库中,并更新认证记录和度量记录;
S4、启动需要度量的应用时,在Android系统的AMS服务中执行应用度量服务,使用应用度量算法计算应用的度量文件当前的度量值,根据应用标识,在可信基准库中查找此应用的基准值,对比度量值与基准值,如果结果一致,则启动运行应用,否则禁止应用运行,并给出相关安全风险提示。
进一步地,更新应用时,在Android系统的PMS服务中执行应用认证服务,对应用APK文件进行合法性认证,通过认证后进行覆盖安装,并重新生成基准值,覆盖可信基准库中此应用的原基准值。
进一步地,卸载应用时,Android系统PMS服务执行卸载流程,卸载完成后,删除可信基准库中此应用的基准值,同时删除认证记录和度量记录中此应用的数据。
进一步地,应用度量服务中使用文件分块分组多任务处理的文件度量算法,Android系统虚拟机中每次读入1个分组,利用线程池,在计算单元并发计算1个分组中的多个文件分块,并按照后续顺序执行其他分组,合入最终结果。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
本发明还提供一种Android终端设备,包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序时,实现上述方法。
本发明的有益效果在于:
本发明以可信计算主动免疫体系为基础,从应用度量角度出发,通过对移动应用组成结构、加载运行机制等方面进行研究分析,利用可信度量机制、判定机制和可信基准库,联合完成对宿主基础软件系统应用的安全防护,保证应用运行时的代码完整性。
本发明能够保证Android应用在每次启动运行前的合法性和完整性,提升Android系统中对应用的安全防护能力,有效防止应用被篡改,可落地性强,效果显著,填补了当前移动安全领域应用静态度量实现方案的空白,解决了移动应用在启动运行过程中存在的安全机制缺失的问题。同时,本发明的静态度量算法,通过将应用文件分块分组多任务处理,能够有效解决内存溢出和计算耗时的问题,进一步提升了计算效率。
附图说明
图1为本发明实施例1方法的总体技术架构图;
图2为本发明实施例1方法中应用类型的分类示意图;
图3为本发明实施例1方法应用中参与度量的文件范围示意图;
图4为本发明实施例1方法应用认证安装流程图;
图5为本发明实施例1方法应用启动度量流程图;
图6为本发明实施例1方法文件度量算法实施示意图;
图7为本发明实施例2中样例应用安装流程图;
图8为本发明实施例2中样例应用篡改启动流程图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
实施例1
本实施例提供一种对Android应用实施可信静态度量的方法,如图1所示,主要思路是首先确定应用类型和应用度量文件,在安装阶段,应用先进行合法性认证,通过认证后,在可信基准库中创建应用初始化信息,然后继续安装流程。完成安装后,使用度量算法生成应用安装路径下度量文件的基准值,更新写入可信基准库。在需要度量的应用启动运行前,首先在可信基准库中查找到此应用的基准值,再计算应用安装路径下度量文件的度量值,对比所述度量值和基准值。最后根据判断机制,判定该应用的可信性,决定是否启动运行。
Android应用静态度量的总体技术架构如图1所示,包括两条业务主线和两个组件服务,所有处理逻辑都在Android操作系统的框架层运行。两条主线即应用的安装与启动,贯穿Android操作系统的PMS服务和AMS服务。两个组件服务即应用认证服务和应用度量服务,其中认证服务主要用于校验应用的合法性,此服务参考应用签名验签机制设计实现,可定制化程度较高,通过认证服务后可根据应用信息计算生成基准值。应用度量服务主要用于计算应用度量值和基准值。
所述对Android应用实施可信静态度量的方法包括如下步骤:
S1、确定应用类型:如图2所示,需进行静态度量的应用类型包括预装应用和三方应用,系统内置应用不参与度量;
S2、确定应用的度量文件:如图3所示,度量文件包括应用安装路径下的镜像文件base.apk和l ib目录下的所有库文件,不包括oat目录下临时过渡编译的各类变种字节码文件;
S3、安装应用:如图4所示,在Android系统的PMS服务中执行应用认证服务,对应用APK文件进行合法性认证,如果未通过认证,则阻止应用安装,如果通过认证,将应用的初始化信息更新写入到可信基准库,初始化信息包括应用标识和占位数据;继续执行后续安装流程,完成安装后,使用应用度量算法计算度量文件的基准值,根据应用标识,将基准值更新写入到可信基准库中,并更新认证记录和度量记录;
S4、启动需要度量的应用时,如图5所示,在Android系统的AMS服务中执行应用度量服务,使用应用度量算法计算应用的度量文件当前的度量值,根据应用标识,在可信基准库中查找此应用的基准值,对比度量值与基准值,如果结果一致,则启动运行应用,否则禁止应用运行,并给出相关安全风险提示。
进一步地,在本实施例中,更新应用时,在Android系统的PMS服务中执行应用认证服务,对应用APK文件进行合法性认证,通过认证后进行覆盖安装,并重新生成基准值,覆盖可信基准库中此应用的原基准值。
进一步地,在本实施例中,卸载应用时,Android系统PMS服务执行卸载流程,卸载完成后,删除可信基准库中此应用的基准值,同时删除认证记录和度量记录中此应用的数据。
进一步地,在本实施例中,应用度量服务中,使用文件分块分组多任务处理的文件度量算法,如图6所示,Android系统虚拟机中每次读入1个分组,利用线程池,在计算单元并发计算1个分组中的多个文件分块,并按照后续顺序执行其他分组,合入最终结果。
实施例2
本实施例使用程序实例验证实施例1所述方法的可行性。实验样机使用手机型智能终端,硬件参数属行业中上水平,样机系统应获得超级管理员权限,实验环境基于通用主流方法搭建,具有代表性。样机型号HUAWEI nova 8Pro,基于Android 10的EMUI 11操作系统,8GB+128GB存储,海思麒麟985处理器。
本实施例中实验应用选用百度地图开发者平台提供的Android版本样例应用,此应用为提供给广大开发者参考使用的样例,具有广泛使用性。APK应用文件大小93.4MB,包名为baidumapsdk.demo,此样例程序的安装文件总计7个,按照度量文件范围分析的结论,排除oat目录下的2个可执行文件,参与度量的应用文件包含5项。此应用已做自定义签名操作,配合应用认证服务中的合法性验证。样例应用安装流程如图7所示,包括以下步骤:
步骤1:确定样例APK应用类型为三方应用,应参与度量校验;
步骤2:确定样例APK应用的待度量文件,包括1个apk文件base.apk,4个库文件liblocSDK8b.so、l ibgnustl_shared.so、l ibBaiduMapSDK_base_v7_5_3.so、libBaiduMapSDK_map_v7_5_3.so;
步骤3:开始安装APK文件,在Android系统的PMS服务中执行应用认证服务,系统Framework框架层PackageManagerService类的preparePackageLI方法中,调用认证服务接口;
步骤4:通过合法性认证,初始化应用信息至基准库,在实验环境下查看可信基准库文件。对数据进行加密处理,以“KEY=VALUE”格式存储每条应用的数据,其中,“=”为分割标识,“KEY”为应用标识,“VALUE”为应用的初始化信息或基准值,本实施例中使用应用的包名信息作为唯一标识;
步骤5:继续执行preparePackageLI方法中系统后续的安装逻辑,直至安装完成;
步骤6:对步骤2中所述的5个度量文件,调用应用度量方法接口,计算合并结果,作为此应用的基准值;
步骤7:根据应用标识查找基准库中此应用信息,将步骤6生成的基准值更新写入基准库;
步骤8:启动应用,在未对应用进行任何篡改处理的情况下,正常启动应用,符合预期。
验证应用被篡改后的度量效果,如图8所示样例应用篡改后的启动流程,样例应用共包含5个参与度量的文件,可对任意文件进行篡改,方式包括修改文件、删除文件和增加文件等,均可达到篡改应用的目的。篡改方法中使用了Android调试桥工具(Android DebugBridge,adb),此工具和命令可对Android系统下的文件进行操作。
(1)篡改方式1修改文件,包括以下步骤:
步骤1:修改base.apk文件,使用adb pul l命令将base.apk文件拉出,使用编辑工具打开文件,在文件任意位置插入非法字符;
步骤2:使用adb push命令将修改后的base.apk推入至原目录下,覆盖原始文件;
步骤3:启动应用,在基准库中查找此应用的基准值为8f499cba3d0c8e81xxxxx;
步骤4:在Android系统的AMS服务中执行应用度量服务,系统Framework框架层ActivityStarter类的startActivity方法中,调用应用度量接口;
步骤5:计算应用文件度量值为c0ced913e567a01aa1dxxxxxx;
步骤6:校验比对度量值与基准值,结果不一致,判定未通过;
步骤7:禁止应用启动运行,并给出系统提示“应用存在安全风险禁止启动运行”。
(2)篡改方式2删除文件,包括以下步骤:
步骤1:删除一个库文件,以超级管理员权限进入应用安装l ib目录;
步骤2:执行删除命令,将动态库l iblocSDK8b.so删除;
步骤3:启动应用,在基准库中查找此应用的基准值为8f499cba3d0c8e81xxxxx;
步骤4:在Android系统的AMS服务中执行应用度量服务,系统Framework框架层ActivityStarter类的startActivity方法中,调用应用度量接口;
步骤5:计算应用文件度量值为b41ee6b02d550a85cd9 xxxxxx;
步骤6:校验比对度量值与基准值,结果不一致,判定未通过;
步骤7:禁止应用启动运行,并给出系统提示“应用存在安全风险禁止启动运行”。
(3)篡改方式3增加文件,包括以下步骤:
步骤1:增加一个非法库文件;
步骤2:使用命令adb push,将此l ibtest-error.so文件推入至l ib目录下;
步骤3:启动应用,在基准库中查找此应用的基准值为8f499cba3d0c8e81xxxxx;
步骤4:在Android系统的AMS服务中执行应用度量服务,系统Framework框架层ActivityStarter类的startActivity方法中,调用应用度量接口;
步骤5:计算应用文件度量值为44b2525abc104935822xxxxxx;
步骤6:校验比对度量值与基准值,结果不一致,判定未通过;
步骤7:禁止应用启动运行,并给出系统提示“应用存在安全风险禁止启动运行”。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。

Claims (6)

1.一种对Android应用实施可信静态度量的方法,其特征在于,包括如下步骤:
S1、确定应用类型:需进行静态度量的应用类型包括预装应用和三方应用,系统内置应用不参与度量;
S2、确定应用的度量文件:度量文件包括应用安装路径下的镜像文件base.apk和lib目录下的所有库文件,不包括oat目录下临时过渡编译的各类变种字节码文件;
S3、安装应用:在Android系统的PMS服务中执行应用认证服务,对应用APK文件进行合法性认证,如果未通过认证,则阻止应用安装,如果通过认证,将应用的初始化信息更新写入到可信基准库,初始化信息包括应用标识和占位数据;继续执行后续安装流程,完成安装后,使用应用度量算法计算度量文件的基准值,根据应用标识,将基准值更新写入到可信基准库中,并更新认证记录和度量记录;
S4、启动需要度量的应用时,在Android系统的AMS服务中执行应用度量服务,使用应用度量算法计算应用的度量文件当前的度量值,根据应用标识,在可信基准库中查找此应用的基准值,对比度量值与基准值,如果结果一致,则启动运行应用,否则禁止应用运行,并给出相关安全风险提示。
2.根据权利要求1所述的方法,其特征在于,更新应用时,在Android系统的PMS服务中执行应用认证服务,对应用APK文件进行合法性认证,通过认证后进行覆盖安装,并重新生成基准值,覆盖可信基准库中此应用的原基准值。
3.根据权利要求1所述的方法,其特征在于,卸载应用时,Android系统PMS服务执行卸载流程,卸载完成后,删除可信基准库中此应用的基准值,同时删除认证记录和度量记录中此应用的数据。
4.根据权利要求1所述的方法,其特征在于,应用度量服务中使用文件分块分组多任务处理的文件度量算法,Android系统虚拟机中每次读入1个分组,利用线程池,在计算单元并发计算1个分组中的多个文件分块,并按照后续顺序执行其他分组,合入最终结果。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法。
6.一种Android终端设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序时,实现权利要求1-4任一所述的方法。
CN202211457085.7A 2022-11-16 2022-11-16 一种对Android应用实施可信静态度量的方法、存储介质及设备 Pending CN115758356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211457085.7A CN115758356A (zh) 2022-11-16 2022-11-16 一种对Android应用实施可信静态度量的方法、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211457085.7A CN115758356A (zh) 2022-11-16 2022-11-16 一种对Android应用实施可信静态度量的方法、存储介质及设备

Publications (1)

Publication Number Publication Date
CN115758356A true CN115758356A (zh) 2023-03-07

Family

ID=85333695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211457085.7A Pending CN115758356A (zh) 2022-11-16 2022-11-16 一种对Android应用实施可信静态度量的方法、存储介质及设备

Country Status (1)

Country Link
CN (1) CN115758356A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117970907A (zh) * 2024-04-01 2024-05-03 西安热工研究院有限公司 可信dcs控制器可信功能测试方法、电子设备、存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117970907A (zh) * 2024-04-01 2024-05-03 西安热工研究院有限公司 可信dcs控制器可信功能测试方法、电子设备、存储介质

Similar Documents

Publication Publication Date Title
McCamant et al. Quantitative information flow as network flow capacity
Smalley et al. Security enhanced (se) android: bringing flexible mac to android.
Octeau et al. Effective {Inter-Component} communication mapping in android: An essential step towards holistic security analysis
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
US8316448B2 (en) Automatic filter generation and generalization
Weber et al. A software flaw taxonomy: aiming tools at security
US7337291B2 (en) Software memory access control
Mai et al. Verifying security invariants in ExpressOS
US20060112241A1 (en) System, method and apparatus of securing an operating system
CN110263545B (zh) 一种基于Android系统的启动过程完整性度量检测方法
CN108763951B (zh) 一种数据的保护方法及装置
CN105760787B (zh) 用于检测随机存取存储器中的恶意代码的系统及方法
US20050198507A1 (en) Import address table verification
CN111638936A (zh) 一种基于内置安全体系结构的虚拟机静态度量方法和装置
CN104778410A (zh) 一种应用程序完整性验证方法
CN115758356A (zh) 一种对Android应用实施可信静态度量的方法、存储介质及设备
Jia et al. Programmable system call security with ebpf
JP4526383B2 (ja) 実行可能なコードを格納するタンパーエビデントな取り外し可能な媒体
Lim et al. Unleashing unprivileged ebpf potential with dynamic sandboxing
Hei et al. Two vulnerabilities in Android OS kernel
CN112287357A (zh) 一种针对嵌入式裸机系统的控制流验证方法与系统
CN114818012B (zh) 基于白名单列表的Linux文件完整性度量方法
CN112214769B (zh) 基于SGX架构的Windows系统的主动度量系统
CN109165509A (zh) 软件实时可信度量的方法、设备、系统及存储介质
Gorski III et al. {FReD}: Identifying File {Re-Delegation} in Android System Services

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination