CN107533606A - 模块的受保护加载 - Google Patents

模块的受保护加载 Download PDF

Info

Publication number
CN107533606A
CN107533606A CN201580079086.4A CN201580079086A CN107533606A CN 107533606 A CN107533606 A CN 107533606A CN 201580079086 A CN201580079086 A CN 201580079086A CN 107533606 A CN107533606 A CN 107533606A
Authority
CN
China
Prior art keywords
loading
module
response
entropy
request
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
Application number
CN201580079086.4A
Other languages
English (en)
Inventor
S·朱克布劳恩
A·A·哈里里
B·T·戈伦茨
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107533606A publication Critical patent/CN107533606A/zh
Pending legal-status Critical Current

Links

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

响应于加载模块的请求,确定在用于所述模块的随机化加载的地址空间中可用位置的数目是否超过规定的阈值。响应于确定可用位置的数目未超过所述规定的阈值,拒绝加载所述模块的请求。

Description

模块的受保护加载
背景技术
计算机系统可能遭受未授权实体的攻击,该未授权实体诸如恶意软件(例如病毒、蠕虫等)或在计算机系统中未被授权进行特定动作的其它代码。在计算机系统中实施了各种保护机制,以保护计算机系统免受不同类型的攻击。此类保护机制可以包括恶意软件保护应用(例如反病毒应用、间谍软件应用等)、在操作系统或计算机系统内其它代码中包含的保护机制,等等。
附图说明
关于下面的附图来描述本公开的一些实施方案。
图1和2为根据一些实施方案的提供可执行模块的受保护加载的示例性计算机系统的框图。
图3为根据一些实施方案的用于可执行模块的受保护加载的示例性过程的流程图。
图4和5为根据另外的实施方案的用于可执行模块的受保护加载的示例性过程的流程图。
图6为根据一些实施方案的提供可执行模块的受保护加载的示例性系统的框图。
具体实施方式
在计算机系统中可以执行应用。计算机系统的示例可以包括台式计算机、笔记本计算机、平板计算机、智能电话、可穿戴设备、游戏装置,等等。应用的示例可以包括网络浏览器、脚本、文字处理应用、电子表格应用,等等。更一般地,应用可以包括由机器可读指令组成的程序。
执行的应用的实例可以称作过程(有时也称作线程)。操作期间,当过程由硬件处理器执行时,可以使得硬件处理器请求将可执行模块加载到存储介质,该存储介质可以为存储器、缓冲器或任意其它类型的存储介质。硬件处理器可以涉及微处理器、微处理器的内核、微控制器、特定用途的集成电路、可编程门阵列或任意其它可编程硬件。作为示例,可执行模块可以包括软件库,其包含可以被调用以进行规定动作的机器可读指令。软件库可以包括接口,过程可以通过该接口调用该库。在其它示例中,可执行模块可以包括在计算机系统中可以被调用的其他类型的代码。更一般地,可执行模块可以涉及机器可读指令的集合。将可执行模块加载到存储介质包括将可执行模块的机器可读指令写入存储介质。
可以将可执行模块加载到其中的存储介质可以具有地址空间。该地址空间可以包括涉及存储介质的存储区域的地址。可以占用存储介质的一些存储区域,而存储介质的其它区域可用于加载内容,包括可执行模块。可用于加载内容的存储区域可以称作“空闲存储区域”。
地址空间中的地址可以涉及存储介质中相应的存储区域的起始。在一些示例中,地址可以为虚拟地址。虚拟地址为虚拟地址空间的部分,计算机系统的操作系统(OS)使其可用于在计算机系统中执行的过程。在操作期间,将虚拟地址转换为物理地址,其中物理地址用于实际存储或检索相应存储区域中的信息。
为了防范诸如恶意软件或其它类型的未授权实体的攻击者的攻击,计算机系统中的OS或其它代码可以实现地址空间布局随机化(ASLR)缓解。ASLR缓解为通过随机化存储位置(在该存储位置处可执行模块可以加载到存储介质)来抵御攻击的存储保护技术。随机化存储位置可以涉及从可执行模块可以加载到其中的多个存储区域中随机选择。ASLR的目的是在被过程用于加载可执行模块和其它信息的地址的选择方面引入随机性。
为了击败ASLR缓解,攻击者可以通过消耗存储介质的存储区域,接着释放其地址和大小对于过程已知的存储区域,来施加人为的存储压力。如果给定存储区域的地址和大小之前传达给了过程(诸如通过OS),该地址和大小对于该过程是已知的。
攻击者可以通过将内容写入存储区域来消耗存储区域,这样存储区域变为已用,而不再可用于存储其它信息。释放存储区域可以涉及从存储区域移除内容,这样释放的存储区域变得再次可用于写入其它内容。
接着,在释放的存储区域处可以进行可执行模块的加载,这样使得可执行模块可用于该过程。如果该过程可以调用可执行模块来进行任务,则使得可执行模块对于该过程是可用的。可执行模块可能在释放的存储区域处加载,由于没有其它空闲存储区域或存在相对少量的空闲存储区域(因为剩余的空闲存储区域已被攻击者消耗)。此时,ASLR缓解被击败,因为可能没有足够数量的存储空间,可以根据ASLR缓解从其进行随机选择。
根据本公开的一些实施方案,提供保护技术或机制以提供可执行模块到地址空间的熵依赖的加载。根据一些实施方案的保护技术或机制能够防范试图击败ASLR缓解的攻击。在可执行模块的熵依赖的加载的情况下,响应于试图将启用ASLR的可执行模块加载到过程,首先进行熵检查。启用ASLR的可执行模块涉及其加载经受ASLR缓解的可执行模块。
如果熵检查确定未满足熵条件,那么可执行模块的加载失败。仅响应于熵检查确定已满足熵条件,才允许将可执行模块加载到地址空间。
图1为包括存储介质102和一个或多个处理器104的示例性计算机系统100的框图。处理器可以包括微处理器、微控制器、物理处理器模块或子系统、可编程集成电路、可编程门阵列或另一个物理控制或计算设备。计算机系统可以涉及一个计算机或多个计算机的布置。存储介质102可以包括存储器、缓冲器或任意其他类型的存储介质。存储介质具有地址空间106,该地址空间106包括涉及存储介质102中的存储区域的地址。处理器104可以执行机器可读指令,包括接收加载可编程模块的请求的指令108和进行基于熵的加载的指令110。
当由硬件处理器执行时,指令110所进行的基于熵的加载可以包括以下任务。该基于熵的加载进行熵检查,以确定可用于加载可执行模块的地址空间106的地址的数目是否满足熵条件。响应于可用于加载可执行模块的地址的数目超过规定的阈值,满足熵条件;另一方面,响应于可用于加载可执行模块的地址的数目未超过规定的阈值,不满足熵条件。
规定的阈值可以静态设置或动态设置。规定的阈值可以由用户(例如管理员)输入,可以被配置到OS或计算机系统100内的其它代码中(例如,诸如通过在配置文件中设置规定的阈值的值),或可以使用不同的技术键入。对于能够请求将可执行模块加载到地址空间的不同请求者,规定的阈值可能不同。例如,对于第一请求者,可以将规定的阈值设置为第一值。对于第二请求者,可以将规定的阈值设置为不同的第二值。不同的规定的阈值可以由用户(例如管理员)键入,可以在配置文件中设置,或可以使用不同的技术键入。
取决于可用地址的数目是否满足熵条件,基于熵的加载进行不同的动作。可用地址的数目可以由OS追踪。OS为处理分配地址空间的区域的请求的实体。随着地址空间的区域被消耗,OS可以将地址空间的那些区域指示为占用且不再可用。
响应于确定可用地址的数目满足熵条件,基于熵的加载在可用地址的选择的地址处加载可执行模块。在一些示例中,选择的地址为随机选择的地址,诸如使用ASLR缓解技术随机选择。
响应于确定可用地址的数目未满足熵条件,拒绝加载可执行模块的请求。通过返回错误或无法进行请求的某个其它指示,可以进行拒绝请求。
图2为根据另外的实施方案的示例性计算机系统200的框图。计算机系统200包括可以在计算机系统200中执行的应用202。例如,应用202可以为网络浏览器。在其它示例中,应用202可以为不同的程序。更一般地,应用202为能够请求将可执行模块加载到存储介质102中的请求者的示例。
当由硬件处理器执行时,应用202(或更具体地,作为应用202的被执行的实例的过程)可以使得硬件处理器向加载器引擎206发送加载可执行模块的请求(204)。可以将加载器引擎206实现为硬件(例如一个或多个硬件处理器)和编程(实现为机器可读指令)的组合,该组合使得硬件进行编程的任务。加载器引擎206可以包括OS的一部分,诸如OS的内核。可替换地,加载器引擎206可以包括垫片代码(或更一般地,应用代码),其包括与OS分离的机器可读指令。垫片代码可以涉及当由硬件处理器执行时,可以使得硬件处理器拦截针对不同实体的请求或消息的代码。
加载器引擎206通过进行上面讨论的基于熵的加载任务,对加载可执行模块的请求(204)进行响应。
如果加载器引擎206确定与存储介质102相关联的地址空间106的可用地址的数目不满足熵条件,那么加载器引擎206拒绝加载的请求(210)。通过向应用202发送错误或其它失败指示,可以指示拒绝加载的请求。
另一方面,如果加载器引擎206确定可用地址的数目满足熵条件,则加载器引擎206将可执行模块(212)加载到存储介质102中的选择的存储区域。可以随机选择将可执行模块加载到其中的存储区域,诸如根据ASLR缓解技术。将可执行模块加载到选择的存储区域可以包括将可执行模块的机器可读指令写到选择的存储区域。
在一些实施方案中,可以响应于来自第一请求者(例如应用202)的请求,来进行可执行模块的基于熵的加载。然而,可以为第二请求者(例如图2的应用203)禁用可执行模块的基于熵的加载。如果为第一请求者启用基于熵的加载,则在允许加载可执行模块之前,来自第一请求者的在存储介质102中加载可执行模块的请求将会经受熵检查。另一方面,如果为第二请求者禁用基于熵的加载,那么将会由加载器引擎206进行来自第二请求者的加载可执行模块的请求,而无需首先进行熵检查。
可以通过将与第一请求者相对应的标记220设置为第一值,来为第一请求者(例如应用202)启用基于熵的加载。通过将与第二请求者相对应的标记222设置为不同的第二值,来为第二请求者(例如应用203)禁用基于熵的加载。标记220和222可以存储在存储介质102中。响应于来自用户的请求,可以将标记220和222设置为相应的值,或者可替换地,可以由另一实体对标记进行设置。
图3为可以由诸如图1的计算机系统100或图2的计算机系统200的系统进行的示例性程序的流程图。该系统接收(在302处)加载模块(例如如上讨论的可执行模块)的请求。
响应于该请求,该系统确定(在304处)用于模块的随机化加载(诸如ASLR随机化加载)的地址空间中可用位置的数目是否超过规定的阈值。地址空间中可用位置的数目可以与如上讨论的可用地址的数目相对应。响应于确定可用位置的数目未超过规定的阈值,该系统拒绝(在306处)加载模块的请求。
图4为涉及应用202和作为OS 220的一部分的加载器400的示例性程序的消息流程图。在图4的示例中,加载器400称为“OS加载器400”。OS加载器400可以为图2的加载器引擎206的一部分。更一般地,当由硬件处理器执行时,OS加载器400可以使得硬件处理器进行某些任务。当由硬件处理器执行时,应用202(更具体地,作为应用202的被执行的实例的过程)使得硬件处理器向OS加载器400提交加载库请求(402)。加载库请求是要将软件库加载到存储介质102中。响应于加载库请求(402),当由硬件处理器执行时,OS加载器400使得硬件处理器确定可用于加载软件库的地址的数目是否满足熵条件。如果满足,当由硬件处理器执行时,OS加载器400使得硬件处理器向应用202发送成功指示(404),且当由硬件处理器执行时,使得硬件处理器将请求的软件库加载(在406)到存储介质102中随机选择的可用地址。
在后来的时间,当由硬件处理器执行时,应用202使得硬件处理器提交加载软件库(其可以与作为加载库请求402的主体的软件库相同或不同)的另一加载库请求(408)。响应于该加载库请求(408),当由硬件处理器执行时,OS加载器400使得硬件处理器确定可用于加载软件库的地址的数目是否满足熵条件。响应于确定可用地址的数目未满足熵条件,当由硬件处理器执行时,OS加载器400使得硬件处理器返回失败指示给应用202,并拒绝加载请求的软件库。
在一些实施方案中,提供锁定机制以防止在触发熵检查的请求与响应于该熵检查所进行的动作之间的时间间隔(例如图4的时间间隔412或414)期间的任何变化。响应于熵检查所进行的动作可以为可执行模块的加载,或拒绝加载可执行模块的请求。提供该锁定机制以防范检查时间-使用时间(TOC-TOU)漏洞。因TOC-TOU漏洞,攻击者可以在熵检查与可执行模块的加载之间的时间间隔内改变可用的地址空间。例如,攻击者可以等到OS加载器400已确定可用地址的数目满足熵条件,响应于此,攻击者通过消耗大部分可用地址来改变可用地址的数目。结果,在熵检查确定已经满足熵条件后,攻击者可以改变可用地址的数目,这样OS加载器400将被迫仅在一个可用地址处(或在少量的可用地址之一处)加载可执行模块。
锁定机制可以由OS(诸如图4中的OS 220)实现。响应于加载库请求402或408,当由硬件处理器执行时,OS 220使得硬件处理器锁定存储介质102的地址空间内可用位置的数目的变化。锁定地址空间中可用位置的数目的变化可以包括阻塞实体以防止对地址空间的分配做出改变。
锁定可用位置的数目的变化有效地冻结了在进行熵检查之前可用位置的数目。在完成了熵检查,且OS加载器400已经将可执行模块加载(406)到存储介质102的存储区域或加载器已经拒绝了加载可执行模块的请求之后,当由硬件处理器执行时,OS使得硬件处理器触发地址空间中可用位置的数目的变化的解锁,此时其它请求者可以将内容加载到存储介质102的可用位置。
图5为使用垫片代码加载器500的示例性程序的消息流程图。垫片代码加载器500可以为图2中加载器引擎206的一部分。图5也示出了OS 502。
当由硬件处理器执行时,应用202使得硬件处理器提交加载库请求(504)给垫片代码加载器500。当由硬件处理器执行时,垫片代码加载器500使得硬件处理器确定可用位置的数目是否满足熵条件。如果满足,当由硬件处理器执行时,垫片代码加载器500使得硬件处理器将加载库请求(506)转发给OS 502,以使得OS 502中的加载器将请求的软件库加载(508)到存储介质102。请求的软件库一经成功加载,当由硬件处理器执行时,OS 502就使得硬件处理器返回成功指示(510)给垫片代码加载器500,当由硬件处理器执行时,垫片代码加载器500使得硬件处理器将成功指示(512)转发给应用202。
在不同的方案中,当由硬件处理器执行时,应用202使得硬件处理器提交另一加载库请求(514)给垫片代码加载器500。在此情况下,当由硬件处理器执行时,垫片代码加载器500使得硬件处理器确定可用位置的数目不满足熵条件。结果,当由硬件处理器执行时,垫片代码加载器500使得硬件处理器向应用202发送失败指示(516)。注意,垫片代码加载器500未将加载库请求(514)转发给OS 402,这样请求的软件库未被加载。
在根据图5的实施方案中,类似于上面讨论的锁定机制可以由垫片代码加载器500而不是OS 502实现。在此类实施方案中,当由硬件处理器执行时,垫片代码加载器500使得硬件处理器通过阻塞来自其它请求者对地址空间的访问来进行锁定,而不是使用OS 502来锁定地址空间中可用位置的数目的变化。
图6为根据一些实施方案的示例性系统600(其可以包括一个计算机或多个计算机的布置)的框图。系统600包括联结到非暂时性机器可读介质或计算机可读存储介质(或多个存储介质)604的一个或多个硬件处理器602。该存储介质(或多个存储介质)604可以存储机器可读指令,当由硬件处理器602执行该机器可读指令时,使得硬件处理器602进行指定的任务。
机器可读指令可以包括接收加载可执行模块的请求的指令606;确定地址空间中可用位置的数目是否超过规定的阈值的指令608;响应于确定地址空间中可用位置的数目未超过规定的阈值,拒绝该请求的指令610;以及响应于确定地址空间中可用位置的数目超过规定的阈值,从可用位置中随机选择位置并加载可执行模块的指令612。
该存储介质(或多个存储介质)604可以包括一个或多个不同形式的存储器,其包括半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存;磁盘,诸如固定盘、软盘和可移动盘;包括磁带的其它磁介质;光介质,诸如光盘(CD)或数字视频盘(DVD);或其它类型的存储设备。注意,上面讨论的指令可以提供在一个计算机可读介质或机器可读存储介质上,或可替换地,可以提供在可能具有多个节点的大型系统中分布的多个计算机可读介质或机器可读存储介质上。此类计算机可读介质或机器可读存储介质或多个介质被视为物品(或制造品)的一部分。物品或制造品可以涉及任何制造的一个组件或多个组件。该存储介质或多个存储介质可以位于运行机器可读指令的机器中,或者位于远程站点,可以通过网络从该远程站点下载机器可读指令用于执行。
在前面的描述中,阐述了若干细节以提供对本文公开的主题的理解。然而,没有这些细节中的一些也可以实现实施方案。其它实施方案可以包括来自上面讨论的细节的更改和变化。旨在所附的权利要求书涵盖此类更改和变化。

Claims (15)

1.一种提供模块的受保护加载的方法,包括:
由包括处理器的系统接收加载所述模块的请求;以及
响应于所述请求:
由所述系统确定在用于所述模块的随机化加载的地址空间中可用位置的数目是否超过规定的阈值;并且
响应于确定可用位置的数目未超过所述规定的阈值,由所述系统拒绝加载所述模块的请求。
2.根据权利要求1所述的方法,其中确定所述可用位置的数目包括追踪所述可用位置的数目。
3.根据权利要求1所述的方法,进一步包括:
响应于确定可用位置的数目超过所述规定的阈值,由所述系统从所述可用位置中随机选择位置以响应于所述请求加载所述模块。
4.根据权利要求3所述的方法,其中将所述模块加载到所选择的位置包括将所述模块的机器可读指令写入所述选择的位置。
5.根据权利要求3所述的方法,进一步包括:
响应于所述请求,由所述系统锁定所述地址空间中可用位置的数目的变化;以及
响应于所述拒绝或将所述模块加载到所述选择的位置,由所述系统触发对可用位置的数目的变化的解锁。
6.根据权利要求5所述的方法,其中所述锁定防止请求者对可用位置的数目做出改变。
7.根据权利要求1所述的方法,其中对于请求将模块加载到所述地址空间的不同请求者,所述规定的阈值不同。
8.根据权利要求1所述的方法,其中从第一请求者接收所述请求,所述方法进一步包括:
由所述系统确定是否为所述第一请求者启用基于熵的模块加载,其中响应于确定为所述第一请求者启用基于熵的模块加载,来进行对可用位置的数目是否超过所述规定的阈值的确定以及拒绝;
由所述系统从第二请求者接收加载第二模块的第二请求;以及
响应于所述第二请求:
由所述系统确定是否为所述第二请求者启用基于熵的模块加载;并且
响应于确定为所述第二请求者禁用基于熵的模块加载,由所述系统决定对于所述第二模块的加载,不对可用位置的数目是否超过所述规定的阈值进行确定。
9.根据权利要求8所述的方法,进一步包括:
由所述系统给第一值设置第一标记,来为所述第一请求者启用基于熵的模块加载;以及
由所述系统给第二值设置第二标记,来为所述第二请求者禁用基于熵的模块加载。
10.一种系统,包括:
与地址空间相关联的存储介质,所述地址空间包括涉及所述存储介质中的相应位置的地址;以及
至少一个处理器,以:
接收加载可执行模块的请求;
响应于所述请求,进行所述可执行模块到所述地址空间的基于熵的加载,所述基于熵的加载包括:
确定所述地址空间中可用于加载所述可执行模块的地址的数目是否满足熵条件,
响应于确定可用于加载所述可执行模块的地址的数目满足所述熵条件,在可用于加载所述可执行模块的地址的选择的地址处,加载所述可执行模块,
响应于确定可用于加载所述可执行模块的地址的数目不满足所述熵条件,拒绝所述请求。
11.根据权利要求10所述的系统,其中至少一个处理器是要:
响应于所述请求,引起对所述地址空间的变化的阻塞;
响应于所述可执行模块的加载或拒绝,引起对所述地址空间的变化的解除阻塞。
12.根据权利要求11所述的系统,其中所述至少一个处理器是要执行操作系统以进行所述基于熵的加载和所述阻塞。
13.根据权利要求11所述的系统,其中所述至少一个处理器是要执行应用代码以进行所述基于熵的加载和所述阻塞。
14.根据权利要求10所述的系统,其中响应于可用于加载所述可执行模块的地址的数目超过规定的阈值,满足所述熵条件,而响应于可用于加载所述可执行模块的地址的数目未超过所述规定的阈值,不满足所述熵条件。
15.一种物品,包括至少一个非暂时性机器可读存储介质,所述非暂时性机器可读存储介质存储提供模块的受保护加载的指令,所述指令一经执行,就使得系统:
接收加载所述模块的请求;并且
响应于所述请求:
确定在用于所述模块的随机化加载的地址空间中可用位置的数目是否超过规定的阈值;
响应于确定可用位置的数目未超过所述规定的阈值,拒绝加载所述模块的请求;并且
响应于确定可用位置的数目超过所述规定的阈值,从所述地址空间中的所述可用位置中随机选择位置,并将所述模块加载到所选择的位置。
CN201580079086.4A 2015-06-18 2015-06-18 模块的受保护加载 Pending CN107533606A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/036508 WO2016204770A1 (en) 2015-06-18 2015-06-18 Protected loading of a module

Publications (1)

Publication Number Publication Date
CN107533606A true CN107533606A (zh) 2018-01-02

Family

ID=57545711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580079086.4A Pending CN107533606A (zh) 2015-06-18 2015-06-18 模块的受保护加载

Country Status (4)

Country Link
US (1) US20180114022A1 (zh)
EP (1) EP3262556A4 (zh)
CN (1) CN107533606A (zh)
WO (1) WO2016204770A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110191848A1 (en) * 2010-02-03 2011-08-04 Microsoft Corporation Preventing malicious just-in-time spraying attacks
CN102298554A (zh) * 2010-06-24 2011-12-28 英特尔公司 用于降低存储设备功耗的方法和系统
US8171256B1 (en) * 2008-12-22 2012-05-01 Symantec Corporation Systems and methods for preventing subversion of address space layout randomization (ASLR)
CN103975337A (zh) * 2011-12-09 2014-08-06 迈克菲公司 预测性堆溢出保护

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951379B1 (ko) * 2008-04-29 2010-04-08 주식회사 안철수연구소 메모리 조작 방지 장치
US9058492B1 (en) * 2011-02-14 2015-06-16 Symantec Corporation Techniques for reducing executable code vulnerability
WO2013130548A2 (en) * 2012-02-27 2013-09-06 University Of Virginia Patent Foundation Method of instruction location randomization (ilr) and related system
KR101311367B1 (ko) * 2013-04-09 2013-09-25 주식회사 안랩 메모리 보호기능 우회 공격 진단 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171256B1 (en) * 2008-12-22 2012-05-01 Symantec Corporation Systems and methods for preventing subversion of address space layout randomization (ASLR)
US20110191848A1 (en) * 2010-02-03 2011-08-04 Microsoft Corporation Preventing malicious just-in-time spraying attacks
CN102298554A (zh) * 2010-06-24 2011-12-28 英特尔公司 用于降低存储设备功耗的方法和系统
CN103975337A (zh) * 2011-12-09 2014-08-06 迈克菲公司 预测性堆溢出保护

Also Published As

Publication number Publication date
EP3262556A1 (en) 2018-01-03
WO2016204770A1 (en) 2016-12-22
US20180114022A1 (en) 2018-04-26
EP3262556A4 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
US10810309B2 (en) Method and system for detecting kernel corruption exploits
US11777705B2 (en) Techniques for preventing memory timing attacks
Gruss et al. Prefetch side-channel attacks: Bypassing SMAP and kernel ASLR
Silvestro et al. Freeguard: A faster secure heap allocator
EP3591565A1 (en) Computing device with increased resistance against rowhammer attacks
Olson et al. Border control: Sandboxing accelerators
EP3702923B1 (en) Memory protection
US9727380B2 (en) Global register protection in a multi-threaded processor
US20070050848A1 (en) Preventing malware from accessing operating system services
Yan et al. Secdir: a secure directory to defeat directory side-channel attacks
JP2007529803A (ja) 周辺機器に対するアクセスを制御する方法およびデバイス
Zhang et al. Android ion hazard: The curse of customizable memory management system
CN109446799B (zh) 内存数据保护方法、安全组件和计算机设备及存储介质
US11500785B2 (en) Systems and methods for memory safety with random embedded secret tokens
WO2020007813A1 (en) Computing device with increased resistance against rowhammer attacks
Lou et al. Understanding Rowhammer attacks through the lens of a unified reference framework
Saileshwar et al. Lookout for zombies: Mitigating flush+ reload attack on shared caches by monitoring invalidated lines
CN107533606A (zh) 模块的受保护加载
WO2019070195A1 (en) COMPUTER-IMPLEMENTED METHOD FOR PREVENTING MARKING ATTACK IN A COMPUTER DEVICE
US8321668B2 (en) Control of data access by dynamically verifying legal references
US20240211412A1 (en) Selective Memory Duplication Control
WO2015052829A1 (ja) 情報処理装置、方法およびプログラム
WO2015052831A1 (ja) 情報処理装置、方法およびプログラム
Gutierrez et al. Cachelight: Defeating the cachekit attack
Zhou et al. PointerLock: Protecting Function Pointers with Access Control on Page

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180102

WD01 Invention patent application deemed withdrawn after publication