当前位置: X-MOL 学术IEEE Trans. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Cross-Language Taint Analysis: Generating Caller-Sensitive Native Code Specification for Java
IEEE Transactions on Software Engineering ( IF 6.5 ) Pub Date : 2024-05-27 , DOI: 10.1109/tse.2024.3392254
Shuangxiang Kan 1 , Yuhao Gao 2 , Zexin Zhong 2 , Yulei Sui 1
Affiliation  

Cross-language programming is a common practice within the software development industry, offering developers a multitude of advantages such as expressiveness, interoperability, and cross-platform compatibility, for developing large-scale applications. As an important example, JNI (Java Native Interface) programming is widely used in diverse scenarios where Java interacts with code written in other programming languages, such as C or C++. Conventional static analysis based on a single programming language faces challenges when it comes to tracing the flow of values across multiple modules that are coded in different programming languages. In this paper, we introduce CSS, a new Caller-Sensitive Specification approach designed to enhance the static taint analysis of Java programs employing JNI to interface with C/C++ code. In contrast to conservative specifications, this approach takes into consideration the calling context of the invoked C/C++ functions (or cross-language context), resulting in more precise and concise specifications for the side effects of native code. Furthermore, CSS specifically enhances the capabilities of Java analyzers, enabling them to perform precise static taint analysis across language boundaries into native code. The experimental results show that CSS can accurately summarize value-flow information and enhance the ability of Java monolingual static analyzers for cross-language taint flow tracking.

中文翻译:


跨语言污点分析:为 Java 生成调用者敏感的本机代码规范



跨语言编程是软件开发行业的常见做法,为开发人员开发大规模应用程序提供了多种优势,例如表达能力、互操作性和跨平台兼容性。作为一个重要的例子,JNI(Java Native Interface)编程广泛应用于 Java 与其他编程语言(例如 C 或 C++)编写的代码进行交互的各种场景。在跟踪用不同编程语言编码的多个模块之间的值流时,基于单一编程语言的传统静态分析面临着挑战。在本文中,我们介绍 CSS,这是一种新的调用者敏感规范方法,旨在增强使用 JNI 与 C/C++ 代码交互的 Java 程序的静态污点分析。与保守的规范相比,这种方法考虑了被调用的 C/C++ 函数的调用上下文(或跨语言上下文),从而对本机代码的副作用产生更精确和简洁的规范。此外,CSS 特别增强了 Java 分析器的功能,使它们能够跨语言边界对本机代码执行精确的静态污点分析。实验结果表明CSS能够准确总结价值流信息,增强Java单语言静态分析器跨语言污点流跟踪的能力。
更新日期:2024-05-27
down
wechat
bug