我正在从事一个项目,其中包括构建旧的linux内核版本。很好,但是我仍然需要修补基于CVE的所有先前发现的安全漏洞的内核。我拥有CVE,并提取了其中提到的易受攻击的文件的名称以及它影响的内核版本。
到目前为止,我发现了大约150个潜在漏洞可能会影响我的构建,但是显然其中一些漏洞会影响与我不使用的图形驱动程序有关的文件。到目前为止,我只是手动浏览了列表,使用来检查文件是否包含在其中make menuconfig
,并考虑Kconfig
了相关文件夹中的内容。到目前为止,这种方法还可以,但是这些方法没有显示实际的文件名(例如ipc / sem.c),因此需要的工作量比必要的多。
理想情况下,我想以某种方式打印将包含在构建中的所有文件的列表,然后只编写脚本来检查是否包含易受攻击的文件。
如何找到将包含在我的构建中的源文件的名称(例如ipc / sem.c)?
进行构建,然后列出.o
文件。我认为每一个.c
或者.S
是参与在构建文件编译成一个.o
具有相应名称的文件。这不会告诉您安全问题是否需要在构建中包含的头文件中进行修复。
make vmlinux modules
find -name '*.o' -exec sh -c '
for f; do for x in c S; do [ -e "${f%.o}.$x" ] && echo "${f%.o}.$x"; done; done
' _ {} +
一种更精确的方法是将源放置在存储访问时间的文件系统上,然后进行构建。访问时间未被该版本更新的文件未在该版本中使用。
touch start.stamp
make vmlinux modules
find -type f -anewer start.stamp
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句