PIE

APP漏洞扫描器之未使用地址空间随机化

拟墨画扇 提交于 2021-02-03 10:04:02
#APP漏洞扫描用地址空间随机化 ## 前言 我们在前文 《APP漏洞扫描器之本地拒绝服务检测详解》 了解到阿里聚安全漏洞扫描器有一项静态分析加动态模糊测试的方法来检测的功能,并详细的介绍了它在针对本地拒绝服务的检测方法。 同时, 阿里聚漏洞扫描器有一个检测项叫未使用地址空间随机化技术, 该检测项会分析APP中包含的ELF文件判断它们是否使用了该项技术 。如果APP中存在该项漏洞则会降低缓冲区溢出攻击的门槛。 本文主要介绍该项技术的原理和扫描器的检测方法。由于PIE的实现细节较复杂,本文只是介绍了大致的原理。想深入了解细节的同学可以参看潘爱民老师的书籍《程序员的自我修养》。 ## PIE是什么 PIE(position-independent executable)是一种生成地址无关可执行程序的技术 。如果编译器在生成可执行程序的过程中使用了PIE,那么当可执行程序被加载到内存中时其加载地址存在不可预知性。 PIE还有个孪生兄弟PIC(position-independent code)。其作用和PIE相同,都是使被编译后的程序能够随机的加载到某个内存地址。区别在于PIC是在生成动态链接库时使用(Linux中的so),PIE是在生成可执行文件时使用。 ## PIE的作用 #### 安全性 PIE可以提高缓冲区溢出攻击的门槛。它属于ASLR(Address space layout