NSSL-SJTU / SaTC

A prototype of Shared-keywords aware Taint Checking, a novel static analysis approach that tracks the data flow of the user input between front-end and back-end to precisely detect security vulnerabilities.
274 stars 48 forks source link

多文件测试问题 #23

Open zhjygit opened 1 year ago

zhjygit commented 1 year ago

对于一个固件,提供web服务(例如httpd),而漏洞本身是在aa.so共享文件中; 如果不知道漏洞在aa.so中,仅仅对httpd做satc测试,包括_cmdi、bof等,这种测试必然是无效的,因为漏洞点不在httpd中; 那么盲测中,推荐的做法又是什么,如何在盲测中定位到aa.so呢?

issuse中讨论的一种情况是,keywords-----httpd----aa.so;先对httpd做ref2share,其结果导入到aa.so中,从而发现漏洞; 但实际在盲测中,并不知道httpd和aa.so产生了漏洞,那么应该怎么测试呢?

思路:盲测的时候,不使用-b参数,自动对固件中所有二进制程序做satc测试;但疑惑是,这种思路存在的问题是,没法自动构建ref2share和share2sink的组合测试(因为污点路径是keywords-----httpd----aa.so),那么最终也是无效。

还有其他可行的建议吗?谢谢师傅。

zhjygit commented 1 year ago

经过一些测试发现,直接对httpd跑cmdi和bof,即使result没有直接爆出漏洞(主要是有so依赖,没法直接跑出),但根据_cmdi.result和_bof.result结果,结合ida手动分析,还是可以定位到漏洞的。 再次证明,saTC架构还是不错的(即使有时候无法直接跑出漏洞,但辅助手工分析,还是不错的,提高了效率)。