使用HP Fortify SCA扫描Linux内核

时间:2018-11-07 14:01:04

标签: c linux gcc rhel fortify

我正在尝试使用HP Fortify SCA扫描RHEL7.5服务器内核[linux-3.10.0-862.el7]。我在virtualbox上的RHEL工作站操作系统上。

在工作目录中,我正在做

  

“ sourceanalyzer -b mybuild非接触式制造”

内核本身使用“ make”进行编译。 Sourceanalyzer完成了一些代码,但在涉及以下内容时似乎出错了:

  

CC arch / x86 / purgatory / purgatory.o

Fortify是否可以扫描内核?我需要使用更复杂的命令进行扫描吗?

输出错误段为:

  

非接触脚本   /home/sail/.fortify/sca18.1/build/myscan/build6382721854835965459/gcc   用args调用:-Wp,-MD,arch / x86 / purgatory / .purgatory.o.d -nostdinc   -isystem非接触式脚本/home/sail/.fortify/sca18.1/build/myscan/build6382721854835965459/gcc   用args调用:-print-file-name = include   /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include -I./arch/x86/include   -Iarch / x86 / include /生成的-Iinclude -I./arch/x86/include/uapi -Iarch / x86 / include /生成的/ uapi -I./include/uapi -Iinclude /生成的/ uapi -include ./include/ linux / kconfig.h -D__KERNEL__ -fno-strict-aliasing -Wall -Wstrict-prototypes -fno-zero-initialized-in-bss -fno-builtin -ffreestanding -c -MD -Os -mcmodel = large -m64 -DKBUILD_STR( s)=#s -DKBUILD_BASENAME = KBUILD_STR(炼狱)-DKBUILD_MODNAME = KBUILD_STR(炼狱)-c -o arch / x86 / purgatory / .tmp_purgatory.o arch / x86 / purgatory / purgatory.c   /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include [警告]:文件名为   找不到[警告]:找不到的文件[警告]:文件参数:没有   发现[警告]:文件/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include   找不到gcc:错误:调用:没有这样的文件或目录gcc:错误:   带有:没有这样的文件或目录gcc:错误:args ::没有这样的文件或目录   目录objdump:'arch / x86 / purgatory / .tmp_purgatory.o':没有这样的文件   mv:无法统计“ arch / x86 / purgatory / .tmp_purgatory.o”:没有此类文件或   目录   make [1]: * [arch / x86 / purgatory / purgatory.o]错误1 make:   * [archprepare]错误2

1 个答案:

答案 0 :(得分:0)

简短的答案是,当Fortify(或任何其他静态分析器)无法与构建系统配合使用时,应将其集成到编译器中。也就是说,告诉Makefile将您的Shell脚本用于编译器:

make GCC=gcc_and_fortify.sh

gcc_and_fortify.sh脚本应如下所示:

#!/bin/sh
ARGS=$@
# run GCC
gcc $ARGS
# run Fortify
sourceanalyzer -b my_project $ARGS