基于最弱前置条件的程序鲁棒性分析
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))。若 ({x | I_{p←q}(x) = L} \cap FV(\varPhi) = \varnothing),则 (P) 相对于主体 (p)、(q) 满足分散鲁棒性。
证明 :对于给定的主体对 ((p, q)),我们计算分散鲁棒性所需的读者和写入者集合,从而对程序数据进行机密性和完整性的静态标记。由于命题的假设保证了在 (\varPhi) 中自由出现的低完整性变量不会被主动攻击利用,根据引理 1,且此情况对所有可能的主体对都成立,所以命题得证。
这种特性非常适合客户端 Web 语言,如 JavaScript,可防止注入攻击或动态加载的第三方代码。例如,一个接受不同来源广告的网页,我们可以分析其 DOM 树,将每个属性分类为对
超级会员免费看
订阅专栏 解锁全文
11

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



