Служба Integrityd
Служба Integrityd предоставляет сторонним разработчикам возможность добавления файлов пакета на периодический контроль целостности.
Каждый пакет имеет возможность поставить свои файлы на контроль целостности.
Для этого используется специальная директория /etc/integrityd/config.d/.
При установке пакета необходимо поместить в неё конфигурационный файл с именем
{название_пакета}
.json.
Поддерживаемые типы файлов
Integrityd отвечает за измерение и верификацию объектов. Объекты могут принадлежать следующим категориям:
- обычные файлы;
- ELF-файлы;
У каждого объекта есть URI. Примеры:
file:/etc/passwd
;/etc/ssh/sshd_config
;- если схема отсутствует в uri, как в этом примере,
file
считается схемой по умолчанию;
- если схема отсутствует в uri, как в этом примере,
elf:/usr/bin/awk
.
Конфигурационный файл
Конфигурационный файл содержит блок watch
.
Блок содержит список объектов, которые будут включены в список наблюдения сторонних пакетов.
В список наблюдения можно добавлять элементы, но не удалять из него (т. е. список элементов будет перезагружен только при следующей загрузке устройства).
Блок watch
обязателен и может содержать только те файлы, которые присутствуют в составе пакета.
Пример {название_пакета}
.json:
{
"watch": [
"elf:/usr/bin/{название_пакета}",
"/usr/share/{название_пакета}/config.ini",
"/usr/share/icons/hicolor/86x86/apps/{название_пакета}.png",
"/usr/share/icons/hicolor/108x108/apps/{название_пакета}.png",
"/usr/share/icons/hicolor/128x128/apps/{название_пакета}.png",
"/usr/share/icons/hicolor/172x172/apps/{название_пакета}.png"
]
}
Пример {название_пакета}
.spec с указанием конфигурационного
файла {название_пакета}
.json:
Name: {название_пакета}
Version: 1.0.0
Release: 1
Summary: Package description
%description
%{summary}.
%prep
%autosetup
%build
%install
install -D -m 644 {название_пакета}.json %{buildroot}%{_sysconfdir}/integrityd/config.d/{название_пакета}.json
%files
%{_sysconfdir}/integrityd/config.d/{название_пакета}.json
После установки пакета демон Integrityd автоматически добавит объекты, описанные в конфигурационном файле, в список наблюдения сторонних пакетов.
Проверка всех конфигурационных файлов происходит автоматически
каждые 24 часа и при каждом включении устройства.
В случае нарушения целостности файлов сторонних пакетов,
в журнал лога записывается событие INTEGRITY_3RDPARTY_FAILED
со списком всех файлов, не прошедших проверку.