【技术实现步骤摘要】
【国外来华专利技术】安全执行进行越界引用的程序
[0001]本专利技术涉及用于安全执行程序的方法
、
装置和系统的实施例,并且更具体地,但并非以限制的方式,涉及用于安全执行进行越界引用的程序的方法
、
装置和系统
。
技术介绍
[0002]当软件意外地或故意地以超过其分配的大小和存储器地址的方式访问系统存储器时,发生存储器安全漏洞
(
例如,缓冲器溢出
、
竞争状况
、
页面错误
、
空指针
、
栈耗尽
、
堆耗尽
/
损坏
、
释放后使用
、
或双重释放等
)。
[0003]已在某些操作系统和其他程序中广泛使用的例如
C
和
C++
的程序可导致多个存储器安全错误,攻击者可利用这些错误带来危险和侵入性后果,如远程代码执行或特权提升缺陷等
。
例如,通过读取越界存储器,攻击者可能能够获得秘密值,例如存 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.
一种用于防止程序进行越界存储器引用的方法,所述方法包括:确定指令是否进行越界引用,其中从缓冲器加载数据或将数据存储到缓冲器的所述指令引用在所述缓冲器的边界之外的地址;以及响应于确定所述指令引用部分地在边界外的地址,改变所述加载或所述存储的执行,包括修改所述指令中指定的开始地址
、
所述指令中指定的数据的长度
、
或越界引用的值,以加载或存储在所述缓冲器的边界内的数据
。2.
根据权利要求1所述的方法,进一步包括:响应于确定所述指令引用完全越界的地址,不发出加载或存储命令;识别哪些越界引用在执行之后必须被修复;以及从所述越界引用的存储版本中修复所识别的越界引用
。3.
根据前述权利要求中任一项所述的方法,进一步包括记录越界引用,其中当确定加载部分地或完全地越界时,针对所述加载的越界部分返回的数据是预定或任意值
。4.
根据前述权利要求中任一项所述的方法,进一步包括从所述加载和存储指令创建边界内掩码以防止越界引用
。5.
根据前述权利要求中任一项所述的方法,其中异常被用于记录或存储所述越界引用
。6.
根据前述权利要求中任一项所述的方法,其中地址中的索引值的额外副本存储在寄存器中,并且其中在确定指令是否进行越界引用时将地址中的所述索引值与所述额外副本进行比较
。7.
根据前述权利要求中任一项所述的方法,其中所述确定包括将指针的值与和所述指针相关联的边界信息进行比较
。8.
根据权利要求1所述的方法,其中响应于确定所述指令引用部分地在边界外的地址,改变所述加载或所述存储的执行包括:修改所述指令中指定的开始地址
、
所述指令中指定的数据的长度
、
以及越界引用的值中的至少一个,以加载或存储在所述缓冲器的边界内的数据
。9.
一种用于防止程序进行越界存储器引用的系统,包括:存储器,存储计算机指令;以及处理器,被配置为执行所述计算机指令以:确定指令是否进行越界引用,其中从缓冲器加载数据或将数据存储到缓冲器的所述指令引用在所述缓冲器的边界之外的地址;以及响应于确定所述指令引用部分地在边界外...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。