/*********************************************************************
 * Author  : Samson
 * Date    : 12/07/2014
 * Test platform:
 *              3.13.0-24-generic
 *              GNU bash, 4.3.11(1)-release
 * *******************************************************************/

ASLR:

Address space layout  randomization:地址空间布局随机化,是参与保护缓冲区溢出问题的一个计算机安全技术。是为了防止攻击者在内存中能够可靠地对跳转到特定利用函数。ASLR包括随机排列程序的关键数据区域的位置,包括可执行的部分、堆、栈及共享库的位置。

历史:
在1997年,Memco软件公司实现了一个有限的堆栈随机化作为SeOS访问控制产品的一部分。
Linux Pax项目第一次创建了ASLR这个术语。ASLR的第一次设计实现是在2001年7月。从2002年10月开始提供内核栈随机化的实现。ASLR相对于其他实现方式提供了更多的熵。

作用:
ASLR通过制造更多让攻击者预测目标地址的困难以阻碍一些类型的安装攻击。例如:攻击者试图执行返回到libc的攻击必须要找到要执行的代码,而其他攻击者试图执行shellcode注入栈上则必须首先到栈。在这两种情况下,系统将模糊攻击者相关的存储器地址。这些值被猜中,并且错误的猜测由于应用程序崩溃通常是不可恢复的。

有效性
地址空间布局随机化是基于攻击者猜测随机化空间位置的可能性降低。安全是通过增加搜索空间的方式来实现的。因此,ASLR提供更多的熵存在于随机偏移中时是更有效的。熵增加或许提高了其随机出现虚拟内存区域的空间量或减少了其随机发生的时期。该期间通常被实现尽可能小,因此,大多数系统必须增加VMA空间随机化。

要打败随机化,攻击者必须成功猜出所有他们想要攻击的区域的位置。为数据区,如堆和栈,定制代码或者有用的数据可以被加载,一个以上的状态可以通过使用NOP滑动代码或数据的重复拷贝被攻击。如果一个区域被分配到少数值中的一个将被允许攻击成功。与此相反,代码区域例如:基础库,主要的可执行的需要准确地发现。通常这些区域被混合,例如堆栈桢被注入到栈和动态库中。

英文原文地址:

http://en.wikipedia.org/wiki/Address_space_layout_randomization#Linux

ps:

GNU Linux中关闭ASLR的方法:
disable ASLR:
echo 0 > /proc/sys/kernel/randomize_va_space 
 cat /proc/sys/kernel/randomize_va_space

ASLR(Address space layout randomization)地址空间布局随机化的更多相关文章

  1. Address space layout randomization

    Address space layout randomization (ASLR) is a computer security technique involved in preventing ex ...

  2. Method of address space layout randomization for windows operating systems

    A system and method for address space layout randomization ("ASLR") for a Windows operatin ...

  3. Method for address space layout randomization in execute-in-place code

    The present application relates generally to laying out address space for execute-in-place code and, ...

  4. System and method for critical address space protection in a hypervisor environment

    A system and method in one embodiment includes modules for detecting an access attempt to a critical ...

  5. ARM64 Linux kernel virtual address space

    墙外通道:http://thinkiii.blogspot.com/2014/02/arm64-linux-kernel-virtual-address-space.html Now let's ta ...

  6. ARM32 Linux kernel virtual address space

    http://thinkiii.blogspot.jp/2014/02/arm32-linux-kernel-virtual-address-space.html   The 32-bit ARM C ...

  7. Memory Layout (Virtual address space of a C process)

    Memory Layout (Virtual address space of a C process) 分类: C语言基础2012-12-06 23:16 2174人阅读 评论(0) 收藏 举报 f ...

  8. 为什么地址空间分配粒度为64K?Why is address space allocation granularity 64K?

    您可能想知道为什么VirtualAlloc在64K边界分配内存,即使页面粒度为4K. 你有Alpha AXP处理器,感谢你. 在Alpha AXP上,没有“加载32位整数”指令.要加载32位整数,实际 ...

  9. goroutine 分析 协程的调度和执行顺序 并发写 run in the same address space 内存地址 闭包 存在两种并发 确定性 非确定性的 Go 的协程和通道理所当然的支持确定性的并发方式(

    package main import ( "fmt" "runtime" "sync" ) const N = 26 func main( ...

随机推荐

  1. Redis3.0集群方案分析

    在Redis3.0集群出来之前,大家都对作者antirez寄予厚望,因为Redis从来没有让我们失望过.现在Redis3.0集群出来了,网上出了很多评论文章,都说他的功能多么强大,包括下面这张图是彻底 ...

  2. JSP计数器

    1.JSP弥补了servlet页面显示的不足:jsp运行时候需要转化为servlet,本质上就是servlet:tomcat下的work目录下有jsp的servlet和对应的class文件;下次再调用 ...

  3. NETCore项目报错 An error occurred while starting the application

    在发布到IIS的webApi项目中,运行时报出以上错误, 解决方法: 1.打开发布目录文件夹,找到web.config文件 2.打开web.config找到stdoutLogEnabled=" ...

  4. hp 1810-24g switch reset

    Specific steps to execute the factory default reset on the switch are: 1. Using a small, thin tool w ...

  5. TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)

    C66x DSP运行中断的简要流程: 1.使能了全局中断和子中断.假设硬件检測到中断发生,那么CPU就要跳转. 2.软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP寄 ...

  6. [Javascript] JavaScript赋值时的传值与传址

    JavaScript中有两种不同数据类型的值,分别是基本数据类型与引用数据类型 基本数据类型包含5类,分别是:Number.String.Boolean.Null.Undefined 引用数据类型包含 ...

  7. 深入学习理解java-ThreadLocal

    导读 首先,ThreadLocal 不是用来解决共享对象的多线程訪问问题的,普通情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其它线程是不须要訪问的,也訪问不到 ...

  8. iOS中的枚举:enum, NS_ENUM, NS_OPTIONS的使用区别

    1.enum可以声明一般类型和位掩码(bitmasked)类型 例如: enum Test{// 一般枚举 TestA, TestB, TestC, }; enum{// 匿名枚举 TestA, Te ...

  9. C++ 訪问控制权限图解

    基类訪问权限 类继承方式 子类訪问权限           public   public   protected public protected   private   No Access   p ...

  10. bzoj 1822 冷冻波

    题目大意: 在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀死一个小精灵 我们认为,巫妖和小精灵都可以看成是平面上的点. 当巫妖和小精灵之间的直线距离不超过R,且巫妖和小精灵的 ...