Инструкция по настройке запуска статического анализа ядра Linux при помощи SVACE

Методика статического анализа ядра (версия m03)

В рамках данной методики предполагается использование инструмента SVACE версии 3.3.0.

В предположении, что ядро собирается в конфигурации, заранее размещённой в файле /XXX/build/.config, при помощи команды:

make ARCH=arm64 HOSTCC=gcc CROSS_COMPILE=aarch64-linux- CROSS_COMPILE_COMPAT=arm-linux-gnueabi- O=/XXX/build -Clinux-src Image modules

для проведения статического анализа ядра выполните следующую последовательность команд:

$ svace init
$ svace build --clear-build-dir bash -c \ 
  "make ARCH=arm64 CROSS_COMPILE=aarch64-linux- O=/XXX/build Image modules"
$ svace warning NEGATIVE_CODE_ERROR false
$ svace warning SIZEOF_POINTER_TYPE.STRICT true
$ svace warning BUFFER_OVERFLOW.LEN true
$ svace warning BUFFER_SHIFT true
$ svace analyze

Эти шаги используют настройки инструмента по умолчанию за исключением следующих отличий:

  • дополнительно активируются проверки SIZEOF_POINTER_TYPE.STRICT, BUFFER_OVERFLOW.LEN, BUFFER_SHIFT;
  • отключается проверка NEGATIVE_CODE_ERROR.

После завершения анализа для загрузки результатов анализа в развёрнутый сервер SVACER выполните следующие шаги:

$ svacer import --pathPrefix "/path-to/linux-src:" --project linux --branch linux-5.10.y --snapshot "m03-v5.10.112 arm64 myconfig 2022-04-11" .
$ svacer upload --host svacer.mycompany.ru --port 8080