缓冲器溢出捕获制造技术

技术编号:33120831 阅读:21 留言:0更新日期:2022-04-17 00:19
本发明专利技术的各方面包括在处理器上执行的操作系统处从程序接收将数据写入存储器的写入请求。该写请求包括虚拟存储器地址和数据。确定虚拟存储器地址未被分配给物理存储器地址。基于该确定,将未分配虚拟存储器地址分配给溢出存储器中的物理存储器地址。将数据写入溢出存储器中的物理存储器地址,并且将成功写入数据的指示返回给程序。程序访问虚拟存储器地址的未来请求指向溢出存储器中的物理存储器地址。址。址。

【技术实现步骤摘要】
缓冲器溢出捕获


[0001]本专利技术总体上涉及缓冲器溢出捕获,并且更具体地,涉及用于缓冲器溢出捕获的未支持存储器蜜罐(non

backed memory honey pot)。

技术介绍

[0002]存储器管理是控制和协调计算机存储器的过程,包括将存储器的部分分配给正在执行的各种程序。存储器管理功能可以驻留在计算机硬件、操作系统(OS)以及程序和应用中。缓冲器溢出是指在计算机上执行的程序开始访问(读或写)未分配给该程序的存储器部分的情况。未分配给程序的存储器部分可以分配给在计算机上执行的另一程序。缓冲器溢出可能由例如编程错误的人为错误引起。在其他情况下,缓冲器溢出可能被有目的地执行并且导致恶意代码的执行。

技术实现思路

[0003]本专利技术的实施例涉及缓冲器溢出捕获。一种非限制性示例计算机实现的方法包括在处理器上执行的操作系统处从程序接收将数据写入存储器的写入请求。该写入请求包括虚拟存储器地址和数据。该方法确定虚拟存储器地址未被分配给物理存储器地址。基于该确定,将该虚拟存储器地址分配给溢出存储器中的物理存储器地址。将数据写入溢出存储器中的物理存储器地址,并且将成功写入数据的指示返回给程序。程序访问虚拟存储器地址的未来请求指向溢出存储器中的物理存储器地址。
[0004]本专利技术的其它实施例在计算机系统和计算机程序产品中实现上述方法的特征。
[0005]通过本专利技术的技术实现了额外的技术特征和益处。本专利技术的实施例和方面在本文中详细描述,并且被认为是所要求保护的主题的一部分。为了更好地理解,参考详细描述和附图。
附图说明
[0006]在所附权利要求中特别指出并清楚地要求了本文描述的专有权的细节。从下面结合附图的详细描述中,本专利技术的实施例的前述和其它特征和优点将变得显而易见,其中:
[0007]图1描绘了根据本专利技术的一个或多个实施例的用于缓冲器溢出捕获的系统的框图;
[0008]图2描绘了根据本专利技术的一个或多个实施例的缓冲器溢出捕获的组件的框图;
[0009]图3描绘了根据本专利技术的一个或多个实施例的用于缓冲器溢出捕获的过程的流程图;
[0010]图4描绘了根据本专利技术的一个或多个实施例的云计算环境;
[0011]图5描绘了根据本专利技术的一个或多个实施例的抽象模型层;以及
[0012]图6描绘了根据本专利技术的一个或多个实施例的用于缓冲器溢出捕获的系统。
[0013]本文描绘的图是说明性的。在不脱离本专利技术的精神的情况下,可以对其中描述的
图或操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且不暗示元件之间直接连接而没有中间元件/连接。所有这些变化都被认为是说明书的一部分。
具体实施方式
[0014]本专利技术的一个或多个实施例通过在正常连续的存储器分配中人为地插入空洞(hole)来提供防止缓冲器溢出的防御机制。根据本专利技术的一个或多个实施例,使用转换表来将虚拟存储器地址映射到物理地址,并且在转换表的映射中放置策略空洞,以迫使缓冲器溢出到具有更高的开放概率的区域中。转换表中的开放区域包含尚未分配给物理存储器地址的虚拟地址,因此不受物理存储器支持。根据本专利技术的一个或多个实施例,通过经由转换表请求访问未支持虚拟存储器地址而跨越其存储器边界的程序触发计算机系统的存储器管理器取得所请求的虚拟地址并将数据放置到本文称为溢出或蜜罐存储器的存储器区域中。
[0015]溢出或蜜罐存储器可由计算机系统内的众所周知且受控的存储器区域池来实施。根据本专利技术的一个或多个实施例,溢出存储器区域被配置为防止其内容可由程序执行。这可以例如通过设置指令执行保护(Instruction Execution Protection,IEP)位来防止溢出存储器的相应存储块中的代码被执行来完成。在写入溢出存储器的同时,密集的记录过程可以同时收集关于正被写入的程序和/或数据的信息。可以存储所收集的信息,然后对其进行分析。
[0016]如本领域技术人员所知,术语“蜜罐”是指被设置成检测、偏转或以某种方式抵制对信息系统的未授权使用的尝试的计算机安全机制。通常,蜜罐包括看上去是站点或应用的合法部分但实际上被隔离和被监视的数据。蜜罐似乎包含对攻击者有价值的信息或资源,该攻击者随后被阻止。术语蜜罐存储器和溢出存储器在本文中可互换使用,以指代当程序尝试访问未分配给该程序的存储器位置时由本专利技术的一个或对个实施例利用的存储器的一部分。
[0017]当计算机程序利用同一物理存储器的不同区域时,重要的是保持计算机程序在其所分配的存储器区域内运行。较高级别(例如,源代码级别)的软件程序具有检查,这些检查通常将程序的所有执行和数据保持在它们所分配的存储器区域内的有组织的位置中。然而,在微代码(或汇编)级别,这些内置检查通常不可用。这可能由于各种原因而发生,但是其中最主要的是效率和/或性能考虑。系统相信给予微代码或汇编指令的信息是有效的,因此这些操作通常不检查数据完整性。这允许这些操作尽可能快地执行。
[0018]在许多这些较低级别的操作中,系统利用存储器管理器来代理给定程序的虚拟存储器和其中存储数据的物理或真实存储器之间的请求。如上所述,在当代系统中,存储器管理器通常执行存储器访问请求而不检查反响,相信由其上的软件层执行的检查确保了正确的执行。因为存储器管理器不检查缓冲器溢出,所以给定程序可访问它不应当能够访问的虚拟或物理存储器的区域。缓冲器溢出可能由人为错误引起,或者可能由于恶意原因而故意进行。通常,缓冲器溢出是由于误计算的地址或存储器偏移量,导致对请求程序的存储器区之外的存储器位置的请求,该请求程序的存储器区由程序在其下运行的任何仲裁功能(例如,管理程序)定义。当发生缓冲器溢出时,给定程序可以重写或处理由另一运行程序使
用的数据,这可以引起大量错误、崩溃、冲突等,这可能导致系统停机。
[0019]本专利技术的一个或多个实施例提供对当前提供对可导致缓冲器溢出的存储器的访问的方法的技术改进。当代方法的缺点是程序可能获得对分配给另一程序的存储器区域的访问,并因此在执行另一程序时例如通过重写由另一程序使用的存储器位置而导致错误。这可能是由例如差的代码结构或由导致能够写入到正好在代码库的边界之外的存储器部分的数据大小的差的处理引起的。此外,访问分配给另一程序的存储器区域可能引起访问存储器的程序中的错误,例如,通过使程序读取来自其它程序的假定无效的数据并对其进行动作。当代方法的另一个缺点是当程序请求访问没有被物理存储器支持的虚拟存储器地址时,该程序被通知错误。在恶意攻击的情况下,攻击者被通知虚拟地址无效,并且攻击者可以尝试访问其他虚拟地址,直到定位到存储器支持的地址。
[0020]本专利技术的一个或多个实施例通过创建具有策略性放置的间隙的转换表来提供对这些缺点中的一个或多个的技术解决方案,其中虚拟地址不映射到物理地址(即,未支持虚拟存储器地址)。当程序尝试访问未支持储器地址本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,包括:在处理器上执行的操作系统处,从程序接收将数据写入到存储器的写入请求,所述写入请求包括虚拟存储器地址和所述数据;确定所述虚拟存储器地址未被分配给物理存储器地址;基于所述确定,将所述虚拟存储器地址分配给溢出存储器中的物理存储器地址;将所述数据写入所述溢出存储器中的所述物理存储器地址;以及向所述程序返回所述数据被成功写入所述存储器的指示,其中所述程序访问所述虚拟存储器地址的后续请求被定向到所述溢出存储器中的所述物理存储器地址。2.根据权利要求1所述的方法,还包括响应于确定所述虚拟地址未被分配给物理存储器地址而启动关于所述数据和所述程序中的一者或两者的状态信息的记录。3.根据权利要求2所述的方法,其中,所述状态信息被用于识别与恶意程序或威胁行动者相关联的模式。4.根据权利要求2所述的方法,其中,至少部分基于所述状态信息来更新所述处理器的安全策略。5.根据权利要求1所述的方法,其中,所述数据包括计算机代码,并且所述溢出位置被配置为防止所述计算机代码从所述溢出位置执行。6.根据权利要求1所述的方法,其中,使用转换后备缓冲器TLB将虚拟存储器地址转换成物理存储器地址,并且所述TLB是使用稀疏存储器放置来配置的。7.根据权利要求1所述的方法,还包括:确定所述处理器的缓冲器溢出模式,其中,基于所述处理器的所述缓冲器溢出模式为第一模式而执行所述分配、写入和返回;以及基于所述缓冲器溢出模式是第二模式,响应于确定所述虚拟地址未被分配给所述存储器中的物理存储器地址,向所述程序返回所述写入未被成功完成的指示。8.一种系统,包括:用于执行计算机可读指令的一个或多个处理器,所述计算机可读指令控制所述一个或多个处理器执行操作,所述操作包括:在所述一个或多个处理器中的处理器上执行的操作系统处,从程序接收将数据写入到存储器的写入请求,所述写入请求包括虚拟存储器地址和所述数据;确定所述虚拟存储器地址未被分配给物理存储器地址;基于所述确定,将所述虚拟存储器地址分配给溢出存储器中的物理存储器地址;将所述数据写入所述溢出存储器中的所述物理存储器地址;以及向所述程序返回所述数据被成功写入所述存储器的指示,其中,所述程序访问所述虚拟存储器地址的后续请求被定向到所述溢出存储器中的所述物理存储器地址。9.根据权利要求8所述的系统,其中,所述操作还包括响应于确定所述虚拟地址未被分配给物理存储器地址而启动关于所述数据和所述程序中的一者或两者的状态信息的记录。10.根据权利要求9所述的系统,其中,所述状态信息被用于识别与恶意程序或威胁行动者相关联的模式。1...

【专利技术属性】
技术研发人员:MP莱昂斯ACM希克斯TJ加雷特MC佩德隆
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1