代码改变世界

系统脆弱性研究方向分析

2010-06-16 20:45  caibing  阅读(797)  评论(3)    收藏  举报

系统脆弱性现行的主要研究方向:

程序源码分析  <static analysis>

基本思想:以编译理论为中心,通过分析代码编译过程中的中间产物,来自动分析源代码中可能纯在的漏洞

z那里主要的分析手动就是利用gcc产生的中间产物,分析ssa或者 数据流图 等数据进行代码的缺陷分析

实例:hw用的pc-lint竟然也是属于该种工具

自案:看来只好先走这条路,在熟悉攻击手动的基础上,研究可行的检测策略

 

模型检测  <model checking>

基本思想:给定一个系统模型,测定该系统模型是否符合某些特定的规范,这些规范就包含了系统安全的定义,通过这些规范来判断该系统是否安全

实例:berkeley 的BLAST,看起来就很牛x

http://mtc.epfl.ch/software-tools/blast/index-epfl.php

按照user‘s manual所说,它能够检测c源码的安全性。根据提供的规范,BLAST可以判断c源码是否符合该规范。

自案:这个东西暂时不适合我,数学气氛太浓

 

系统脆弱性主要分类:

根据h.e 将unix下这类攻击手段统称为 data driven attack

即 “通过向系统中某个活动的服务发送数据,以产生非预期结果来攻击”

 

h.e 将主要攻击手段分为以下四类
format string
buffer overflow
interger related error

dangling point attack

 

下面研究的主要思路:

研究一种对真实系统的漏洞攻击,该漏洞初定为buffer overflow

基于该漏洞分析对漏洞的攻击程序的编写过程

构思对于该漏洞通过脆弱性检测分析到的可能性

 

这种攻击的主要思路:待攻击系统提供了某种服务,该服务程序存在某个漏洞,通过对该漏洞的利用,使得攻击者可以获得对系统的使用权限

 

丝滑:

想:hw提供源代码的检测性服务
书:0 day安全:软件漏洞分析技术

想:一直想一种不关注操作系统平台的分析方式,如分析cisco iso 或者 hw os 的系统