是否可以使用Frama-C来验证执行流程或内存访问是否依赖于特定变量?
背景
曾经有一个选项-experimental-path-deps
and -experimental-mem-deps
,但这些选项在硅片中是removed
释放。
为了防止旁道攻击,我想确保程序的执行流程不依赖于秘密数据,使其容易受到时间攻击。
对于内存访问,我们可以对每个索引执行数据流分析,但这有点容易出错,并且必须为每个阵列访问手动执行。在-experimental-path-deps
。
Frama-C中的其他地方是否存在等效功能,或者只是恢复旧版本的最佳选择?
答案 0 :(得分:1)
-experiment-{path,mem}-deps
在很大程度上是现有依赖关系分析的重复,而且从未移植到完全对呼叫敏感(选项-calldeps
)。如果您愿意编写一些OCaml代码,则修改现有的调用感知依赖关系分析很容易。这比恢复到硅前版本要精确得多。如果您有兴趣,我可以扩展这个答案,指出您要修改的功能。