应用层安全防护
1、Aslr(地址空间布局随机化)随机防止数据区域的地址空间来防止攻击者跳转到内存的特定位置。在windows上ASLR主要包括堆栈随机化、PEB与TEB随机化、映像随机化。Linux Alsr主要包括栈地址随机化,LIBS/MMAP随机化,EXEC随机化,BRK随机化、VDSO随机化。在没有ASLR的情况下让程序跳转到一个已存在的系统函数的漏洞利用方式被称为ret2libc
LIBS/MMAP随机化:程序每次执行动态库都被加载到不同的内存位置
EXEC随机化:程序每次执行都将加载到不同的内存位置
Brk随机化:brk用来分配堆空间,当brk aslr关闭时,start_brk和brk都是指向bss段的尾部的;当brk ALSR开启的时候,初始位置变为bss段尾部加上一个不确定的偏移地址
VDSO随机化: VDSO(虚拟动态共享库)将内核的调用映射到用户态的地址空间,使得调用开销更小,路径更好 相当于共享库地址随机化
Linux中的ASLR的等级:在linux系统中ASLR被分为0,1,2三个等级,可以通过sudo bash -c "echo 2 > /proc/sys/kernel/randomiz