9 Контроль целостности

9.1 Введение

Средства контроля целостности предоставляют возможности контроля целостности обрабатываемых данных и используемого программного обеспечения.

9.2 Вычисление и сверка контрольной суммы файла

Утилита md5sum позволяет вычислять контрольные суммы файлов по алгоритму MD5 и осуществлять их сверку с другими контрольными суммами, хранящимися в файле.

Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:

Опции утилиты md5sum и их значения

Опция

Значение

-b, --binary

Позволяет считывать данные из файлов в двоичном режиме.

-t, --text

Позволяет считывать данные из файлов в текстовом режиме.

-c, --check

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

--tag

Выводить рассчитанную контрольную сумму в формате BSD.

--quiet

При сверке контрольных сумм позволяет не выводить сообщение OK для каждого успешного случая сверки контрольных сумм.

--status

При сверке контрольных сумм позволяет в конце работы утилиты не выводить ничего, кроме кода сверки контрольных сумм.

--strict

При сверке контрольных сумм позволяет выводить ненулевое значение для неправильно отформатированных строк контрольной суммы.

-w

При сверке контрольных сумм позволяет выводить предупреждения о неправильно отформатированных строках контрольной суммы.

--version

Показать версию утилиты и выйти.

--help

Показать справку и выйти.

Пример: подсчитаем контрольную сумму файла с журналом аудита.

Для этого выполним следующую команду:

[root@msvsphere ~]# md5sum /var/log/audit/audit.log
7125d47d351f46de50e73aaf8df016f5 /var/log/audit/audit.log

9.3 Проверка целостности данных

Утилита aide предоставляет возможности проверки целостности данных.

  1. Перед началом использования необходимо установить утилиту aide с помощью следующей команды (необходимо по запросу системы указать пароль суперпользователя root):

sudo dnf install aide
  1. Затем необходимо инициализировать базу данных для хранения состояний файлов с помощью следующей команды (необходимо по запросу системы указать пароль суперпользователя root):

sudo aide --init

В конфигурации по умолчанию команда aide --init проверяет только файлы и директории, заданные в конфигурационном файле /etc/aide.conf. Чтобы добавить необходимые файлы и директории в базу AIDE, а также изменить параметры, необходимо внести соответствующие изменения в конфигурационный файл /etc/aide.conf.

  1. Перед началом использования инициализированной базы данных удалите .new из имени файла с помощью следующей команды:

sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
  1. Для изменения места расположения базы AIDE необходимо в файле /etc/aide.conf изменить значение параметра DBDIR. Для обеспечения дополнительной безопасности рекомендуется хранить базу данных, конфигурацию и файл /usr/sbin/aide в безопасном месте.

Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице.

Опции утилиты aide и их значения

Опция

Значение

-i, --init

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

-C, --check

Проверяет базу данных состояний файлов на наличие несоответствий, для чего необходимо иметь инициализированную базу данных. Эта опция выполняется по умолчанию, если не указать никакой другой опции.

-u, --update

Проверяет базу данных и обновляет ее. При этом входные и выходные базы данных должны быть разными.

-E, --compare

Сравнивает две базы данных, которые должны быть определены в конфигурационном файле.

-D, --config-check

Осуществляет считывание данных из конфигурационного файла, уведомляя обо всех обнаруженных ошибках.

-c, --config=configfile

Позволяет считывать конфигурацию из указанного файла вместо используемого по умолчанию конфигурационного файла ./aide.conf.

-B, --before=“configparameters”

Позволяет обрабатывать указанные конфигурационные параметры до считывания данных из конфигурационного файла.

-A, --after=“configparameters”

Позволяет обрабатывать указанные конфигурационные параметры после считывания данных из конфигурационного файла.

-V verbosity_level, --verbose=verbosity_level

Определяет детальность обработки данных. На месте параметра verbosity_level может находиться целочисленное значение в диапазоне от 0 до 255. По умолчанию значение данного параметра равно 5. Если вызвать данную опцию, но не присвоить целочисленное значение параметру verbosity_level, то ему автоматически будет присвоено значение, равное 20. Этот параметр переопределяет значение, установленное в конфигурационном файле.

-r reporter, --report=reporter

Определяет место (URL), в которое утилита должна отправлять свои результаты работы.

Пример: проверим систему, сравнив aide.db и текущее состояние системы, без обновления aide.db.new.

Для этого выполним следующую команду:

[root@msvsphere user3]# aide --check
AIDE, version 0.15.1
### All files match AIDE database. Looks okay!

Если произошло изменение файлов системы, то будет получено соответствующее уведомление:

[root@msvsphere user3]# aide --check
AIDE 0.15.1 found differences between database and filesystem!
Start timestamp: 2023-03-28 09:12:21
Summary:
   Total number of files: 264416
   Added files:           1
   Removed files:         0
   Changed files:         3

Рекомендуется проводить проверку каждый день. Вы можете настроить проведение ежедневной проверки с помощью команды cron. Например, настроим проверку на 03:00, добавив в файл /etc/crontab следующую строку:

00 3 * * * root /usr/sbin/aide --check

Также, мы рекомендуем обновлять основную базу AIDE после обновлений системы и пакетов, а также изменений в конфигурационных файлах.

Для обновления основной базу AIDE выполните следующую команду:

sudo aide --update

Будет создан файл /var/lib/aide/aide.db.new.gz. Чтобы начать использовать вновь созданный файл для проверки целостности данных, удалите .new из имени файла.