Ima-evm-utils — различия между версиями

Материал из Wiki AlterOS
Перейти к: навигация, поиск
 
(не показано 9 промежуточных версий 2 участников)
Строка 1: Строка 1:
  
ПОВЫШЕНИЕ БЕЗОПАСНОСТИ С ПОМОЩЬЮ ПОДСИСТЕМЫ ЦЕЛОСТНОСТИ ЯДРА
+
'''ПОВЫШЕНИЕ БЕЗОПАСНОСТИ С ПОМОЩЬЮ ПОДСИСТЕМЫ ЦЕЛОСТНОСТИ ЯДРА ( замкнутая программная среда ) '''
  
 +
Integrity Measurement Architecture (IMA) :  Архитектура проверки целостности
  
'''!Данный материал в стадии разработки!'''
+
Extended Verification Module (EVM) : Расширенный модуль проверки
 
 
  
Integrity Measurement Architecture (IMA) : Архитектура проверки целостности
+
ЗПС : Замкнутая программная среда
  
Extended Verification Module (EVM) : Расширенный модуль проверки
+
Настройка IMA и EVM позволяет подписывать файлы при помощи цифровой подписи и повышать безопасность операционной системы.
  
Настройка IMA и EVM позволяет подписывать файлы при помощи ЭЦП и повышать безопасность операционной системы.
+
'''Внимание! все действия выполняются от привилегированной учетной записи root'''
  
#Установка необходимых пакетов:
+
== Включение и настройка IMA ==
 
sudo yum install ima-evm-utils keyutils openssl
 
  
Внести изменения в файл /etc/fstab выставив параметр  iversion на всех записях в файле /etc/fstab относящихся к местам, где могут быть исполняемые файлы:
+
1. Установка необходимых пакетов:
 +
yum install ima-evm-utils keyutils openssl
 +
2. Внести изменения в файл /etc/fstab выставив параметр  iversion на всех записях в файле /etc/fstab относящихся к местам, где могут быть исполняемые файлы:
 
  vi /etc/fstab
 
  vi /etc/fstab
  
Строка 29: Строка 29:
 
  UUID=48c0bccf-fa73-4a6b-8476-e89737b2fd4d /boot                  ext4    defaults        1 2
 
  UUID=48c0bccf-fa73-4a6b-8476-e89737b2fd4d /boot                  ext4    defaults        1 2
 
  /dev/mapper/alteros-swap swap                    swap    defaults        0 0
 
  /dev/mapper/alteros-swap swap                    swap    defaults        0 0
 
+
3. Выполнить команду для инициализации системы IMA в режиме fix
 
+
  grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=fix ima_appraise_tcb evm=fix ima=on ima_policy=appraise_tcb"
Выполнить команды создания каталога и монтирования
+
4. Выполнить команду перезагрузки
mkdir /sys/kernel/security
+
  reboot
mount -t securityfs securityfs /sys/kernel/security 
+
5. Запустим перемаркировку файлов файловой системы выполнением команды
 
 
  sudo grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=fix ima_appraise_tcb evm=fix"
 
sudo reboot
 
#Создание новой ключевой пары для EVM
 
sudo evm_kr_id=$(keyctl newring _evm @u)
 
''Команда создает связку ключей _evm и присоединяет ее к связке ключей пользователя системы @u. Затем идентификатор брелока _evm присваивается переменной evm_kr_id для более удобного обращения в будущем''
 
 
 
#Убедимся, что ключевая пара создана
 
sudo keyctl show
 
#Создадим каталог для хранения ключей
 
sudo mkdir -p /etc/keys
 
#Генерация 1024-битного RSA закрытого ключа и запись его в файл /etc/keys/privkey.pem
 
sudo openssl genrsa -out /etc/keys/privkey.pem 1024
 
Используя ранее созданный файл /etc/keys/privkey.pem, получаем соответствующий открытый ключ RSA в файл  /etc/keys/pubkey.pem
 
sudo openssl rsa -pubout -in /etc/keys/privkey.pem -out /etc/keys/pubkey.pem
 
 
 
#Импортируем открытый ключ в специальную связку EVM#
 
evmctl import --rsa /etc/keys/pubkey.pem $evm_kr_id
 
 
 
#Выполнив повторно команду, убеждаемся, что ключ импортирован
 
  sudo keyctl show
 
 
 
[root@localhost ~]# keyctl show
 
Session Keyring
 
228099777 --alswrv      0    0  keyring: _ses
 
150675630 --alswrv      0 65534  \_ keyring: _uid.0
 
740423240 --alswrv      0    0      \_ keyring: _evm
 
939289881 --alswrv      0    0          \_ user:  Xv▒
 
 
 
#Создаем мастер-ключ ядра для защиты ключа EVM
 
dd if=/dev/urandom bs=1 count=32 2>/dev/null | keyctl padd user kmk-user @u
 
 
 
Создаем шифрованный ключ на основе случайно-сгенерированного мастер-ключа:
 
keyctl add encrypted evm-key "new user:kmk 64" @u
 
 
 
Включаем EVM
 
echo 1 > /sys/kernel/security/evm
 
Убедимся, что EVM активирован
 
dmesg | tail -1
 
''в результате выполнения команды видим следующий текст EVM: initialized''
 
[ 6463.195209] EVM: initialized
 
 
 
 
 
#Включение модуля  и генерация мастер-ключа
 
sudo modprobe trusted encrypted
 
sudo keyctl add trusted kmk-trusted "new 32" @u
 
 
 
#Запустим перемаркировку файлов файловой системы выполнением команды
 
 
  find / -fstype ext4 -type f -uid 0 -exec head -n 1 '{}' >/dev/null \;
 
  find / -fstype ext4 -type f -uid 0 -exec head -n 1 '{}' >/dev/null \;
 
 
  ''процесс занимает достаточно долгое время''
 
  ''процесс занимает достаточно долгое время''
 
После окончания процесса проверим выборочно файлы из каталога /usr/bin
 
После окончания процесса проверим выборочно файлы из каталога /usr/bin
 
  getfattr -m - -d /usr/bin/bluetoothctl   
 
  getfattr -m - -d /usr/bin/bluetoothctl   
 
 
''Наличие строки security.ima=... свидетельствует о том, что файл маркирован''
 
''Наличие строки security.ima=... свидетельствует о том, что файл маркирован''
 
  # file: usr/bin/bluetoothctl
 
  # file: usr/bin/bluetoothctl
 
  security.ima=0sAQg5hQ2yAogXYsrxHmgDk8VxHi3D
 
  security.ima=0sAQg5hQ2yAogXYsrxHmgDk8VxHi3D
 
  security.selinux="system_u:object_r:bin_t:s0"
 
  security.selinux="system_u:object_r:bin_t:s0"
 +
6. После проведения маркировки переключить режим работы системы при помощи команды, либо в меню загрузки ОС нажав клавишу 'e' и изменив опции загрузки на ima_appraise=enforce ima_appraise_tcb evm=enforce
 +
grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=enforce ima_appraise_tcb evm=enforce ima=on ima_policy=appraise_tcb"
 +
7.Выполнить команду перезагрузки
 +
reboot
 +
Для проверки работы можно удалить атрибуты IMA у файла /usr/bin/echo
 +
setfattr -x security.ima /usr/bin/echo
 +
Запустив команду:
 +
/usr/bin/echo test
 +
получим ответ:
 +
[root@localhost ~]# /usr/bin/echo
 +
-bash: /usr/bin/echo: Отказано в доступе
  
После проведения маркировки переключить режим работы системы при помощи команды, либо в меню загрузки ОС нажав клавишу 'e' и изменив опции загрузки на ima_appraise=enforce ima_appraise_tcb evm=enforce
+
[[Категория:AlterOS 7.X]] [[Категория:auditd]]
sudo grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=enforce ima_appraise_tcb evm=enforce"
 
 
 
В журнале работы ОС будут отображаться события по изменившимся или отсутствующим аттрибутам IMA
 
journalctl -r | grep invalid-hash
 
journalctl -r | grep missing-hash
 

Текущая версия на 10:10, 27 февраля 2024

ПОВЫШЕНИЕ БЕЗОПАСНОСТИ С ПОМОЩЬЮ ПОДСИСТЕМЫ ЦЕЛОСТНОСТИ ЯДРА ( замкнутая программная среда )

Integrity Measurement Architecture (IMA) : Архитектура проверки целостности

Extended Verification Module (EVM) : Расширенный модуль проверки

ЗПС : Замкнутая программная среда

Настройка IMA и EVM позволяет подписывать файлы при помощи цифровой подписи и повышать безопасность операционной системы.

Внимание! все действия выполняются от привилегированной учетной записи root

Включение и настройка IMA

1. Установка необходимых пакетов:

yum install ima-evm-utils keyutils openssl

2. Внести изменения в файл /etc/fstab выставив параметр iversion на всех записях в файле /etc/fstab относящихся к местам, где могут быть исполняемые файлы:

vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Nov 11 15:19:25 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/alteros-root /                       ext4    defaults,iversion        1 1
UUID=48c0bccf-fa73-4a6b-8476-e89737b2fd4d /boot                   ext4    defaults        1 2
/dev/mapper/alteros-swap swap                    swap    defaults        0 0

3. Выполнить команду для инициализации системы IMA в режиме fix

grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=fix ima_appraise_tcb evm=fix ima=on ima_policy=appraise_tcb"

4. Выполнить команду перезагрузки

reboot

5. Запустим перемаркировку файлов файловой системы выполнением команды

find / -fstype ext4 -type f -uid 0 -exec head -n 1 '{}' >/dev/null \;
процесс занимает достаточно долгое время

После окончания процесса проверим выборочно файлы из каталога /usr/bin

getfattr -m - -d /usr/bin/bluetoothctl  

Наличие строки security.ima=... свидетельствует о том, что файл маркирован

# file: usr/bin/bluetoothctl
security.ima=0sAQg5hQ2yAogXYsrxHmgDk8VxHi3D
security.selinux="system_u:object_r:bin_t:s0"

6. После проведения маркировки переключить режим работы системы при помощи команды, либо в меню загрузки ОС нажав клавишу 'e' и изменив опции загрузки на ima_appraise=enforce ima_appraise_tcb evm=enforce

grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="ima_appraise=enforce ima_appraise_tcb evm=enforce ima=on ima_policy=appraise_tcb"

7.Выполнить команду перезагрузки

reboot

Для проверки работы можно удалить атрибуты IMA у файла /usr/bin/echo

setfattr -x security.ima /usr/bin/echo

Запустив команду:

/usr/bin/echo test

получим ответ:

[root@localhost ~]# /usr/bin/echo
-bash: /usr/bin/echo: Отказано в доступе