Использование HP Fortify SCA для сканирования ядра Linux

Я пытаюсь использовать HP Fortify SCA для сканирования ядра сервера RHEL7.5 [linux-3.10.0-862.el7]. Я использую ОС рабочей станции RHEL, которая находится в виртуальном боксе.

В рабочем каталоге делаю:

"sourceanalyzer -b mybuild бесконтактный make"

Ядро компилируется с помощью make. Исходный анализатор просматривает часть кода, но, похоже, выдает ошибку, когда дело доходит до:

CC Arch / x86 / чистилище / purgatory.o

Может ли Fortify сканировать ядро? Нужно ли мне использовать более сложные команды для его сканирования?

Сегмент ошибки вывода:

touchless-script /home/sail/.fortify/sca18.1/build/myscan/build6382721854835965459/gcc, вызываемый с аргументами: -Wp, -MD, arch / x86 / purgatory / .purgatory.od -nostdinc -isystem touchless-script / home / sail / .fortify / sca18.1 / build / myscan / build6382721854835965459 / gcc вызывается с аргументами: -print-file-name = include /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include -I ./arch/x86/include -Iarch / x86 / include / generated -Iinclude -I./arch/x86/include/uapi -Iarch / x86 / include / generated / uapi -I./include/uapi -Iinclude / created / 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 = большой -m64 -DKBUILD_STR (s) = # s -DKBUILD_BASENAME = KBUILD_STR (чистилище) -DKBUILD_MODNAME = KBUILD_STR (чистилище) -c -o arch / x86 / purgatory / .tmp_purgatory.ocatory Arch / x86 / purgatory. usr / lib / gcc / x86_64-redhat-linux / 4.8.5 / include [предупреждение]: файл с именем не найден [предупреждение]: файл не найден [предупреждение]: Fil e args: not found [предупреждение]: файл /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include не найден gcc: error: called: нет такого файла или каталога gcc: error: with: нет такого файла или каталог gcc: error: args :: Нет такого файла или каталога objdump: 'arch / x86 / purgatory / .tmp_purgatory.o': нет такого файла mv: cannot stat 'arch / x86 / purgatory / .tmp_purgatory.o': нет такой файл или каталог make [1]: * [arch / x86 / purgatory / purgatory.o] Ошибка 1 make: * [archprepare] Ошибка 2


person 2redgoose    schedule 07.11.2018    source источник
comment
Создается ли ядро ​​в вашей среде без использования sourceanalyzer.exe?   -  person p4r1    schedule 07.11.2018
comment
да. Вот почему я не понимаю, в чем проблема.   -  person 2redgoose    schedule 07.11.2018


Ответы (1)


Короткий ответ заключается в том, что когда Fortify (или любой другой статический анализатор) не работает с вашей системой сборки, вы должны интегрировать его в компилятор. То есть скажите Makefile использовать ваш сценарий оболочки для компилятора:

make GCC=gcc_and_fortify.sh

Скрипт gcc_and_fortify.sh должен выглядеть так:

#!/bin/sh
ARGS=$@
# run GCC
gcc $ARGS
# run Fortify
sourceanalyzer -b my_project $ARGS
person David Svoboda    schedule 29.03.2019