2020, 31(5):1241-1242. DOI: 10.13328/j.cnki.jos.005958 CSTR:
摘要:
2020, 31(5):1243-1254. DOI: 10.13328/j.cnki.jos.005950 CSTR:
摘要:静态程序分析发展至今,已在多个方面取得了长足的进步,应用于软件开发的众多方面.但对现代大规模复杂软件系统(如千万行代码规模的Linux操作系统、分布式大数据处理系统Hadoop等)进行高精度的静态分析,因其极大规模数据量的计算,仍有一定难度.精度、效率和可扩展性相互制约,是静态分析技术在工业界应用的主要障碍.对此,近年来,随着多核、众核架构的兴起,研究人员提出了静态分析的各种并行化解决方案.首先梳理了静态分析的发展历程,然后针对当前静态分析面临的挑战,在分析了传统算法优化研究的不足后,对利用硬件资源进行并行优化的方法进行了充分讨论,包括单机的CPU并行、分布式和GPU实现这3个方面;在此基础上,对一些使用较为广泛的支持并行的静态分析工具进行了评估;最后,对未来如何从算法和算力角度对静态分析进行并行优化作了讨论和展望.
2020, 31(5):1255-1275. DOI: 10.13328/j.cnki.jos.005951 CSTR:
摘要:随着深度神经网络技术的快速发展、大数据的涌现和计算能力的显著提升,深度神经网络被越来越多地应用到各个安全攸关领域,例如自动驾驶、人脸识别、飞机碰撞检测等.传统的软件系统通常由开发人员手工编写代码实现其内部的决策逻辑,并依据相应的测试覆盖准则设计测试用例来测试系统代码.与传统的软件系统不同,深度学习定义了一种新的数据驱动的编程范式,开发人员仅编写代码来规定深度学习系统的网络结构,其内部逻辑则由训练过程获得的神经元连接权值所决定.因此,针对传统软件的测试方法及度量指标无法直接被移植到深度神经网络系统上.近年来,越来越多的研究致力于解决深度神经网络的测试问题,例如提出新的测试评估标准、测试用例生成方法等.调研了92篇相关领域的学术论文,从深度神经网络测试度量指标、测试输入生成、测试预言这3个角度对目前已有的研究成果进行了系统梳理.同时,分析了深度神经网络测试在图像处理、语音处理以及自然语言处理上的已有成果,并介绍了深度神经网络测试中应用到的数据集及工具.最后,对深度神经网络测试的未来工作进行了展望,以期为该领域的研究人员提供参考.
2020, 31(5):1276-1293. DOI: 10.13328/j.cnki.jos.005949 CSTR:
摘要:C程序中数组、malloc动态分配后的连续内存等顺序存储结构被大量使用,但大多数传统的数据流分析方法未能充分描述其结构及其上的操作,特别是在利用指针访问顺序存储结构时,传统的分析方法只关注了指针的指向关系,而未讨论指针可能发生偏移的数值信息,且未考虑发生偏移时可能存在越界的不安全问题,导致了对顺序存储结构分析不精确.针对以上不足,首先对顺序存储结构进行抽象建模,并对顺序存储结构与指针结合使用时的指向关系与偏移量进行有效表示,建立了用于顺序存储结构的抽象内存模型SeqMM;其次,归纳总结C程序中顺序存储结构涉及的指针相关迁移操作、谓词操作及遍历顺序存储结构的循环操作,提出了安全范围判别保证操作安全性;之后,针对函数调用时形参指针引用顺序存储结构与实参的映射过程进行过程间推导规则设计;最后,基于上述分析,提出了一种内存泄漏缺陷检测算法,对5个开源C工程的内存泄漏缺陷进行检测.实验结果表明,所提出的SeqMM能够有效地刻画C程序中的顺序存储结构及其涉及的各种操作,其数据流分析结果能够用于内存泄漏的检测工作,同时在效率和精度之间取得合理的权衡.
2020, 31(5):1294-1313. DOI: 10.13328/j.cnki.jos.005954 CSTR:
摘要:软件安全问题的发生在大多数情况下会造成非常严重的后果,及早发现安全问题,是预防安全事故的关键手段之一.安全缺陷报告预测可以辅助开发人员及早发现被测软件中潜藏的安全缺陷,从而尽早得以修复.然而,由于安全缺陷在实际项目中的数量较少,而且特征复杂(即安全缺陷类型繁多,不同类型安全缺陷特征差异性较大),这使得手工提取特征相对困难,并随后造成传统机器学习分类算法在安全缺陷报告预测性能方面存在一定的瓶颈.针对该问题,提出基于深度学习的安全缺陷报告预测方法,采用深度文本挖掘模型TextCNN和TextRNN构建安全缺陷报告预测模型;针对安全缺陷报告文本特征,使用Skip-Gram方式构建词嵌入矩阵,并借助注意力机制对TextRNN模型进行优化.所构建的模型在5个不同规模的安全缺陷报告数据集上展开了大规模实证研究,实证结果表明,深度学习模型在80%的实验案例中都优于传统机器学习分类算法,性能指标F1-score平均可提升0.258,在最好的情况下甚至可以提升0.535.此外,针对安全缺陷报告数据集存在的类不均衡问题,对不同采样方法进行了实证研究,并对结果进行了分析.
2020, 31(5):1314-1331. DOI: 10.13328/j.cnki.jos.005955 CSTR:
摘要:Web应用测试用例生成并行化是提升Web应用测试生成效率的一个有效手段.Web应用的前后端分离、事件驱动等特性,导致传统的并行化技术难以直接应用于Web应用的测试用例自动生成中.因此,如何针对Web应用进行并行化测试用例生成,是一项具有挑战性的工作.将种群并行化计算引入到基于遗传算法的Web应用前后端融合的测试用例生成中,通过线程池及调度逻辑设计、多浏览器进程管理及后端覆盖路径获取,实现种群个体在多浏览器上的并行化执行及基于后端路径覆盖的适应度值并行化计算,以更高效地生成Web应用的测试用例.实验结果表明:相对于Web应用的GA串行化测试用例生成方法,所提的并行化测试生成方法能够更充分地利用系统资源,极大地提升Web应用测试用例的生成效率.
2020, 31(5):1332-1352. DOI: 10.13328/j.cnki.jos.005956 CSTR:
摘要:无冲突复制数据类型(conflict-free replicated data types,简称CRDT)是一种封装了冲突消解策略的分布式复制数据类型,它能够保证分布式系统中副本节点间的强最终一致性,即执行了相同更新操作的副本节点具有相同的状态.CRDT协议设计精巧,不易保证其正确性.旨在采用模型检验技术验证一系列CRDT协议的正确性.具体而言,构建了一个可复用的CRDT协议描述与验证框架,包括网络通信层、协议接口层、具体协议层与规约层.网络通信层描述副本节点之间的通信模型,实现了多种类型的通信网络.协议接口层为已知的CRDT协议(分为基于操作的协议与基于状态的协议)提供了统一的接口.在具体协议层,用户可以根据协议的需求选用合适的底层通信网络.规约层则描述了所有CRDT协议都需要满足的强最终一致性与最终可见性(所有的更新操作最终都会被所有的副本节点接收并处理).使用TLA+形式化规约语言实现了该框架,然后以Add-Wins Set复制数据类型为例,展示了如何使用框架描述具体协议,并使用TLC模型检验工具来验证协议的正确性.
2020, 31(5):1353-1373. DOI: 10.13328/j.cnki.jos.005957 CSTR:
摘要:“如何构造高可信的软件系统”已成为学术界和工业界的研究热点.操作系统内核作为软件系统的基础组件,其安全可靠是构造高可信软件系统的重要环节.为了确保操作系统内核的安全可靠,将形式化方法引入到操作系统内核验证中,提出了一个自动化验证操作系统内核的框架.该验证框架包括:(1)分别对C语言程序和混合语言程序(C语言和汇编语言)进行验证;(2)在混合语言程序验证中,为汇编程序建立抽象模型,并将C语言程序和抽象模型粘合形成基于C语言验证工具可接收的验证模型;(3)从规范中提取性质,基于该自动验证工具,对性质完成自动验证;(4)该框架不限于特定的硬件架构.成功地运用该验证框架对两种不同硬件平台的嵌入式实时操作系统内核μC/OS-II进行了验证.结果显示,利用该框架在对两个不同的硬件平台上内核验证时,框架的可重复利用率很高,高达83.8%,虽然其抽象模型需要根据不同的硬件平台进行重构.在对基于这两种平台的操作系统内核验证中,分别发现了10处~12处缺陷.其中,在ARM平台上两处与硬件相关的问题被发现.实验结果表明,该方法对不同硬件平台的同一个操作系统分析验证具有一定的通用性.
2020, 31(5):1374-1391. DOI: 10.13328/j.cnki.jos.005952 CSTR:
摘要:轨道交通区域控制器是我国轨道交通信号系统选型的主流制式——基于通信的列车控制系统的核心子系统,其突出的安全性使得安全需求的形式化验证成为一个非常重要的问题.但是区域控制器自身的复杂性以及领域知识的繁杂难以掌握,使得形式化方法很难应用到安全需求的验证中去.针对这些问题,提出一种安全需求的自动验证方法,使用半形式化的问题框架方法来建模和分解安全需求,根据需求模型自动生成安全需求的验证模型和验证性质,在此基础上自动生成验证模型的Scade语言实现,并通过Design Verifier验证器对需求进行组合验证.最后,使用某个实际案例区域控制器的一个子问题CAL_EOA进行了研究,实验结果证明了该方法的可行性与有效性.它能够自动地将安全需求模型进行组合验证,改善了验证的效率.
2020, 31(5):1392-1405. DOI: 10.13328/j.cnki.jos.005953 CSTR:
摘要:可信技术正在从被动可信度量向着下一代的主动可信监控方向发展,要求TPM/TCM模块有能力主动度量和干预主机系统,传统的TPM/TCM从架构和运行机制等方面都无法满足这种能力.TEE(trusted execution environment)技术提供了可信执行环境和主动访控能力,为构建下一代TPM/TCM提供了基本平台,但还存在系统结构、存储以及通信等多方面挑战.提出了基于ARM平台TrustZone机制的TZTCM(TrustZone-based trusted cryptography module)方案,通过分核异步系统架构解决TZTCM独立可信运行和主动可信安全监控问题,基于PUF(physical unclonable functions)安全存储机制和基于UUID(universally unique identifier)的TEE安全通信机制,解决了TEE环境下可信平台模块的存储安全和通信安全问题,为设计实现主动可信TPM/TCM给出了理论和实践参考.通过实验验证了所提关键机制的有效性,实验结果表明,TZTCM在密码计算能力上较常见TPM也有很大提升.TZTCM只需要在系统中增加或修改相应的软/固件,除了主动可信监控能力,还具有低成本、高性能、低功耗、易升级等特点,相对传统TPM/TCM具有非常明显的优势.
2020, 31(5):1406-1434. DOI: 10.13328/j.cnki.jos.005967 CSTR:
摘要:基于区块链的分布式账本集成了非对称加密体系、P2P网络、共识算法、智能合约等多种技术,保证事务记录的一致性和不可篡改性.但是,区块链技术中的账本共享机制也带来了隐私威胁,用户身份、账户地址、交易内容等信息的隐私保护成为研究的关注点.讨论了区块链系统中的隐私威胁;着重分析了地址混淆、信息隐藏、通道隔离等3类隐私保护机制,详细介绍各类机制的原理、模型、特征及实现技术;最后探讨了实际应用中,区块链隐私保护技术在系统性能和可扩展性方面的挑战和发展方向.
2020, 31(5):1435-1453. DOI: 10.13328/j.cnki.jos.005966 CSTR:
摘要:代码补全(code completion)是自动化软件开发的重要功能之一,是大多数现代集成开发环境和源代码编辑器的重要组件.代码补全提供即时类名、方法名和关键字等预测,辅助开发人员编写程序,直观提高软件开发效率.近年来,开源软件社区中源代码和数据规模不断扩大,人工智能技术取得了卓越进展,这对自动化软件开发技术产生了极大的促进作用.智能代码补全(intelligent code completion)根据源代码建立语言模型,从语料库学习已有代码特征,根据待补全位置的上下文代码特征在语料库中检索最相似的匹配项进行推荐和预测.相对于传统代码补全,智能代码补全凭借其高准确率、多补全形式、可学习迭代的特性成为软件工程领域的热门方向之一.研究者们在智能代码补全方面进行了一系列研究,根据这些方法如何表征和利用源代码信息的不同方式,可以将它们分为基于编程语言表征和基于统计语言表征两个研究方向,其中,基于编程语言表征又分为标识符序列、抽象语法树、控制/数据流图这3个类别,基于统计语言表征又分为N-gram模型、神经网络模型这2个类别.从代码表征的角度入手,对近年来代码补全方法研究进展进行梳理和总结,主要内容包括:(1)根据代码表征方式阐述并归类了现有的智能代码补全方法;(2)总结了代码补全的一般过程和模型评估中的模型验证方法与性能评估指标;(3)归纳了智能代码补全的主要挑战;(4)展望了智能代码补全的未来发展方向.
2020, 31(5):1454-1464. DOI: 10.13328/j.cnki.jos.005660 CSTR:
摘要:针对当前恶意代码静态分析方法精度不足的问题,将恶意代码映射为无压缩的灰度图像,然后根据图像变换方法将图像变换为恒定大小的图像,使用方向梯度直方图提取图像的特征,最后提出一种基于深度森林的恶意代码分类方法.实验中选择不同家族的多个恶意代码样本进行分类,验证了该方法的有效性,并且实验结果优于近期提出的SPAM-GIST方法.
2020, 31(5):1465-1496. DOI: 10.13328/j.cnki.jos.005988 CSTR:
摘要:自然场景文本检测与识别研究对于从场景中获取信息有重要意义,而深度学习技术有助于提高文本检测与识别的能力.主要对基于深度学习的自然场景文本检测与识别方法和其研究进展进行整理分类、分析和总结.首先论述自然场景文本检测与识别的相关研究背景及主要技术研究路线;然后,根据自然场景文本信息处理的不同阶段,进一步介绍文本检测模型、文本识别模型和端到端的文本识别模型,并阐述和分析每类模型方法的基本思路和优缺点;另外,列举了常见公共标准数据集以及性能评估指标和方法,并对不同模型相关实验结果进行了对比分析;最后总结基于深度学习的自然场景文本检测与识别技术面临的挑战和发展趋势.
2020, 31(5):1497-1510. DOI: 10.13328/j.cnki.jos.005673 CSTR:
摘要:传统的多标记学习任务要求训练数据拥有完整的或者至少部分的真实标记,而真实标记耗费昂贵并且难以获取.不同于由昂贵受限的专家标注真实标记,众包环境下,多标记任务被分配给多个容易获取的非专家标注,学习目标是从有错误的非专家标注中估计样本的真实标记.这一问题的关键在于如何融合非专家标注.以往的众包学习主要集中在单标记任务上,忽视了多标记任务的标记相关性;而多标记任务上的众包工作集中在局部标记相关性的利用如标记共同出现的概率,标记间条件相关性,其估计很敏感地受到标记数量和质量的影响.考虑到多标记任务上多个标注者的标注结果整体上存在低秩结构关系,提出一种基于低秩张量矫正的方法.首先,将标注结果组织成三维的张量(样本,标记,标注者),用低秩张量补全的方法对收集到的标注做预处理,以同时达到两个目的:1)优化已有标注;2)补全标注者在其未标注的标记上的标注结果.然后,对所有标注融合,测试了3种融合方法,分别从不同的方面考虑标注的置信度.真实数据上的实验结果验证了所提方法的有效性.
2020, 31(5):1511-1524. DOI: 10.13328/j.cnki.jos.005654 CSTR:
摘要:特征选择作为一种重要的数据预处理方法,不但能解决维数灾难问题,还能提高算法的泛化能力.各种各样的方法已被应用于解决特征选择问题,其中,基于演化计算的特征选择算法近年来获得了更多的关注并取得了一些成功.近期研究结果表明,森林优化特征选择算法具有更好的分类性能及维度缩减能力.然而,初始化阶段的随机性、全局播种阶段的人为参数设定,影响了该算法的准确率和维度缩减能力;同时,算法本身存在着高维数据处理能力不足的本质缺陷.从信息增益率的角度给出了一种初始化策略,在全局播种阶段,借用模拟退火控温函数的思想自动生成参数,并结合维度缩减率给出了适应度函数;同时,针对形成的优质森林采取贪心算法,形成一种特征选择算法EFSFOA(enhanced feature selection using forest optimization algorithm).此外,在面对高维数据的处理时,采用集成特征选择的方案形成了一个适用于EFSFOA的集成特征选择框架,使其能够有效处理高维数据特征选择问题.通过设计对比实验,验证了EFSFOA与FSFOA相比在分类准确率和维度缩减率上均有明显的提高,高维数据处理能力更是提高到了100 000维.将EFSFOA与近年来提出的比较高效的基于演化计算的特征选择方法进行对比,EFSFOA仍具有很强的竞争力.
2020, 31(5):1525-1535. DOI: 10.13328/j.cnki.jos.005680 CSTR:
摘要:阶梯网络不仅是一种基于深度学习的特征提取器,而且能够应用于半监督学习中.深度学习在实现了复杂函数逼近的同时,也缓解了多层神经网络易陷入局部最小化的问题.传统的自编码、玻尔兹曼机等方法易忽略高维数据的低维流形结构信息,使用这些方法往往会获得无意义的特征表示,这些特征不能有效地嵌入到后续的预测或识别任务中.从流形学习的角度出发,提出一种基于阶梯网络的深度表示学习方法,即拉普拉斯阶梯网络LLN (Laplacian ladder network).拉普拉斯阶梯网络在训练的过程中不仅对每一编码层嵌入噪声并进行重构,而且在各重构层引入图拉普拉斯约束,将流形结构嵌入到多层特征学习中,以提高特征提取的鲁棒性和判别性.在有限的有标签数据情况下,拉普拉斯阶梯网络将监督学习损失和非监督损失融合到了统一的框架进行半监督学习.在标准手写数据数据集MNIST和物体识别数据集CIFAR-10上进行了实验,结果表明,相对于阶梯网络和其他半监督方法,拉普拉斯阶梯网络都得到了更好的分类效果,是一种有效的半监督学习算法.
2020, 31(5):1536-1548. DOI: 10.13328/j.cnki.jos.005675 CSTR:
摘要:已有的路由保护方案面临下面两个问题:(1)默认路径和备份路径包含的公共边数量较高,如ECMP和LFA等;(2)为了计算两条包含公共边数量较少的路径,限制默认路径不能使用最短路径,如红绿树方案等.针对上述两个问题,首先将计算默认路径和备份路径描述为一个整数规划问题,然后提出采用启发式方法求解该问题,接着介绍了转发算法,最后通过仿真实验和真实实验对算法进行了测试.实验结果表明,该算法不仅具有较低的计算复杂度,而且可以降低默认路径和最短路径包含的公共边的数量,提升网络可用性.
2020, 31(5):1549-1562. DOI: 10.13328/j.cnki.jos.005658 CSTR:
摘要:低速率拒绝服务(low-rate denial of service,简称LDoS)攻击采用周期性发送短脉冲数据包的方式攻击云计算平台和大数据中心,导致连接用户的路由器丢包和数据链路传输性能下降.LDoS攻击流量平均速率很低,具有极强的隐蔽性,很难被检测到.在分析LDoS攻击流量的基础上,通过小波变换得到网络流量的小波能谱熵,并以此作为隐半马尔可夫模型(HSMM)的输入,设计采用HSMM网络模型的LDoS攻击判决分类器,提出了基于小波能谱熵和隐半马尔可夫模型的LDoS攻击检测方法.该检测方法在NS-2和Test-bed环境中分别进行了测试.实验结果表明,该方法具有较好的检测性能,通过假设检验得出检测率为96.81%.
2020, 31(5):1563-1572. DOI: 10.13328/j.cnki.jos.005676 CSTR:
摘要:有越来越多的用户选择云为其进行存储、运算、共享等数据处理工作,因此云端数据量与日俱增,其中不乏敏感数据和隐私信息.如何对用户托管于云端的数据进行授权管理,保证数据机密性、访问授权有效性等至关重要.为此,提出一种基于代理重加密(proxy re-encryption,简称PRE)的云端数据访问授权的确定性更新方案(proxy re-encryption based assured update scheme of authorization,简称PAUA).首先将提出PAUA方案的前提假设和目标,其次论述系统模型和算法,最后对PAUA进行讨论和分析.PAUA方案将减轻用户在数据共享时的计算量,同时将重加密密钥进行分割管理,实现授权变更时,密钥的确定性更新.
2020, 31(5):1573-1584. DOI: 10.13328/j.cnki.jos.005991 CSTR:
摘要:传统的深度多任务网络通常在不同任务之间共享网络的大部分层(即特征表示层).由于这样做会忽视不同任务各自的特殊性,所以往往会制约其适应数据的能力.提出了一种层级混合的多任务全卷积网络HFFCN,以解决CT图像中的前列腺分割问题.特别地,使用一个多任务框架来解决这个问题.这个框架包括一个分割前列腺的主任务和一个回归前列腺边界的辅助任务.这里,第2个任务主要是用来精确地描述在CT图像中模糊的前列腺边界.因此,HFFCN架构是一个双分支的结构,包含一个编码主干和两个解码分支.不同于传统的多任务网络,提出了一个信息共享模块,用以在两个解码分支之间共享信息.这使得HFFCN可以学习任务的通用层级信息,同时保留一些不同任务各自的特征表示.在一个包含有313个病人的313张计划阶段图片的CT图像数据集上做了详细的实验.实验结果证明了HFFCN网络可以超越现有其他先进的分割方法或者传统的多任务学习模型.