结合抽象解释与模型检查分析 Java 字节码安全属性
在当今的软件开发领域,程序的安全性和正确性至关重要。尤其是在多级别安全系统中,确保程序不会泄露敏感信息是一个关键问题。本文将介绍一种结合抽象解释和模型检查的方法,用于分析 Java 字节码的安全属性,从而消除运行时的访问权限检查。
1. 背景与动机
Java 虚拟机语言(JVML)作为一种广泛使用的平台无关程序分发媒介,在多级别安全系统中,其敏感信息泄露问题尤为突出。恶意程序可能会试图广播秘密信息,因此需要采取措施来避免此类损害。
Java 字节码的安全检查通常通过虚拟机进行,字节码验证器会强制执行静态约束,以排除类型错误、访问控制违规、对象初始化失败等动态错误。此外,Java 安全模型为代码分配访问权限,并提供一个可定制的“沙箱”,字节码只能在沙箱边界内运行。
然而,本文提出了一种静态分析 Java 字节码的方法,通过结合抽象解释和模型检查,让终端用户能够证明字节码的安全属性,从而消除运行时的访问权限检查。
2. 相关技术概述
- 抽象解释 :这是一种通过收集程序运行时行为的近似信息来分析程序的方法。它基于非标准语义,用更简单的抽象域替换标准的具体域,并在新的域上解释操作。通过这种方法,可以系统地定义不同的分析。特别是基于操作语义的抽象解释,在推断程序运行时属性方面非常有效,这些属性对于优化程序很有价值。
- 模型检查 :这是一种自动验证有限状态系统的技术。通过检查表示系统的结构是否满足描述预期行为的时态逻辑公式来完成验证。
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



