一种面向内核栈溢出防御的指令修改虚拟平台执行方法技术

技术编号:20867252 阅读:37 留言:0更新日期:2019-04-17 09:29
本发明专利技术提供了一种面向内核栈溢出防御的指令修改虚拟平台的执行方法,属于计算机安全领域。本发明专利技术包括:建立备份栈、地址映射表和线程ID索引表;以跳转指令为分割点,从第一地址获取指令片段,插入第一控制指令和第二控制指令;如果指令片段存在call指令和ret指令,还需要插入第三控制指令和第四控制指令;单独存储第三指令片段,将第一地址和第二地址存入地址映射表;判断是否发生栈溢出攻击,如果发生栈溢出攻击,虚拟平台将进行栈溢出防御。本发明专利技术能够实时分析计算机运行时指令,以及监控call指令和ret指令。本发明专利技术的目的在于解决计算机终端中发生的栈溢出攻击可能造成的系统崩溃、数据丢失,甚至导致计算机终端被控制的危险。

【技术实现步骤摘要】
一种面向内核栈溢出防御的指令修改虚拟平台执行方法
本专利技术涉及计算机安全领域,尤其涉及一种面向内核栈溢出防御的指令修改虚拟平台的方法。
技术介绍
计算机已经成为各领域广泛使用的信息处理工具,然而随着互联网时代的到来,以及网络对社会影响的逐渐增强,使通过网络散播的计算机病毒、恶意代码以及利用系统漏洞实现的网络攻击时时刻刻威胁着计算机的安全。缓冲区溢出是一类利用系统漏洞实现对计算机攻击的手段,通过向程序的缓冲区写入超过其定义长度的数据,将缓冲区相邻存储单元的数据覆盖,使程序的堆栈遭到破坏,进而迫使程序执行攻击者所定义的shellcode。2000年之后,Windows系列操作系统和互联网的推广应用使缓冲区溢出攻击全面爆发,缓冲区溢出攻击在2000年至2004年期间达到一个爆发高峰,连续四年在所有漏洞排名中排名第一。缓冲区溢出攻击通常分为栈缓冲区溢出攻击和堆缓冲区溢出攻击。因为栈缓冲区溢出攻击所占的比例比堆缓冲区溢出攻击大,攻击的方式也更加多样,且攻击形式更隐秘,所以本专利技术主要研究栈缓冲区溢出攻击。2005年,SANS评选出20个威胁最大的漏洞,与栈溢出有关的漏洞占了40%左右。谷歌本文档来自技高网...

【技术保护点】
1.一种面向内核栈溢出防御的指令修改虚拟平台执行方法,其特征在于:包括如下步骤:步骤一、在计算机终端启动时加载虚拟平台,初始化包括虚拟平台获取程序入口地址、虚拟平台初始化备份栈和虚拟平台初始化地址映射表;程序入口地址为第一地址,地址映射表为存储空间中以地址对形式存储的第一地址和第二地址,备份栈为备份原始程序中的压栈指令;步骤二、虚拟平台缓存第一地址的运行环境,包括各类地址寄存器的值;步骤三、虚拟平台通过地址映射表判断是否存在与第一地址对应的第二地址,如果存在,则直接修改地址寄存器的值,CPU跳转到以第二地址为入口地址的程序片段继续运行;如果不存在,则顺序执行步骤四;步骤四、虚拟平台从第一地址指...

【技术特征摘要】
1.一种面向内核栈溢出防御的指令修改虚拟平台执行方法,其特征在于:包括如下步骤:步骤一、在计算机终端启动时加载虚拟平台,初始化包括虚拟平台获取程序入口地址、虚拟平台初始化备份栈和虚拟平台初始化地址映射表;程序入口地址为第一地址,地址映射表为存储空间中以地址对形式存储的第一地址和第二地址,备份栈为备份原始程序中的压栈指令;步骤二、虚拟平台缓存第一地址的运行环境,包括各类地址寄存器的值;步骤三、虚拟平台通过地址映射表判断是否存在与第一地址对应的第二地址,如果存在,则直接修改地址寄存器的值,CPU跳转到以第二地址为入口地址的程序片段继续运行;如果不存在,则顺序执行步骤四;步骤四、虚拟平台从第一地址指向的指令开始顺序获取,直到获取的指令的操作码为JMP跳转指令,该跳转指令为第一跳转指令,虚拟平台获取第一跳转指令的原始地址和参数存储在第三地址中,然后虚拟平台将从入口地址到JMP指令的指令组成第一指令片段,该指令片段不包括第一跳转指令;步骤五、虚拟平台修改第一指令片段,在最后一条的后面以此增加第一控制指令和第二控制指令:第一控制指令为压栈指令,将第三地址压入栈中;第二控制指令为跳转指令,跳转指令的地址为虚拟平台的入口地址;经过上述修改,虚拟平台将第一指令片段修改为第二指令片段;步骤六、虚拟平台轮询第二指令片段,查找其中的call指令和ret指令,根据指令修改备份栈:如果存在call指令和ret指令,在call指令前插入第三控制指令,该指令为压栈指令,将返回地址和返回地址的地址压入备份栈;在ret指令前插入第四控制指令,该指令为弹栈指令,将备份栈中的返回地址和返回地址的地址弹出;修改过的第二指令片段称为第三指令片段;将第三指令片段存储在单独划出的存储空间,该存储空间仅为虚拟平台存储修改的指令片段,存储第三指令片段的内存地址为第二地址,将第二地址和第一地址作为一对地址对存储在地址映射表中,地址寄存器中的值也修改为第二地址的参数;步骤七、虚拟平台恢复计算机运行环境,入口地址为第二地址,在CPU中运行第二地址存储的指令片段;步骤八、CPU运行第三指令片段,在运行到call指令和ret指令时,通过压栈指令和弹栈指令比较备份栈和真实栈中的返回地址的地址判断是否发生栈溢出攻击;如果发生栈溢出攻击,虚拟平台进行栈溢出防御;步骤九、CPU运行完第三指令片段之后,根据第三指令片段中最后一条跳转指令,跳转到虚拟平台,虚拟平台根据第三地址获取下一段运行时指令片段,重复执行步骤二~步骤八,此时的第三地址为第一地址,建立面向内核栈溢出防御的指令修改虚拟平台。2....

【专利技术属性】
技术研发人员:薛迪李静梅吴伟飞田乔汪家祥
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1