您的位置:首页 > 其它

内核漏洞的利用与防范_学习

2014-08-06 14:19 295 查看
只是笔记~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第一个工具 查询 进程虚拟空间内存 在根目录下 运行



(补充 open solaris 可以用 pmap -x <pid> OS X 操作系统中可以用vmmap <pid> 或者vmmap <procname>)

windows 用 Sysinternals Suite 不仅提供了 vmmap 还提供了很多有用的系统和进程的分析工具
http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
Linux 下 后补~_~ 先学习 WINDOWS linux 跳过~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

书籍代码在 http://www.attackingthecore.com/codex.php 可以下载

内核漏洞分类:

1 未初始化的/未验证的已损坏的指针解引用

NULL 指针解引用,Linux 下 以下划线开头的函数 是不会对提供的目标用户指针 进行检查验证的。

这个漏洞使得用户将一个内核地址传递到内核,从而直接访问/修改内核内存

2 内存破坏漏洞

是由程序中的错误操作 重写了内核区域的内存导致的。

1)内核栈漏洞,与内核态运行的进行+线程相关

内核态栈的功能 和 典型的用户态栈的功能一样,细微差异是通常有限制 x86 是4KB 8KB,因此采用那种使用近可能少的局部

变量的方式进行内核编程,并且所有进程的内核栈都是一个相同的虚拟地址空间的一部分,开始于不同的虚拟地址也占据不同的虚拟地址

有些操作系统如LINUX使用所谓的中断栈。这个栈用于处理硬件产生的中断,以分流内核栈的压力(内核栈很小)

2) 内核堆漏洞 内核区域中分配空间的小型对象+临时区域有关

内存的基本单元式页帧,可能大小不同,但最小不低于4KB 。 可能影响内核堆的漏洞往往是缓冲区溢出造成的。

3 整数误用

整数溢出 + 符号转换错误,整数和其他变量一样是有大小的,整数可以是有符号的,既能表示正整数,也能表示负整数,也可以是无符号的(正整数)

不容易利用,能够在某些情况下导致另外一类漏洞--内存溢出。

将一个超出了整数数值存储范围的数赋值给饿了一个整数变量。 导致无符号数数值改变,有符号数 改变符号。

发生在不加控制的加和乘运算中,堆参加运算的参数不加验证就极易发生此类问题。



4 竞争条件

工具Dtrace已先后被移植到FreeBSD、NetBSD及Max OS X等操作系统上

说明:http://blog.csdn.net/dingyilong/article/details/1900524

5 逻辑BUG

引用计数器溢出:共享资源最后一次引用关闭后一定腰释放资源,这就需要计数器了

便携的,可插拔的外部设备的技术叫做即插即用技术/热插拔技术,靠自动检测技术来完成的,当然,硬件设备也可以被劫持+恶意篡改。

6 内核生产的用户态漏洞
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: