checkksz, check_ksz, cksum_ksz

Утилита для проверки целостности КСЗ и подсчета контрольных хэш-сумм

Синтаксис:

checkksz [-v..] [-c | файл-список] [-r | -R файл-список] [-s | S файл] [-e] [-g] [-G] [-o] [-t] [-p | -P] [файл]

Опции:

-c
Проверка контрольных хэш-сумм файлов из списка /etc/ksz/control_list.
-g
Использовать алгоритм ГОСТ Р 34.11-1994.
-G
Использовать алгоритм ГОСТ 28147-1989.
-o
Отключить оптимизации.
-r
Формирование контрольных хэш-сумм для файлов из списка /etc/ksz/source_list
-C
Сравнить контрольные хэш-суммы с подсчитанными по файлу-списку
-R
Подсчитать контрольные хэш-суммы для файлов, указанных в файле-списке
-s
Сохранить вывод утилиты в файл
-S
Сохранить вывод утилиты в бинарный файл
-e
Завершить работу при возникновении первой ошибки при проверке контрольных хэш-сумм
-t
Тестировать алгоритм подсчета хэш-сумм тестовым сообщением ГОСТ Р 34.11-2012.
-p
Использовать для подсчета контрольной хэш-суммы сегменты ELF файла. Актуально для проверки хэш-сумм в файловой системе образа /proc/boot
-P
Использовать для подсчета контрольной хэш-суммы только сегмент кода ELF файла. Актуально для проверки хэш-суммы работающего ядра ЗОСРВ «Нейтрино» в /proc/boot
-y
Вывод на экран имени файла, для которого контрольная хэш-сумма не совпала.
-n
Проверить защиту от выполнения произвольного кода при переполнении буфера (только для x86)
Опция -n поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2021
файл
Файл или несколько файлов для подсчета контрольных хэш-сумм.

Платформы:

ЗОСРВ «Нейтрино», GNU/Linux, Microsoft Windows

Целевые архитектуры:

arm, armv7, aarch64, e2k, mips, ppc, x86

Описание:

Утилита checkksz, запущенная без опций, проверяет отсутствие в системе менеджеров, позволяющих произвести НСД, т.е. правильно ли сгенерирована система. В случае, если целостность КСЗ не нарушена, выводится сообщение «Проверка целостности КСЗ завершена успешно».

Если целостность КСЗ нарушена, выводится сообщение со списком нарушений. Например:

$ checkksz Несоответствие сетевого менеджера! Целостность КСЗ нарушена!

В случае, если произошла ошибка, например, недоступен или поврежден один из файлов, которые утилита checkksz проверяет на соответствие, выводится сообщение:

$ checkksz Ошибка проверки файла /proc/boot/io-pkt-ksz Проверка целостности КСЗ не завершена


Caution: для корректного прохождения контроля целостности должны соблюдаться следующие условия:
  • все защищенные компоненты и библиотеки должны быть включены в состав образа;
  • все защищенные компоненты должны запускаться только из образа (из /proc/boot);
  • имена и содержимое защищенных компонентов и ссылок на них не должны изменяться;
  • не должна быть отключена защита от выполнения кода в данных;
  • в системе должен присутствовать корректно заполненный список с контрольными суммами защищенных компонентов /etc/ksz/ksz_list.

Также утилита checkksz выполняет подсчет и проверку контрольных хэш-сумм файлов по алгоритму ГОСТ Р 34.11-2012. Подсчет контрольных сумм может проводиться как для одиночных файлов, указанных с помощью командной строки, так и по файлу-списку, содержащему имена файлов. Такой файл-список должен содержать по одному имени файла на каждую строку, строки, начинающиеся с символа #, не обрабатываются. Например, для формирования списка, содержащего программы из каталога /bin можно выполнить команду:

$ ls /bin/* > /etc/ksz/source_list

По умолчанию вывод подсчитанных хэш-сумм осуществляется в стандартный поток ввода-вывода, но при задании дополнительных опций может сохраняться в файл.

Проверка текущих контрольных хэш-сумм файлов с заранее подсчитанными осуществляется по файлу-списку, содержащему контрольные хэш-суммы и соответствующие имена файлов. Контрольные файлы-списки генерируются с помощью checkksz и не должны редактироваться вручную.

Файлы:

/etc/ksz/ksz_list
Конфигурационный файл, формируемый поставщиком дистрибутива и поставляемый вместе с системой. Файл содержит список ключевых защищенных компонентов системы и соответствующих контрольных хэш-сумм.

Warning: На конфигурационный файл /etc/ksz/ksz_list должны быть установлены права доступа 400. Редактирование недопустимо.

/etc/ksz/source_list
содержит список файлов, для которых должны быть подсчитаны контрольные хэш-суммы. Имена файлов должны быть записаны на отдельных строках. Строка, начинающаяся с символа #, считается комментарием и не обрабатывается. Файл формируется администратором безопасности. /etc/ksz/control_list
содержит список файлов и соответствующих контрольных хэш-сумм. Формируется вызовом утилиты checkksz -r. На файл /etc/ksz/control_list устанавливаются права доступа 600.
/etc/ksz/boot_list
содержит список файлов и соответствующих контрольных хэш-сумм для проверки на этапе загрузки (из образа). Формируется администратором безопасности. Права на чтение и изменение файлов должен иметь только администратор (root).

Примеры:

Проверить целостность КСЗ:

$ checkksz

Сравнить контрольные хэш-суммы с подсчитанными по файлу-списку /etc/ksz/control_list:

$ checkksz -v -r

Сравнить контрольные хэш-суммы с подсчитанными по файлу-списку /etc/ksz/control_list:

$ checkksz -v -с

Выполнить тест работы алгоритма:

$ checkksz -v -t

Подсчитать контрольные суммы всех файлов в каталоге /bin:

$ checkksz `/bin/*`

Сохранить подсчитанные для файлов в каталоге /bin хэш-суммы в файл hash-list:

$ checkksz -s hash-list `/bin/*`

Сверить подсчитанные хэш-суммы для файлов, содержащихся в файле-списке hash-list с контрольными суммами из hash-list:

$ checkksz -C hash-list

Подсчитать контрольные хэш-суммы для файлов указанных в файле file-list и сохранить хэш-суммы в файл hash:

$ checkksz -s hash -R hash-list

Возвращаемое значение:

0
Успешное завершение.
≠0
Утилита завершилась с ошибками.

Классификация:

Инструментальные средства ЗОСРВ «Нейтрино», СЗИ




Предыдущий раздел: Утилиты