Утилита podman-integrity#
Утилита podman-integrity служит для проверки целостности отдельных файлов, каталогов и образов контейнеров через расчет контрольных сумм по алгоритму SHA-256. В случае обнаружения нарушения целостности ведет запись в журнал аудита и возвращает код ошибки 51.
Синтаксис podman-integrity:
podman-integrity <command> <arguments>
Где:
<command>- действие, которое необходимо выполнить;<arguments>- аргументы.
Команды утилиты представлены в таблице ниже.
Команда |
Описание |
|---|---|
|
Принимает в качестве аргумента название/ID контейнера. Находит используемый контейнером образ, вычисляет его контрольную сумму и записывает в файл |
|
Принимает в качестве аргумента путь к файлу/каталогу. Записывает подсчитанную контрольную сумму в расширенные атрибуты в поле |
|
Принимает в качестве аргумента путь к каталогу. Обрабатывает его рекурсивно, записывает контрольную сумму каждого найденного файла в поле |
|
Принимает в качестве аргумента название/ID образа контейнера. Вычисляет его контрольную сумму и записывает в файл |
|
Принимает в качестве аргумента название/ID контейнера. Находит используемый контейнером образ, вычисляет его контрольную сумму и сравнивает с записанной в файл |
|
Принимает в качестве аргумента путь к файлу/каталогу. Сравнивает подсчитанную контрольную сумму с записанной в поле |
|
Принимает в качестве аргумента путь к каталогу. Рекурсивно обрабатывает его, сравнивает подсчитанную контрольную сумму каждого файла с записанной в поле |
|
Принимает в качестве аргумента название/ID образа контейнера. Вычисляет его контрольную сумму и записывает в файл |
Справку по использованию команд можно получить, запустив утилиту или ее команду с опцией --help, например:
podman-integrity validate_image --help
Важно
При выполнении команд валидации если контрольные суммы совпадают — утилита возвращает код 0; в противном случае утилита возвращает код 51 и в log-файл аудита выводится ошибка 2156 (Integrity violation).
При выполнении команды validate_file_each происходит последовательная проверка контрольных сумм каждого файла в указанном каталоге. Если в ходе проверки вычисленная контрольная сумма отличается от записанной в расширенных атрибутах, то проверка целостности останавливается, а в log-файл аудита выводится ошибка 2156 (Integrity violation).
При вычислении контрольной суммы образа контейнера и проверке целостности образа контейнера утилитой предварительно выполняется его монтирование с помощью podman image mount <Image_ID>. Контрольная сумма вычисляется для cмонтированного каталога. После подсчета выполняется размонтирование — podman image unmount <Image_ID>. Операции монтирования и размонтирования происходят в автоматическом режиме, без вмешательства пользователя.
В случае успешного выполнения команд podman-integrity возвращает 0. В случае ошибки, например, при неуспешной валидации или вводе аргументов неверного формата, утилита возвращает ненулевой код ошибки. Ошибка при валидации файла, образа или контейнера инициирует внесение соответствующей записи в журнал аудита.
Примеры использования#
Проверка целостности образа контейнера#
Порядок проверки целостности образа контейнера ecstatic_brattain (имя контейнера взято для примера):
Рассчитайте контрольную сумму для последующего контроля целостности:
podman-integrity update_container ecstatic_brattain; echo $?Вывод команды при успешном выполнении —
0, при неуспешном -51.Проведите валидацию контрольной суммы:
podman-integrity validate_container ecstatic_brattain; echo $?Вывод команды при успешном выполнении —
0, при неуспешном -51.
Проверка целостности исполняемого файла#
Порядок проверки целостности образа контейнера abc (имя файла взято для примера):
Рассчитайте контрольную сумму для последующего контроля целостности:
podman-integrity update_file abc; echo $?Вывод команды при успешном выполнении —
0, при неуспешном -51.Проведите валидацию контрольной суммы:
podman-integrity validate_file abc; echo $?Вывод команды при успешном выполнении —
0, при неуспешном -51.