基于三值分析的信息流策略实施
1. 引言
安全信息流分析是一种防止数据滥用的技术,它通过根据数据的安全级别,限制程序中变量或其他实体之间的数据传输来实现这一目的。我们的目标是将静态分析和动态分析相结合,为此设计了一个三值类型系统,用于对简单的命令式编程语言进行静态非干扰检查。
除了常见的公共(低)和私有(高)安全级别外,我们还引入了第三个值“未知”,用于处理在执行前无法确定信息是公共还是私有的情况。传统的二值分析在面对不确定性时往往过于悲观,容易产生误报。而我们的方法在分析中识别出可能存在不确定性的指令,并标记为“未知”安全类型,后续结合动态分析和轻量级的插桩技术,既能减少误报,又能在必要时引入较小的运行时开销。
安全分析的目标是确保非干扰性,即防止私有通道的信息意外泄漏到公共通道。具体来说,要确保:
1. 类型良好的程序满足非干扰性;
2. 不满足非干扰性的程序被拒绝;
3. 可能满足非干扰性的程序被检测出来并进入插桩步骤。
我们考虑程序通过通信通道与外部环境进行交互,这些通道包括文件、网络、键盘、屏幕等。与以往的工作不同,我们明确区分了通信通道和局部变量,变量的安全类型可以在程序执行过程中改变,而非干扰性的定义主要适用于通信通道。我们旨在保护两种类型的信息流:显式流(变量内容直接传输到另一个变量)和隐式流(变量赋值依赖于另一个变量,如条件结构的条件)。
2. 编程语言
我们使用一种简单的命令式编程语言来阐述我们的方法,它是Smith提出的语言的变体,经过调整以处理三值安全级别。
2.1 语法
设Var是变量标识符的集合,C是通信通道名称的集合。变量用$x
基于三值分析的信息流控制
超级会员免费看
订阅专栏 解锁全文
8359

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



