https://www.altlinux.org/index.php?title=IMA_EVM&feed=atom&action=history
IMA EVM - История изменений
2024-03-29T11:52:47Z
История изменений этой страницы в вики
MediaWiki 1.38.2
https://www.altlinux.org/index.php?title=IMA_EVM&diff=52325&oldid=prev
Lineprinter в 07:45, 17 февраля 2021
2021-02-17T07:45:15Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Предыдущая версия</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Версия от 07:45, 17 февраля 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l68">Строка 68:</td>
<td colspan="2" class="diff-lineno">Строка 68:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#Запустить инициализацию системы контроля целостности:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#Запустить инициализацию системы контроля целостности:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1"># /usr/bin/integrity-applier</source></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1"># /usr/bin/integrity-applier</source></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#:Необходимо дождаться завершения работы команды (система будет перезагружена четыре раза). Выполнение этой команды может занять довольно продолжительное время (подписываются все файлы системы).</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#:Необходимо дождаться завершения работы команды (система будет перезагружена четыре раза). Выполнение этой команды может занять довольно продолжительное время (подписываются все файлы системы). <ins style="font-weight: bold; text-decoration: none;">(Требуется systemd)</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#После четвертой перезагрузки можно проверить параметры загрузки ядра с помощью команды (в командной строке ядра должны присутствовать параметры '''ima_appraise=enforce evm=enforce'''):</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#После четвертой перезагрузки можно проверить параметры загрузки ядра с помощью команды (в командной строке ядра должны присутствовать параметры '''ima_appraise=enforce evm=enforce'''):</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1">$ cat /proc/cmdline </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1">$ cat /proc/cmdline </div></td></tr>
<!-- diff cache key altlinux_org:diff::1.12:old-49550:rev-52325 -->
</table>
Lineprinter
https://www.altlinux.org/index.php?title=IMA_EVM&diff=49550&oldid=prev
Nickel: /* Настройка контроля целостности */
2020-09-15T08:41:56Z
<p><span dir="auto"><span class="autocomment">Настройка контроля целостности</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Предыдущая версия</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Версия от 08:41, 15 сентября 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l69">Строка 69:</td>
<td colspan="2" class="diff-lineno">Строка 69:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1"># /usr/bin/integrity-applier</source></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1"># /usr/bin/integrity-applier</source></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:Необходимо дождаться завершения работы команды (система будет перезагружена четыре раза). Выполнение этой команды может занять довольно продолжительное время (подписываются все файлы системы).</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:Необходимо дождаться завершения работы команды (система будет перезагружена четыре раза). Выполнение этой команды может занять довольно продолжительное время (подписываются все файлы системы).</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#После четвертой <del style="font-weight: bold; text-decoration: none;">перtзагрузки </del>можно проверить параметры загрузки ядра с помощью команды (в командной строке ядра должны <del style="font-weight: bold; text-decoration: none;">присутствуют </del>параметры '''ima_appraise=enforce evm=enforce'''):</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#После четвертой <ins style="font-weight: bold; text-decoration: none;">перезагрузки </ins>можно проверить параметры загрузки ядра с помощью команды (в командной строке ядра должны <ins style="font-weight: bold; text-decoration: none;">присутствовать </ins>параметры '''ima_appraise=enforce evm=enforce'''):</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1">$ cat /proc/cmdline </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#:<source lang="text" highlight="1">$ cat /proc/cmdline </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>BOOT_IMAGE=/boot/vmlinuz root=UUID=f8e4db06-25bc-4f5f-bc26-e908da5bd16c ro quiet=1 resume=/dev/disk/by-uuid/beafe88b-4a8b-43bd-9662-91d4e534c71c panic=30 splash ipv6.disable=1 security=selinux selinux=1 smem=1 ima_appraise=enforce evm=enforce ima_hash=sha1</source></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>BOOT_IMAGE=/boot/vmlinuz root=UUID=f8e4db06-25bc-4f5f-bc26-e908da5bd16c ro quiet=1 resume=/dev/disk/by-uuid/beafe88b-4a8b-43bd-9662-91d4e534c71c panic=30 splash ipv6.disable=1 security=selinux selinux=1 smem=1 ima_appraise=enforce evm=enforce ima_hash=sha1</source></div></td></tr>
<!-- diff cache key altlinux_org:diff::1.12:old-46140:rev-49550 -->
</table>
Nickel
https://www.altlinux.org/index.php?title=IMA_EVM&diff=46140&oldid=prev
AndrewVasilyev: /* Команда updater-start */
2019-09-17T15:24:04Z
<p><span dir="auto"><span class="autocomment">Команда updater-start</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Предыдущая версия</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Версия от 15:24, 17 сентября 2019</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l163">Строка 163:</td>
<td colspan="2" class="diff-lineno">Строка 163:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Note|При активированном мандатном контроле доступа все исполняемые скрипты в {{path|/etc/updater.d/}} должны иметь метку integrity_protected_t.}}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Note|При активированном мандатном контроле доступа все исполняемые скрипты в {{path|/etc/updater.d/}} должны иметь метку integrity_protected_t.}}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Например, если используется control++ со списками, то в {{path|/etc/updater.d/}} нужно положить скрипт, вызывающий сontrol++ и cнимающий списки <del style="font-weight: bold; text-decoration: none;">доустановки </del>пакетов и устанавливающий их после установки. Последовательность действий:</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Например, если используется control++ со списками, то в {{path|/etc/updater.d/}} нужно положить скрипт, вызывающий сontrol++ и cнимающий списки <ins style="font-weight: bold; text-decoration: none;">до установки </ins>пакетов и устанавливающий их после установки. Последовательность действий:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#В каталоге {{path|/etc/updater.d}} создать файл (название произвольное) с содержимым:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#В каталоге {{path|/etc/updater.d}} создать файл (название произвольное) с содержимым:</div></td></tr>
<!-- diff cache key altlinux_org:diff::1.12:old-46119:rev-46140 -->
</table>
AndrewVasilyev
https://www.altlinux.org/index.php?title=IMA_EVM&diff=46119&oldid=prev
Vt в 21:15, 14 сентября 2019
2019-09-14T21:15:11Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Предыдущая версия</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Версия от 21:15, 14 сентября 2019</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4">Строка 4:</td>
<td colspan="2" class="diff-lineno">Строка 4:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Подсистема IMA/EVM==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Подсистема IMA/EVM==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>IMA/EVM (Integrity <del style="font-weight: bold; text-decoration: none;">measurement architecture </del>and Extended <del style="font-weight: bold; text-decoration: none;">verification module</del>) — подсистема, позволяющая осуществлять контроль целостности файловой системы.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>IMA/EVM (Integrity <ins style="font-weight: bold; text-decoration: none;">Measurement Architecture </ins>and Extended <ins style="font-weight: bold; text-decoration: none;">Verification Module</ins>) — подсистема <ins style="font-weight: bold; text-decoration: none;">ядра Linux</ins>, позволяющая осуществлять контроль целостности файловой системы.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>IMA включает в себя две подсистемы – IMA-measurement (измерение) и IMA-appraisal (оценка). Первая собирает хеш-образы файлов, вторая сравнивает собранный хеш с сохраненным хешем и запрещает доступ в случае несоответствия. Собранные хеш-образы хранятся в расширенных атрибутах файловой системы. Модуль расширенной проверки (EVM) предотвращает несанкционированные изменения этих расширенных атрибутов в файловой системе.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>IMA включает в себя две подсистемы – IMA-measurement (измерение) и IMA-appraisal (оценка). Первая собирает хеш-образы файлов, вторая сравнивает собранный хеш с сохраненным хешем и запрещает доступ в случае несоответствия. Собранные хеш-образы хранятся в расширенных атрибутах файловой системы. Модуль расширенной проверки (EVM) предотвращает несанкционированные изменения этих расширенных атрибутов в файловой системе.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>
Vt
https://www.altlinux.org/index.php?title=IMA_EVM&diff=45388&oldid=prev
Elena Mishina: Новая страница: «Категория:Безопасность {{Stub}} ==Подсистема IMA/EVM== IMA/EVM (Integrity measurement architecture and Extended verification…»
2019-07-18T14:45:39Z
<p>Новая страница: «<a href="/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&action=edit&redlink=1" class="new" title="Категория:Безопасность (страница не существует)">Категория:Безопасность</a> {{Stub}} ==Подсистема IMA/EVM== IMA/EVM (Integrity measurement architecture and Extended verification…»</p>
<p><b>Новая страница</b></p><div>[[Категория:Безопасность]]<br />
{{Stub}}<br />
<br />
==Подсистема IMA/EVM==<br />
<br />
IMA/EVM (Integrity measurement architecture and Extended verification module) — подсистема, позволяющая осуществлять контроль целостности файловой системы.<br />
IMA включает в себя две подсистемы – IMA-measurement (измерение) и IMA-appraisal (оценка). Первая собирает хеш-образы файлов, вторая сравнивает собранный хеш с сохраненным хешем и запрещает доступ в случае несоответствия. Собранные хеш-образы хранятся в расширенных атрибутах файловой системы. Модуль расширенной проверки (EVM) предотвращает несанкционированные изменения этих расширенных атрибутов в файловой системе.<br />
<br />
Подсистема целостности Linux позволяет использовать подписи IMA и EVM. Подпись EVM защищает метаданные файла, такие как атрибуты файла и расширенные атрибуты. Подпись IMA защищает содержимое файла.<br />
<br />
[[Изображение:Ima.png|Перехват системного вызова и передача управления модулям безопасности]]<br />
<br />
===Параметры командной строки ядра===<br />
<br />
К параметрам командной строки IMA относятся ima_appraise и ima_policy.<br />
<br />
ima_appraise может принимать 1 из 4 значений:<br />
*enforce – «жесткий» режим, разрешает запуск программ только при прохождении проверки. В этом режиме IMA оценивает файлы в соответствии с политикой. Доступ к оцениваемому файлу запрещается, если хеш отсутствует или не соответствует собранному значению; <br />
*log – режим «журналирования», аналогичен «жесткому» режиму, за исключением того, что доступ к измененному файлу не запрещается, а будет только зарегистрирован;<br />
*off – отключает все оценки. Сохраненные хеши не проверяются, и новые хеши не создаются и не обновляются;<br />
*fix – «мягкий» режим, используется на этапе настройке системы и разрешает запуск любых программ, регистрируя события несанкционированного доступа в журнале. Запуск в этом режиме применяется для первичной маркировки системы. <br />
<br />
ima_policy может принимать 1 из 3 значений:<br />
*tcb – измеряет все исполняемые файлы, все файлы, помеченные для выполнения (например, разделяемые библиотеки), все загруженные модули ядра и все загруженные прошивки. Кроме того, измеряются также файлы, открытые для чтения пользователем root;<br />
*appraise_tcb – оценивает все файлы, принадлежащие пользователю root;<br />
*secure_boot – оценивает все загруженные модули, прошивку, ядро и политики IMA. <br />
<br />
ima_policy может быть указано несколько раз, и результатом является объединение политик.<br />
<br />
===Опция монтирования iversion===<br />
<br />
Добавление опции монтирования iversion (номер версии структуры данных увеличивается каждый раз, когда структура данных изменяется) позволяет оптимизировать <br />
IMA: хэш файла будет пересчитываться только тогда, когда он фактически изменяется, а не каждый раз, когда файл открывается.<br />
<br />
===Утилиты===<br />
<br />
Утилита [[evmctl]] может использоваться для создания и проверки цифровых подписей, которые используются подсистемой целостности ядра Linux (IMA/EVM), а также для добавления ключей в набор ключей ядра.<br />
<br />
Команды проверки целостности файла /bin/ping:<br />
<source lang="text" highlight="1"># integrity-sign --stdin --verbose --verify<br />
/bin/ping<br />
integrity-sign: /bin/ping: OK<br />
</source><br />
<br />
<source lang="text" highlight="1">evmctl -v ima_verify /bin/ping<br />
/bin/ping: verification is OK</source><br />
<br />
Журнал целостности, зарегистрированный подсистемой IMA, хранится в файле {{path|/sys/kernel/security/ima/ascii_runtime_measurements}}:<br />
<source lang="text" highlight="1"># less /sys/kernel/security/ima/ascii_runtime_measurements<br />
10 457a77e270cece2273d063f3e5368d367090be5a ima-ng sha1:782eacd35c1efadb33a4a64c24057cd231dae5ff /bin/sleep<br />
10 e57560dbf485ee91853f800629bbc2995d9e4520 ima-ng sha1:581f0675aee3da04fa8b97a7010257c9f18ba8bf /bin/rm<br />
</source><br />
<br />
==Настройка контроля целостности==<br />
<br />
Для настройки контроля целостности необходимо выполнить следующие действия:<br />
<br />
#Изменить параметры монтирования файловой системы. Для этого следует выставить параметр '''iversion''' на всех записях в файле {{path|/etc/fstab}} относящихся к местам, где могут быть исполняемые файлы:<br />
#:<source lang="text" highlight="1"># vim /etc/fstab <br />
UUID=c7834d14-d0f0-4d70-94f5-f1ce09fda00c / ext4 relatime,iversion 1 1 <br />
UUID=16b090bf-8b7a-4e69-8df6-6a4374f3d550 /home ext4 noexec,nosuid,relatime,iversion 1 2 </source><br />
#Настроить политику контроля целостности, для этого скопировать политику в {{path|/etc/integrity/policy}}:<br />
#:<source lang="text" highlight="1"># cp /usr/share/doc/ima-evm-integrity-check-*/policy.example /etc/integrity/policy</source><br />
#:Для активации контроля целостности модулей ядра добавить в конец файла политики ({{path|/etc/integrity/policy}}), следующие строки:<br />
#:<source lang="text">audit func=MODULE_CHECK<br />
measure func=MODULE_CHECK<br />
appraise func=MODULE_CHECK</source><br />
#Запустить инициализацию системы контроля целостности:<br />
#:<source lang="text" highlight="1"># /usr/bin/integrity-applier</source><br />
#:Необходимо дождаться завершения работы команды (система будет перезагружена четыре раза). Выполнение этой команды может занять довольно продолжительное время (подписываются все файлы системы).<br />
#После четвертой перtзагрузки можно проверить параметры загрузки ядра с помощью команды (в командной строке ядра должны присутствуют параметры '''ima_appraise=enforce evm=enforce'''):<br />
#:<source lang="text" highlight="1">$ cat /proc/cmdline <br />
BOOT_IMAGE=/boot/vmlinuz root=UUID=f8e4db06-25bc-4f5f-bc26-e908da5bd16c ro quiet=1 resume=/dev/disk/by-uuid/beafe88b-4a8b-43bd-9662-91d4e534c71c panic=30 splash ipv6.disable=1 security=selinux selinux=1 smem=1 ima_appraise=enforce evm=enforce ima_hash=sha1</source><br />
#Переименовать файл записи аудита {{path|/var/log/audit/audit.log}}: <br />
#:<source lang="text" highlight="1"># mv /var/log/audit/audit.log /var/log/audit/audit_old.log</source><br />
#Выполнить запуск аудита:<br />
#:<source lang="text" highlight="1"># service auditd start</source><br />
#Включить службы integrity-notifier и integrity-scanner:<br />
#:<source lang="text" highlight="1-4"># systemctl enable integrity-notifier<br />
# systemctl start integrity-notifier<br />
# systemctl enable integrity-scanner<br />
# systemctl start integrity-scanner</source><br />
<br />
Система будет работать с включенным контролем исполняемых файлов.<br />
<br />
Перед запуском программы система проверяет хеш-образ файла с сохраненным значением. Если образы не совпадают, то любой доступ к этому файлу будет отклонен с ошибкой «Отказано в доступе».<br />
<br />
В журнале будут фиксироваться попытки нарушения целостности (invalid-signature):<br />
<br />
<source lang="text" highlight="1"># journalctl –r | grep invalid-signature</source><br />
<br />
Пример вывода:<br />
<br />
<source lang="text">янв 04 16:34:24 host-15.localdomain audit[1750]: INTEGRITY_DATA pid=1750 uid=0 auid=64 ses=2 subj=officer_u:officer_r:officer_t:s0-s3:c0.c15 op="appraise_data" cause="invalid-signature" comm="bash" name="/usr/bin/tgz" dev="sda2" ino=657342 res=0</source><br />
<br />
==Контроль целостности при загрузке==<br />
<br />
Проверить, что сервис контроля целостности при загрузке активирован, можно выполнив команду:<br />
<br />
<source lang="text" highlight="1"># systemctl is-enabled integalert<br />
enabled</source><br />
<br />
Если сервис не активирован, активировать его, выполнив команду:<br />
<br />
<source lang="text" highlight="1"># systemctl enable integalert</source><br />
<br />
В случае выявления нарушения целостности при загрузке ОС выводится визуальное оповещение с обязательным подтверждением дальнейшей загрузки ОС. Система будет загружаться в однопользовательском режиме с запросом пароля суперпользователя:<br />
<br />
<source lang="text">login [root]:<br />
Password:</source><br />
<br />
==Служба оповещения — integrity-notifier==<br />
Назначение службы integrity-notifier — оповестить пользователя в том случае, если была запущена повреждённая программа.<br />
<br />
{{Note| Служба integrity-notifier должна запускаться при загрузке системы.}}<br />
<br />
Сообщения из системного журнала с пометкой INTEGRITY_DATA фильтруются службой integrity-scanner и складываются в каталог<br />
{{path|/var/log/integrityd/}}. В файле {{path|/var/log/integrityd/current}} поддерживается окно сообщений за установленный интервал времени (по умолчанию 5 минут). Старые записи складываются там же, с именами, начинающимися на "@" (по умолчанию 50 файлов максимум). Настройки по умолчанию можно изменить в файле {{path|/var/log/integrityd/config}}.<br />
<br />
Служба оповещения (integrity-notifier) читает свежие сообщения из окна и оповещает соответствующих пользователей посредством команды write.<br />
<br />
Сообщение, которое отправляется пользователю, настраивается в файле {{path|/etc/integrity/message}}. Это должен быть шаблон printf с количеством строковых аргументов не более 2 штук. По умолчанию используется строка:<br />
<br />
You have attempted to run a damaged file: %s (%s)<br />
<br />
Конфигурационный файл {{path|/etc/integrity/also}} состоит из набора имён тех пользователей, которых нужно оповещать о каждом событии INTEGRITY_DATA. <br />
<br />
Предусмотрена программа для отправки оповещений на рабочий стол — /usr/bin/integrity-notifier. Она использует команду notify-send.<br />
<br />
Текст заголовка и сообщения для оповещений на рабочий стол задаётся в файле {{path|/etc/integrity/desktop_message}}.<br />
<br />
Могут быть и другие службы оповещения пользовательского уровня, также читающие сообщения из файла {{path|/var/log/integrityd/current}}.<br />
<br />
==Обновление системы==<br />
<br />
===Команда integrity-applier===<br />
<br />
Для того чтобы система сохранила все настройки безопасности установку/обновление пакетов необходимо производить в следующем порядке:<br />
<br />
#Установить пакеты/обновить систему при помощи apt-get;<br />
#Выполнить команду для инициализации контроля целостности:<br />
#: <source lang="text" highlight="1"># /usr/bin/integrity-applier</source><br />
#Дождаться завершения работы команды (система будет перезагружена четыре раза);<br />
# Переименовать файл записи аудита {{path|/var/log/audit/audit.log}}: <br />
#: <source lang="text" highlight="1"># mv /var/log/audit/audit.log /var/log/audit/audit_old.log</source><br />
# Выполнить запуск аудита:<br />
#: <source lang="text" highlight="1"># service auditd start</source><br />
<br />
===Команда updater-start===<br />
<br />
Для того чтобы система сохранила все настройки безопасности для установки/обновления пакетов может использоваться команда '''updater-start''' (из пакета {{pkg|updater}}).<br />
<br />
В результате запуска данной команды будет обновлена система и ядро системы, а также включена система контроля целостности ima-evm. Необходимо дождаться завершения работы команды (система будет несколько раз перезагружена).<br />
<br />
{{Note|Выполнение команды может занять довольно продолжительное время (время зависит от количества установленных в системе файлов).}}<br />
<br />
{{Note|Если после отработки команды '''updater-start''' не запускается сервис '''auditd''', необходимо переименовать/удалить старый журнал аудита ({{path|/var/log/audit/audit.log}}) и выполнить команду '''systemctl start auditd''':<br />
<source lang="text" highlight="1-2"># mv /var/log/audit/audit.log /var/log/audit/audit.log_old<br />
# systemctl start auditd</source>}}<br />
<br />
Команда '''updater-start''' также запускает скрипты из {{path|/etc/updater.d/*}} c параметром ''remove'' перед установкой пакетов и их же с параметром ''apply'' после.<br />
<br />
{{Note|При активированном мандатном контроле доступа все исполняемые скрипты в {{path|/etc/updater.d/}} должны иметь метку integrity_protected_t.}}<br />
<br />
Например, если используется control++ со списками, то в {{path|/etc/updater.d/}} нужно положить скрипт, вызывающий сontrol++ и cнимающий списки доустановки пакетов и устанавливающий их после установки. Последовательность действий:<br />
<br />
#В каталоге {{path|/etc/updater.d}} создать файл (название произвольное) с содержимым:<br />
#:<source lang="text">#!/bin/bash<br />
if [ "$1" == "remove" ] ;<br />
then<br />
control++ reset<br />
fi<br />
if [ "$1" == "apply" ] ;<br />
then<br />
control++ blacklist<br />
fi<br />
</source><br />
# Сделать этот файл исполняемым:<br />
#: <source lang="text" highlight="1"># chmod +x /etc/updater.d/<имя_файла></source><br />
# Установить на файл selinux тип integrity_protected_t:<br />
#: <source lang="text" highlight="1"># chcon -t integrity_protected_t /etc/updater.d/<имя_файла></source><br />
# Запустить обновление:<br />
#: <source lang="text" highlight="1"># updater-start</source><br />
# Переименовать файл записи аудита {{path|/var/log/audit/audit.log}}: <br />
#: <source lang="text" highlight="1"># mv /var/log/audit/audit.log /var/log/audit/audit_old.log</source><br />
# Выполнить запуск аудита:<br />
#: <source lang="text" highlight="1"># service auditd start</source></div>
Elena Mishina