【摘 要】
:
在互联网时代,Web应用发展迅猛并且正在成为许多领域的核心业务,是信息共享和资源获取的重要载体,其安全性和可靠性也成为了许多企业和研究者重点关注的问题。Web应用中的交互通常强烈依赖于用户的交互式输入,并且由于编程人员的经验不足或安全意识的缺失导致了输入约束漏洞,而这个漏洞常常导致应用程序被网络攻击,造成信息泄露和系统破坏等不可估量的损失。随着Web应用客户端计算功能的强大和用户对实时信息与实时互
论文部分内容阅读
在互联网时代,Web应用发展迅猛并且正在成为许多领域的核心业务,是信息共享和资源获取的重要载体,其安全性和可靠性也成为了许多企业和研究者重点关注的问题。Web应用中的交互通常强烈依赖于用户的交互式输入,并且由于编程人员的经验不足或安全意识的缺失导致了输入约束漏洞,而这个漏洞常常导致应用程序被网络攻击,造成信息泄露和系统破坏等不可估量的损失。随着Web应用客户端计算功能的强大和用户对实时信息与实时互动需求的迫切,许多数据验证功能已经迁移到了客户端,以此来减少服务器端的性能开销,因此,Web应用程序客户端的输入约束检测是必不可少的,也是重要的特性。现有的输入约束检测相关研究主要分为基于规范和基于静态分析的方法来生成测试用例去检测输入约束函数。前者严重依赖于开发文档质量,并且测试覆盖率和测试准确率都比较低,后者生成测试用例过程太耗时,并且在实际项目中的测试效果不理想。它们两者共同存在的问题是都需要通过测试用例去执行测试代码才能发现漏洞,并且测试结果无法直观地显示是什么约束类型导致了约束验证功能的漏洞,开发人员还得根据测试结果重新理解自己的约束代码,再进行反复修改测试,导致开发周期长,效率低。针对上述问题,为了帮助开发人员理解自己编写的约束验证代码,并且在编写代码过程中及时发现输入约束代码中的漏洞,本文提出了基于BERT预训练模型的方法来实现约束代码检测的研究。本文的主要的工作内容及贡献如下:(1)通过半监督学习方法构建输入约束代码数据集。利用自然语言处理技术对约束代码检测的研究的首要前提就是数据集,由于现有研究中并没有公开的输入约束代码数据集,本文首先采集了github公开的Coede Search Net代码数据集中Java Script代码部分;其次,为了提取出只与输入约束有关的代码,因此需要将其数据集进行标注分类,然而在代码领域进行高质量的数据标注耗时耗力,标注代价巨大,并且传统的半监督学习方法往往只利用标注数据或未标注的数据,容易出现过拟合现象,因此,本文采用了一种基于Mix Text半监督的文本分类方法,对有标注代码和未标注代码的隐式空间进行插值,挖掘代码之间的隐式关系,并在学习有标签代码的同时利用无标签代码的信息来分类出输入约束代码,实验结果表明在200个有标注代码和50000个未标注代码上的分类准确率为79%,并通过消融研究证明了在BERT模型中的{7,9,12}层进行代码的插值分类准确率最高,为本文约束代码检测的研究奠定了基础。(2)提出了基于Code BERT和CRF结合的约束代码实体识别方法。由于Java Script代码语法众多且复杂,实现方式多样,通过人工设计的启发式规则无法准确的提取出输入约束代码的语义特征。针对这个问题,本文根据约束代码的特征拆分为约束函数名、约束变量、约束条件判断、约束反馈行为四部分实体构成。由于代码也属于文本,因此,本文首次将自然语言处理中命名实体识别的方法运用到约束代码实体识别上,采用约束实体标签和BIEO标签联合标注的方式对约束代码进行标注。由于预训练模型具有更好的模型泛化能力和更少的特征工程依赖,本文提出了基于Code BERT预训练模型和条件随机场(CRF)结合的方式来提取约束代码特征,实验结果证明Code BERT-CRF模型约束代码实体预测的精确率、召回率、F1值分别为81.12%,79.87%,80.88%,比其他主流的命名实体识别模型具有更高的预测准确率,证明了该方法的可行性和有效性。(3)提出了基于机器学习的约束代码分类方法。为了准确将约束代码的语义通过自然语言的方式呈现出来,帮助开发人员理解代码并及时发现约束代码漏洞,本文通过机器学习的方法将输入约束代码的各类特征分类为对应的代码语义描述。由于目前还没有对输入约束的类别进行总结的研究,本文首先通过卡片分类法将实际开发中常见的输入约束代码进行分类;其次,通过特征设计和特征选择提取了有关输入约束代码的语义特征、关键词特征、信息特征;由于输入约束代码可能属于多种约束类型,因此,本文最后对比了三种不同类别的机器学习多标签分类方法在约束代码分类中的效果。实验结果表明,基于集成学习的极度随机树算法分类的平均精确率为78%,要优于其它两个模型,而在独误损失和覆盖率上ML-KNN表现更好,分别为0.197和0.203。
其他文献
SDN(Software Defined Network)是一种新型的网络架构,解耦控制平面与数据平面,实现网络的集中控制,有效解决了传统网络配置复杂、设备管理困难等问题,能更好的实现全局优化。但随着网络规模的不断扩张,单控制器部署有限的处理能力以及易出现单点失效等问题,已成为整个SDN网络的瓶颈。因而多控制器部署已成为必然趋势。但由于网络流量具有时变性和突发性,极易引发控制平面负载不均衡,致使网
叶片是航空发动机、燃气轮机等动力机械中的重要零件,其型面的加工质量严重影响着整机的工作性能,因此对其型面轮廓进行检测是十分必要的。叶片型面一般为变截面的扭转曲面,同时型面曲率变化较大,具有较大的检测难度。传统三坐标测量法通过获取叶片型面特定截面的轮廓数据评价出叶片加工质量,适用于精加工叶片的检测,无法反映出叶片整体的尺寸偏差,同时对检测环境具有较高的要求,无法实现叶片在线检测。随着光学测量技术的发
由于航空发动机机体结构复杂,具有拆装难、维修不易的特点,新手操作者对各种发动机零件类型的不熟悉,在航空发动机换发领域存在培训难上手、实践成本高等问题,因此,常利用目标检测方法对零件类型进行分类检测。但由于实际环境中零件堆放杂乱,容易出现遮挡的情况,利用传统的单一目标二维识别方法会因为无法提取足够的特征信息,易出现错误的检测结果,无法满足需求;同时,传统的换发培训流程是基于纸质或电子文档,培训效率较
随着网络规模的增大和新型网络应用的不断出现,网络流量呈指数级增长,如何根据网络的状态和需求找到一种实时的自适应的智能路由是提高网络资源利用和服务质量的关键。SDN(Software Defined Networks)的出现提供了灵活高效的网络控制,降低了路由优化的难度。数据驱动的方法适应并优化了网络的实际状态,随着机器学习在很多领域取得了非常不错的进展,许多研究者开始尝试使用机器学习来解决路由优化
三维人脸重建技术逐渐开始受到学者们的关注并在安防、医疗美容、影视娱乐等多个领域进行应用。目前三维采集需要通过昂贵的专业三维采集设备且需要较长的采集时间,而基于单张照片的三维人脸重建技术具有只需要用手机就能对人脸进行采集的优点。目前基于二维人脸照片进行三维人脸重建的算法生成三维人脸模型不能很好的表示人脸的细节信息,如皱纹等。对于以上问题,本文提出一种利用卷积神经网络对单张人脸照片重建出具有细节信息的
近年来随着5G、云计算、物联网的快速发展,各种网络应用层出不穷,网络规模不断扩大,网络流量爆发式增长。如何通过对网络流量的合理调度,避免网络拥塞,提高网络资源利用率,保证用户体验质量,越来越成为网络领域需要重点研究的问题。随着SDN网络架构的提出和对网络数据收集、分析能力的增强,再加之深度学习与深度强化学习在自适应学习、自动控制等领域的突破性进展,为可实时适应网络变化的动态、智能流量调度方法的实现
飞行模拟机在民航飞行员及相关从业人员的培训中具有极其重要的作用,可以显著的降低训练成本和提高训练安全性。飞行教员带领学员使用模拟机训练,一般按照训练清单进行逐项练习,根据训练大纲和个人经验对学员的表现进行评分,随后根据学员的分数安排后续训练。但是面对大量的考核项目,教员的评分容易受到疲劳和个人主观因素的影响,由此造成的评估偏差不利于受训人员水平的提高,造成大量的人力物力损失。现有解决此类问题的方法
在人脸识别领域,由于人脸数据易于获取的特点,使得人脸识别系统容易受到演示攻击,所以需要利用人脸活体检测技术对演示攻击进行防御。人脸活体检测技术通过检测并过滤伪造的攻击图像,达到抵御攻击的目的,从而避免人脸识别系统被攻破而造成的不必要的损失。本文首先从人脸活体检测数据集开展研究,针对现有数据集存在的一些问题,提出了一种多模态人脸活体检测数据集构建方案。然后在此基础上对基于深度学习的人脸活体检测算法进
飞行模拟机是用于训练飞行过程的产品,系统通过逼真地模拟,提供一个接近真实的飞行训练环境,达到训练飞行驾驶操作的目的,系统主要由飞行系统、飞机系统和视景系统等组成。其中,视景系统需要极高的实时交互性和稳定性,而视景系统中大量三维模型数据处理及各种视景特效处理算法都极其消耗系统存储资源和计算资源,这大大影响了系统的实时性与稳定性,给视景渲染带来了极大压力。虽然目前的显卡在硬件级别上能对三维渲染进行一定
随着数字媒体技术的普及和计算机视觉领域的快速发展,平面目标跟踪作为一种重要三维跟踪技术已被广泛应用于三维重建、军事制导以及无人机等多个技术领域。尽管众多研究者在该领域已经取得了丰硕的研究成果,但仍存在诸多问题尚未解决。例如,在背景复杂或者在视点快速移动的场景中,视频图像中纹理重复或者缺失会导致所提取的关键点特征信息不准确;超出视野或遮挡等场景容易造成基于区域的方法失效;视点快速移动则会引起跟踪目标