CN115438335B - 一种用于加固智能合约安全运行的安全沙箱系统 - Google Patents

一种用于加固智能合约安全运行的安全沙箱系统 Download PDF

Info

Publication number
CN115438335B
CN115438335B CN202211387071.2A CN202211387071A CN115438335B CN 115438335 B CN115438335 B CN 115438335B CN 202211387071 A CN202211387071 A CN 202211387071A CN 115438335 B CN115438335 B CN 115438335B
Authority
CN
China
Prior art keywords
contract
module
security
execution
api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211387071.2A
Other languages
English (en)
Other versions
CN115438335A (zh
Inventor
崔建军
许文波
朱清文
黄文林
阮镇南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Tegao Information Technology Co ltd
Original Assignee
Shanghai Tegao Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Tegao Information Technology Co ltd filed Critical Shanghai Tegao Information Technology Co ltd
Priority to CN202211387071.2A priority Critical patent/CN115438335B/zh
Publication of CN115438335A publication Critical patent/CN115438335A/zh
Application granted granted Critical
Publication of CN115438335B publication Critical patent/CN115438335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及区块链技术领域,具体是一种用于加固智能合约安全运行的安全沙箱系统,包括VM API过滤器模块,用于对各种VM API接口进行过滤;不一致函数消除器模块,用于消除结果可能不一致的函数;运行时长监测器模块,通过合约VM执行的代码行数对合约的运行时长进行监测;内存分配跟踪器模块,实时跟踪合约运行时内存分配;合约调用链跟踪器模块,用于跟踪合约调用链的深度,防止因宿主环境线程的调用栈溢出,导致区块链程序的异常退出;账本存储计费器模块,用于对合约的每个存储操作收取交易费用。本系统通过将所有的合约VM都在本系统中安全运行,实现对各环节的监测与安全加固处理,可有效保护宿主系统和区块链不受到威胁破坏。

Description

一种用于加固智能合约安全运行的安全沙箱系统
技术领域
本发明涉及区块链技术领域,尤其涉及一种用于加固智能合约安全运行的安全沙箱系统。
背景技术
区块链源于比特币,其最初只是作为数字资产流通的工具。但之后,以太坊引入了灵活的可编程智能合约机制,使得其具备了很强的二次开发能力,也使得区块链技术拥有了更加广泛应用的可能。其中,以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。而智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议;智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
但是,智能合约程序的灵活性也带来了可能的风险,可能导致程序、系统,甚至区块链遭受破坏。智能合约总是运行在智能合约VM中来同区块链进行交互。以太坊的智能合约虚拟机EVM是经过仔细设计的受限的VM,具备很高的系统安全性,其安全性主要在于用户编写合约业务逻辑上的安全性。但是,当引入更加通用的编程语言虚拟机,比如JavaScriptVM、Lua VM、Python VM时,会由于其丰富的API,与宿主机的更加灵活和不受限的交互能力,导致更大的安全风险,主要表现在如下3方面:
1、宿主环境Host的安全:通过文件IO,网络IO,环境访问,进程/线程等系统API,破坏或攻击宿主机;
2、链的安全:以较低成本在账本上产生大量数据;通过随机或不确定代码,破坏账本的一致性;通过合约间调用,导致栈溢出;
3、VM的安全:合约长时间运行,导致阻塞后续其它交易共识;合约无限制的分配和使用内存资源,导致大量OS(即操作系统,是管理计算机硬件与软件资源的计算机程序)内存被占用,使得系统运行缓慢或发生内存溢出(Out Of Memory,简称OOM,是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存),宿主进程被强制杀掉(OOM Killer,是当系统内存严重不足时 linux 内核采用的杀掉进程,释放内存的机制。OOM Killer 通过检查所有正在运行的进程,然后根据自己的算法给每个进程一个 badness 分数,拥有最高 badness 分数的进程将会在内存不足时被杀掉)。
发明内容
本发明的目的在于克服上述现有技术的问题,提供了一种用于加固智能合约安全运行的安全沙箱系统,该安全沙箱系统使得区块链可以以一种安全可靠的方式执行用户编写的智能合约程序,而不必依赖用户编写程序的正确性和对其的信任,来确保区块链的完整性和正常运行,可以保护宿主系统和区块链不受到威胁破坏。
上述目的是通过以下技术方案来实现:
一种用于加固智能合约安全运行的安全沙箱系统,包括:
VM API过滤器模块:根据安全接口白名单对合约VM提供的各种VM API接口进行过滤;处于安全接口白名单之外的VM API接口均被屏蔽;
不一致函数消除器模块:用于对VM API接口进行改造,确保VM API接口的执行结果具有一定的随机性或不确定性,但可得到完全一致的结果;
运行时长监测器模块:通过合约VM执行的代码行数对合约的运行时长进行监测;
内存分配跟踪器模块:针对合约VM,设置相应的内存分配和释放Hook,通过调用该内存分配或释放 Hook 分别向宿主环境申请或释放内存,并对已经分配的内存空间进行跟踪;
合约调用链跟踪器模块:用于跟踪合约调用链的深度,防止因宿主环境线程的调用栈溢出,导致区块链程序的异常退出;
账本存储计费器模块:用于对合约的每个存储操作收取交易费用。
进一步地,所述VM API过滤器模块根据安全接口白名单对合约VM提供的各种VMAPI进行过滤,具体为:在创建合约VM后,所述VM API过滤器模块会加载运行一段VM初始化程序,所述VM初始化程序会对所述合约VM的全局名字空间进行扫描,将处于该安全接口白名单中的VM API接口保留,其余VM API接口从所述全局名字空间中删除。
进一步地,所述不一致函数消除器模块对VM API接口进行改造,具体为:对于随机函数,保证其是一个伪随机函数,不从宿主系统获取真实随机源或以系统时间作为随机源;对于时间函数,其当前时间由所在账本高度的时间确定。
进一步地,所述不从宿主系统获取真实随机源或以系统时间作为随机源,具体为:默认情况下,通过VM时间函数获取当前时间,对随机函数进行初始化;或由合约调用者从外部提供一致的随机源,初始化随机函数。
进一步地,所述通过合约VM执行的代码行数对合约的运行时长进行监测,具体为:所述运行时长监测器模块通过调用执行Hook对合约VM执行的代码行数进行监测,并根据其计算所需的执行交易费用,若执行交易费用超出当前余额,则终止合约的执行。
进一步地,所述合约VM执行的代码行数是从初始合约开始执行时统计。
进一步地,所述内存分配跟踪器模块对已经分配的内存空间进行跟踪,具体为:若内存空间超出预设限制,则回收已经释放但未完全回收的内存空间。
进一步地,所述合约的运行内存统计为包含整个调用链中的所有合约VM的内存统计;若因内存限制终止合约VM时,为对合约调用链中当前合约VM的终止。
进一步地,所述合约调用链跟踪器模块对合约调用链深度的跟踪,具体为:每调用一个新合约时,合约调用链的深度加1;而完成一个合约执行,返回时,合约调用链的深度减1;在超过指定深度限制时,再次调用合约,将直接返回合约调用失败。
进一步地,所述账本存储计费器模块对合约的每个存储操作收取交易费用时,若交易费用大于余额时,则存储失败。
有益效果
本发明所提供的一种用于加固智能合约安全运行的安全沙箱系统,通过将所有的合约VM都在本系统中安全运行,实现对各环节的监测与安全加固处理,可有效保护宿主系统和区块链不受到威胁破坏。通过本系统的安全加固处理,智能合约的运行将不再依赖对合约编写者的信任,即便在不可信环境下,也可提供运行智能合约的安全运行环境,从而保证了链的健壮性。
附图说明
图1为本发明所述一种用于加固智能合约安全运行的安全沙箱系统的示意图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,一种用于加固智能合约安全运行的安全沙箱系统,包括:
VM API过滤器模块:根据安全接口白名单对合约VM提供的各种VM API接口进行过滤;处于安全接口白名单之外的VM API接口均被屏蔽;
不一致函数消除器模块:用于对VM API接口进行改造,确保VM API接口的执行结果具有一定的随机性或不确定性,但可得到完全一致的结果;
运行时长监测器模块:通过合约VM执行的代码行数对合约的运行时长进行监测;
内存分配跟踪器模块:针对合约VM,设置相应的内存分配和释放Hook(VM MemHook),通过调用该内存分配或释放 Hook 分别向宿主环境申请或释放内存,并对已经分配的内存空间进行跟踪;
合约调用链跟踪器模块:用于跟踪合约调用链的深度,防止因宿主环境线程的调用栈溢出,导致区块链程序的异常退出;
账本存储计费器模块:用于对合约的每个存储操作收取交易费用。
作为本实施例中各安全加固模块的具体介绍,如下:
对于合约VM提供的各种API,所述VM API过滤器模块根据安全接口白名单进行过滤,安全接口白名单之外的所有接口都会被屏蔽。具体的实现方式是在创建合约VM后,本系统提供的Sandbox会加载并运行一段VM初始化程序,该程序对VM全局名字空间进行扫描,只将明确安全的接口保留,其余接口从全局名字空间中删除;安全接口白名单还可自行定义与添加。
所述不一致函数消除器模块用于消除结果可能不一致的函数,其中对VM API接口进行改造,具体为:
对于随机函数、时间函数等在不同区块链节点执行,很可能会导致不同结果的VMAPI接口,进行如下改造,以保证API的执行结果具有一定的随机性或不确定性,但是可以得到完全一致的结果:
(1)对于随机函数,保证其是一个伪随机函数,不从宿主系统获取真实随机源或以系统时间作为随机源。默认情况下,通过VM时间函数获取当前时间,对随机函数进行初始化。或由合约调用者从外部提供一致的随机源,初始化随机函数。
(2)对于时间函数,其当前时间由所在账本高度的时间确定,而非所在宿主系统的当前时间。
所述运行时长监测器模块监测合约运行时长,在超过限制时,强行终止VM运行。考虑合约的运行时间会受到宿主运行环境的影响,简单的使用时间很难达成一致结果。所以,这里以VM执行的代码行数,来限制合约的运行长。Sandbox针对合约VM,设置相应的执行Hook(VM Run Hook),每执行一定数量的代码行数后,该执行Hook会被调用,此时运行时长监测器模块统计已经执行的代码行数。并根据其计算所需的执行交易费用,如果其超过当前剩余的执行费用,则终止合约的执行。
需要说明的是:合约可能存在嵌套调用,即调用其它合约,所以,合约VM执行的代码行数,是从初始合约开始执行时统计;由于合约调用可能跨多种类型的VM,所以每种VM的代码行都有一个负载系数,在统计时使用,以使得统计更加精确。负载系数越大,表明单个代码行的执行时间越长。
所述内存分配跟踪器模块可实时跟踪合约运行时内存分配,在其超过限制时,强行终止VM运行。Sandbox(沙箱)针对合约VM,设置相应的内存分配和释放Hook(VM MemHook)。当需要从宿主环境申请或释放内存时,会调用该内存分配和释放Hook。此时,Sandbox统计截止目前为止,已经分配的内存空间。如果其超过限制,则尝试回收已经释放但还未完全回收的空间。由于多数VM采取GC机制(垃圾回收机制),所以先采取GC机制操作,可实际回收部分内存,以提升合约执行的成功概率。
需要说明的是:合约可能存在嵌套调用,即调用其它合约,所以,合约的运行内存统计,是包含整个调用链中的所有合约VM的内存统计;当因为内存限制,终止VM时,是终止合约调用链中当前VM,而非整个合约,这样合约仍然有可能继续执行完成。
为了增加灵活性,区块链允许在一个合约中调用另一个合约,但是,每调用一次合约都会导致整个合约的执行链的延长,而这意味着宿主环境中,调用栈的增加。所以,不加限制的合约调用,将最终导致宿主环境线程的调用栈溢出,从而导致区块链程序的异常退出。为此,我们引入合约调用链跟踪器模块,用于跟踪合约调用链的深度,每调用一个新合约时,其深度加1;而完成一个合约执行,返回时,其深度减1。在超过指定深度限制时,再次调用合约,将直接返回合约调用失败。
智能合约的核心能力在于可以与区块链进行交互,并将自定义的数据存储在账本之中,但账本的存储是需要占用节点资源。因此,没有限制的数据存储,将很快消耗或者说占用节点大量的存储资源。为此,我们引入账本存储计费器模块,对于合约的每个存储操作,都会收取一定的交易费用( 通过ledger storage API),一旦其提供的交易费用不足以支撑这个存储操作,存储将会失败,即所述账本存储计费器模块对合约的每个存储操作收取交易费用时,若交易费用大于余额时,则存储失败。
以上所述仅为说明本发明的实施方式,并不用于限制本发明,对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于加固智能合约安全运行的安全沙箱系统,其特征在于,包括:
VM API过滤器模块:根据安全接口白名单对合约VM提供的各种VM API接口进行过滤;处于安全接口白名单之外的VM API接口均被屏蔽;
不一致函数消除器模块:用于对VM API接口进行改造,确保VM API接口的执行结果具有随机性或不确定性,但可得到完全一致的结果;所述不一致函数消除器模块用于消除结果不一致的函数,其中对VM API接口进行改造,具体为:对于随机函数、时间函数在不同区块链节点执行,会导致不同结果的VM API接口,进行如下改造,以保证API的执行结果具有随机性或不确定性,但是可以得到完全一致的结果:(1)对于随机函数,保证其是一个伪随机函数,不从宿主系统获取真实随机源或以系统时间作为随机源;默认情况下,通过VM时间函数获取当前时间,对随机函数进行初始化;或由合约调用者从外部提供一致的随机源,初始化随机函数;(2)对于时间函数,其当前时间由所在账本高度的时间确定,而非所在宿主系统的当前时间;
运行时长监测器模块:通过合约VM执行的代码行数对合约的运行时长进行监测;Sandbox针对合约VM,设置相应的执行Hook,每执行一定数量的代码行数后,该执行Hook会被调用,此时运行时长监测器模块统计已经执行的代码行数;并根据其计算所需的执行交易费用,如果其超过当前剩余的执行费用,则终止合约的执行;
内存分配跟踪器模块:针对合约VM,设置相应的内存分配和释放Hook,通过调用该内存分配或释放 Hook 分别向宿主环境申请或释放内存,并对已经分配的内存空间进行跟踪;Sandbox统计截止目前为止,已经分配的内存空间;如果其超过限制,则尝试回收已经释放但还未完全回收的空间;
合约调用链跟踪器模块:用于跟踪合约调用链的深度,防止因宿主环境线程的调用栈溢出,导致区块链程序的异常退出;每调用一个新合约时,其深度加1;而完成一个合约执行,返回时,其深度减1;在超过指定深度限制时,再次调用合约,将直接返回合约调用失败;
账本存储计费器模块:用于对合约的每个存储操作收取交易费用。
2.根据权利要求1所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述VM API过滤器模块根据安全接口白名单对合约VM提供的各种VM API进行过滤,具体为:在创建合约VM后,所述VM API过滤器模块会加载运行一段VM初始化程序,所述VM初始化程序会对所述合约VM的全局名字空间进行扫描,将处于该安全接口白名单中的VM API接口保留,其余VM API接口从所述全局名字空间中删除。
3.根据权利要求1所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述不一致函数消除器模块对VM API接口进行改造,具体为:
对于随机函数,保证其是一个伪随机函数,不从宿主系统获取真实随机源或以系统时间作为随机源;
对于时间函数,其当前时间由所在账本高度的时间确定。
4.根据权利要求3所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述不从宿主系统获取真实随机源或以系统时间作为随机源,具体为:默认情况下,通过VM时间函数获取当前时间,对随机函数进行初始化;或由合约调用者从外部提供一致的随机源,初始化随机函数。
5.根据权利要求1所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述通过合约VM执行的代码行数对合约的运行时长进行监测,具体为:所述运行时长监测器模块通过调用执行Hook对合约VM执行的代码行数进行监测,并根据其计算所需的执行交易费用,若执行交易费用超出当前余额,则终止合约的执行。
6.根据权利要求5所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述合约VM执行的代码行数是从初始合约开始执行时统计。
7.根据权利要求1所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述内存分配跟踪器模块对已经分配的内存空间进行跟踪,具体为:若内存空间超出预设限制,则回收已经释放但未完全回收的内存空间。
8.根据权利要求7所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述合约的运行内存统计为包含整个调用链中的所有合约VM的内存统计;若因内存限制终止合约VM时,为对合约调用链中当前合约VM的终止。
9.根据权利要求1所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述合约调用链跟踪器模块对合约调用链深度的跟踪,具体为:每调用一个新合约时,合约调用链的深度加1;而完成一个合约执行,返回时,合约调用链的深度减1;在超过指定深度限制时,再次调用合约,将直接返回合约调用失败。
10.根据权利要求1所述的一种用于加固智能合约安全运行的安全沙箱系统,其特征在于:所述账本存储计费器模块对合约的每个存储操作收取交易费用时,若交易费用大于余额时,则存储失败。
CN202211387071.2A 2022-11-07 2022-11-07 一种用于加固智能合约安全运行的安全沙箱系统 Active CN115438335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211387071.2A CN115438335B (zh) 2022-11-07 2022-11-07 一种用于加固智能合约安全运行的安全沙箱系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211387071.2A CN115438335B (zh) 2022-11-07 2022-11-07 一种用于加固智能合约安全运行的安全沙箱系统

Publications (2)

Publication Number Publication Date
CN115438335A CN115438335A (zh) 2022-12-06
CN115438335B true CN115438335B (zh) 2023-02-10

Family

ID=84252244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211387071.2A Active CN115438335B (zh) 2022-11-07 2022-11-07 一种用于加固智能合约安全运行的安全沙箱系统

Country Status (1)

Country Link
CN (1) CN115438335B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093323B (zh) * 2023-08-23 2024-03-26 北京志凌海纳科技有限公司 基于后端执行引擎中实现沙盒机制的方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11050781B2 (en) * 2017-10-11 2021-06-29 Microsoft Technology Licensing, Llc Secure application monitoring
US20190392178A1 (en) * 2018-06-26 2019-12-26 bootstrap legal Inc. Method and System for Monitoring a Smart Contract on a Distributed Ledger
CN108985073B (zh) * 2018-07-18 2020-05-22 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
CN118012448A (zh) * 2018-12-03 2024-05-10 纳格拉影像有限公司 虚拟平台系统的安全部署和操作
US11405182B2 (en) * 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
CN111898156B (zh) * 2019-01-31 2024-04-16 创新先进技术有限公司 区块链中实现合约调用的方法及节点、存储介质
CN110727948B (zh) * 2019-10-11 2021-10-29 腾讯科技(深圳)有限公司 智能合约审计方法、装置、计算机设备及存储介质
CN112560114B (zh) * 2021-02-22 2022-01-11 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置
CN112860588B (zh) * 2021-04-07 2024-03-29 中国科学技术大学 一种针对智能合约跨合约漏洞的模糊测试方法

Also Published As

Publication number Publication date
CN115438335A (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
Long et al. Automatic runtime error repair and containment via recovery shepherding
CN102592082B (zh) 通过操作码随机化的安全
US7680762B2 (en) System and method providing inlined stub
US7870443B2 (en) Method to isolate crash of an embedded multi-threaded application to a shared library call without core dump files or debugger
CN115438335B (zh) 一种用于加固智能合约安全运行的安全沙箱系统
CN103988206A (zh) 用于动态创建应用程序执行环境以保护所述应用程序的方法以及相关的计算机程序产品和计算装置
CN111273968A (zh) 一种对象调用方法、装置、设备及介质
CN105630534A (zh) 基于TrustZone架构的应用程序执行方法、装置和终端
CN104216771A (zh) 软件程序的重启方法及装置
CN105224403B (zh) 一种中断处理方法及装置
Jia et al. Programmable system call security with ebpf
CN111552524A (zh) 一种插件加载方法、装置及计算机可读存储介质
US8095513B2 (en) Safe buffer
CN112835639B (zh) 一种Hook实现方法、装置、设备、介质及产品
CN111581639B (zh) 一种Android加壳应用程序通用自动化脱壳方法及系统
US7370327B2 (en) Method for managing memory resources in a shared memory system
El Fallah Seghrouchni et al. Claim and sympa: A programming environment for intelligent and mobile agents
Lister et al. Hierarchical monitors
CN111273897A (zh) 一种区块链资源消耗方法、装置、储存介质及电子设备
WO2022046198A1 (en) Thread-local return structure for asynchronous state machine
CN113392395A (zh) 一种栈保护的方法及装置
EP3040895A1 (en) System and method for protecting a device against return-oriented programming attacks
CN112527460A (zh) 一种控制区块链底层资产数据状态一致性的方法及系统
CN111414270A (zh) 一种异常处理方法及装置
CN104317728A (zh) 一种安全复位存储设备的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant