<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
记得以前在Linux下做缓冲区溢出攻击的实验,用了两台机器,一台装RedHat 8.0,另一台装RedHat 9.0,发现一个奇怪的现象。RedHat 8.0的栈基地址是固定的,而RedHat 9.0的栈基地址是浮动的。比如对于下面这个程序,RedHat 8.0每次运行的输出是相同的,而RedHat 9.0则不同。
int main()
{
char buf[256];
printf("0X%X/n", buf);
gets(buf);
}
明显感觉到,由于栈基地址会变化,那种最普通的缓冲区溢出攻击(传一段shellcode给gets()函数)在RedHat 9.0下较难成功。(在RedHat 8.0下倒是一试一个准。)当时也没太在意,觉得这可能是RedHat 9.0增强系统安全性的一个做法。
今天偶然发现,这种做法叫做 address space layout randomization,不仅随机化栈地址,还可以随机化动态链接库(比如libc)的基地址(应对return-to-libc攻击)和mmap的地址。
我没有进一步深究,据说OpenBSD、Linux、Vista都有实现这一技术,以下是一些参考地址。
http://pax.grsecurity.net/docs/aslr.txt
http://blogs.msdn.com/michael_howard/archive/2006/05/26/608315.aspx
http://www.csc.ncsu.edu/faculty/junxu/software/aslp/
http://www.stanford.edu/~blp/papers/asrandom.pdf
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1051355
分享到:
相关推荐
Address Space Layout Randomization 地址空间布局随机,最新安全防范技术
Kernel Address Space Layout Randomization (KASLR) 还原软件
地址空间随机分布
多重随机化设计_Multiple Randomization Designs.pdf
Minix操作系统中实现Address space layout randomization的补丁。
GPU动态内存分配器中地址随机化技术的设计与实现,孙建华,彭灿,GPU由于其丰富的线程级并行,被广泛使用在如云计算的多用户环境中。在这样的环境中,多个进程并行执行,但是,有研究表明,一个进
微软的EMET工具, 据我所知目前是唯一一个能关闭ASLR的工具 ASLR(Address space layout randomization) 进程模块随机地址空间
这本教科书采用了不同的方法,其中使用随机化和模拟方法提供了推理基础。 一旦形成了坚实的基础,便向传统方法过渡。
对比域随机化
这篇文章提出了一个RuntimeASLR的机制,让fork()出来的子进程内存空间地址重新随机化。 Background 在Apache,Nignx和OpenSSH这类的服务程序里,都会用fork()系统调用来创建子进程。出于效率,还有内存资源共享等...
docker为了保证主机安全,docker开了很多安全设置,其中包括ASLR(Address space layout randomization),即docker里的内存地址和主机内存地址是不一样的。 ASLR会导致GDB这种依赖地址的程序无法正常运作。 解决...
Hacking Exposed Windows : Microsoft Windows Security Secrets and Solutions ... Group Policy, Vista Service Refactoring/Hardening, SafeSEH, GS, DEP, Patchguard, and Address Space Layout Randomization.
It's useful for Model Counting, Quantification, and Randomization
A SIGNAL PROCESSING AND RANDOMIZATION PERSPECTIVE OF
PyTorch implementation of neural style randomization for data augmentation # PyTorch Tensor <-> PIL Image transforms: toTensor = ToTensor() toPIL = ToPILImage() # load image: im = Image.open('mug....
该存储库提供了用于通过子空间随机化和图融合(SC-SRGF)算法进行光谱聚类的MATLAB代码。 如果您发现它对您的研究有帮助,请引用以下论文。 Xiaosha Cai, Dong Huang, Chang-Dong Wang, Chee-Keong Kwoh. Spectral ...
ISO 24153:2009 Random sampling and randomization procedures - 完
Jump Over ASLR: Attacking Branch Predictors to ...University of California, Riversidenaelag@ucr.eduAbstract—Address Space Layout Randomization (ASLR) is a widely- used technique that protects systems a
Exploring Control Flow Guard in ... This technology is called Control Flow Guard (CFG).Like other exploit mitigation mechanisms, such as address space layout randomization (ASLR), a
∗ Equal contribution joint first authorsAbstract—Address space layout randomization (ASLR) is an important first line of defense against memory corruption attacks and a building block for many ...