Java语言的程序漏洞检测与诊断技术

Java语言的程序漏洞检测与诊断技术

作者:师大云端图书馆 时间:2015-12-25 分类:期刊论文 喜欢:3819
师大云端图书馆

【摘要】Java语言已经成为了近几年最为重要的编程语言之一,根据权威开发语言排行榜TIOBE的统计,从2002年至今的10年内,Java语言市场占有率始终处于所有开发语言的前两位。近年来,随着安卓系统的普及以及安卓平台将Java作为其程序设计语言,Java语言不论在移动终端还是在个人电脑、服务器平台上都已经占据了不小的份额。如今,毫无疑问Java语言影响着信息产业的方方面面。与此同时,随着Java语言及其支撑平台的飞速发展,Java程序员和Java应用的数目也在飞速增长之中。以安卓平台为例,目前安卓官方市场上的应用数目已经超过了50万个,并且.这个数量仍然在以平均每个月2万个的速度飞速膨胀。迅速增长的Java应用数量给Java程序的管理和维护带来了挑战。Java代码中的程序漏洞(包括程序功能性漏洞,或称程序错误,以及程序安全性漏洞)每年都会给应用的使用者造成巨大损失,因此检测、诊断与排除Java代码中潜在的程序漏洞是Java应用的一个主要需求。程序漏洞检测和诊断几十年来一直是软件研究领域的关键问题。近年来随着多核架构和智能移动终端的普及,程序漏洞检测和诊断的研究逐渐集中在以下两个方面:(1)多核架构下的并发错误研究,致力于检测、诊断和排除由于程序并行化带来的并发错误。例如,通过记录并发程序运行时的不确定,并促使该程序在随后的运行过程中确定的重现某一并发错误,进而减少定位对应程序漏洞的难度。(2)智能终端上的漏洞检测和诊断研究,力图对智能终端应用中的各种程序漏洞进行检测和诊断。包括检测并诊断应用中可能发生的功能性及安全性漏洞。例如,采用符号化执行方式遍历应用程序执行路径,通过分析程序行为检测程序漏洞,并生成对应程序输入以简化诊断过程;通过对程序进行污染分析,可以检测其中可能存在的信息泄露等安全漏洞。由于智能终端上的应用通常采用应用市场集中发布的模式,同时每个应用市场每月都有数以万计的应用进入,因此对此类应用进行审核不仅对程序分析速度要求较高,而且还需要提供完备的验证机制,为高效地去除可能具有安全漏洞的应用提供佐证。这两个方面研究的对象恰好也是Java程序目前所面临的主要问题。然而,当相关研究成果被应用到Java语言上时,现有研究多从程序漏洞本身模式出发,通过借用适用i其他语言的类似漏调整检测与诊断方法,进行对Java程序漏洞的检测。但是,Java语言的许多特性,如面向对象、托管执行和运行时事件,使得其不同于以往的过程式语言和本地语言运行模式。简单的将其他语言的已有经验应用于对Java程序的漏洞检测与诊断效果并不理想。比如,由于Java托管运行时通过垃圾回收机制管理程序内存使用,在Java程序运行时,其数据移动较C/C++等本地语言程序多,因此当确定性重现系统被应用到Java程序时,受大量的数据移动影响,重现系统的记录和重现开销巨大,从而极大地限制了重现系统的性能。另外,移动终端中Java应用通常采用事件驱动的运行模型,该模型下的程序运行具有较大的随机性和不确定性。一些继承自传统漏洞检测与诊断手段的研究,例如针对Java应用的符号化执行,往往需要牺牲其检测与诊断精度才能确保该过程的顺利完成。本文在充分分析现有程序漏洞检测和诊断方法作用于Java应用时的性能和效率等问题的基础上,提出了一个系统的解决方案。从移动终端、桌面应用和服务器等角度,着力于提高程序设计者以及应用程序市场对Java应用的漏洞检测与诊断能力。本文提出的三个新技术,即基于对象的确定性重现,导向性符号化执行,与采用符号化执行的信息泄露漏洞检测与诊断技术,充分弥补了程序漏洞检测与诊断技术在Java语言等动态语言上的不足。相对于之前的研究,本研究借助于对Java语言本身语言模型与运行模型的深入了解,从Java语言模型本身出发设计适合该语言的漏洞检测与诊断技术,测试表明使该技术在作用于Java应用时达到远优于已有技术的性能和效果。具体而言,本文的主要贡献如下:1.首次提出了基于对象的确定性重现技术,设计并实现了ORDER系统以完成对多线程Java应用的确定性重现。ORDER系统利用Java程序多以对象作为基本逻辑单元的特性,结合Java虚拟机对内存中对象的管理机制,提出以对象为粒度的确定性重现技术。该系统的性能是所有已知同类系统中最好的,在保证重现系统确定性的前提下,该系统记录阶段的开销仅为114%。此外,通过将重现系统的记录和重现实现于Java虚拟机中,ORDER系统不仅能重现现有系统可以重现的程序错误,还能够重现已有系统不能重现的错误,如由外部代码中的程序漏洞造成的错误。这也就意味着ORDER能够被用于诊断更多的程序漏洞。2.首次提出导向性符号化执行方法,致力于提高符号化执行技术在应用于安卓应用时的运行效率,为利用符号化执行检测与诊断安卓Java程序漏洞提供基础。本文设计并实现了SymDroid系统以提供高效率的符号化执行。本文通过对安卓编程与运行模型的分析,揭露符号化执行在应用于安卓程序时的路径爆炸问题,并提出导向性符号化执行技术解决该问题。SymDroid系统利用静态程序分析的结果,在不影响搜索精度的前提下对符号化执行的搜索空间进行限定,导引符号化执行过程的进行。该系统有效地提升了符号化执行的效率,在少于几个小时的时间内,就可以完成对特定应用的某一行为进行的检测和诊断。而现有的其他符号化执行工具或者不支持安卓应用等事件驱动程序,或者需要牺牲代码覆盖率以保证分析的顺利完成。3.首次提出结合符号化执行和静态分析技术的安卓应用信息泄露检测与诊断技术,以弥补相关工具在辅助诊断信息泄露触发条件时的不足,并同时增强信息泄露检测技术在安卓平台上的漏洞检测能力。本文设计并实现LeakMiner系统,通过静态污染分析技术和导向性符号化执行技术检测并诊断安卓系统中的信息泄露漏洞。该系统可以在几乎没有误报的前提下检测出大部分存在信息泄露漏洞的安卓应用,并提供与该漏洞相关的程序输入。通过该系统提供的程序输入信息,程序员可以快速了解造成程序漏洞的代码,并对该漏洞进行修复。应用市场也可以利用这一信息快速确认信息泄露的存在,并隔离该应用。同时,由于采用了本文提出的导向性符号化执行方法,LeakMiner系统的分析时间短,它能够在一小时内完成对单一程序的漏洞检测和相关程序输入生成的所有工作。
【作者】杨哲慜;
【导师】臧斌宇;
【作者基本信息】复旦大学,计算机系统结构,2012,博士
【关键词】Java;漏洞检测;漏洞诊断;确定性重现;符号化执行;静态分析;污染分析;并发错误;信息泄露;

【参考文献】
[1]李继君.经济型酒店的品牌生态位适宜度研究[D].山东大学,旅游管理,2013,硕士.
[2]王瀚霖,许峰,陈仁朋,吴进.粗颗粒填料含水量的TDR测试方法研究[J].三峡大学学报(自然科学版),2014,06:37-42.
[3]袁安琪.唐宋陶瓷茶具诗歌研究[D].宁波大学,中国古代文学,2013,硕士.
[4]黄志同,魏谷,熊焕新.求解释结构模型骨架阵的一种算法[J].自动化学报,1985,04:416-420.
[5]李明玉.港口升级换代背景下临港产业与海洋生态环境耦合作用研究[D].大连海事大学,交通运输工程,2013,硕士.
[6]王莉莎.基于决策树的双季稻区水稻土地力特征分析[D].西安建筑科技大学,环境工程,2013,硕士.
[7]卓异.泉州湾潮间带不同生境小型底栖动物群落的多样性研究[D].厦门大学,环境科学,2014,硕士.
[8]苑秀芳.春节旅客运输的组织与对策[J].中国铁路.2005(06)
[9]李振华.城市社区公共服务设施供给主体多元化研究[D].华中师范大学,行政管理,2012,硕士.
[10]万修文.俄罗斯“东西伯利亚—太平洋”石油管道现状与前景论析[D].黑龙江大学,俄语语言文学,2013,硕士.
[11]张霖,赵宏伟,杨倚寒,马智超,黄虎,马志超.单层石墨烯薄膜材料纳米压痕过程的分子动力学解析[J].吉林大学学报(工学版),2013,06:1558-1565.
[12]胡长征.济宁市市区初级中学阳光体育运动开展现状研究[D].山东师范大学,社会体育指导(专业学位),2013,硕士.
[13]龚智.基于局部特征的人脸识别研究[D].西南交通大学,信号与信息处理,2013,硕士.
[14]叶兰兰.城市轨道交通再生制动能量回收系统研究[D].西南交通大学,轨道交通电气化与自动化,2013,硕士.
[15]赵培.关联规则并行采掘算法的研究[D].华中师范大学,2002.
[16]高开娟.大股东控制权与股权激励效果研究[D].华中科技大学,企业管理,2012,硕士.
[17]王金华.现代汉语小说英译中的主位转换[D].苏州大学,英语语言文学,2003,硕士.
[18]罗立民,鲍旭东,田雪芹.基于纹理分析的磁共振图象区域分割[J].自动化学报,1995,04:504-508.
[19]王夏青.熊去氧胆酸对大鼠原发性肝癌发生的抑制作用及机制[D].山东大学,内科学,2013,硕士.
[20]杨勇兵.论民族主义起源的社会心理机制[D].苏州大学,政治学理论,2003,硕士.
[21]刘美茵,黄晶生,张军军,曹磊.基于BDEW标准的光伏并网逆变器模型验证及误差分析[J].电力系统自动化,2014,13:196-201.
[22]李翔.房地产上市公司资产评估与交易定价实证研究[D].首都经济贸易大学,资产评估(专业学位),2013,硕士.
[23]甄丽卿.江西畜牧业发展研究[D].江西农业大学,农村与区域发展,2012,硕士.
[24]齐洁,齐金鹏.具有对称初始数据的二维反应扩散方程的边界镇定[J].自动化学报,2015,01:209-214.
[25]汤酞则,唐昌健.建设一流实习教学基地培养优秀职教师资人才[J].当代教育论坛.2005(21)
[26]潘雷.钢管内置FRP约束高强混凝土组合短柱轴压性能的试验研究[D].广东工业大学,建筑与土木工程,2014,硕士.
[27]王菊姝.云存储环境中的远程文件同步模型研究[D].上海大学,计算机应用技术,2013,硕士.
[28]赵中意.论技术侦查在职务犯罪侦查中的适用[D].上海交通大学,法律,2013,硕士.
[29]马红邑.西学的恶化对中国早期现代化的影响[D].山东大学,政治学理论,2013,硕士.
[30]刘斤锵.期权定价二叉树算法收敛阶研究[D].西南财经大学,金融学,2014,博士.
[31]樊琳.论劳动法上的劳动者[D].北京化工大学,民商法学,2013,硕士.
[32]桂全安.“治庸计划”实施背景下武汉市体育行政部门职能转变的分析[D].华中师范大学,体育人文社会学,2013,硕士.
[33]张洋.刘军:梦想在物理世界中绽放[J].中国发明与专利,2013,01:109-110.
[34]刘于之,李木国,杜海.具有时延和丢包的NCS鲁棒H_∞控制[J].控制与决策,2014,03:517-522.
[35]姜枫.基于模糊多属性的决策方法研究[D].中国科学技术大学,2013.
[36]俞前.中国国际航空西南公司网络营销方案研究[D].四川大学,工商管理,2003,硕士.
[37]王祎娇.长春市奔腾动力科技有限公司内部财务控制研究[D].吉林大学,会计学,2013,硕士.
[38]张涛,李国岫,汪旭东,王璐,虞育松,刘星.超高压冷气推进系统压力调节模块性能仿真研究[J].火箭推进,2015,02:50-55+74.
[39]邓淑尧.认清国际化肥发展趋势调整我市化肥产品结构[J].广州化工.1991(03)
[40]杨开.姬松茸多糖的提取、纯化和结构分析[D].浙江工业大学,2003.
[41]王礼信.阶跃输入作用下单输入单输出MRAC的简化设计方案[J].自动化学报,1987,06:473-474.
[42]梁宇,郭良栋中国科学院微生物研究所真菌地衣系统学重点实验室,马克平.菌根真菌在生态系统中的作用[J].植物生态学报,2002,06:739-745.
[43]傅洁.MMM-MBN结合钢轨温度应力检测系统的研究[D].北京化工大学,控制科学与工程,2013,硕士.
[44]方伟.论太平洋战争时期中美英三国在缅甸战场的合作与分歧[D].安徽大学,世界史,2014,硕士.
[45]付浩彬.VANET下的无中心网络安全认证机制[D].吉林大学,计算机应用技术,2014,硕士.
[46]杨义伶.柑橘砧木抗旱性评价及相关生理指标与基因表达差异分析[D].江西农业大学,果树学,2012,硕士.
[47]孟丽.中国小麦国际竞争力研究[D].中国农业大学,产业经济学,2004,硕士.
[48]赵丛然,解学军.具有iISS逆动态的非线性系统的输出反馈调节[J].自动化学报,2012,05:865-869.
[49]朱雨.卫星高速载荷数据模拟源的研制[D].哈尔滨工业大学,仪器科学与技术,2013,硕士.
[50]刘念杰.基于电力线载波通信的智能调光系统[D].杭州电子科技大学,电路与系统,2014,硕士.

相关推荐
更多