5.3 堆栈缓冲溢出攻击防护设置
至少90%以上的安全问题都是来自“堆栈溢出”。攻击者通过给一个以root身份运行的程序提供比它所预期的输入长得多的字符串,使被攻击程序无法处理而改变执行流程去执行攻击者指定的代码。
操作步骤:
以root用户登录。
对/etc/system文件做个拷贝:
cp /etc/system /etc/system.BACKUP
用编辑器编辑/etc/system文件
到文件的最后,插入以下几行:
set noexec_user_stack=1
set noexec_user_stack_log=1
保存文件,退出编辑器,一旦重启机器,这些改变就会生效。
(对 Solaris 9,可以对单个程序设定堆栈不可执行属性,前提是有该程序的源码,例如:# cc -M /usr/lib/ld/map.noexstk myprogram.c)