【技术实现步骤摘要】
一种基于ARM指针验证的内核代码指针完整性保护方法
本专利技术涉及计算机系统安全领域,尤其涉及一种基于ARM指针验证(PointerAuthentication,PA)的内核代码指针完整性(CodePointerIntegrity,CPI)的保护方法。
技术介绍
操作系统是计算机系统运行的基础,其上任何安全问题会直接危害系统整体安全。近年来,针对操作系统的攻击层出不穷,如2010年的震网病毒和2017到2019年的WannaCry蠕虫式勒索病毒。根据攻击手段的演化,对操作系统的攻击主要分为三类:代码注入攻击、代码重用攻击以及非控制数据攻击。与此同时,操作系统安全在攻击者和防护者的不断对抗中得到很大提升,随着抗代码注入攻击硬件安全特性的大规模部署,主流操作系统均已实现基于硬件的抗代码注入攻击防护。攻击者无法注入新的代码,转而篡改系统中的代码指针,控制系统控制流重用已有代码片段构造攻击载荷,被称为代码重用攻击。篡改返回地址的ROP攻击和篡改函数指针的JOP攻击都是常见的代码重用攻击技术。非控制数据攻击由于限制条件多、攻击载荷复杂以及通用性较低等特点,目前并未被攻击者广泛采用。抵御代码重用攻击成为当下操作系统防护的重点问题。已有的针对代码重用攻击的保护技术主要可以分为基于控制流完整性(Control-FlowIntegrity,CFI)和基于内存完整性的两类保护方法。基于控制流完整性的保护只对控制数据的跳转进行限制,不对控制数据(即代码指针)本身进行保护。这类保护方案通常需要事先对程序进行分析,创建精准的控制流图( ...
【技术保护点】
1.一种基于ARM指针验证的内核代码指针完整性保护方法,其特征在于,包括:/n标记操作系统代码中所有的函数指针类型为敏感指针类型,得到初始化的敏感指针类型集,其中敏感指针类型集为所有敏感指针类型的集合;/n根据初始化的敏感指针类型集和代码中包含的类型信息,计算并确定完整的敏感指针类型集;/n根据确定的敏感指针类型集,标记代码结构体中所有敏感指针类型的域为敏感指针域,得到初始化的敏感指针域集,其中敏感指针域集为所有敏感指针域的集合;根据确定的敏感指针类型集,标记代码中所有敏感指针类型的变量为敏感指针变量,得到初始化的敏感指针变量集,其中敏感指针变量集为所有敏感指针变量的集合;/n根据代码语义、初始化的敏感指针域集和初始化的敏感指针变量集,计算并确定完整的敏感指针变量集和敏感指针域集;/n根据确定的敏感指针变量集,对操作系统内核代码进行如下修改:在敏感指针变量写入内存的代码前插入PAC生成代码StoreGen
【技术特征摘要】
1.一种基于ARM指针验证的内核代码指针完整性保护方法,其特征在于,包括:
标记操作系统代码中所有的函数指针类型为敏感指针类型,得到初始化的敏感指针类型集,其中敏感指针类型集为所有敏感指针类型的集合;
根据初始化的敏感指针类型集和代码中包含的类型信息,计算并确定完整的敏感指针类型集;
根据确定的敏感指针类型集,标记代码结构体中所有敏感指针类型的域为敏感指针域,得到初始化的敏感指针域集,其中敏感指针域集为所有敏感指针域的集合;根据确定的敏感指针类型集,标记代码中所有敏感指针类型的变量为敏感指针变量,得到初始化的敏感指针变量集,其中敏感指针变量集为所有敏感指针变量的集合;
根据代码语义、初始化的敏感指针域集和初始化的敏感指针变量集,计算并确定完整的敏感指针变量集和敏感指针域集;
根据确定的敏感指针变量集,对操作系统内核代码进行如下修改:在敏感指针变量写入内存的代码前插入PAC生成代码StoreGenkey(sensptr),在敏感指针变量从内存中读取的代码后插入PAC验证代码LoadAuthkey(sensptr),其中key表示128bit的PA密钥,sensptr表示敏感指针变量,当操作系统内核运行时,动态执行插入的PAC生成代码生成敏感指针的PAC,动态执行插入的PAC验证代码验证敏感指针的PAC,若PAC验证通过,则代码指针一定完整,反之,则代码指针完整性被破坏;
在操作系统内核启动代码中插入PA密钥初始化代码keyinit(),该代码开启ARMCPU的PA特性并用随机数初始化PA密钥;
根据确定的敏感指针变量集,确定该集合中的全局变量,记为全局敏感指针变量;
根据确定的全局敏感指针变量,在keyinit()之后插入全局敏感指针变量初始化代码sensvar_init(),该代码对所有全局敏感指针变量调用StoreGenkey(gsensptr),其中key表示128bit的PA密钥,gsensptr表示全局敏感指针变量。
2.根据权利要求1所述一种基于ARM指针验证的内核代码指针完整性保护方法,其特征在于,根据初始化的敏感...
【专利技术属性】
技术研发人员:杨昱天,朱凇伯,申文博,周亚金,任奎,王文海,
申请(专利权)人:浙江大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。