1、A Cloud Native Tool for Testing Automation in Kubernetes
在依赖微服务和基于Kubernetes容器编排的云原生环境中,高效测试至关重要。然而,Kubernetes基础设施的复杂性给测试人员带来了重大挑战。配置测试环境、管理并行测试执行以及确保资源隔离都需要深厚的Kubernetes专业知识,这使测试人员难以专注于验证应用逻辑。为解决此问题,我们推出K8STA(Kubernetes测试自动化工具),这是一款基于Golang的工具,旨在简化Kubernetes中的测试执行。通过利用自定义资源定义(CRD)、自定义资源(CR)和控制器等Kubernetes原生构件,K8STA实现了环境设置、测试执行和结果收集的自动化。它使测试人员能够高效运行测试用例,而无需承担复杂Kubernetes配置的管理负担。K8STA实现了无缝、可扩展且资源高效的工作流,确保测试人员可专注于应用程序质量而非基础设施管理。
论文链接:https://doi.org/10.1145/3713081.3731732
2、A Preliminary Study of Large Language Models for Multilingual Vulnerability Detection
基于深度学习的方法,尤其是利用预训练语言模型(PLM)的技术,在自动化软件漏洞检测领域展现出巨大潜力。然而现有方法大多局限于特定编程语言,制约了其在多语言环境中的适用性。大型语言模型(LLM)的最新进展提供了语言无关能力和增强的语义理解,为突破这一局限提供了可能。虽然现有研究已探索LLM在漏洞检测中的应用,但其在多语言漏洞检测中的性能表现仍未可知。为此,我们开展初步研究,评估了PLM与前沿LLM在七种主流编程语言中的检测效能。研究发现PLM模型CodeT5P在多语言漏洞检测中表现最优,尤其在识别最关键漏洞方面表现突出。基于这些发现,我们进一步探讨了LLM在推进现实世界多语言漏洞检测方面的潜力。本研究标志着探索PLM与LLM用于跨语言漏洞检测的初步尝试,为未来研究和实际部署提供了关键见解。
论文链接:https://doi.org/10.1145/3713081.3731746
3、ASTRAL: A Tool for the Automated Safety Testing of Large Language Models
本文介绍ASTRAL——一种自动化生成并执行测试输入(即提示)以评估大语言模型(LLM)安全性的工具。ASTRAL包含三个微服务模块:首先是测试生成器,其采用新颖的黑盒覆盖准则,跨多个安全类别与语言特征(如不同写作风格与说服技巧)创建平衡且多样化的不安全测试输入;该模块还融合了基于LLM的检索增强生成(RAG)、少样本提示策略及网络浏览技术,以生成与时俱进的测试输入。第二模块测试执行器负责在待测LLM上运行生成的测试输入。最终由测试评估器作为预言机分析执行输出,识别不安全响应,从而实现全自动化的LLM测试流程。
论文链接:https://doi.org/10.1145/3713081.3731733
4、Best practice for supply chain in LLM-assisted medical applications
大型语言模型在医疗领域的应用对于提升诊断准确性、改善医患沟通以及提高医疗效率至关重要。其处理海量数据、生成精准信息及实现任务自动化的能力,使LLM应用成为变革性工具。近期研究与实际案例表明,提供安全可靠的LLM辅助应用至关重要。本文旨在揭示LLM医疗应用供应链中的最佳软件实践。
论文链接:https://doi.org/10.1145/3713081.3731748
5、Bringing Invariant Analysis to modern IDEs: The DIG+ Extension for VS Code
程序不变量,即特定程序位置始终成立的属性,在形式化程序验证与分析中具有重要作用。基于动态和静态分析的传统不变量生成方法丰富而强大,支撑着广泛的应用场景。然而由于复杂的命令行界面和使用所需的技术专长,这些工具往往未能得到充分利用。
为弥合理论研究与实际应用之间的鸿沟,我们开发了DIG+系统。该系统通过采用现代IDE(如VS Code)中广泛使用的语言服务器协议设计,将DIG不变量生成器与CIVL符号执行工具相集成。这种集成使用户能够在其惯用的IDE环境中直接为C程序生成并验证不变量,显著提升了工具的可及性与易用性。我们期待DIG+能启发研究者为其研发工具开发类似的IDE集成方案,从而增强终端用户的使用意愿。
论文链接:https://doi.org/10.1145/3713081.3731737
6、BugsInDLLs : A Database of Reproducible Bugs in Deep Learning Libraries to Enable Systematic Evaluation of Testing Techniques
如今,人工智能应用已无处不在。以PyTorch和Tensorflow为代表的深度学习(DL)库,为这些应用的AI组件提供了基础构建模块。与任何软件一样,这些库也可能存在缺陷。尽管已有大量针对该问题的缺陷检测技术被提出,但由于缺乏经过系统整理的可复现DL库缺陷数据集,这些技术的可信评估始终面临挑战。为此,我们推出BugsInDLLs——一个精心构建的可复现缺陷数据库以填补这一空白。该领域存在独特挑战,例如需要安装特定CUDA版本的驱动程序才能复现某些GPU相关缺陷。目前我们的数据集包含112个可复现环境,涵盖三大主流DL库:JAX、TensorFlow和PyTorch。
论文链接:https://doi.org/10.1145/3713081.3731739
7、COOLer: A Language Support Extension for COOL in VS Code
COOL是一种面向对象的编程语言,广泛应用于本科生与研究生课程中的编译器设计教学。由于多数学生对该语言不熟悉,且代码编辑器和集成开发环境通常缺乏对COOL的支持,学生编写COOL代码及测试程序负担沉重,导致他们难以充分理解该语言及其编译器的诸多重要高级特性。本文提出COOLer——一个为流行VS Code IDE提供COOL语言支持的扩展工具。COOLer具备三大功能:(i) 通过词法分析与语法解析实现COOL语言的语法高亮;(ii) 提供语义感知的自动补全功能,帮助学生减少输入量并降低记忆陌生COOL语法规则的负担;(iii) 将底层COOL解释器/编译器的相关反馈(如错误信息和类型信息)直接集成至VS Code编辑器,助力调试过程。我们相信COOLer能让学生更享受编写COOL程序的过程,从而更有效地学习和理解高级编译器概念。
论文链接:https://doi.org/10.1145/3713081.3731729
8、Code2API: A Tool for Generating Reusable APIs from Stack Overflow Code Snippets
如今,开发者常借助Stack Overflow解决日常编程问题,但这些代码片段多为无法直接测试验证的局部代码。测试此类代码片段的一种有效方式是将它们转化为可供开发者直接调用的API(应用程序接口)。然而,由于需要执行多项差异化操作(例如概括合适的方法名称、推断参数列表和返回语句),人工完成这种转换(称为API化任务)往往成本高昂且易出错。为帮助开发者快速复用Stack Overflow代码片段,本文提出Code2API——一款基于大语言模型(LLMs)的谷歌浏览器扩展程序,可自动实现Stack Overflow代码片段的API化。Code2API通过精心设计的提示词引导LLMs生成可复用API,采用思维链推理和少样本上下文学习技术,使LLMs能够以类开发者思维方式理解并解决API化任务。评估结果表明,Code2API显著优于基于规则的方法,且优势明显。本工具全文已作为研究论文发表于FSE'24会议[11]。演示视频:https://youtu.be/RI-ZpBnNNwQ。演示网站:https://doi.org/10.6084/m9.figshare.24426961.v1。复现资料:https://github.com/qq804020866/Code2API。
论文链接:https://doi.org/10.1145/3713081.3731741
9、From Large Language Models to Adversarial Malware: How far are we
大型语言模型(LLM)在自然语言处理、网络威胁检测和自动化渗透测试等领域取得显著进展,正日益应用于实际场景。然而,该技术的快速发展也导致其可能被恶意利用,为网络空间安全带来新挑战。网络钓鱼攻击和虚假信息传播等领域已出现相关安全事件。但LLM在生成对抗性恶意软件方面的进展及潜在影响仍待深入探索。本研究系统分析了LLM生成对抗性恶意软件的规避能力:通过将思维链整合至马尔可夫过程,设计基于提示的状态转移函数与奖励机制,在包含2000余个真实恶意软件样本的数据集上评估其对主流静态检测方法的规避效能。实验结果显示,针对VirusTotal平台12款商业杀毒引擎的平均规避率达89.92%。研究表明,仅具备基础自然语言能力和有限技术知识的个体即可生成规避静态检测的恶意软件,这揭示了当前网络空间防御与检测系统在对抗性恶意软件应对方面存在的潜在脆弱性。
论文链接:https://doi.org/10.1145/3713081.3732928
10、FuseApplyBench: Multilingual Benchmark for Trustworthy Code Edit Applying Task
随着语言模型(LM)与大型语言模型(LLM)的兴起,其在代码编辑(CE)领域的潜力日益受到关注。当前主流方法是让LLM生成代码修改草案,再由较小规模的LM通过后续代码编辑应用(CEA)进行优化。然而CEA过程易出错,且现有基准测试未能系统评估LLM处理这类问题的性能。我们推出FuseApplyBench基准测试框架,专门评估LLM在CEA任务中应对三大主要错误类型的表现。基于该框架的流程,我们收集数据集进行微调以提升代码修改的可靠性(称为FuseApply)。我们在FuseApplyBench上测试了FuseApply、四种广泛使用的开源LLM以及Kortix-FastApply。结果表明FuseApply显著提升了可信度与准确性指标,而其他模型表现相对较弱,这为推进LLM在代码编辑领域的发展指明了改进空间。
论文链接:https://doi.org/10.1145/3713081.3732929
11、GoPV: A Static Analyzer for Finding Blocking Concurrency Bugs Due to Misuse of Shared-Memory Synchronization in Go
GoPV是一款专为检测Go语言中因共享内存同步原语误用而导致的阻塞式并发错误所设计的静态分析工具。该工具基于调用图与控制流图进行并发分析及(后)支配者分析,以识别Go程序中潜在的并发缺陷。实验结果表明,GoPV在八个基准测试程序中成功检测出所有与共享内存同步相关的阻塞式并发错误。此外,该工具在2.78小时内于21个大型Go应用中发现了17个此类缺陷,充分证明了其高效性与实用性。
论文链接:https://doi.org/10.1145/3713081.3731734
12、Hybrid Fuzzing of Infrastructure as Code Programs (Short Paper)
基础设施即代码(IaC)已成为现代云和系统部署的基石,实现了自动化且可重复的基础设施配置。然而,由于其复杂性和动态特性,确保IaC程序的正确性仍然具有挑战性。特别是,IaC程序可能根据其所管理资源的状态表现出不同行为。由于这些资源部署在外部提供商上,考虑其可能状态十分困难,这使得测试阶段尤为棘手。本文提出HIT——一种创新的IaC程序单元测试框架,能利用相关资源状态有效测试IaC代码。HIT结合了模糊测试和符号执行这两种对IaC代码而言有效但此前未被探索的技术。实验证实,HIT相比现有最先进方法实现了更高的代码覆盖率。
论文链接:https://doi.org/10.1145/3713081.3731721
13、InfraFix: Technology-Agnostic Repair of Infrastructure as Code
基础设施即代码(IaC)实现了可扩展的自动化IT基础设施管理,但容易产生可能导致安全漏洞、服务中断和数据丢失的错误。尽管现有研究主要关注IaC问题检测,但由于缺乏合适的规范,自动化程序修复(APR)领域仍待深入探索。本研究提出InfraFix——首个与技术栈无关的IaC脚本修复框架。与现有方法不同,InfraFix支持基于多样化信息源引导APR技术。此外,我们创新性地提出了修复场景生成方法,实现了IaC领域APR技术的大规模评估。通过采用基于SMT的修复模块和利用系统调用的状态推断模块,我们在254,288个修复场景中验证了InfraFix的有效性,成功率高达95.7%。本研究通过InfraFix为研究人员提供了探索新型状态推断与修复技术的实验平台,并借助我们的修复场景生成方法实现大规模评估,为推进IaC领域的APR研究奠定了坚实基础。
论文链接:https://doi.org/10.1145/3713081.3731735
14、Kitten: A Simple Yet Effective Baseline for Evaluating LLM-Based Compiler Testing Techniques
编译器测试对于提升编译器正确性至关重要且不可或缺。随着大语言模型(LLM)技术的快速发展,基于LLM的编译器测试技术(如Fuzz4All)已展现出巨大潜力:既能有效发现各类编译器中的真实缺陷,又降低了设计程序生成器所需的工程开销。鉴于LLM技术的持续演进以及新型LLM方法的不断涌现,建立稳健的基准测试体系对于严格评估并推动这一前景广阔的研究方向具有重要意义。
为此,我们推出Kitten——一种基于变异且与语言无关的程序生成器。Kitten采用种子程序语料库(类似于LLM的训练集),并利用目标语言的语法规范(相当于LLM学习的知识)。其变异操作符能够生成多样化的测试程序,这种特性类似于LLM推理生成新代码的能力。
评估结果表明:使用现有编译器测试套件作为种子程序时,Kitten在代码覆盖率和缺陷检测能力方面均优于Fuzz4All。在24小时测试周期内,Kitten对GCC、LLVM和Rustc的覆盖率分别比Fuzz4All高出48.3%、9.9%和33.8%,同时在三次运行中平均分别发现19.3、20.3和15.7个缺陷。在为期九个月的Kitten开发测试过程中,我们在GCC、LLVM、Rustc、Solc、JerryScript、scalac和slang编译器中累计发现328个缺陷,其中310个已获确认或修复。我们坚信Kitten能作为有效的基准测试工具,帮助识别现有LLM方法的局限性,进而推动这一重要研究领域的发展。
论文链接:https://doi.org/10.1145/3713081.3731731
15、Large Language Model Supply Chain: Open Problems From the Security Perspective
大型语言模型(LLM)正在改变软件开发范式,并已获得学术界和工业界的极大关注。研究人员与开发者共同探索如何利用LLM强大的问题解决能力处理特定领域任务。随着基于LLM的应用(如ChatGPT)广泛普及,已有多个研究致力于保障LLM系统的安全性。全面理解LLM系统构建全过程(即LLM供应链)至关重要,但相关研究仍十分有限。更重要的是,LLM供应链中潜藏的安全问题可能严重影响LLM的可靠使用,这方面尚未得到充分探索。现有研究主要聚焦于从模型层面保证LLM质量,却忽视了整个LLM供应链的安全保障。本研究首次系统探讨LLM供应链各组件及组件间集成可能存在的安全风险,总结出12类安全风险并提供建设性指导以构建更安全的LLM系统。我们期待这项工作能推动构建安全的LLM生态系统,促进通用人工智能的发展进程。
论文链接:https://doi.org/10.1145/3713081.3731747
16、LiPSBOMaker: A Prototype of Multi-Stage Linux Distribution Package SBOM Generator
现代软件开发常依赖第三方库和框架以提升效率并降低成本,这催生了软件供应链的形成,并使其潜在风险日益凸显。为增强软件供应链的可追溯性与透明度并降低相关风险,软件物料清单(SBOM)概念应运而生。尽管在编程语言生态系统中已有大量关于SBOM的研究,但针对Linux发行版的研究仍相对有限。鉴于Linux发行版的基础性作用与固有复杂性,为其生成高质量的SBOM既至关重要又充满挑战。为此,本文开展了两阶段研究:1)分析Linux发行版软件包特性,提出多阶段SBOM模型;2)基于该模型设计并实现了面向Linux发行版软件包的SBOM生成工具。评估结果表明,本方法优于当前最先进的SBOM生成工具。
论文链接:https://doi.org/10.1145/3713081.3731738
17、MQueez: Specification-Driven Fuzzing for MQTT Broker (Registered Report)
近年来,MQTT协议因其轻量级特性成为物联网通信的首选方案。然而,负责消息路由的核心组件——MQTT代理服务器——存在内存破坏漏洞,构成重大安全风险。尽管已有模糊测试工具被提出用于发现代理服务器的内存破坏问题,但其有效性受限于两大根本性缺陷:其一,现有模糊器难以在生成有效测试用例时满足MQTT协议的复杂约束条件;其二,该协议在不同数据包间存在大量字段变异,导致传统黑盒模糊器无法优先处理高风险字段,只能进行盲目变异。
为解决这些挑战,我们提出交互约束模型(ICM),能够精细表征MQTT协议约束。通过遍历ICM生成符合约束的测试用例,确保交互行为合规性,覆盖复杂场景并最大限度减少异常连接中断。此外,我们设计了一种启发式变异能量分配策略,通过实时解析响应动态调整能量分配,将资源集中于更易产生缺陷的字段。最终实现原型系统MQueez——一个支持MQTT协议建模的高效代理服务器模糊测试框架。
我们在六款广泛使用的MQTT代理服务器上评估MQueez,并与最先进的模糊测试工具进行对比。结果表明:MQueez生成的测试用例中合规交互比例提升30.88%,成功发现5个新漏洞,复现超过150%其他模糊器无法检测的已知缺陷。
论文链接:https://doi.org/10.1145/3713081.3731724
18、On Benchmarking Code LLMs for Android Malware Analysis
大型语言模型(LLM)在各类代码智能任务中展现出强大能力,然而其在安卓恶意软件分析领域的有效性仍待深入探索。反编译后的安卓恶意代码具有独特的分析挑战:恶意逻辑通常隐藏在大量函数中,且函数命名往往缺乏有效语义信息。本文提出Cama基准框架,旨在系统化评估代码大语言模型在安卓恶意软件分析中的效能。该框架通过结构化输出规范支持关键分析任务,包括恶意函数识别与恶意软件目的摘要,并在此基础上整合了三个领域特定的评估指标——一致性、忠实度与语义相关性,从而实现严谨的稳定性评估、效能验证及跨模型性能对比。我们构建了包含近年收集的13个家族118个安卓恶意软件样本的基准数据集,涵盖超过750万个独立函数,并利用Cama对四种主流开源代码大语言模型进行评估。实验揭示了代码大语言模型解析反编译代码的内在机制,量化了其对函数重命名的敏感性,既凸显了该类模型在恶意软件分析中的潜力,也明确了其当前局限性。
论文链接:https://doi.org/10.1145/3713081.3731745
19、On the Applicability of Benford’s Law to Detect Saturation in Fuzzing (Registered Report)
了解模糊测试活动何时达到饱和对实践者至关重要,这有助于在给定资源内避免不必要的冗长测试活动,同时又不遗漏错误。然而,现有确定饱和点的方法依赖于覆盖率测量,而这些方法往往容易出错且不可靠。本文提出了一种基于本福德定律的新颖方法来检测模糊测试中的饱和状态,该定律描述了自然产生数字的特征。具体而言,我们假设当模糊测试器达到饱和时,测试过程中重复出现的数字(如变异字节数)应呈现由本福德定律规定的特定数值模式,从而使模糊测试过程减少偏差(因而更趋自然)。关键观察在于:灰盒模糊测试器在达到饱和时会像随机黑盒测试一样减少偏差,因为此时将没有种子需要优先处理。我们旨在使用最先进的模糊测试工具AFL++对29个真实世界程序进行假设验证,并通过实验证明本福德定律可用于检测模糊测试饱和状态。
论文链接:https://doi.org/10.1145/3713081.3731723
20、On the Brittleness of Legacy Web UI Testing: A Pragmatic Perspective
自动化Web界面测试旨在解决手动测试劳动密集且耗时的问题。尽管其重要性显著,但诸多障碍阻碍了端到端Web界面测试的持续自动化:脆弱的遗留测试用例、次优的自动化框架,以及不适用于有效界面测试的Web应用设计。虽然大量研究探讨这些挑战,但多数从实践视角忽视了脆弱性的根本成因。本论文首先通过考察真实Web应用的测试脆弱性重新评估这些成因,并以此为基础扩展现有框架以减少不实用自动化框架导致的测试不稳定性。我们还通过以自然语言作为中介实现测试用例与Web应用的解耦,从而革新传统Web界面测试模式。最后提出一个实践导向的基准测试框架,引导研究方向转向更贴近实际的Web应用场景。通过这些研究,我们力图揭示当前面临的挑战,并推动在界面测试领域树立更注重实效的研究视角。
论文链接:https://doi.org/10.1145/3713081.3731742
21、Patch the Leak: Strengthening CodeLLMs Against Privacy Extraction Threats
代码大语言模型(CodeLLMs)倾向于记忆训练数据,并在特定提示下重构个人信息(PI)。尽管基础大语言模型已应用隐私匿名化方法去除个人信息,但先前使用最先进的PI提取攻击(如CODEBREAKER和CodexLeaks)对多个开源及商业CodeLLMs的实验表明,此类信息无法被完全消除。此外,我们发现商业模型的泄漏率显著低于开源模型(约低20%),推测这与更强的模型对齐能力相关。针对目前缺乏有效防御PI提取手段的问题,我们将PI泄漏视为一种错位形式,提出受对抗学习启发的创新框架PI-ALIGN。该框架将CodeLLMs与CODEBREAKER攻击框架配对作为对抗双模型,并利用优化的GRPO(群体相对策略优化)过程在微调阶段重新对齐模型。通过让模型与CODEBREAKER进行对抗训练,该方法有望增强模型抵御PI提取攻击的鲁棒性。我们还设计了系统性的实验评估框架以验证PI-ALIGN的有效性,旨在为防御CodeLLMs的PI提取攻击提供新思路。
论文链接:https://doi.org/10.1145/3713081.3732931
22、PatchScope – A Modular Tool for Annotating and Analyzing Contributions
PatchScope是一种通过自动代码注释分析软件贡献的模块化框架,其洞察力超越传统度量标准。该框架核心采用灵活的自动代码注释器,基于可定制规则对源代码行进行标注,将变更分类为文档、测试或代码更新等类别。利用这些注释,PatchScope生成包含可操作见解的报告,供团队评估和专业能力识别。该工具可应用于注释自动化、缺陷定位、补丁数据集分析和项目监控,是为研究人员、项目经理和开发者设计的通用工具,优先考虑灵活性和易用性。
论文链接:https://doi.org/10.1145/3713081.3731727
23、Personalized Fuzzing: A Case Study with the FANDANGO Fuzzer on a GNSS Module (Short Paper)
模糊测试是一种广泛应用于发现软件系统漏洞的技术,但传统模糊测试工具往往难以针对复杂输入格式生成有效且具有意义的测试用例。基于语法的模糊测试工具通过确保语法正确性来解决这一问题,但它们通常缺乏对生成输入的细粒度控制以触发特定行为。本文展示了FANDANGO这一先进基于语法的模糊测试工具的灵活性与有效性,该工具结合约束求解技术,既能生成100%有效的输入,又能引导生成过程朝向目标边缘用例。以全球导航卫星系统(GNSS)模块为案例研究,我们展示了FANDANGO如何通过约束条件指定来探索模块行为。实验结果表明FANDANGO能够生成针对性测试用例以暴露潜在缺陷。本研究进一步验证了约束引导的语法模糊测试在安全测试与可靠性分析中的实际适用性。
论文链接:https://doi.org/10.1145/3713081.3731722
24、ReGraph: A Tool for Binary Similarity Identification
二进制代码相似性检测(BCSD)不仅在漏洞识别等安全任务中至关重要,对于代码复制检测同样具有重要意义,然而由于二进制剥离和多样化的编译环境,这项技术仍面临巨大挑战。现有方法往往采用日益复杂的神经网络以提升准确率,但计算时间随复杂度同步增长。即便使用高性能GPU,处理大规模软件仍耗时严重。为解决这些问题,我们提出了名为ReGraph的框架,能够高效跨架构和优化级别比较二进制代码函数。通过公开数据集评估表明,ReGraph具有显著的速度优势——比基于自然语言处理(NLP)的方法快700倍,同时在准确率方面与最先进模型保持相当水准。
论文链接:https://doi.org/10.1145/3713081.3731728
25、Reversing Programs for Error Reachability Analysis
可达性分析是软件验证中的一个核心问题,用于判断程序中的错误位置是否可以从初始状态到达。虽然标准技术通常采用前向分析方式,但在某些情况下,从错误位置向后进行可达性分析可能更为高效。本研究提出了一种C程序逆向分析技术,使得现有的前向可达性分析方法能够有效逆向遍历原始程序。该技术将实现为独立工具,可轻松集成至现有验证工具的工作流程中。
论文链接:https://doi.org/10.1145/3713081.3731743
26、Revisiting the Combination of Static Analysis Error Traces and Dynamic Symbolic Execution: A Potential Approach for True Positive Confirmation (Registered Report)
静态分析是一种成熟的程序缺陷检测与软件安全保障方法。然而,由于消除误报需要耗费大量时间,开发人员往往不愿在生产环境中使用静态分析工具。目前缺乏有效技术来验证静态分析器的报告。本文复现并扩展了Busse等人的研究,他们设计并评估了一种利用动态符号执行(DSE)自动化确认静态分析潜在缺陷报告以消除误报的技术。我们的复现研究表明,静态分析报告生成的追踪信息仍具有指导DSE确认缺陷的价值。经过细微改进后,我们发现该技术性能显著提升,并进一步研究了误报和不准确信息对性能的影响。我们还通过采用包含非平凡注入缺陷且兼容静态分析与DSE的软件验证基准集(SV-benchmarks)扩展了该任务的基准测试。我们的目标是展示并理解结合静态分析与符号执行技术,在加速真阳性确认和误报消除方面的潜力。
论文链接:https://doi.org/10.1145/3713081.3731720
27、Shepherd: High-Precision Coverage Inference for Response-guided Blackbox Fuzzing (Registered Report)
近年来,模糊测试作为早期漏洞检测的主要手段备受关注。尽管基于覆盖率的灰盒模糊测试利用内部覆盖信息实现了高探索效率,但在某些无法对程序进行插桩的受限环境(如固件或智能手机应用程序)中,部署该框架仍存在困难。相比之下,黑盒模糊测试无需运行时信息,因而具有更广泛的适用性,但由于无法测量覆盖率,其效率较低。针对这一问题,业界日益需要能在黑盒环境中近似估算覆盖率以优化模糊测试的方法。现有研究提出通过分析程序响应与其二进制文件中嵌入字符串的关联性来估算覆盖率,但该方法面临匹配算法模糊性以及单个字符串被多个基本块共享导致的非唯一性问题,从而频繁产生误估。本研究提出新型覆盖率推断方法Shepherd,通过结合高精度字符串匹配与上下文分析来解决这些问题。实验结果表明,与现有方法相比,Shepherd显著提升了估计准确性。
论文链接:https://doi.org/10.1145/3713081.3731719
28、TBFV4J: An Automated Testing-Based Formal Verification Tool for Java
为了检验程序是否满足其规格说明,基于规格的测试仅能揭示错误而无法严格证明程序中不存在缺陷。尽管形式化验证能够针对程序相对于相应规格说明的功能正确性提供严格证明,但该方法通常需要大量人工专业知识来推导循环不变量以完成自动化验证。基于测试的形式化验证(TBFV)通过整合基于规格的测试与形式化验证,实现了无需推导循环不变量即可自动化验证程序是否符合规格说明的方法。本文实现了TBFV4J工具,该工具支持对Java程序进行TBFV验证——用户只需输入包含Java代码的功能场景,工具即可自动执行测试与验证。
论文链接:https://doi.org/10.1145/3713081.3731740
29、Teaching Software Testing and Debugging with the Serious Game Sojourner under Sabotage
软件测试与调试常被视为枯燥的任务,这使得教学效果难以提升。我们推出《蓄意破坏中的旅者》——一款基于浏览器的严肃游戏,通过互动性强、叙事驱动的挑战提升学习效果。玩家扮演飞船船员,运用单元测试与调试技术修复遭蓄意破坏的组件。该游戏依托真实测试框架JUnit提供实践体验,有效提升学生的参与度、测试覆盖率及调试技能。
论文链接:https://doi.org/10.1145/3713081.3731730
30、TestFlow: Advancing Mobile UI Testing through Multi-Step Reinforcement Learning
GUI智能体在移动用户界面测试中展现出广阔的应用前景。然而面对复杂测试任务时,由于采用逐步操作的贪婪策略,现有UI智能体常因错误累积和长程依赖缺失而失效。为突破这些局限,我们提出TestFlow——一种融合监督微调与任务感知强化学习框架的新型多模态UI测试模型。该方案采用两阶段训练管道,专门针对长程指令遵循和复杂任务完成进行优化。我们还开发了定制化奖励函数,通过整合过程奖励与结果奖励来提升多步骤任务的完成率。实验结果表明,TestFlow显著超越基线方法,在跨页面测试场景中分别实现33.69%的WTSR和55.37%的SSR指标。这些改进凸显了TestFlow在应对现代移动应用测试挑战方面的实用价值,特别是在需要高适应性与可靠性的工业级应用场景中。
论文链接:https://doi.org/10.1145/3713081.3732930
31、Towards Fuzzing Zero-Knowledge Proof Circuits (Short Paper)
零知识证明(ZKPs)已从理论密码学概念发展为强大工具,可在无需信任假设的前提下实现隐私保护与可验证应用。尽管该领域取得重大进展,但通过ZKP电路实现和使用ZKPs仍存在挑战,导致实践中出现大量影响ZKP电路的缺陷,而模糊测试作为检测ZKP电路缺陷的方法仍基本处于探索空白。我们探讨了将模糊测试应用于ZKP电路的特殊挑战,分析了预言机问题及其潜在解决方案,并提出了输入生成与测试框架构建技术。通过为zk-regex(现代ZKP应用核心库)实现模糊测试器,我们证实该方法在此领域的有效性。案例研究中发现的13个新缺陷已获开发者确认。
论文链接:https://doi.org/10.1145/3713081.3731718
32、Towards Source Mapping for Zero-Knowledge Smart Contracts: Design and Preliminary Evaluation
由于zkSolc等编译器缺乏源映射功能,调试和审计零知识兼容智能合约仍面临重大挑战。本研究提出了一种初步的源映射框架,在zkSolc编译流水线中建立了Solidity源代码、LLVM中间表示与zkEVM字节码之间的可追溯关联。我们的方法解决了零知识编译过程中非线性变换和证明友好优化带来的可追溯性难题。
为提升映射可靠性,我们引入了基于静态分析和结构验证的轻量级一致性检查。通过对50个基准合约和500个真实zkSync合约数据集的评估,该框架对标准Solidity结构的映射准确率达到约97.2%。在行内汇编和深层继承层次等复杂场景中会出现预期局限性。实测编译开销保持在约8.6%的适度水平。
初步结果表明,零知识编译流水线支持源映射具有可行性,并能有效改善调试、审计和开发工作流程。本研究希望为后续研究和工具开发奠定基础,从而提升zk-Rollup环境下的开发者体验。
论文链接:https://doi.org/10.1145/3713081.3732932
33、Trailblazer: Practical End-to-end Web API Fuzzing (Registered Report)
自动测试Web API面临两大关键挑战:(a)确定API请求发送目标;(b)构建有效请求负载。当存在机器可解析的API规范(如OpenAPI规范)时,这两个挑战有时能得到解决。但多数Web应用缺乏此类规范,导致自动化测试困难。
我们通过推出Trailblazer应对这两大挑战——这是一个实用的端到端工作流,无论是否存在API规范均可测试Web API。Trailblazer的运行机制包括:(1)捕获Web应用客户端在正常交互过程中发起的API请求;(2)利用收集的数据识别端点并推断请求负载结构;(3)生成新的测试负载。据我们所知,Trailblazer是首个在Web API测试中结合基于生成和基于变异的模糊测试技术的方法。
通过对热门开源内容管理系统进行评估,我们发现Trailblazer实现的代码覆盖率与使用官方OpenAPI规范所获覆盖率相当。该系统在测试过程中发现了七个独特的新漏洞,其中两个已被修复,四个获得官方确认。
论文链接:https://doi.org/10.1145/3713081.3731717
34、When Performance Failure Occurs in Low-Latency Storage Systems: Observation, Prediction, and Solutions
硬件技术的飞速发展使得软件成为I/O性能的新瓶颈。在低延迟存储系统中,即使采用最先进的硬件,性能故障仍不可避免。本文研究了低延迟硬件环境下此类性能故障对软件栈的影响,提出了一种利用预测技术来预判并缓解硬件故障所致性能下降的创新方法。我们的方法在第九十五和九十九百分位处展现出显著改进,揭示了在实际应用中实现重大优化的潜力。通过细致观察与分析,我们旨在为提升低延迟存储系统中系统软件性能的鲁棒性与可靠性,提供理论洞见和实用解决方案。
论文链接:https://doi.org/10.1145/3713081.3731744
35、XAVIER: Grammar-Based Testing for XML Injection Attacks
Web服务是在线交互的核心,支撑着银行交易与购物等关键任务,但其重要性也使其成为攻击的主要目标。攻击者试图通过注入恶意代码来操纵数据,可能危及系统安全。当前防御此类攻击的方法采用攻击语法、符号执行或机器学习等技术来检测漏洞,或手动嵌入恶意负载,但这些方法可能遗漏待测服务的部分功能。本文提出XAVIER框架,专门用于检测XML注入漏洞。该框架通过利用Web服务的WSDL规范,构造反映服务功能的XML消息,从而全面检测Web服务中的XMLi漏洞。实验结果表明,XAVIER的性能与业界领先工具SOAPUI PRO相当甚至更优。相较于SOAPUI PRO,XAVIER具备开源和可扩展特性,为未来该领域研究提供了平台支持。
论文链接:https://doi.org/10.1145/3713081.3731736
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...