基于最弱前置条件的程序健壮性分析
1. 相对健壮性与分散式健壮性
在某些观点下,相对健壮性是比分散式健壮性更通用的概念。一旦确定了主体对,数据的安全级别也就随之确定。我们用 $C_{p→q}$ 表示机密性级别,用 $I_{p←q}$ 表示完整性级别。例如,对于每个变量 $x$,如果主体 $p$ 认为攻击者 $q$ 可以修改 $x$,则 $I_{p←q}(x) = L$;否则 $I_{p←q}(x) = H$。
给定一个程序和以 DLM 方式制定的安全策略,我们可以计算每对主体 $p$、$q$ 的读者和写入者集合,并使用命题 3 检查每对主体的健壮性。由此得到 DLM 中相对健壮性的如下推广:
- 命题 4 :设 $P = P_2; [•]; P_1$ 是一个程序(其中 $P_1$ 无空洞),$\varPhi = Wlp(P_1, \varPhi_0)$。若 $\bigcap_{x: I_{p←q}(x) = L} FV(\varPhi) = \varnothing$,则 $P$ 相对于主体 $p$、$q$ 满足分散式健壮性。
- 证明 :对于给定的主体对 $(p, q)$,我们计算分散式健壮性所需的读者和写入者集合,从而对程序数据进行关于机密性和完整性的静态标记。由于命题假设保证了 $\varPhi$ 中出现的自由低完整性变量不会被主动攻击利用,应用引理 1,且此情况对所有可能的主体对都成立,所以该命题成立。
这种特征非常适合客户端 Web 语言,如 JavaScript,它可以防止注入攻击或动态加载的第三方代码。例如,一个接受不同来源广告的网页,我们可以分析其 DOM 树,将每个属性
超级会员免费看
订阅专栏 解锁全文
2808

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



