执行路径的数据流分析

时间:2018-01-23 14:30:14

标签: frama-c

是否可以使用Frama-C来验证执行流程或内存访问是否依赖于特定变量?

背景 曾经有一个选项-experimental-path-deps and -experimental-mem-deps,但这些选项在硅片中是removed  释放。

为了防止旁道攻击,我想确保程序的执行流程不依赖于秘密数据,使其容易受到时间攻击。

对于内存访问,我们可以对每个索引执行数据流分析,但这有点容易出错,并且必须为每个阵列访问手动执行。在-experimental-path-deps

的情况下,没有明显的解决方法

Frama-C中的其他地方是否存在等效功能,或者只是恢复旧版本的最佳选择?

1 个答案:

答案 0 :(得分:1)

-experiment-{path,mem}-deps在很大程度上是现有依赖关系分析的重复,而且从未移植到完全对呼叫敏感(选项-calldeps)。如果您愿意编写一些OCaml代码,则修改现有的调用感知依赖关系分析很容易。这比恢复到硅前版本要精确得多。如果您有兴趣,我可以扩展这个答案,指出您要修改的功能。