发现CVEs的工具需要创建软件材料清单.在许多情况下,只需检查目标系统上的文件即可完成,例如RPM或NPM索引。
与Go源代码相比,可以对Go可执行文件进行组合分析吗?
有什么工具试图做到这一点吗?
编辑:问题是用go语言编写的可执行文件,以及如何在执行目标系统漏洞扫描时自动发现这些可执行文件的传递依赖关系。
发布于 2018-10-01 04:46:52
不怎么有意思。我是说,理论上你可以,但不太可能有人会这么做。
Go是一种相对安全的语言,因此Go代码中的错误往往是逻辑错误,而不是机械错误。这意味着漏洞的标记不是二进制中的模式,而是控制流的属性。
本质上,要检测给定的CVE,您必须构造对应于易受攻击逻辑的操作码序列,并根据该模式匹配二进制代码。对于一个琐碎的模式来说,这可能很简单,但是不太可能做到这一点,这在本质上是没有好处的。
毕竟,漏洞检测从根本上说是一个供应链问题。如果上游无法提供漏洞元数据,那么整个信任模型就会被保存。如果您是上游(您构建二进制文件),那么您需要开始在您的包细节嵌入元数据(例如。源代码来源),可用于确定CVE相关性。
https://security.stackexchange.com/questions/194557
复制相似问题