CN111797388A - 基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统 - Google Patents
基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统 Download PDFInfo
- Publication number
- CN111797388A CN111797388A CN202010532973.5A CN202010532973A CN111797388A CN 111797388 A CN111797388 A CN 111797388A CN 202010532973 A CN202010532973 A CN 202010532973A CN 111797388 A CN111797388 A CN 111797388A
- Authority
- CN
- China
- Prior art keywords
- randomization
- memory
- engine
- running
- javascript engine
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 131
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000007123 defense Effects 0.000 title claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 47
- 230000006399 behavior Effects 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 24
- 230000001960 triggered effect Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 7
- 238000004064 recycling Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
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)
- Storage Device Security (AREA)
Abstract
本发明公开了基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统,其中的方法包括如下步骤:步骤1)系统初始化。对基于JavaScript引擎的运行时随机化系统进行初始化设置;步骤2)监测JavaScript引擎运行过程中,会导致内存信息泄露的风险行为,触发运行时随机化系统执行;步骤3)实现对JS引擎的随机化操作;步骤4)管理运行时随机化系统运行过程中的内存,实现对运行时随机化系统在运行时产生的内存垃圾进行回收管理。本发明能解决JavaScript引擎动态生成代码的安全保护问题,有效提高了JS引擎应对基于内存信息泄露的攻击的能力。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统。
背景技术
随着互联网的迅速普及,浏览器在现实生活中发挥着越来越重要的作用。JavaScript(JS)引擎作为浏览器引擎的一部分,引入了JIT(just-in-time)即时编译技术。这种即时编译技术提供了动态生成可执行代码的机制,在给JavaScript引擎的执行效率带来提升的同时,也面临着动态生成代码缺乏有效保护的事实。攻击者利用内存泄漏漏洞非法获取JavaScript引擎的内存信息,并利用这些内存信息,通过代码注入或重用等攻击来生成恶意行为,对信息系统带来极大的安全威胁。
攻击者通常利用直接内存泄露和间接内存泄露来实现对内存信息的获取。直接内存泄露通过直接读取(或扫描)程序的代码页;间接内存泄露则利用代码指针等数据推断出可执行代码的内存地址,这些代码指针包括栈中的函数指针和返回地址等。这种间接的内存信息泄露不需要读取代码页。
为了应对内存信息泄露带来的安全威胁,现有方法采用的安全防御技术,包括地址空间布局随机化(ASLR)和数据执行保护(DEP)等,
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有的方法在应对JavaScript引擎动态生成的代码的保护时难以满足系统的安全防御需求。这是由于一方面,JS引擎在动态生成代码时,需要对生成的代码进行存储,所以要求内存区域必须是可写的,这使得数据执行保护(DEP)的防御能力无法满足JS引擎的安全需求。另一方面,由于攻击者利用内存信息泄露漏洞,获取JS引擎内存信息,获取ASLR随机化后的内存信息,使得只进行一次随机化的ASLR无法应对在内存信息泄露情况下的JS引擎安全问题。
由此可知,现有技术中的方法难以满足系统的安全防御需求,存在安全性不高的技术问题。
发明内容
本发明提出一种基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统,用于解决或者至少部分解决现有技术中的方法存在的安全性不高的技术问题。
为了解决上述技术问题,本发明第一方面提供了基于运行时随机化的JavaScript引擎内存信息泄露防御方法,包括:
S1:对基于JavaScript引擎的运行时随机化系统进行初始化设置;
S2:监测JavaScript引擎运行过程中会导致内存信息泄露的风险行为,如果风险行为发生则触发运行时随机化系统执行;
S3:当运行时随机化系统被触发后,调整空指令在内存中的占位的大小,实现对JavaScript引擎的随机化;
S4:管理运行时随机化系统运行过程中的内存,对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
在一种实施方式中,S1具体包括:
S1.1:增加JavaScript引擎空指令NOP;
S1.2:执行脚本时,生成带有NOP指令的字节码数组。
在一种实施方式中,S2具体包括:
S2.1:通过监控JavaScript脚本的调用函数Invoke()来监测引擎运行过程中会导致内存信息泄露的风险行为;
S2.2:当Invoke()函数被调用后,则判定风险行为发生,此时触发运行时随机化操作。
在一种实施方式中,S3具体包括:
S3.1:当运行时随机化系统被触发后,获取与JavaScript脚本函数对应的字节码数组;
S3.2:对获取的字节码数组中空指令NOP的占位进行修改,实现对内存的随机化操作。
在一种实施方式中,S4具体包括
S4.1:对于被替换的旧的内存空间,进行即时处理;
S4.2:调用JavaScript引擎GC对运行时随机化系统运行过程中的内存进行管理。
基于同样的发明构思,本发明第二方面提供了基于运行时随机化的JavaScript引擎内存信息泄露防御系统,包括:
初始化模块,用于对基于JavaScript引擎的运行时随机化系统进行初始化设置;
随机化触发模块,用于监测JavaScript引擎运行过程中会导致内存信息泄露的风险行为,如果风险行为发生则触发运行时随机化系统执行;
随机化操作模块,用于当运行时随机化系统被触发后,调整空指令在内存中的占位的大小,实现对JavaScript引擎的随机化;
内存管理模块,用于管理运行时随机化系统运行过程中的内存,对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明通过运行时随机化的方法来进行对JavaScript引擎的内存随机化,可以提高JS引擎运行过程中内存信息的不可预测性,实现对基于内存信息泄露的攻击的防御。
本发明能解决JavaScript引擎动态生成代码的安全保护问题,有效提高了JS引擎应对基于内存信息泄露的攻击的能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于运行时随机化的JavaScript引擎内存信息泄露防御方法的整体流程图;
流程图;
图2是本发明提供的基于运行时随机化的JavaScript引擎内存信息泄露防御系统的结构框图。
具体实施方式
本发明的目的是解决浏览器应用中基于内存信息泄露的系统攻击问题,通过提高内存信息的不可预测性,实现JS引擎针对基于内存信息泄露的攻击的防御。为了解决基于内存信息泄露的攻击,实现上述防御技术,本发明提供了一种基于运行时随机化的JavaScript引擎内存信息泄露防御方法。针对JS引擎动态生成可执行代码的特性,通过添加空指令的方式,实现对JS引擎内存信息的随机化操作。
本发明的技术方案是:
步骤1)系统初始化。对基于JavaScript引擎的运行时随机化系统进行初始化设置;步骤2)监测JavaScript引擎运行过程中,会导致内存信息泄露的风险行为,触发运行时随机化系统执行;步骤3)实现对JS引擎的随机化操作;步骤4)管理运行时随机化系统运行过程中的内存,实现对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
本发明能解决JavaScript引擎动态生成代码的安全保护问题,有效提高了JS引擎应对基于内存信息泄露的攻击的能力。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了基于运行时随机化的JavaScript引擎内存信息泄露防御方法,该方法包括:
S1:对基于JavaScript引擎的运行时随机化系统进行初始化设置;
S2:监测JavaScript引擎运行过程中会导致内存信息泄露的风险行为,如果风险行为发生则触发运行时随机化系统执行;
S3:当运行时随机化系统被触发后,调整空指令在内存中的占位的大小,实现对JavaScript引擎的随机化;
S4:管理运行时随机化系统运行过程中的内存,对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
具体来说,步骤S1是系统初始化。对基于JavaScript引擎的运行时随机化系统进行初始化设置。
步骤S2是监测JavaScript引擎运行过程中,会导致内存信息泄露的风险行为,触发运行时随机化系统执行。基于JS引擎的运行时随机化系统采用用前即变(change beforeusing)的基于风险的触发机制,首先监控相关风险函数的调用,然后在攻击利用获取到的内存实施攻击之前,触发运行时随机化的实施,使攻击者无法利用内存泄露获取到正确有效的内存信息,从而无法实施代码重用等内存攻击。
步骤S3是实现对JS引擎的随机化操作。
步骤S4管理运行时随机化系统运行过程中的内存,实现对运行时随机化系统在运行时产生的内存垃圾进行回收管理。由于JavaScript是单线程语言,故而在JS引擎中,为每一个运行中的上下文开辟一个进程,这些运行中的进程由各自分配的内存来表示,而这些内存又划分为栈内存和堆内存,栈内存由是由操作系统自动管理,堆内存通过Minor GC、Major GC进行回收管理。
图1为方法的整体实现流程图,当JavaScript引擎运行后,首先进行初始化设置,然后监控系统中的风险调用,通过风险调用是否被调用来判定是否触发随机化系统,当被触发时,则获取js源码对应的字节码,然后进行随机化操作,再进行随机化的内存布局,如果是被替换的旧内存则通过垃圾回收器进行回收,否则,对运行时随机化系统运行过程中的内存进行管理。判断JavaScript引擎是否在运行中,如果否,则退出系统,否则进行下一轮的监控。
在一种实施方式中,S1具体包括:
S1.1:增加JavaScript引擎空指令NOP;
S1.2:执行脚本时,生成带有NOP指令的字节码数组。
具体来说,S1.1增加JS引擎空指令NOP,以便在生成字节码过程中调用该指令;该步骤为随机化系统运行过程中的前置条件,当随机化系统被成功安装后,则不再执行该步骤,直接从步骤1.2开始。
S1.2执行脚本时,生成带有NOP指令的字节码数组。NOP指令用于随机化过程,当随机化被触发后,则通过修改NOP指令的内存占用大小来实现对内存的随机化。
在一种实施方式中,S2具体包括:
S2.1:通过监控JavaScript脚本的调用函数Invoke()来监测引擎运行过程中会导致内存信息泄露的风险行为;
S2.2:当Invoke()函数被调用后,则判定风险行为发生,此时触发运行时随机化操作。
具体来说,Invoke()函数作为JS引擎工作过程中的风险函数被监控,在将基于运行时随机化的JS引擎内存信息泄露防御方法进行具体实现中,风险函数可根据各JS引擎的实现进行灵活设置。
在一种实施方式中,S3具体包括:
S3.1:当运行时随机化系统被触发后,获取与JavaScript脚本函数对应的字节码数组;
S3.2:对获取的字节码数组中空指令NOP的占位进行修改,实现对内存的随机化操作。
具体来说,通过添加空指令的方式,在每次随机化被触发时,调整空指令在内存中的占位的大小,实现对JS引擎的随机化。下面将以add.JS为例,进行说明。
表1 add.js代码
表1为add.js代码,该js函数对应生成的伪原始字节码数组和伪随机化后字节码数组在内存中如表2所示,其中,随机化后字节码数组x表示NOP在JS代码运行时由随机化新确认下的内存占用大小。另外,NOP作为新加入的字节码,其作用也仅为空指令,没有实际意义。当x的大小发生改变后,在其后的字节码的地址也随之发生改变。
表2 字节码数组对比表
在一种实施方式中,S4具体包括
S4.1:对于被替换的旧的内存空间,进行即时处理;
S4.2:调用JavaScript引擎GC对运行时随机化系统运行过程中的内存进行管理。
具体来说,由于JavaScript是单线程语言,故而在JS引擎中,为每一个运行中的上下文开辟一个进程,这些运行中的进程由各自分配的内存来表示,而这些内存又划分为栈内存和堆内存,栈空间由是由操作系统自动管理,堆内存通过Minor GC、Major GC进行回收管理。首先,对于替换下的旧的内存空间,进行即使处理,然后调用JS引擎GC对运行时随机化系统运行过程中的内存进行管理。
实施例二
基于同样的发明构思,本发明第二方面提供了基于运行时随机化的JavaScript引擎内存信息泄露防御系统,请参见图2,该系统包括:
初始化模块201,用于对基于JavaScript引擎的运行时随机化系统进行初始化设置;
随机化触发模块202,用于监测JavaScript引擎运行过程中会导致内存信息泄露的风险行为,如果风险行为发生则触发运行时随机化系统执行;
随机化操作模块203,用于当运行时随机化系统被触发后,调整空指令在内存中的占位的大小,实现对JavaScript引擎的随机化;
内存管理模块204,用于管理运行时随机化系统运行过程中的内存,对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
具体来说,V8引擎是使用最广泛的JS引擎,本发明将实施例一中的防御方法在V8引擎上进行实现,实现一种在V8引擎上实现的基于运行时随机化的JavaScript引擎的内存信息泄露防御系统。
具体实施过程中,初始化模块,用于对运行时随机化系统的初始化操作;包括以下步骤:
1)增加JS引擎空指令NOP,以便在生成字节码的过程中调用该指令;
2)执行脚本时,生成带有NOP指令的字节码数组。
随机化触发模块,用于监测系统运行过程中的风险函数调用,触发运行时随机化实施;
随机化触发模块包括以下步骤:
1)监控JavaScript脚本的调用函数Invoke()。该函数作为JS引擎工作过程中的风险函数被监控,在将基于运行时随机化的JS引擎内存信息泄露防御方法进行具体实现中,风险函数可根据各JS引擎的实现进行灵活设置;
2)当Invoke()函数被调用后,触发运行时随机化操作;
随机化操作模块,用于运行时随机化系统被触发后,对内存信息的随机化操作,主要是随机化系统运行过程中的空指令NOP占用的内存大小;
具体步骤为:
1)获取被执行JavaScript函数生成的对应的带有NOP指令的字节码数组;
2)对获取的字节码数组中空指令NOP的占位进行修改,实现对内存的随机化操作。
内存管理模块,用于对运行时随机化系统的运行时内存进行管理。
具体步骤为:
1)对于替换下的旧的内存空间,进行即时处理;
2)调用JS引擎GC对运行时随机化系统运行过程中的内存进行管理。
本发明产生的有益效果是:
本发明通过运行时随机化的方法来进行对JavaScript引擎的内存随机化,可以提高JS引擎在运行JavaScript脚本过程中内存信息的不可预测性,实现对基于内存信息泄露的攻击的防御。
本发明能解决JavaScript引擎动态生成代码的安全保护问题,有效提高了JS引擎应对基于内存信息泄露的攻击的能力。
由于本发明实施例二所介绍的系统,为实施本发明实施例一中基于运行时随机化的JavaScript引擎内存信息泄露防御方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.基于运行时随机化的JavaScript引擎内存信息泄露防御方法,其特征在于,包括:
S1:对基于JavaScript引擎的运行时随机化系统进行初始化设置;
S2:监测JavaScript引擎运行过程中会导致内存信息泄露的风险行为,如果风险行为发生则触发运行时随机化系统执行;
S3:当运行时随机化系统被触发后,调整空指令在内存中的占位的大小,实现对JavaScript引擎的随机化;
S4:管理运行时随机化系统运行过程中的内存,对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
2.如权利要求1所述的防御方法,其特征在于,S1具体包括:
S1.1:增加JavaScript引擎空指令NOP;
S1.2:执行脚本时,生成带有NOP指令的字节码数组。
3.如权利要求1所述的防御方法,其特征在于,S2具体包括:
S2.1:通过监控JavaScript脚本的调用函数Invoke()来监测引擎运行过程中会导致内存信息泄露的风险行为;
S2.2:当Invoke()函数被调用后,则判定风险行为发生,此时触发运行时随机化操作。
4.如权利要求1所述的防御方法,其特征在于,S3具体包括:
S3.1:当运行时随机化系统被触发后,获取与JavaScript脚本函数对应的字节码数组;
S3.2:对获取的字节码数组中空指令NOP的占位进行修改,实现对内存的随机化操作。
5.如权利要求1所述的防御方法,其特征在于,S4具体包括
S4.1:对于被替换的旧的内存空间,进行即时处理;
S4.2:调用JavaScript引擎GC对运行时随机化系统运行过程中的内存进行管理。
6.基于运行时随机化的JavaScript引擎内存信息泄露防御系统,其特征在于,包括:
初始化模块,用于对基于JavaScript引擎的运行时随机化系统进行初始化设置;
随机化触发模块,用于监测JavaScript引擎运行过程中会导致内存信息泄露的风险行为,如果风险行为发生则触发运行时随机化系统执行;
随机化操作模块,用于当运行时随机化系统被触发后,调整空指令在内存中的占位的大小,实现对JavaScript引擎的随机化;
内存管理模块,用于管理运行时随机化系统运行过程中的内存,对运行时随机化系统在运行时产生的内存垃圾进行回收管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010532973.5A CN111797388A (zh) | 2020-06-12 | 2020-06-12 | 基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010532973.5A CN111797388A (zh) | 2020-06-12 | 2020-06-12 | 基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111797388A true CN111797388A (zh) | 2020-10-20 |
Family
ID=72803378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010532973.5A Pending CN111797388A (zh) | 2020-06-12 | 2020-06-12 | 基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111797388A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467854A (zh) * | 2021-06-01 | 2021-10-01 | 北京达佳互联信息技术有限公司 | 应用程序启动方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022956A (zh) * | 2015-08-14 | 2015-11-04 | 中国科学院计算技术研究所 | 一种抵御代码重用攻击的方法 |
CN105224864A (zh) * | 2015-11-04 | 2016-01-06 | 中国科学院计算技术研究所 | 一种抵御代码重用攻击的工作进程随机化方法及系统 |
US20170213039A1 (en) * | 2016-01-22 | 2017-07-27 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for preventing code reuse attacks |
CN107194246A (zh) * | 2017-05-19 | 2017-09-22 | 中国人民解放军信息工程大学 | 一种用于实现动态指令集随机化的cpu |
US20180247069A1 (en) * | 2015-08-18 | 2018-08-30 | The Trustees of Columbia University in the City of New Yoirk | Inhibiting memory disclosure attacks using destructive code reads |
CN108491694A (zh) * | 2018-03-26 | 2018-09-04 | 湖南大学 | 一种动态随机化防御Cache攻击的方法 |
CN109918917A (zh) * | 2019-03-19 | 2019-06-21 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
CN110389720A (zh) * | 2018-04-23 | 2019-10-29 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN110457948A (zh) * | 2019-08-13 | 2019-11-15 | 中科天御(苏州)科技有限公司 | 一种基于存储指令随机化的动态数据防护方法及系统 |
CN111027059A (zh) * | 2019-11-29 | 2020-04-17 | 武汉大学 | 一种基于llvm的抵御内存泄露的系统及方法 |
-
2020
- 2020-06-12 CN CN202010532973.5A patent/CN111797388A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022956A (zh) * | 2015-08-14 | 2015-11-04 | 中国科学院计算技术研究所 | 一种抵御代码重用攻击的方法 |
US20180247069A1 (en) * | 2015-08-18 | 2018-08-30 | The Trustees of Columbia University in the City of New Yoirk | Inhibiting memory disclosure attacks using destructive code reads |
CN105224864A (zh) * | 2015-11-04 | 2016-01-06 | 中国科学院计算技术研究所 | 一种抵御代码重用攻击的工作进程随机化方法及系统 |
US20170213039A1 (en) * | 2016-01-22 | 2017-07-27 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for preventing code reuse attacks |
CN107194246A (zh) * | 2017-05-19 | 2017-09-22 | 中国人民解放军信息工程大学 | 一种用于实现动态指令集随机化的cpu |
CN108491694A (zh) * | 2018-03-26 | 2018-09-04 | 湖南大学 | 一种动态随机化防御Cache攻击的方法 |
CN110389720A (zh) * | 2018-04-23 | 2019-10-29 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
CN109918917A (zh) * | 2019-03-19 | 2019-06-21 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
CN110457948A (zh) * | 2019-08-13 | 2019-11-15 | 中科天御(苏州)科技有限公司 | 一种基于存储指令随机化的动态数据防护方法及系统 |
CN111027059A (zh) * | 2019-11-29 | 2020-04-17 | 武汉大学 | 一种基于llvm的抵御内存泄露的系统及方法 |
Non-Patent Citations (4)
Title |
---|
杜三;舒辉;康绯;: "基于硬件的动态指令集随机化框架的设计与实现", 网络与信息安全学报, no. 11, 15 November 2017 (2017-11-15) * |
王奕森;舒辉;谢耀滨;赵利军;: "基于指令集随机化的代码注入型攻击防御技术", 计算机应用与软件, no. 05, 15 May 2016 (2016-05-15) * |
王烨;李清宝;曾光裕;陈志锋;: "基于代码防泄漏的代码复用攻击防御技术", 计算机研究与发展, no. 10, 15 October 2016 (2016-10-15) * |
雷啸: "内存信息泄露的运行中随机化防御方法的研究与改进", 中国优秀硕士学位论文全文数据库信息科技辑, no. 8, 15 August 2017 (2017-08-15), pages 2 - 5 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467854A (zh) * | 2021-06-01 | 2021-10-01 | 北京达佳互联信息技术有限公司 | 应用程序启动方法、装置、电子设备及存储介质 |
CN113467854B (zh) * | 2021-06-01 | 2023-10-24 | 北京达佳互联信息技术有限公司 | 应用程序启动方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853270B2 (en) | Cryptographic pointer address encoding | |
CN102592082B (zh) | 通过操作码随机化的安全 | |
CN108090346B (zh) | 一种基于数据流监控的代码复用攻击防御方法及系统 | |
CA2774728C (en) | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments | |
CN109344616B (zh) | 一种移动应用程序动态加载行为监控方法及装置 | |
US20180211046A1 (en) | Analysis and control of code flow and data flow | |
TW201807570A (zh) | 使用基於偏移的虛擬位址映射對目標應用功能的基於核心的偵測 | |
US20100106920A1 (en) | Data location obfuscation | |
US10528729B2 (en) | Methods and systems for defending against cyber-attacks | |
US8775826B2 (en) | Counteracting memory tracing on computing systems by code obfuscation | |
CN110717181B (zh) | 基于新型程序依赖图的非控制数据攻击检测方法及装置 | |
CN116150739A (zh) | 一种基于关键地址动态保护的栈溢出自动防御方法 | |
CN111797388A (zh) | 基于运行时随机化的JavaScript引擎内存信息泄露防御方法及系统 | |
Jangda et al. | Adaptive just-in-time code diversification | |
Al-Sharif et al. | The Effects of Platforms and Languages on the Memory Footprint of the Executable Program: A Memory Forensic Approach. | |
Murphy et al. | Software profiling options and their effects on security based diversification | |
EP2075728A1 (en) | A method and an apparatus for code protection | |
CN111367505A (zh) | 一种JavaScript源代码保密方法、装置、设备及存储介质 | |
CN115964758A (zh) | 一种基于TrustZone的内核数据完整性保护方法 | |
CN108446186B (zh) | 从加壳Android应用程序中恢复Dex源文件的方法 | |
EP3040895A1 (en) | System and method for protecting a device against return-oriented programming attacks | |
CN111881485A (zh) | 一种基于arm指针验证的内核敏感数据完整性保护方法 | |
Deng et al. | Securing Sensitive Data in Java Virtual Machines | |
Palmaro et al. | Beware of Unknown Areas to Notify Adversaries: Detecting Dynamic Binary Instrumentation Runtimes with Low-Level Memory Scanning | |
CN116502239B (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 |