识别程序中的污点源以进行污点传播

时间:2016-03-16 12:19:04

标签: security dynamic valgrind intel-pin taint

在污点分析中,污点源是可能产生不受信任或外部输入的程序位置或语句。

我的目标:使用动态分析(最好)确定程序的所有外部用户输入,例如cmdline-input,文件读取,环境和网络变量,并传播污点。

我读了这篇教程 - http://shell-storm.org/blog/Taint-analysis-and-pattern-matching-with-Pin/,它使用英特尔PIN拦截读取系统调用并传播污点。我想扩展它以包括上面提到的各种外部输入。(首先,对于C - scanf,获取,fopen等)

是否有任何动态分析工具可以帮助我识别通用外部输入?任何其他具有特定目标的方法也值得赞赏。谢谢

1 个答案:

答案 0 :(得分:0)

我假设你只针对Linux。

通常,程序获取外部输入的方式是通过使用系统调用与操作系统联系。你在谈论libc功能。这是一个更高级别的抽象。我建议在系统调用级别查看输入。

此外,程序的另一个输入是环境变量和命令行参数,它们在程序启动时在堆栈中找到。

还需要考虑的是共享内存的所有形状和形式。

相关问题