一句话:提出首个面向终端用户的问答式污点分析调试界面,支持 why、why-not、what-if 提问与推测式分析,显著降低理解成本。
污点分析用于追踪危险数据在应用及其依赖库中的流动,但终端用户在分析时常常难以理解为何出现意外流、为何缺失预期流,也难以评估配置源/汇以及第三方库模型对全局连通性的影响。现有工具多不提供此类终端用户调试能力,其树形或列表视图也难以呈现多个源与汇之间的全局连通关系。受问答式探究能显著改善结果意义建构的启发,本文提出 WhyFlow——首个面向污点分析的问答案式调试界面。用户可提出 why、why-not 和 what-if 问题,分别调查可疑流的存在、预期流的缺失以及第三方库模型的全局影响;WhyFlow 还执行推测式 what-if 分析,帮助用户理解不同连通性假设如何影响整体结果。对 12 名参与者的用户研究表明,使用 WhyFlow 的参与者平均准确率比 CodeQL 高 21%,NASA-TLX 心理负荷降低 45%,并对识别相关数据流更有信心,显示出大幅减少意义建构努力的潜力。
Taint analysis is a security analysis technique used to track the flow of potentially dangerous data through an application and its dependent libraries. Investigating why certain unexpected flows appear and why expected flows are missing is an important sensemaking process during end-user taint analysis. Existing taint analysis tools often do not provide this end-user debugging capability, where developers can ask why, why-not, and what-if questions about dataflows and reason about the impact of configuring sources and sinks, and models of third-party libraries that abstract permissible and impermissible data flows. Furthermore, the tree-view or list-view used in existing taint analyzer visualizations makes it difficult to reason about the global impact on connectivity between multiple sources and sinks. Inspired by the insight that sensemaking tool-generated results can be significantly improved by a QA inquiry process, we propose WhyFlow, the first end-user question-answer style debugging interface for taint analysis. It enables a user to ask why, why-not, and what-if questions to investigate the existence of suspicious flows, the non-existence of expected flows, and the global impact of third-party library models. WhyFlow performs speculative what-if analysis, to help a user in debugging how different connectivity assumptions affect overall results. A user study with 12 participants shows that participants using WhyFlow achieved 21% higher accuracy on average, compared to CodeQL. They also reported a 45% reduction in mental demand (NASA-TLX) and rated higher confidence in identifying relevant flows using WhyFlow. This shows WhyFlow’s potential to significantly reduce sensemaking effort.