Использование HP Fortify SCA для сканирования ядра Linux - PullRequest
0 голосов
/ 07 ноября 2018

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

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

"sourceanalyzer -b mybuild touchless make"

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

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

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

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

бесконтактная-скрипт /home/sail/.fortify/sca18.1/build/myscan/build6382721854835965459/gcc вызывается с аргументами: -Wp, -MD, arch / x86 / purgatory / .purgatory.o.d -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 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 арка / x86 / чистилище / .tmp_purgatory.o arch / x86 / чистилище / чистилище.c /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include [предупреждение]: файл называется не найден [предупреждение]: файл с не найден [предупреждение]: файл args: not найдено [предупреждение]: файл /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include не найден gcc: ошибка: вызвана: нет такого файла или каталога gcc: ошибка: с: Нет такого файла или каталога gcc: error: args :: Нет такого файла или каталог objdump: 'arch / x86 / purgatory / .tmp_purgatory.o': такого файла нет mv: невозможно указать stat arch / x86 / purgatory / .tmp_purgatory.o ': такого файла нет или каталог make [1]: * [arch / x86 / purgatory / purgatory.o] Ошибка 1 make: * [archprepare] Ошибка 2

1 Ответ

0 голосов
/ 29 марта 2019

Короткий ответ: когда 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
...