项目实践选题报告.docVIP

  • 5
  • 0
  • 约1.52千字
  • 约 3页
  • 2020-02-19 发布于北京
  • 举报
项目实践选题报告 梁广泰邵津项目描述 此次项目实践我组打算实现一个“Java程序缺陷静态分析器”以帮助程序员能够在发布代码之前及早发现并移除那些影响程序可靠性、安全性、高效性的代码缺陷。 项目意义 各种类型的程序,不管是操作系统,中间件还是各类应用软件(桌面程序或Web系统),都难以避免在发布之前消除所有缺陷。也正因如此,使得分布在世界各地的黑客们与安全专家们从未停止围绕各种IT系统的“漏洞缺陷”展开“攻防”大战。能够被黑客们利用的绝大部分系统漏洞都源于系统的具体代码存在各种各样“问题”。在软件发布之前尽可能地识别出代码中隐藏的各类缺陷并加以解决,能够极大的减小缺陷修补的代价。 代码缺陷静态分析是一种不通过运行程序而直接对程序源代码进行缺陷分析的方法。静态分析主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析的对象是软件程序,程序设计语言不同,相应的静态分析工具也就不同。借助于我们的Java代码缺陷分析工具,Java程序员们可以在代码发布之前尽可能多的发现并移除影响程序性能和安全的多种缺陷,这样便能够最大程度地减少程序在部署或运行阶段所暴漏出来的性能故障或安全漏洞。 我们此次的项目实践集中于对时序逻辑类缺陷(Temporal logic based defects)的检测。在代码编写过程中,有很多方法需要按照一定的顺序连续调用,例如在打开一个文件(file.Open())之后退出主要程序之前一定要进行关闭操作(file.Close()),再如当你使用C++语言编程时new一个对象之后退离方法之前需要针对该对象进行delete操作。再如当获取到用户的输入参数querySQLStr后,需要经过一定检查才能用于构造数据库操作语句并执行,否则会造成SQL注入引起信息泄露等。违反了这些约束,便会有可能引起内存泄露或安全漏洞。 软硬件资源: 硬件 无特殊要求,支持Java编程环境的PC机器即可。 操作系统 Windows XP SP2 程序语言 使用Java进行开发 开源资源 Soot框架:开源的Java编译器框架,里面包含了多种Java代码分析技术。利用他们的提供的各种基础分析技术(如数据流分析,过程间分析等),我们可以专注于缺陷检测所必须的技术实现。 技术问题和路线: 需要解决的技术问题 程序缺陷模式或安全漏洞特征的总结和形式化描述等 编译相关的各种数据流分析技术的熟悉与掌握 Soot框架的使用方法学习 总体技术路线 为了了解缺陷模式和安全漏洞,首先通过搜索引擎,熟悉常见的安全漏洞,并总结提取出其相应的代码特征。 编译相关的分析技术背景知识,之前有一定的积累,了解Soot中支持的分析技术细节并掌握其应用。 通过Soot官网提供的tutorial学习掌握基于Soot框架的开发过程。 实践计划和团队分工: 计划安排 11.11 – 11.18 了解收集一些待检的缺陷模式和安全漏洞 11.19 - 11.25 熟悉掌握Soot的开发流程,了解Soot提供的基础分析技术并复习编译相关的分析技术背景知识 11.26 – 12.16 完成代码开发 12.17 – 12.25 进行代码测试 12.26 – 12.29 进行文档撰写、准备项目实践答辩等 团队情况 成员: 梁广泰 邵津分工安排 梁广泰: 熟悉Soot开发流程; 复习编译相关分析技术相关知识; 主体代码开发、测试 邵津: 负责收集缺陷模式和安全漏洞,并设计对其进行形式化描述 参与部分代码开发、测试 撰写项目文档、准备实践答辩等内容

文档评论(0)

1亿VIP精品文档

相关文档