/*********************************************************************
 * 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. C# DateTime.Now和DateTime.UtcNow的区别

    DateTime.UtcNow.ToString()输出的是0时区的事件(通俗点就是格林威治时间的当前时间),DateTime.Now.ToString()输出的是当前时区的时间,我们中国使用的是东八 ...

  2. MySQL hash分区(四)

    具体描写叙述总结请看MySQL分区(一) 样例:该样例为本人个人学习总结分享->具体说明-->有问题欢迎前来交流 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  3. ubuntu rdesktop 全屏切换快捷键

    rdesktop 全屏之后进行切换 : ctrl + alt +enter

  4. 【OI】向量&矩阵乘法

    何为向量? 在初中课本中,我们知道: 向量是有大小和方向的量. 这样解释太笼统了,现在我们只讨论平面上的向量. 那么,我们约定:在平面上的向量,由一个二元组组成:如α(c1,c2). 在此平面上建立一 ...

  5. 【数学】mex是什么

    最近在看博弈论,SG函数,所以什么是mex呢 然后百度了一下得到: mex(S) 的值为集合 S 中没有出现过的最小自然数.例如,mex({1,2}) = 0.mex({0,1,2,3}) = 4

  6. Linux下的IPC-UNIX Domain Socket【转】

    本文转载自:http://blog.csdn.net/guxch/article/details/7041052 一. 概述 UNIX Domain Socket是在socket架构上发展起来的用于同 ...

  7. 面向画布(Canvas)的JavaScript库

    面向画布(Canvas)的JavaScript库 总结 每个库各有特色,根据需求选择   学习要点 面向画布(Canvas)的JavaScript库 EaselJS 是一个封装了 HTML5 画布(C ...

  8. springAOP注解方式定义切入点报错error at ::0 can't find referenced pointcut

    [说明] 1.使用spring版本:4.0.4 2.springAOP相关依赖包: 1)aopalliance-1.0.jar 2)aspectjweaver-1.8.9.jar 3)aspectjr ...

  9. java网络编程UDP

    图片来自网络 [发送端] import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSoc ...

  10. PCB javascript实现个税5000计算

    个税调整为5000计划实施是今年10月份.而明年一月份全面实施, 马上快到5000个税实施的日子了,当到了个税实施日子时,必定网络会产生热点,这个时候需要就是蹭热点的时候到来时. 全国网友肯定都会关心 ...