如何解决如何将库/依赖项的额外源代码添加到 CodeQL 数据库?
我试图在我从 LGTM (GNU coreutils) 下载的代码存储库中全局跟踪污点,但 CodeQL 似乎也考虑调用 libc 'tainted',而它们实际上并没有引入任何污点。考虑以下示例:
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream);
int bytes = fread(some_array,sizeof(*some_array),sizeof(some_array),some_fptr);
如果 some_array
或 some_fptr
被污染,字节现在也会被 CodeQL 视为被污染。我怀疑这是为了安全起见(而不是高估污点而不是低估)。
编辑:显然外部调用被认为默认不会引入污点,但对于常见的 API,如 libc,根据文档制作了关于污点跟踪的模型。然而,在这种情况下,它似乎有点错误,但它们在不断发展。
我将如何处理包括 f.e. CodeQL 保存的源数据库中的 glibc 源,以便查询可以更准确地确定这些“闭源”函数调用中的污点?
如果代码依赖于其他一些预编译库怎么办,我该如何让 CodeQL 可以使用它的源代码?
解决方法
在这里操作。除了源代码外,似乎没有很多关于它的文档,但我在 github/securitylab 存储库上发布了相同的问题并得到了答案 here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。