首页>中文会议>工业技术>第十六届全国软件与应用学术会议
第十六届全国软件与应用学术会议

第十六届全国软件与应用学术会议

  • 召开年:2017
  • 召开地:哈尔滨
  • 出版时间: 2017-11-03

主办单位:中国计算机学会

会议文集:第十六届全国软件与应用学术会议论文集

会议论文

热门论文

全部论文

全选(0
  • 摘要:在移动智能终端和多样的移动应用给用户带来便利的同时,移动平台上各种新的安全和隐私问题也日益凸显。很多应用经常申请不必要的敏感权限,使用户隐私面临被泄露的风险。近期,许多研究表明应用的敏感行为和隐私条例存在巨大差异.尽管很多工作关注于隐私条例与应用行为的一致性分析,然而现有工作均使用静态分析和白名单分析第三方库的方法,导致隐私条例的一致性检测结果的不准确和不完整.提出一种自动化检测应用隐私条例文档是否与应用行为相一致的工具.首先,使用一种改进的自然语言处理的方法提取隐私条例文档中的隐私信息和应用敏感行为;然后,使用静态分析和动态分析相结合的方法分析应用实际的隐私行为,同时区别于传统的白名单对照方式,使用了基于聚类的第三方库的检测方法提高了检查的准确性,最后将文本中声明的隐私信息行为和代码中分析出的隐私权限进行一致性校验.实验对455个应用进行分析,工具对隐私条例中隐私信息提取的准确率为94.75%,大约有50%的应用存在着应用行为和隐私条例文档不一致的问题.
  • 摘要:作为一种支持快速交付同时确保软件质量的新兴方式,DevOps吸引了愈来愈多的实践者,并且有望成为未来软件开发以及运维的主要模式.如今许多高校开始向软件工程及计算机科学专业的学生提供DevOps相关的课程.然而,作为DevOps课程的关键部分,与传统项目实践相比,DevOps项目实践可能会给教师和学生带来巨大的挑战.项目的实践环境、过程管理方式以及评估手段成为了教学的难点.由此论文提出了一个支持学生团队DevOps实践管理与评估的模型——DOPCSM.教师可以通过整合不同的开源DevOps工具来实现此模型,开发后的支持系统可以向学生提供团队、项目管理等特性,与此同时,还向教师提供充足的项目评估证据.DOPCSM模型在南京大学开展的试验中展现出了的积极的作用.
  • 摘要:随着智能手机的高速发展,Android内核变得越来越复杂,可信计算基(TCB:Trust Computing Base)也越来越大.这使得Android内核会不可避免地存在一些已知的或未知的漏洞.通过Trust Zone来监控Android内核的运行是抵御内核级攻击,提高Android系统安全性的一种方法.ARM TrustZone技术已经在Android手机平台上得到了广泛的应用,它把Android手机的硬件资源划分为两个世界,非安全世界(Non-Secure World)和安全世界(Secure World).用户所使用的Android操作系统运行在非安全世界,而基于TrustZone对非安全世界监控的系统(例如,KNOX,Hypervision)运行在安全世界.这些监控系统拥有高权限,可以动态地检查Android系统的内核完整性,也可以代替Android内核来管理非安全世界的内存.但是由于TrustZone和被监控的Android系统分处于不同的世界,world gap(世界鸿沟)的存在导致处于安全世界的监控系统不能完全地监控非安全世界的资源(例如,Cache).TrustZone薄弱的拦截能力和内存访问控制能力也弱化了它对非安全世界的监控能力.首次提出一种可扩展框架系统HTrustZone,能结合Hypervisor来协助TrustZone抵御利用world gap的攻击,增强其拦截能力和内存访问控制能力,从而为非安全世界的操作系统提供更高的安全性保障.并在Raspberry Pi2开发板上实现了HTrustZone的原型系统,实验结果表明:HTrustZone的性能开销仅仅增加了3%左右.
  • 摘要:移动应用数据流量消耗和响应速度是用户和开发者都非常关心的问题.为此,很多移动应用都使用了缓存技术(特别是HTTP缓存)以有效减少移动数据流量和电量消耗,加快应用响应速度.然而,移动应用缓存的合理使用与应用的特点和具体功能相关.许多应用中对于缓存的不合理使用非但不能起到应有的作用,反而会占用移动设备宝贵的存储空间.为此,本文提出了一种基于动态分析的安卓应用缓存缺陷自动检测方法,可以在应用运行时动态监控应用内部的缓存行为,并分析其缓存是否存在缺陷,以及存在怎样的缺陷.本文实现了相应的运行时库以及安卓应用自动化改造的工具,并针对当前安卓应用市场上的25个安卓应用进行了检测.实验结果表明,该方法适用于安卓市场上的很大一部分应用,并能够有效发现安卓应用中存在的缓存缺失、缓存空间无限增长和缓存冗余等问题.
  • 摘要:开发者社区一般包括博客、问答和论坛等多个版块,这些版块共同构成了用户贡献和交流软件开发知识的平台.本文以CSDN为研究对象,通过分析CSDN平台上积累的大数据构建了开发者知识交流网络,并基于复杂网络理论对其进行了分析,发现多版块的知识交流网络具有小世界、无标度等复杂网络特性.基于知识交流网络进一步分析了知识贡献者的分布情况,发现多版块用户中有较多的知识贡献者,并在知识交流网中起到比较重要的作用.
  • 摘要:本文主要介绍COMPSPEN的实现细节与相关实例研究.分离逻辑是2000年左右由Reynolds、O’Hearn、Ishtiaq和Yang提出的用于对含有指针和动态数据结构的程序进行分析与验证的编程逻辑.目前已有的分离逻辑公式求解器一般都是启发式的算法,无法保证结果的完备性.Gu,Chen和Wu最近在IJCAR2016的文章中,提出了一种能同时描述线性数据结构的形状性质和数据约束的分离逻辑子集,并针对该子集的可满足性问题与蕴涵问题设计了可靠完备的判定算法.COMPSPEN工具基于SMT的框架,实现了Gu,Chen和Wu提出的算法.
  • 摘要:GUI自动化测试是Android应用研究领域的重要组成部分,针对Android应用的GUI测试技术得到了广泛的研究.其中,基于DFS算法的GUI遍历测试技术得到了广泛的应用.然而,现有的DFS测试技术却仍然具有效率低下、覆盖率较低的问题.提出了结合外部预定义规则来驱动DFS自动化遍历的改进方法,来提高DFS自动化遍历的效率和覆盖率;基于规则驱动的改进方法实现了RDTA测试工具,进行了与Monkey以及无规则驱动下的DFS的对比实验,验证了该方法的有效性.
  • 摘要:安卓开发者经常需要预测安卓应用的耗电功率,从而改善安卓应用的性能.针对这一目的,提出了一种动态测电和静态分析相结合的安卓应用耗电功率预测方法.该方法利用静态分析构建安卓activity这一安卓基础组件的特征向量,利用动态分析,使用测电仪器测出一些安卓应用的activity的耗电功率.基于这些数据,利用机器学习的方法得到安卓activty特征向量和耗电功率的预测测量.此模型可以被用于预测新应用的activty耗电功率.实验结果表明,此方法能够以较低的误差预测耗电功耗.
  • 摘要:操作系统安全一直是国内外学者重点研究的领域,围绕系统安全展开的攻防战也层出不穷.Return-Oriented Programming(ROP)是一种流行的利用缓冲区溢出漏洞进行攻击的方法,它通过覆写程序栈上的返回地址,使程序在之后执行返回指令时,跳转到攻击者指定位置的代码,因而违反了程序原本期望的控制流.控制流完整性(Control-flow Integrity,简称CFI)检查是目前最流行的ROP防御机制,它将每条控制流跳转指令的合法目标限制在一个合法目标地址集合内,从而阻止攻击者恶意改变程序的控制流.现有的CFI机制大多用于保护用户态程序,然而当前已经有诸多针对内核态的攻击被曝出,其中Return-oriented rootkits(ROR)就是在有漏洞的内核模块中进行ROP攻击,达到执行内核任意代码的目的.相较于传统的基于用户空间的ROP攻击,ROR攻击更加危险.根据Linux CVE的数据统计,在2014-2016年中,操作系统内核内部的漏洞有76%出现在内核模块中,其中基本上所有被公布出来的攻击都发生在内核模块.由此可见,内核模块作为针对内核攻击的高发区,非常危险.另一方面,当前鲜有针对操作系统内核的CFI保护方案,而已有的相关系统都依赖于对内核的重新编译,这在很大程度上影响了它们的应用场景.针对这些问题,提出利用Intel Processor Trace(IPT)硬件机制,并结合虚拟化技术,对内核模块进行透明且有效的保护,从而防御针对其的ROP攻击.实验表明该系统具有极强的保护精确性、兼容性和高效性.
  • 摘要:随着互联网的迅猛发展,网络广告成为互联网最重要的商业模式之一.网络广告在促进互联网发展的同时,也带来了用户信息泄露、影响用户网页浏览体验等负面问题.为了识别恶意广告,对网络广告进行系统的研究,需要获取广告生成过程中完整的调用路径.由于加载到页面中的JavaScript文件量大、函数调用路径链路长、路径中的JavaScript代码经过了一定的压缩和混淆,因此很难通过静态方法获取网络广告调用路径.分析了动态广告生成的过程,对相关代码进行动态插桩,利用函数参数实现广告调用信息的传递,并记录下每个iframe内部的调用信息,通过匹配与合并多个iframe的信息,生成了完整的广告调用路径并确定了广告插入的操作方式.针对21个真实网站进行了实验,结果表明:本文方法能够在不太影响性能的前提下,获取到静态方法无法获取到的广告动态加载过程信息并生成广告代码调用路径.
  • 摘要:软件的功能描述文档是开发人员了解软件的重要基础.现有软件项目并不都具备全面描述软件功能的文档,但软件项目开发和应用过程中的各种交流记录蕴含了讨论其功能的大量信息.为此,本文提出了一种基于StackOverflow问答数据的软件功能特征挖掘组织方法.该方法提出以动宾短语形式描述软件功能特征,挖掘并组织蕴含在StackOverflow数据中的软件功能特征,自动生成一种以层次化方式展示的软件项目功能特征文档.在针对真实项目的实验中,本文方法生成的软件功能文档可以覆盖官方文档中列举的97.6%的软件常用功能.同时,该方法可以扩展从不同形式的项目交流记录中生成全面描述软件功能特征的文档.
  • 摘要:市场上出现了大量诸如MFC、JDK等体量庞大、使用广泛的API库.这些API代码库的出现大幅减少了重复性的软件开发工作,也提高了软件的质量.但是API函数数量巨大而且在持续演化,因此程序员很可能在不知情的情况下重复实现了某些API的功能.相较于经过广泛使用的API函数,这些语义等价的函数往往在性能、可靠性、可扩展性等方面都有一定的差距.因此,自动检测此类函数并及时替换为等价API函数具有重要意义.现有的克隆代码(函数)检测方法是通过比较源代码的文本相似性以识别克隆函数,因此它们难以检测功能相同但实现不同的函数代码.为此,提出了一种基于动态测试的方法以判定某个静态方法是否与现有API语义等价,进而判定是否需要进行替换.基于两个给定的函数自动生成测试用例.通过运行生成的测试用例可判定这两个函数是否语义等价.基于测试的语义等价函数检测方法通常需要较高的时间复杂度,因此将给定静态函数m与所有API函数都进行动态测试对比将导致极高的运行开销.为此,对于给定的方法m,我们基于语法和文本相似性对海量API进行过滤,只筛选出少量API函数进行测试对比,从而大幅降低动态测试的运行开销.本文提出的方法在10个开源项目上进行了实验验证.实验结果表明该方法是有效的,其准确率高达93.3%.
  • 摘要:SQL注入漏洞对软件安全产生了巨大威胁,对SQL注入的检测和防范是开发者在开发软件时必须考虑的一个重要因素。但现有的通用静态分析工具大多无法有效检测Android应用中的SQL注入漏洞.针对这一问题,分析了SQL注入漏洞的代码特征和数据特征,提出了一种基于污点分析的静态检测方法,并在开源工具FindBugs的基础上,实现了原型工具SQLInj.实验结果表明,该方法能有效检测出Android应用中存在的SQL注入漏洞.
  • 摘要:移动平台的恶意应用增长迅速,这些恶意应用会在用户不知情的情况下,通过恶意扣费、系统破坏、隐私窃取等恶意行为,给用户带来经济损失和隐私泄露问题。移动应用的行为是否恶意,与用户对该应用的期望相关.相关工作提出通过检测应用描述和应用行为的不一致性来检测恶意应用.然而,Android应用的一个特点是广泛使用第三方库.研究表明,Android应用中平均60%的代码都是属于第三方库,第三方库的使用会对应用异常行为的检测造成影响.因此,基于自然语言处理、机器学习和第三方库识别技术,实现一个改进的基于描述的Android应用异常行为检测工具.首先,通过自然语言处理技术对应用描述进行分析,使用遗传算法对应用描述聚类并寻找最佳聚类数目,得到相似描述(功能)的应用集合.然后对应用静态分析,检测应用中的第三方库,并分析应用的敏感行为.最后,相似描述的应用集合中的具有异常行为的应用即被检测为可疑应用.工具对Google Play应用市场中27.6万余个应用进行分析,实验结果验证所提出方法的有效性且说明第三方库对Android应用的异常行为检测有较大影响.
  • 摘要:移动平台上广泛存在权限滥用的问题,在用户不知情的情况下,很多应用会获取并泄露用户的隐私信息.本文提出一种基于应用敏感权限使用意图的隐私评级模型,基于众包数据中用户对不同的<应用,权限,意图>组合的评分,使用机器学习技术建立准确的隐私评级预测模型.通过静态分析应用使用敏感权限的意图,使用隐私评级模型对应用进行评分.实验结果表明,所建立的隐私评级模型能够达到80.7%的准确率.通过将隐私评级模型应用于来自谷歌商店的11,931个应用,结果表明大约8%的应用存在严重的隐私风险.
  • 摘要:当看板被引入到软件开发后,近十年来看板软件开发过程成为许多敏捷开发团队中广受追捧的开发方法.随着看板软件开发的广泛使用,对于开发过程的优化和改进变得尤为重要,因此对于看板开发过程的建模和对于影响因素的分析是有必要的,如在开发产品(Work In Process,WIP),人员配置等都会影响开发结果.借助于系统动力学仿真的方法,对看板软件开发过程中可能存在的变化因素和产品完成数的趋势进行了研究,分别定性和定量的分析了这些因素对开发过程的影响,最终发现WIP从宏观角度看对看板软件开发过程的影响不大,开发过程中开发人员与测试人员的合理配置对于开发结果有着巨大的影响.
  • 摘要:现如今,许多Android应用程序开发人员为了缩短开发时间,选择在其应用程序中内置第三方SDK.第三方SDK是一种由广告平台,数据提供商,社交网络和地图服务提供商等第三方服务公司开发的工具包,它已经成为Android生态系统的重要组成部分.令人担心的是,一个SDK有安全漏洞,会导致所有包含该SDK的应用程序易受攻击,这严重影响了Android生态系统的安全性.因此,我们在市场上选取了129个流行的第三方SDK并对其安全性进行了全面分析.为了提高分析的准确性,我们将第三方SDK的demo应用作为分析对象并使用了在分析Android应用中有效的分析方法(例如静态污点追踪、动态污点追踪、动态二进制插桩等)和分析工具(例如flowdroid、droidbox等).结果显示,在选取的这些SDK中,超过60%含有各种漏洞(例如:HTTP的误用,SSL/TLS的不正确配置,敏感权限滥用,身份识别,本地服务,通过日志造成信息泄露,开发人员的失误).这对于相关应用程序的使用者来说都造成很大的威胁.
  • 摘要:适航认证对机载软件至关重要,178C标准是重要的适航认证安全标准.Order8110.49指南提出了介入审查的适航认证方法,但是目前还未有对介入审查中软件计划阶段的178C目标符合性证据的研究.本文基于软件计划阶段需要审查的目标和DO-178C标准中针对目标的特征描述,提出了三种模型,分别是:标准证据模型、项目制品模型、项目相关证据模型,并通过项目相关证据模型向项目证据数据模型转换生成证据信息检查单,确定了证据信息的来源.建立证据模型的审查方法为软件计划阶段的审查提供了证据收集的指导,减少证据的收集过程对审定方审定人员的依赖,提高了审查效率.并通过一个机载飞行显示器软件的案例说明了本文提出的证据模型的可用性与有效性.
  • 摘要:全球开源软件生态中孕育的大众化软件生产模式正快速形成一种新型的软件生产力,在软件开发和应用各个环节发挥了巨大作用.大众化软件生产的数据规模日趋庞大、协同范围不断扩展、管理模式高度精简,这些全球化特征使其在软件复用、协同开发、知识管理等环节面临诸多挑战,迫切需要新的理论指导和工具支持.首先界定了大众化软件生产活动的分布范围、基本过程和数据形态,然后从软件复用、协同开发、知识管理三个核心环节对开源社区数据挖掘技术的研究工作进行了归类与分析,最后总结了该领域研究工作存在的问题和未来发展趋势.
  • 摘要:网络系统在提供各种便利的同时,也带来了诸多安全问题。为了反映信息系统安全漏洞的风险随时间动态变化的规律,构建基于吸收Markov链的漏洞生命周期模型,计算先验历史漏洞信息作为模型输入,构造漏洞生命周期的状态转移概率矩阵,在时间维度上利用矩阵对状态演化过程进行推导.借鉴通用漏洞评分标准分析漏洞威胁影响,给出安全漏洞的时间维度风险量化方法,并对漏洞生命周期各状态发生概率的演化规律进行总结和分析.最后以典型APT攻击场景中"WannaCry"勒索病毒的漏洞利用过程为例,验证了模型及方法的合理性和有效性.
  • 摘要:建模软件是辅助需求工程师分析的工具,在需求设计阶段必不可少.目前,很少有需求建模工具可以集成能跨平台运行、支持在线多用户协同以及验证需求模型正确性和完整性等功能.鉴于问题框架方法在需求工程领域获得较大关注,本文开发了一款用户体验较好,兼容多平台的计算机辅助问题框架建模软件.本研究解决了自动化校验问题图的正确性和完整性以及复杂问题图拆分等难题,实现了用户登录,云端数据库存储设计和多人协同建模和验证,从而构建了一个在线需求建模、共享和验证的平台.
  • 摘要:区块链是去中心化交易平台比特币的底层技术.该系统由分布式数据存储、点对点传输、共识机制、加密算法等计算机技术组成,它的安全性受到广泛关注.目前的研究大多使用数学证明的方法分析每个攻击的作用,本文提出了一种新颖的根据区块链的结构来评估和检测安全性的方法.在真实环境下当一个区块连接超过6个区块后,该区块的内容基本无法改变,被认为是稳定状态,分支产生的概率逐渐降低,因此整个系统的状态是有限的.该方法通过分析每个结构到达稳定状态的概率来评估系统的安全性,并通过实验分析了攻击力度,攻击状态和实验循环次数之间的关系,验证了该方法的可行性和有效性.
  • 摘要:Storm支持流式数据的高性能实时计算,是一种广泛使用的流式计算框架.在Storm应用的开发中,开发人员需要针对不同的流式数据需求定制开发相应的计算模块,往往导致大量的重复工作,且难以适应数据需求的变动.如何根据流式数据格式和计算方式等数据需求,快速开发并配置相应的Storm计算环境,是提升大部分流式计算应用开发效率的重要问题.提出了流式数据需求描述方法,设计并实现了一种基于Storm的、由数据需求驱动的流式数据实时处理应用辅助开发框架,根据业务人员描述的领域数据需求自动生成符合数据处理需求的Storm实时数据处理应用.实验表明,该框架能帮助不具备Storm开发能力甚至非软件开发人员快速配置常见的基于Storm的流式计算应用,对于常见的流式数据实时处理需求具有一定的适应性.
  • 摘要:在软件生命周期中,需求不断发生变更,而需求决策往往取决于开发人员的偏好和权衡,缺乏一种系统的、明确的管理方法.针对软件生命周期中不断出现的需求变更而引起的技术债务提出了一种需求变更技术债务定义.通过对需求变更技术债务的定义、检测、量化和排序,为需求变更的实现顺序以及实现方式提供技术支持.最后通过实验验证了需求变更技术债务概念和技术的可行性.
  • 摘要:软件开发者能力评价和协作关系推荐是大数据环境下软件智能化开发领域的一个研究热点.通过分析互联网开发者社区和企业内部开发环境,设计出基于模糊综合评价的开发者能力模型;随后,通过挖掘开发者与任务的动态交互行为、静态匹配度以及开发者能力三个不同维度的特征并结合矩阵分解技术,提出一种能力与行为感知的多特征融合协同过滤开发者推荐方法,最终解决开发者推荐面临的评价矩阵稀疏性和冷启动问题,提升个性化精准推荐效率.从系统层面给出适合大数据环境的多特征融合开发者推荐原型系统实践及对现有开源技术框架的优化改进,实验过程分别基于互联网问答社区StackOverflow和企业内部GitLab环境进行了实验分析.最后,对未来研究可能的问题及思路进行了展望.
  • 摘要:在软件工程的发展过程中,计算机科学家们为了降低软件开发的强度,缩短开发周期,一直以来都致力于程序自动补全方面的研究。程序自动补全问题可以视为序列预测问题,即基于已输入的代码预测下一个可能出现的代码片段.深度学习中的长短期记忆神经网络擅长于处理序列预测问题,因此基于长短期记忆神经网络对程序自动补全进行研究.不同于其他序列化数据,代码是一种包含结构信息的文本数据,若直接将代码视为序列化数据进行学习,则会因为丢失代码中包含的结构信息而使得程序补全效果较差.为此,可利用抽象语法树作为辅助工具,将代码转化为包含完整结构信息的序列化数据.另外传统的长短期记忆神经网络在处理结构化的数据时具有一定的局限性,因此可通过在网络中增设记忆单元的方式对其进行改进,以学习输入数据中结构信息.提出并实现了一种基于层次LSTM的程序自动补全模型——StackLSTM模型,实验结果表明,StackLSTM模型具有十分强大的学习能力,在小数据集中就可以很好地学会程序的语义以及结构信息,可以有效加速训练;它在大数据集中也能取得更好的效果,预测非终结符和终结符的准确率均高于传统的长短期记忆神经网络模型.
  • 摘要:移动应用软件特别是Android平台软件的缺陷预测研究引起广泛关注.当前,大量基于机器学习的软件缺陷预测模型方法被提出,并且达到较好的预测性能.本文提出一种针对Android二进制可执行文件的缺陷预测模型,同时采用具有深层结构的深度神经网络算法进行分类预测,提高了预测性能.首先,我们构建了一个用于Android二进制文件缺陷预测的数据集.其次,我们提出了一种创新的Android可执行文件缺陷特征提取方法,该方法提取smali文件(Andorid二进制文件的反汇编文件)的符号特征和语义特征来构建缺陷特征向量.最后,我们将缺陷特征向量输入深度神经网络算法来训练和构建缺陷预测模型.我们研发出模型工具原型DefectDroid,将其应用于大规模Android smali文件缺陷预测任务中,并从同项目缺陷预测、跨项目缺陷预测、传统机器学习算法等方面对模型进行性能评估对比.
  • 摘要:软件代码中的漏洞(Vulnerability)是导致软件出现故障和错误的重要原因,因此漏洞检测一直是软件安全领域的一个研究热点.近年来,利用含有已知漏洞的函数作为准则,通过查找相似代码实现来检测未知漏洞的方法已经被证明是有效的.但是,一个含有漏洞的函数通常也包含一些与已知漏洞无关的语句,严重影响相似度计算的结果,从而引发误报和漏报.提出了一种利用补丁来提高这种相似性检测准确性的漏洞发现新方法.结合漏洞的补丁信息,引入程序切片技术去除原来含有漏洞的函数中与漏洞无关的语句,利用获得的切片生成去噪的漏洞特征来进行潜在未知漏洞检测.该方法已经在一些真实的代码集中实施,并且实验结果证明该方法确实能够有效减弱漏洞无关语句的干扰,达到提高检测准确性的目的.该方法还成功检测到了3个新的未知漏洞且已经得到确认.
  • 摘要:针对当前Windows下GUI软件模糊测试过程中由于进入空转状态时刻判断不准确导致的测试效率降低的问题,本文利用自然语言处理方法的在函数执行迹的基础上来解决空转状态识别问题.论文首先分析了传统程序分析方法在空转状态判断上遇到的困难,提出了基于Bi-Gram模型以及统计分析的空转状态识别方法.通过Bi-Gram算法将程序函数执行迹转换为概率特征序列;利用空转状态在特征序列中的方差特征将空转状态特征序列从程序特征序列中分离,在此基础上进一步提取空转状态特征并实现空转状态实时检测算法.通过对典型源码与二进制软件程序的实验测试表明,本方法在效率和准确性上较传统方法上更优,能支撑对GUI程序模糊测试的需求.
  • 摘要:Web浏览是互联网用户最经常使用的功能之一,Web浏览性能是影响移动用户体验的重要因素.相对于传统PC设备的Web浏览,在移动设备上,用户对Web浏览的性能要求更加综合,关注包括加载时间、流量使用和电量消耗等指标.随着Web技术的发展,Web页面越来越复杂,新的网络传输协议不断涌现,移动浏览器越来越多样,加之移动设备网络环境的动态性和不确定性,对移动Web浏览的性能造成了复杂的影响.从移动浏览器、网络协议和网络环境这三个角度出发,分析移动Web浏览性能在不同环境下的差异并探究其原因.选取一定数量的代表性移动网页,搭建测试平台记录网页数据,之后在各种不同的网络环境、网络协议、移动浏览器的组合条件下访问记录的网页,进而分析比较加载时间、Speed Index等性能指标的差异,总结可能影响Web浏览性能的原因,并且为浏览器厂商、Web开发人员以及用户提供优化浏览体验的建议.
  • 摘要:软件定义网络(SDN)是一种能将基础设备的网络控制功能分离并集中地部署到控制器中的网络架构.实际的Hadoop系统中,存在一个最小化作业完成时间的NP完全问题.本文在Hadoop中引入SDN,利用SDN的网络控制能力,将网络中的可用剩余带宽作为任务调度的重要参数,并因此提出任务调度算法RBA.使用RBA可获得任务的近似最优分配方案,从而实现作业完成时间的最小化.最后,通过仿真实验验证RBA在作业完成时间、任务数据本地性及计算时间方面的性能.实验结果表明,总体上RBA较其他3个算法是更优的.
  • 摘要:软件安全性是衡量软件是否能够抵御恶意攻击的重要性质.在当前互联网环境下,黑客攻击无处不在,因而估计软件中可能含有的漏洞数量与类型,即对软件进行安全评估,变得十分必要.在实际中用户不仅需要对未发布、或者最新发布的软件实施安全性评估,对已发布软件也会有一定的安全评估需求,例如当用户需要从市场上互为竞争的多款软件中作出选择,就会希望能花费较低成本、较为客观地对这些软件进行第三方的评估与比较.提出了一种由自然语言数据驱动的智能化软件安全评估方法来满足这一要求,该方法基于待评估软件现有用户的使用经验信息来评估软件的安全性,它首先自适应地爬取用户在软件使用过程中对软件的自然语言评价数据,并利用深度学习方法与机器学习评估模型的双重训练来获得软件的安全性评估指标.由于自适应爬虫能够在反馈中调整特征词,并结合搜索引擎来获得异构数据,因而可通过采集广泛的自然语言数据来进行安全评估.另外,使用一对多的机器翻译训练能有效解决将自然语言数据转换为语义编码的问题,使得用于安全评估的机器学习模型可以建立在自然语言的语义特征基础上.进一步在国际通用漏洞披露数据库(CVE)和美国国家漏洞数据库(NVD)上对本文方法进行了实验,结果表明,该方法在评估软件漏洞数量,漏洞类型,以及漏洞严重程度等指标上十分有效.
  • 摘要:网页木马是一种在网页中插入攻击脚本,利用浏览器及其插件中的漏洞,使受害者的系统静默地下载并安装恶意程序的攻击形式.本文结合动态程序分析和机器学习方法,提出了基于动态行为分析的网页木马检测方法.首先,针对网页木马攻击中的着陆页上的攻击脚本获取行为,监控动态执行函数执行,包括动态生成函数执行、脚本插入、页面插入和URL跳转,并根据一套规则提取这些行为,此外提取与其相关的字符串操作记录作为特征.其次,针对利用堆恶意操作注入shellcode的行为,提出堆危险指标作为特征.最后从Alexa和VirusShare收集了500个网页样本作为数据集,用机器学习方法训练分类模型.实验结果表明:与现有方法相比,文中方法具有准确率高(96.94%)、能有效对抗代码混淆的干扰(较低的误报率6.1%和漏报率1.3%)等优点.
  • 摘要:随着信息技术的发展,软件的安全性也越来越受到人们的重视。近年来,各种软件保护机制层出不穷。unlink是一种常见的堆释放操作.目前,针对unlink操作发起的攻击愈加频繁.Linux系统已经发展出了多种保护机制防止unlink操作被利用,但这仍然不能避免unlink攻击的发生.本文将基于堆溢出漏洞发起的unlink攻击定义为unlink漏洞,并将其中可能导致任意内存读写的unlink漏洞定义为高危unlink漏洞.为了提高程序的安全性,实现对高危unlink漏洞的检测,提出了一个高危unlink漏洞模型,并根据该模型设计了高危unlink漏洞判定系统.该系统通过污点传播实现了对程序输入数据以及敏感操作的监控;通过符号执行构建程序污点变量传播的路径约束以及高危unlink漏洞的触发约束;通过对约束条件的求解,检测程序unlink漏洞是否能实现任意内存读写.实验证明,该系统能有效地对unlink漏洞进行分析,判断该漏洞是否属于高危unlink漏洞.
  • 摘要:随着智能机以及平板电脑的普及,安卓终端逐渐成为日常生活中不可或缺的重要元素之一,安卓端应用也随之蓬勃发展,其应用复杂度也呈几何倍数增长.作为软件生命周期中最为耗时的步骤之一,测试一直是软件开发工作的一项重要工作.由于人工测试太过耗时难以满足工业要求,越来越多的人将目光转向了自动化测试.但目前的自动化测试自动化程度还比较低;尤其安卓应用大量的操作都集中在图形化界面上,加大了自动化测试的难度.现存在较多基于UML模型针对应用内部事务逻辑的测试用例生成工具,然而这些工具生成的测试用例通常为简单的数据输入操作,难以符合图形化界面测试的要求.故此,相应的安卓应用测试的自动化程度普遍比较低.采用交互流建模语言(IFML)来进一步提高测试的自动化程度,针对安卓平台的特点,对交互流建模语言进行了相应的扩展,提高了其可用性与对安卓应用的适用性.另外,以该扩展后的交互流建模语言为模型,采用近年来备受关注的基于模型测试方式,提出了基于扩展的IFML模型的测试方法,并在此基础上实现了相应的原型工具.该工具能够有效地使用IFML为安卓应用建模,按照所设定的测试覆盖准则生成符合要求的测试序列并自动执行.实验结果表明,无论在测试覆盖度还是缺陷发现能力上该工具都有很好的表现.
  • 摘要:浏览器作为一种组成复杂的软件,针对其不同结构的漏洞挖掘需采用不同的模糊测试方法。模糊测试被广泛应用于浏览器的漏洞挖掘,其效果好坏的决定因素之一是测试者编写的测试模式.针对特定测试模式实现成本高、生存时间短等问题,本文提出了一种基于模式生成的浏览器模糊测试器自动构造方法,通过解析已知漏洞触发样本,自动提取测试模式,对模式中每个模块应用传统的变异策略,完成畸形样本的自动生成.实验表明,针对5款浏览器的1089个已知漏洞触发样本,平均仅用时11.168秒即可完成1089个不同模糊测试器的自动构建,远低于人为编写的时间消耗;随机选取其中10个模糊测试器分别对IE10、IE11、Firefox54.0的全补丁版本进行测试,共产生57个不同的崩溃样本,发现1个高危未知漏洞,证明本方法具有较好的未知漏洞发现能力.
  • 摘要:大型软件项目常常使用缺陷追踪系统,为软件的维护提供便利.随着开源软件项目规模的不断增大,人工为缺陷报告分派合适的开发人员(缺陷分派)变得越来越困难.而不合适的缺陷分派往往会严重影响缺陷修复的效率,为此迫切需要一种缺陷分派辅助技术帮助项目管理者更好地完成缺陷分派任务.当前,大部分研究工作都基于缺陷报告文本以及相关元数据信息分析来刻画开发者的特征,忽略了对开发者活跃度的考虑,使得对具有相似特征的开发者进行缺陷报告分派预测时表现较差.提出了一个基于循环神经网络的深度学习模型DeepTriage,一方面利用双向循环网络加池化方法提取缺陷报告的文本特征,一方面利用单向循环网络提取特定时刻的开发者活跃度特征,并融合两者,利用已修复的缺陷报告进行监督学习.在Eclipse等四个不同的开源项目数据集上的实验结果表明,DeepTriage较同类工作在缺陷分派预测准确率上有显著提升.
  • 摘要:Dev Ops通过将敏捷文化从开发无缝延伸到运维阶段,并打破传统软件过程中这二者之间的壁垒,简化软件生命周期的各个环节,促进软件的健康、快速、持续交付。作为敏捷文化的延伸,DevOps强调自动化及工具的支持.鉴于DevOps的支持工具数量庞大和种类繁多,理解和认识其现状有助于提高DevOps自动化实践水平.从两个方面来探究DevOps自动化实践与工具的现状:DevOps自动化支持工具有哪些;与自动化支持工具及DevOps自动化关键实践相关的问题与挑战是什么.采用了一种混合的经验研究方法,从学术界和工业界尽可能全面地收集证据,数据来源分别是学术文献、灰色文献,并通过调查问卷作为证据的补充和支撑.经过对数据的整合分析,报告了DevOps实践及工具的现状及挑战,同时重点揭示了DevOps三个关键实践、自动化软件交付过程相关的一系列问题与挑战,最后针对问题与挑战提出了可能的解决策略.
  • 摘要:本文给出了一个Android应用Offloading平台的设计与实现方案。Multi Offload平台由四部分构成:客户端部分(Client Part)、服务器部分(Server Part)、插桩后的移动应用(Instrumented App)和连接器(Connector)。MultiOffload是一个同时支持安卓应用计算任务卸载与转移执行、传感器功能"借用"和触摸控制转移的平台,搭载这个平台的移动设备可以互相发现并建立P2P网络,平台上的移动应用能够"借用"移动设备计算资源、传感器资源和屏幕资源;重新实现和完善已有的计算任务卸载、传感器借用的插桩技术并提出触控转移的插桩实现方案.最后实现了一个示例以说明平台设计的可行性,并选取两个安卓应用插桩展示资源借用的效果.
  • 摘要:持续集成(Continuous Integration,简称CI)是目前广泛使用的软件开发实践方法,然而很多项目对于如何实施持续集成缺乏认识,因此并不能很好地发挥持续集成的作用,且相关研究比较缺乏.本文选择GitHub上长期使用Travis CI的12个流行并且活跃的项目,通过挖掘代码提交历史以及持续集成构建历史,对其持续集成实践进行度量,旨在了解持续集成如何能给项目开发带来改进,以及在实践中可能存在的问题,并分析改进方法.本文对实践中持续集成被广泛认可的三个优势,包括辅助代码审查,缩短发布周期,降低测试代价,建立量度进行度量,发现持续集成使得大部分项目在这些方面都有显著改进.通过分析项目的构建结果和构建耗时,本文发现实践中存在下述四个可能影响持续集成效果的趋势,即构建数量不断增加,构建耗时不断上升,通过构建比例偏低,失败构建仍被接受,并讨论这些问题的原因以及影响.最后,针对实践中持续集成可能存在的问题,本文以Rails项目为例分析持续集成实践的三个改进方法,包括避免不必要的构建,调整构建任务的顺序,引入可选通过的构建任务,定位相关实例进行了阐释,并验证了这些方法的有效性.项目能够利用本文关于实践中持续集成优势和问题的度量方法衡量当前持续集成实践,另外,本文关于实践中持续集成的问题以及改进方法的度量结果能够帮助项目优化持续集成实践.
  • 摘要:资源泄漏是影响软件质量和可靠性的一种重要软件缺陷,存在资源泄漏的程序长时间运行会由于资源耗尽而发生异常甚至崩溃.静态代码分析是进行资源泄漏检测的一种有效技术手段,能够基于源代码或者二进制代码有效发现程序中潜在的资源泄漏问题.然而,精确的资源泄漏检测算法的复杂性会随着程序规模的增加呈现指数级增长,无法满足生产中即时对缺陷进行分析检测的实际应用需求.面向大规模源代码提出一种增量式的静态资源泄漏检测方法,该方法支持过程间流敏感的资源泄漏检测,在用户编辑代码的过程中从变更的函数入手,通过资源闭包、指向分析过滤等多种技术手段缩小资源泄漏检测范围,进而实现了大规模代码的即时缺陷分析与报告.实验结果表明,该方法在保证准确率的前提下,90%的增量检测实验可以在10s内完成,能够满足在用户编辑程序过程中对缺陷进行即时检测和报告的实际应用需求.
  • 摘要:软件开发过程中,同一代码文件经常由多名开发者共同开发和维护,各个开发者向文件贡献了不同的代码量,使之形成特有的贡献组成.代码文件的贡献组成是否合理直接影响开发者的任务分配,进而影响软件质量和开发效率.对于不同类型的代码文件,如何刻画并确定其合理的贡献组成模式,成为一个亟待解决的问题.首先,基于代码所有权,从贡献组成的集中度、复杂度和稳定性三个维度出发,提出刻画贡献组成的三个量度.其次,以OpenStack的核心项目Nova为研究案例,在其版本控制数据上建立贡献组成的量度,总结了12种通用文件类型,归纳出3种贡献组成模式.最后,结合邮件以及面对面访谈的方式,验证了量度的有效性以及贡献组成模式的合理性,并从贡献组成的角度,对软件开发过程给出了一些指导性建议.
  • 摘要:在航空电子、医疗器械等嵌入式领域中,多核时代已经来临,如何充分利用多核成为了现在系统领域的研究热点.同时由于系统集成度越来越高,一个硬件平台可能需要同时运行不同安全级别的任务,这就需要操作系统为应用提供隔离与保护.为了解决这两个问题,在目前只支持单核的seL4基础上分别加入多核和分区隔离的支持,之后又提出多核和分区机制结合的方案,实现带分区机制的多核seL4,最终运行在qemu模拟器上,分区机制的实现符合ARINC653标准的语义.
  • 摘要:如何对以"工业4.0"为背景的物联网智慧医疗系统所产生的医疗数据进行高效而又准确地挖掘仍然是一个十分严峻的问题.而医疗数据往往是高维的、不平衡和有噪声的,基于此,本文提出一种新的数据处理方法——将SMOTE方法与Filter-Wrapper特征选择算法融合——用于支持临床医疗决策.将本文的算法应用于ECG临床医疗决策中,并取得了很好的效果.将本文所提算法用于心电图数据集中,可以得到高效而又准确的病人病症分类结果,在心电图治疗之中起到了辅助作用。本文提出的方法不仅克服了朴素贝叶斯在属性实际应用中因属性独立假设而造成预测不佳的情况,而且避免了C4.5决策树在构建模型时的过拟合问题.
  • 摘要:为解决开发人员多采用异步编程方式来提高用户体验而引发的Android系统响应性能低下、程序执行过程复杂性增加的问题,提出一种基于异步跟踪实现Android应用响应性能检测与分析的方法.通过对Android系统的Framework层中关键代码进行插桩,完成对程序异步线程执行过程的跟踪,并构建出跨越异步调用边界的关键路径.通过对关键路径的分析,获得响应性能的主要原因.实验结果表明,达到了预期目标.
  • 摘要:随着信息化的深入,大数据在各个领域产生了巨大的价值,海量数据的存储和快速分析成为新的挑战.传统的关系型数据库由于其性能、扩展性的不足以及价格昂贵等方面的缺点难以满足大数据的存储和分析需求.Spark SQL是基于大数据处理框架Spark的数据分析工具,目前已支持TPC-DS基准,成为了大数据背景下传统数据仓库的替代解决方案.全文检索作为一种文本搜索的有效方式,能够与一般查询操作结合使用,提供更加丰富的查询和分析操作.目前,Spark SQL仅支持简单的查询操作,不支持全文检索.为了满足传统业务迁移和现有业务的使用需求,提出了分布式全文检索框架,涵盖了SQL文法,SQL翻译转换框架,全文检索并行化,检索优化等4个模块,并在Spark SQL上进行了实现.实验结果表明对比传统的数据库,在两种检索优化策略下,该框架索引构建时间、查询时间分别是传统数据库的0.6%/0.5%、1%/10%,索引存储量减少为传统数据库的55.0%.
  • 摘要:安卓移动应用开发者需要通过不断地经验积累来提升其设计安卓界面及行为交互的能力.为了降低开发者在选择、试用、学习安卓应用方面所带来的人工成本,本文提出了一种基于布局与交互分析的安卓应用界面模式抽取与检索方法.以安卓活动(Activity)为单元的界面模式代表了活动的界面布局及交互行为.本方法以此为分析目标,从一组开源的安卓应用项目中抽取出每一个活动的界面模式.在此基础上,支持用户通过检索的方式获取与其需求相关的活动设计细节.该方法被实现为一组工具链,为抽取与检索提供自动化支持.最后,通过两个案例对本方法的准确性与有效性进行验证.
  • 摘要:缺陷修复是软件维护的重要环节,然而缺陷定位和缺陷分派是缺陷修复过程中较为关键和困难的任务.一方面,从缺陷报告定位到源代码,需要开发人员具有相关知识和经验;另一方面,估算缺陷修复工作量也较为困难,错误的估计会导致不当的分派,从而延迟缺陷修复流程.当前,大部分研究工作基于信息检索方法进行缺陷定位,其基本假设是缺陷报告与关联源代码在文本上更为相似,但此类方法忽略了代码变动等信息的利用.通过研究代码变动信息在缺陷修复中的作用,提出了一种监督式的主题生成模型,建模了缺陷报告文本与关联代码的变动信息.在三个开源项目数据集上的实验结果表明,该方法在缺陷定位准确率上较rVSM方法有7%~66%的提升.
  • 摘要:随着嵌入式软件系统在汽车、核工业、航空、航天等安全关键领域的广泛应用,其失效将会导致财产的损失、环境的破坏甚至人员的伤亡,使得保障软件安全性成为系统开发过程中的重要部分.传统的安全性分析方法主要应用在软件的需求分析阶段和设计阶段,然而需求与设计之间的鸿沟却一直是软件工程领域的一大难题.正是由于这一鸿沟的存在,使得需求分析阶段的安全性分析结果难以完整详尽地反映在软件设计中,其根本原因是当前的软件需求主要通过自然语言描述,存在二义性与模糊性,且难以进行自动化处理.为了解决这一问题,面向构件化嵌入式软件,首先提出了一种半结构化的限定自然语言需求模板用于需求规约,能够有效降低自然语言需求的二义性与模糊性.然后,为了降低自动化处理的复杂性,采用需求抽象语法图作为中间模型实现基于限定自然语言需求模板规约的软件需求与AADL模型之间的转换,并在此过程中自动记录两者之间的可追踪关系.最后,基于AADL开源工具OSATE对所提方法进行了插件实现,并通过航天器导航、制导与控制系统(Guidance,Navigation and Control,GNC)进行了实例性验证.
  • 摘要:软件缓冲区溢出漏洞是危害最为广泛和严重的安全漏洞之一,彻底消除缓冲区溢出漏洞相当困难.学术界、工业界提出了众多缓冲区溢出漏洞检测技术与工具,面对众多的工具,使用者如何结合自身需求有效的选择工具,进而应用到漏洞的检测与修复、预防与保护、度量与评估等方面,是个具体而实际的问题.解决这一问题,需要在各异的用户需求与多样的缓冲区溢出检测技术与工具之间建立一张条理清晰、便于用户理解和使用的映射图谱.站在使用者的立场,在概述缓冲区溢出漏洞类型与特征的基础上,从软件生命周期阶段的检测与修复、缓冲区溢出攻击阶段的预防与保护、基于认识与理解途径的度量与评估三个应用视角,对缓冲区溢出漏洞检测技术与工具进行梳理,一定程度上在用户需求、检测技术与工具之间建立了一张映射图谱.
  • 摘要:无人飞行系统(Unmanned Aerial Systems,UAS)包括无人机、无人浮空器、跨介质无人飞行器等各类飞行平台以及相关设备。软件在无人飞行系统中发挥着核心控制作用,软件中存在的缺陷或软件系统的设计考虑不够全面、健壮,将会给无人系统的保密安全性(Security)和可靠安全性(Safety)带来极大威胁.由于UAS的运行环境复杂多变,很多因素在开发过程中难以准确预测,因此研究有效的运行时安全保证机制具有重要意义.本文提出一种基于运行时验证的UAS安全威胁检测方法.首先对UAS可能遇到的多种安全威胁进行分析并采用离散时间时序逻辑进行描述,提出相应的UAS-DL语言描述安全监控规约;然后基于交错自动机提出了自动生成安全威胁监控器的算法,并利用参数化方法实现对多UAS的安全监控.为了提高检测的准确性,进一步研究了将运行时验证和贝叶斯网络推断结合的方法.采用实际的UAS开发仿真平台Ardupilot进行了实验,并设计了将监控器独立部署在FPGA硬件上的方法,避免对UAS计算资源的过多占用.实验结果表明上述方法能够有效检测UAS的安全威胁.
  • 摘要:云计算在为人们日常生活提供极大便利的同时,也带来了较大安全威胁.近年来云平台IaaS层虚拟化机制的漏洞层出不穷,如何有效挖掘虚拟化实现过程中的拒绝服务及逃逸漏洞是当前的研究难点.本文分析已知虚拟化平台的相关漏洞,抽取并推演目标数据集合,设计并实现了一种随机化的模糊测试方法,进一步,基于灰度马尔科夫模型设计了一种自动化预测方法,实时监督并调整模糊测试的方向,实现面向虚拟化平台的自适应模糊测试目的.最终设计并实现了原型系统VirtualFuzz,实验数据表明:所提方法可有效检测虚拟化平台中的拒绝服务及逃逸漏洞,共得到24个漏洞测试用例,其中验证了18个已知漏洞,挖掘得到了6个未知漏洞,且已有3个漏洞获得CVE授权;同时通过与其他模糊测试工具的对比突出了原型系统的性能优化效果.
  • 摘要:模糊测试是一种有效的软件漏洞挖掘技术.为改善模糊测试因盲目变异而导致的效率低下的问题,需要围绕输入特征、变异策略、种子样本筛选、异常样本发现与分析等方面不断定制模糊测试器,从而花费了大量的定制成本.针对通用型模糊测试器(即支持多类输入格式及目标软件的模糊测试器)的低成本定制和高可扩展性需求,本文首次提出了一种可编程模糊测试框架,基于该框架漏洞挖掘人员仅需编写模糊测试制导程序即可完成定制化模糊测试,在不降低模糊测试效果的基础上可大幅提高模糊测试器开发效率.该框架包含一组涉及变异、监控、反馈等环节的模糊测试原语,作为制导程序的基本语句;还包含一套编程规范(FDS)及FDS解析器,支持制导程序的编写、解析和模糊测试器的生成.基于实现的可编程模糊测试框架原型Puzzer,在26个模糊测试原语的支持下,漏洞挖掘人员平均编写54行代码即可实现当前主流的5款万级代码模糊测试器的核心功能,并可覆盖总计87.8%的基本操作.基于Puzzer实现的AFL等价模糊测试器,仅用51行代码即可达到与AFL相当的模糊测试效果,具有良好的有效性.
  • 摘要:软件开发高度依赖开发者的群体贡献,因而提高开发者群体的协作效率是提高软件开发效率与质量的重要问题.近年来,通过挖掘并利用软件大数据中蕴含的知识来提高软件开发的智能化水平已成为软件工程领域中的热点研究问题.然而,对软件开发者及其群体协作方法的研究尚未形成系统化的研究成果.因此,以开发者群体为研究对象,通过深入分析开发者的行为历史数据,研究面向智能协作的关键技术,并以此为基础研制相应的支撑环境.首先分析总结了相关研究工作;然后,给出了软件开发者能力特征模型及其协作关系模型,并构建了开发者知识图谱;进一步以开发者知识图谱为支撑,以两个开发者推荐方法为例介绍了基于智能推荐的协作开发方法;基于以上关键技术,研发了相应的支撑工具,并构建了智能协作开发环境原型系统;最后,对本文的工作进行了总结和展望.
  • 摘要:在机载设备测试中,各种测试信号的准确定义和检测是保证飞行安全的关键因素.本文提出一种面向自动测试机载设备测试需求描述的信号模型,通过将机载设备测试需求中所涉及到的信号进行分类,以及将测试设备和被测设备之间传送的信号视作带有一组参数的动作,建立适用于自动测试机载设备需求描述的信号模型,旨在解决目前工业界中机载设备自动化测试需求中的信号规范描述问题.
  • 摘要:软件开发与维护过程中常会出现一些安全性缺陷,这些安全性缺陷会给软件和用户带来很大的风险.安全性缺陷在修复过程中,其修复级别和质量要求往往高于一般性的缺陷,因此,推荐出富有安全性经验的开发者及时有效地修复这些安全性缺陷非常重要.现有的开发者推荐技术在推荐开发者时仅仅考虑了开发者的历史开发内容,很少考虑到开发人员的安全性缺陷修复经验和修复质量等因素,所以这些技术不适用于安全性缺陷的开发者推荐.针对安全性缺陷的修复提出了一种有效的软件开发者推荐方法SecDR.SecDR在推荐开发者时不仅考虑了开发者的历史开发内容(与安全性相关),还分析了开发者的修复质量和历史修复缺陷的复杂度等因素.此外,SecDR还实现了开发者的多经验级别推荐:推荐初级开发者修复简单的安全性缺陷,高级开发者修复复杂的安全性缺陷.在三个开源项目(Mozilla,Libgdx,ElasticSearch)上分别对SecDR推荐开发者进行有效性验证.通过对比实验证明,SecDR针对安全性缺陷推荐开发者相比于其他方法(如:DR_PSF)的推荐精度平均高出19%~42%.另外,实验对比了SecDR与实际开发人员的分配情况,结果显示SecDR可以更好地规避不合理的软件开发者的推荐.
  • 摘要:面向标准的目标符合性论证是适航认证领域的重要研究内容.在论证过程中,为表明目标符合性论证结果满足期望要求,有必要进一步收集证据.然而,由于缺少有效的方法帮助划定证据收集范围,导致证据收集的结果往往是高成本低效力的.因此,必须避免收集任何低效力且高收集成本的证据,以确保在目标符合性论证结果满足期望要求时证据收集总成本较低.文中针对定量评估的论证方法,提出了一种成本优化的证据收集方案,以便于明确需收集的证据项及收集力度.通过一个覆盖多分支情况的案例,评估了方案的有效性.
  • 摘要:代码注释是辅助编程人员理解源代码的有效手段之一.高质量的注释决策不仅能覆盖软件系统中的核心代码片段,还能避免产生多余的代码注释.然而,在实际开发中,编程人员往往缺乏统一的注释规范,大部分的注释决策都取决于个人经验以及领域知识.对于新手程序员来说,注释决策显然成为了一项重要而艰巨的任务.为了减少编程人员投入过多的精力在注释决策上,文章从大量的代码注释实例中学习出一种通用的注释决策规范,并提出了一种新颖的CommentAdviser方法用以辅助编程人员在代码开发过程中做出恰当的注释决策.由于注释决策与代码本身的上下文信息密切相关,因此,从当前代码行的上下文代码中提取代码结构特征以及代码语义特征作为支持注释决策的主要依据.然后,利用机器学习算法判定当前代码行是否为可能的注释点.在GitHub中的10个大型开源软件的数据集上评估了我们提出的方法,实验结果以及用户调研表明代码注释决策支持方法CommentAdviser的可行性和有效性.
  • 摘要:安全漏洞检测是保障软件安全性的重要手段.随着互联网的发展,黑客的攻击手段日趋多样化,且攻击技术不断翻新,使软件安全受到了新的威胁.本文描述了当前软件中实际存在的一种新类型的安全漏洞隐患,称之为数值稳定性相关的安全漏洞隐患.由于黑客可以利用该类漏洞绕过现有的防护措施,且已有的数值稳定性分析方法很难检测到该类漏洞的存在,因而这一新类型的漏洞隐患十分危险.面对这一挑战,本文首先从数值稳定性引起软件行为改变的角度定义了数值稳定性相关的安全漏洞隐患,并给出了对应的自动化检测方法.该方法基于动静态相结合的程序分析与符号执行技术,通过数值变量符号式提取、静态攻击流程分析、以及高精度动态攻击验证三个步骤,来检测和分析软件中可能存在的数值稳定性相关安全漏洞.在业界多个著名开源软件上进行了实例研究,实验结果表明,本文方法能够有效检测到实际软件中真实存在的数值稳定性相关漏洞隐患.
  • 摘要:科研人员在日常研究中经常使用Excel,Spss等工具对数据进行分析加工来获得相关领域知识.然而随着大数据时代的到来,常用的数据处理软件因单机性能的限制已经不能满足科研人员对大数据分析处理的需求.大数据的处理和可视化离不开分布式计算环境.因此,为了完成对大数据的快速处理和可视化,科研人员不光需要购置、维护分布式集群环境,还需要具备在分布式环境下编程的能力和相应的前端数据可视化技术.这对很多非计算机科班的数据分析工作者来讲是非常困难且不必要的.针对上述问题,提出了一种基于Web的轻量级大数据处理和可视化工具.通过该工具,数据分析工作者只需通过简单的点击和拖动,便可以在浏览器中轻松地打开大型数据文件(GB级别)、快速对文件进行定位(跳转到文件某一行)、方便地调用分布式计算框架对文件内容进行排序或求极大值、便捷地对数据进行可视化等操作.最后进行了相应的实证研究,证明该解决方案是有效的.
  • 摘要:移动深度链接是一种通过URI(Uniform Resource Identifier)从移动应用外部直接访问内部特定页面的机制.目前深度链接的执行方式有直接执行和延迟执行两种.然而,随着移动应用市场的发展,深度链接启动的目标应用经常未在手机上安装,限制了深度链接机制的应用和推广,给用户的使用造成不便.因此设计并实现了一种深度链接的云端执行框架:在云端安卓虚拟机中执行深度链接,手机通过服务器与云端虚拟机进行通信,进而在手机未安装目标应用时也能达到与本地直接执行一致的用户体验.实验表明,该框架可以正确地执行深度链接,并且延迟及流量消耗处于可控范围内.
  • 摘要:软件可维护性预测针对软件演化活动的容易程度建立预测模型,并在此基础上实现可维护性评价的研究.当前可维护性预测研究将带有标记的源代码、开发日志、维护日志等数据作为训练数据,并基于此构建可维护性预测模型.由于训练数据标记过程需要开销很大,导致现有方法无法适用于实际演化活动.针对上述问题,提出了一种基于半监督数据分组技术的软件可维护性预测方法SGMDH.通过与基线方法和监督方法进行比对实验,结果表明,该方法的预测准确率分别比基线方法高42%(UIMS数据集)和45%(QUES数据集).同时,半监督方法在两个数据集上均比监督方法表现出较高的准确率,说明该方法具有较强的普适性.
  • 摘要:为了检测软件系统中存在错误参数的函数调用,本文提出了一种基于关联分析和N-Gram语言模型的静态异常检测方法(ANiaD).基于海量开源代码,构建了关联分析模型以挖掘函数调用参数间存在的强关联规则.针对参数间存在强关联规则的函数调用构建N-Gram语言模型.基于训练过的N-Gram模型,计算给定函数调用语句是否正确的概率.低概率的函数调用被报告为异常函数调用.基于10个开源Java项目对该方法进行实验验证.实验结果表明该方法检测的查准率约43.40%,显著高于现有的基于相似度的检测方法(查准率25%).
  • 摘要:软件失效模式的使用可以帮助开发人员与测试人员能够高效的开展失效的预防和发现等工作,进而提高软件质量.现有软件失效模式的通用性使得在实际工作中难以发挥更大作用,且目标软件的失效模式难以人工提炼,因此提出利用失效原因和失效影响组合的形式表示软件失效模式,并利用文本挖掘方法,提出面向失效文本描述的软件失效模式自动生成方法.该方法通过利用软件异常分类字典构建分类器,用以对历史软件失效文本的描述进行分类;之后对经过预处理后的失效文本,利用k-means聚类算法开展文本聚类;进而从聚类后的类簇中选取有代表性的失效文本作为类簇标签;最后开展失效原因和失效影响的文本抽取并通过文本匹配方法实现失效模式的自动生成.
  • 摘要:目前越来越多的云平台开始采用容器组成的集群为云服务提供运行环境,而其中如何在多租户环境下为用户的容器集群提供高效可用的网络成为了一个重要的技术问题.对此,以Linux容器为例,提出了一种面向多租户的Linux容器集群组网方法.这种方法参考了Kubernetes的组网方法,并在其基础上简化了网络结构,并引入了网络隔离,使得构建而成的网络能够满足多用户场景下的需求.论文描述了此种组网方法在小规模和大规模应用场景下的设计和它在真实的容器云平台Docklet中的实现,实现的代码是开源的,并且,还进行了实验与评估.实验证明,这一组网方法所构成的虚拟网络与原生网络的性能相当的接近,其TCP出口下行带宽与原生网络相差0.5%以内,而TCP内部通信带宽大约只损失3.5%,且对批处理型应用和长服务型应用都有良好的支撑.
  • 摘要:针对硬件设备的自动测试设备(ATE)软件开发通常是一个冗长、耗时的任务,开发者需要向来自不同方面的专业人员了解被测设备的外部端口、信号、测试流程和信号检查等多种类型的信息,逐步确定开发需求.在这个过程中,ATE的开发人员遇到的最大困难是缺乏一种规范的模型,以描述由不同合作方提供的测试信息,导致产出的测试文档篇幅长、不易理解,容易出现错误等问题.提出面向ATE领域的多视角建模方法,来规范化描述ATE中的测试信息、检查信息的一致性,并以真实工业案例说明其有效性.
  • 摘要:互联网、机器学习、人工智能等技术的迅速发展以及大量开源软件和开源社区的出现给软件工程的发展带来了新的机遇和挑战.目前在互联网上已经存在了数十亿行的各类程序代码,这些代码中存在着各种知识,尤其是众多已被广泛使用、高质量的软件代码,由此催生了利用大规模代码资源中蕴涵的众多知识进行智能化软件开发的新思路.它试图充分利用互联网中存在的代码资源、知识和群体智慧,以有效提高软件开发的效率和质量,其核心技术是程序搜索与构造,具有非常重要的理论与应用价值.目前该方向的研究工作主要集中在代码搜索、程序合成、代码推荐与补全、缺陷检测、代码风格改善、程序自动修复等方面.从以上几个方面对当前的主要研究工作进行综述,对具体的理论和技术途径进行梳理,并在最后总结了目前该领域研究过程中面临的挑战,给出了建议的研究方向.
  • 摘要:移动广告作为市场营销的一种重要手段,越来越受到应用开发者的青睐,其市场规模也日趋增大.但是,为了追求广告的精准投放和其他非法利益,移动广告给用户的隐私与财产安全也带来了很大威胁.目前,众多学者关注广告平台、广告主和移动应用的安全风险,还没有出现在广告网络中直接发起攻击的案例.本文提出一种基于宿主权限的移动广告漏洞攻击方法,能够在移动应用获取广告内容时在流量中植入攻击代码.通过对广告流量的拦截,提取出宿主应用的标识和客户端相关信息,间接得到宿主应用的权限列表和当前设备的WebView漏洞.另外,本文提出一种攻击者的能力描述语言,能够自动生成定制化的攻击载荷.实验表明,本文所提出的攻击方法能够影响到大量含有移动广告的应用,几个攻击实例的分析也证明了自动生成攻击载荷的可行性.最后,本文提出了几种防护方法和安全增强措施,包括应用标识混淆、完整性校验和中间人攻击防护技术等.
  • 摘要:随着安卓系统的广泛使用,系统提供的功能也越来越多,其中一个重要特性是1.6版本中引入并在4.0及以上版本中优化的无障碍辅助性服务.通过无障碍辅助功能,应用不仅可以获得输入框输入文本等窗口元素信息,还可以与应用窗口自动地进行双向交互(如获得按钮信息点击按钮).然而,这些特性一旦被滥用将会给用户带来巨大的安全威胁.本安卓系统中的无障碍辅助性服务进行深入研究,分析其可能被滥用的途径,并找出安全缺陷及产生原因.然后提出了基于分布式信息流的控制机制标记并跟踪无障碍辅助性服务和无障碍事件以进行安全加固.实现了一个名为的Tassel安全系统以防止无障碍辅助性服务滥用.经过测试,该系统可以在不影响系统其他功能正常使用的前提下,保证服务的使用安全,且系统整体的性能影响很小.
  • 摘要:开源软件中如何真实评估所有开发者的贡献度并有效区分核心开发者和外围开发者是一个重要的研究问题.通过设计开发文件的贡献度分配算法,以9个Apache项目为基础分析了开发者对项目的贡献度,并以此有效地区分核心开发者和外围开发者.实验结果通过Apache官方主页公布的开发者地位名单进行考证,同时在分类预测的准确度上与传统评估方案进行了比较,验证了算法的实用性和有效性.
  • 摘要:随着信息技术的不断发展和应用,大量信息系统积累了海量多源异构数据,这些数据中有很大一部分都是结构化数据,这些数据大多具有高维度、低质量、无标注等特点,难以进行特征提取与进一步的知识提炼.因此,针对这类结构化数据进行分析处理是大数据分析的重要工作之一.主题建模是文本处理和数据挖掘中的一个非常重要的方法,它是一种无监督学习算法,最初用于对无结构的自然语言文本进行建模,可以有效地从文本语义中提取主题信息,以进行特征提取和降维分析,然而主题建模技术尚不能很好应用在关系复杂的多源数据,尤其是结构化数据的处理中.提出了一个基于可扩展主题建模技术的针对结构化与非结构化多源数据分析框架,针对多源数据的特点,通过数据导入、数据分析、数据可视化三个步骤对多源数据进行基于主题建模技术的数据分析,并在此基础上实现了一个多源数据分析工具,最后通过两个数据集的实验证明了本文所提的多源数据分析框架的有效性.
  • 摘要:应用服务器是一种生成应用程序且提供其运行环境的软件结构,在复杂而需求多变的实际环境中,应用服务器为了维护系统的性能需要对服务器的配置参数进行不断调整,而当前采用的人为调整总是困难低效而且易错的,因而需要一种参数自适应策略在应用服务器运行时刻动态地调整参数从而提高服务器的性能.论文采用一种基于模糊控制的爬山算法作为自适应策略对应用服务器架构进行拓展,实现了应用服务器的参数自适应,并在应用服务器中部署了在线股票交易系统进行了仿真测试,验证了自适应策略的有效性.
  • 客服微信

  • 服务号