利用影子堆栈的已验证堆栈跟踪生成和加速的基于堆栈的分析的制作方法

文档序号:35104726发布日期:2023-08-10 15:05阅读:103来源:国知局
利用影子堆栈的已验证堆栈跟踪生成和加速的基于堆栈的分析的制作方法


背景技术:

1、计算机可执行指令的执行可能产生意外的后果,例如由于由程序员在编程中生成的故障或错误,异常或其他类似硬件失灵,或其组合。这种意想不到的后果被通俗地称为“漏洞”。类似地,为了标识这种意外的后果的原因,并对其进行补救以避免这些意外的后果未来再次发生,对漏洞的分析通俗地称为“调试”。调试通常需要以一个或多个数据结构的形式从执行堆栈中获得信息,这些执行堆栈表示由微处理器(例如中央处理单元(cpu))执行单个指令所保留的信息。从堆栈中获得的数据通常被称为“堆栈跟踪”,并提供有价值的信息来帮助调试。一条这样的数据是通过执行指令(如调用指令)而放置在堆栈上的返回地址,其导致执行跳转到下一个后续指令以外的指令。

2、漏洞通常会导致或与数据损坏相关联,数据损坏可能包括堆栈数据的损坏。当相关数据(如堆栈上的返回地址)损坏甚至完全丢失时,调试非常困难。此外,尤其是在对大量数据执行时,调试是低效的。更具体地说,作为调试的一部分,利用称为“展开”的反向工程过程,从堆栈跟踪中包含的信息生成一个或多个返回地址。尤其是在重复执行时,展开会消耗处理器周期并导致低效。

3、在某些情况下,例如在云计算环境中,漏洞发生时无法执行调试。相反,大量数据的集合将被执行,希望这些数据包含与执行调试相关的信息,并且将来对这些数据的分析将能够成功地调试漏洞。这样的数据集合通常被称为数据的“转储”,并且利用自动化机制来分类这样的转储,以便集中精力,从而提供更有效的后续人类分析。例如,对一个或多个数据转储的分析可能会揭示与特定漏洞相关联的一组特定特性。其他数据转储可以被对是否存在这些特性评估,从而使数据转储能够在显示已知漏洞特性的数据转储和表示先前未标识或未查看的错误(例如,先前未知的漏洞)的数据转储之间进行分类。然后,人类的努力可以集中在未知的漏洞上。如所示出的,为检测特性而对数据转储进行的评估包括堆栈跟踪的展开是低效的。因此,对大量数据转储(如在云计算环境中将被生成的数据转储)的评估和分类会消耗大量的处理资源,包括cpu周期、存储器和其他类似的计算资源。


技术实现思路

1、通过利用影子堆栈(诸如为防止恶意软件和计算机安全而实现的硬件保护副本堆栈)中包含的信息,可以生成已验证堆栈跟踪。影子堆栈包含返回地址,这些地址无需展开传统调用堆栈即可获得。这样,基于返回地址信息的分类可以更快速和更有效地执行,并且减少了处理资源的利用。此外,可以执行已验证堆栈跟踪的生成,这样的已验证堆栈跟踪包含已知正确且未损坏的返回地址。返回地址能够从传统调用堆栈中读取,或者从中导出,然后通过与来自影子堆栈的对应的返回地址相比较被验证,或者可以直接从影子堆栈中被读取。

2、提供本
技术实现要素:
是为了以简化形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。

3、参考附图进行的以下详细描述将使附加特征和优点变得明显。



技术特征:

1.一种计算设备,包括:

2.根据权利要求1所述的计算设备,包括另外的计算机可执行指令,当其由所述处理单元中的至少一些处理单元执行时使所述计算设备:

3.根据权利要求1所述的计算设备,包括另外的计算机可执行指令,当其由所述处理单元中的至少一些处理单元执行时使所述计算设备:

4.根据权利要求3所述的计算设备,其中被定向为生成所述已验证堆栈跟踪的所述计算机可执行指令根据所述一个或多个转储文件需要另外的审查的所述指示而被执行,所述一个或多个转储文件包括从所述影子堆栈获得的所述返回地址。

5.一种计算设备,包括:

6.根据权利要求5所述的计算设备,包括另外的计算机可执行指令,当其由所述处理单元中的至少一些处理单元执行时使所述计算设备:

7.根据权利要求6所述的计算设备,其中被定向为生成所述已验证堆栈跟踪的所述计算机可执行指令根据所述一个或多个转储文件需要另外的审查的所述指示而被执行,所述一个或多个转储文件包括从所述影子堆栈获得的所述返回地址。

8.一种系统,包括:

9.根据权利要求8所述的系统,其中所述比较确定来自所述影子堆栈的所述返回地址不匹配所述编目漏洞的所述预定返回地址特性;

10.根据权利要求8所述的系统,还包括堆栈跟踪生成计算设备,所述堆栈跟踪生成计算设备包括:

11.根据权利要求1所述的计算设备,包括另外的计算机可执行指令,当其由所述处理单元中的至少一些处理单元执行时,使所述计算设备:

12.根据权利要求1所述的计算设备,其中如果与来自所述影子堆栈的对应的返回地址不同的来自所述调用堆栈的返回地址的数量大于阈值,则仅从所述影子堆栈获得的所述第一返回地址被包括在所生成的所述已验证堆栈跟踪中。

13.根据权利要求5所述的计算设备,包括另外的计算机可执行指令,当其由所述处理单元中的至少一些处理单元执行时,使所述计算设备:

14.根据权利要求10所述的系统,其中被定向为生成所述已验证堆栈跟踪的所述计算机可执行指令根据所述一个或多个转储文件需要另外的审查的指示而被执行,所述一个或多个转储文件需要另外的审查的所述指示是基于来自所述影子堆栈的所述返回地址不匹配所述编目漏洞的所述预定返回地址特性的所述比较确定。

15.根据权利要求8所述的系统,其中所述一个或多个转储生成计算设备存储介质包括另外的计算机可执行指令,当其由所述转储生成计算设备处理单元中的至少一些转储生成计算设备处理单元执行时,使所述转储生成计算设备:


技术总结
能够通过利用包含在影子堆栈,诸如为防止恶意软件和计算机安全而实现的硬件保护的副本堆栈,中的信息来生成已验证堆栈跟踪。影子堆栈包含返回地址,其无需展开传统调用堆栈即可获得。这样,基于返回地址信息的分类能够更快速和更有效地执行,并且伴随地减少了处理资源的利用。此外,可以执行已验证堆栈跟踪的生成,这样的已验证堆栈跟踪包含已知正确且未损坏的返回地址。返回地址可以从传统调用堆栈中读取,或者从中导出,然后通过与来自影子堆栈的对应的返回地址相比较被验证,或者可以直接从影子堆栈中读取。

技术研发人员:J·林,杰森·林,N·马吉穆达尔,M·伊古恩
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1