选题:软件安全动态监测系统设计与实现

选题:软件安全动态监测系统设计与实现

ID:8552053

大小:179.36 KB

页数:3页

时间:2018-04-01

选题:软件安全动态监测系统设计与实现_第1页
选题:软件安全动态监测系统设计与实现_第2页
选题:软件安全动态监测系统设计与实现_第3页
资源描述:

《选题:软件安全动态监测系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、选题:软件安全动态监测系统设计与实现小组成员:坑易澎(PB09210296),周志平(PB09210087),李远(PB09210306)内容:基于Pin等二进制动态插桩平台,实现对x86二进制软件的运行时动态监测,及时发现缓冲区溢出等漏洞选题背景(国内外研究现状)&意义:二进制程序的逆向分析和漏洞挖掘一直是软件安全领域研究的首要和关键问题。开发自动化的程序逆向分析工具用来辅助软件漏洞挖掘已经成为现阶段的研究热点。动态插桩技术在近年来也开始被用于漏洞发掘领域。Pin是Intel开发的一个程序动态插桩工具,支持对多种平台下

2、二进制可执行程序的插桩分析,允许对可执行程序的任意代码位置插入任意的分析代码,在程序执行时动态进行插桩的。此外,Pin提供一套丰富的API供开发者定制自己的分析工具,其被广泛应用于性能分析、体系结构研究及安全领域等。选题理由:可以使用熟悉的语言编程,对动态插桩较为感兴趣……【软件开发】软件架构:插桩级别:指令,函数(分别对应JIT和PROBE两种模式)à拓展:轨迹插桩等(功能需要)使用PIN提供的API进行编程,形成一个可用的分析工具,能检测出:缓冲区溢出(书P160)、SQL注入(删去,书P163)、整数溢出(书P15

3、7,检查正负数)、栈溢出(书P160à不可执行的栈,返回地址下方设置预警值)、格式化字符串(实现对内存的非法访问,见补充)、命令注入(待选,C语言中少见)、单字节字符串循环拷贝代码模式(待选)等漏洞。关键技术:1.插桩决策的设定2.程序状态的抽象,跟踪程序变量和寄存器的值功能模块:代码插桩主要考虑以下问题:是否启动插桩,在哪里插桩什么函数,以及插桩入的分析函数的具体实现,相应地实现插桩控制、插桩决策及分析实现等具体模块。由插桩决策、指令执行、库函数模拟、缺陷检测、及程序状态模拟等重要模块组成:1.插桩控制:控制何时开始、

4、暂停或终止插桩2.插桩决策:用于判断和区分不同的程序执行分支,以在特定分支添加对应的分析函数,含有过程插桩和指令插桩:过程插桩主要用于控制插桩是否启动,在关注的函数或指令执行后才开始插桩。若调用函数为待模拟的库函数或缺陷模式函数,则需要分别执行库函数模拟和缺陷检测分析。指令插桩由指令执行器完成,用于模拟每条汇编指令的执行动作。3.分析实现:插入的语句或函数的实现,应是一个集合,根据不同的漏洞情况插入不同代码4.外部信息导入:导入漏洞模式和库函数模拟等配置信息5.辅助部件:前段命令处理、漏洞模式库、特定缺陷的模式识别(待选

5、)统计(统计插桩指令数、漏洞数)、输出(形成漏洞分析统计文件)等。处理流程:最终目标:了解插桩的原理、PIN的工作机制及相关知识,掌握并熟练使用PIN提供的API,基于PIN编写一个能够完成上述功能的软件(可能有界面)成果形式:软件(附说明书,测试结果,源代码及其详解),论文(PIN相关的原理、分析、待改进的地方,实验的总结等等)实验条件:Linux/WindowsC/C++可能的困难和解决方法:1.轨迹插桩需要对程序执行中路过的基本块依序进行分析,获得相关程序属性信息à暂且不知道这一点怎么做,基本块的识别2.库函数是否

6、需要模拟à在库函数分析中,较难处理的是不定参数以及参数为地址或值的区分。但由代码获得的参数数目不一定可靠;地址与值在汇编程序模拟时较难区分。3.程序状态抽象4.寄存器变量的读取5.SQL注入:数据库的联接6.整数溢出:无法判定是否需要负数★7.程序提速à写在analysis里而写在instrumentation里;减少call,用最大粒度instrument;减少参数、overhead……工作计划:每周1-2次组会;第四周-周一~第五周-周五(12天):安装好实验环境,下载官网示例程序自行编译修改,根据官网上User's

7、Manual学习并熟悉PIN(同时整理学习笔记,后期将形成部分论文的草稿);查找上述漏洞的相关知识深入理解(并整理,后期论文草稿),完成代码初步算法设计【此时每周最好3次会议】;第五周-周六~第六周-周二(4天):改善上述软件设计,细化函数设计,确定(初次)方案,代码撰写具体分工第六周-周三~第七周-周日(12天):代码编写(同时进行代码详解,编程心得),交流,设计方案的修改,商量好设计细节上各部分之间的借口第八周-周一:中期检查【至此完成总代码编写的1/3,核心算法代码的1/2~2/3,核心算法及函数设计细节(主方案)

8、全部确定】已有可运行的程序,部分漏洞可检测第八周-周一~第九周-周四(11天):完成剩下代码的编写;各部分代码的整合调试,完成一个符合要求的可运行程序第九周-周五~第十周-周日(10天):测试、整理运行结果并根据结果修改程序,说明书的初稿;有时间将进行代码润色,可视化界面的编写第十一周-周一~第十一周-周日(7天):

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。