Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Предупреждение |
---|
Ядро версии 5.4 не рекомендуется к использованию, не является безопасным и предоставлятся только для обеспечения обратной совместимости. |
Общая информация
Замкнутая программная среда (ЗПС) является средством повышения безопасность ОС путем защищенности операционной системы путем контроля целостности (неизменности) файлов. Механизм контроля реализован в виде невыгружаемого модуля ядра Astra Linux (модуль digsig_verif), выполняющего проверку электронной цифровой подписи файлов (ЭЦП). Проверка применяется:
- к файлам формата ELF (исполняемым файлам и разделяемым библиотекам) - проверка ЭЦП, записанной в специальное поле файла (далее - встроенная ЭЦП);
- к любым файлам - проверка ЭЦП, размещаемой в расширенных атрибутах файла (далее - присоединенная ЭЦП);
Режимы выполнения проверки описаны нижедалее.
Средства создания ЗПС предоставляют возможности внедрения встроенной ЭЦП в исполняемые файлы формата ELF, входящие в состав устанавливаемого СПО, и возможность создания присоединенных ЭЦП. Поддерживается использование при подписывании несколькх нескольких ключей.
Настройка режима работы модуля digsig_verif
Графический инструмент fly-admin-smc
Графический инструмент fly-admin-smc может применяться для настройки всех параметров. Инструмент устанавливается по умолчанию при установке ОС и доступен в графическом меню: fly-admin-smc (<<Панель управления --- Безопасность --- Политика безопасности --- Замкнутая программная среда>>) . Описание графического инструмента приведено в электронной справке.
Инструмент командной строки astra-digsig-control
Инструмент командной строки astra-digsig-control применяется для настройки режима проверки подписи в исполняемых файлах. См. Инструменты командной строки astra-safepolicy.
Параметры работы ЗПС в файле /etc/digsig/digsig_initramfs.conf
Настройка режима работы ЗПС может осуществляться путем прямого редактирования конфигурационного файла /etc/digsig/digsig_initramfs.conf.
Рекомендации по повышению защищенности информационных систем
Для повышения защищенности информационных систем (ИС) помимо включения ЗПС рекомендуется применять следующие меры по ограничению запуска программного обеспечения и получения доступа к объектам файловой системы для предотвращения несанкционированного исполнения произвольного кода и доступа к системным компонентам операционной системы (ОС):
- Активировать блокировку интерпретаторов (кроме интерпретатора bash). Полный список блокируемых интерпретаторов см. в разделе astra-interpreters-lock статьи Инструменты командной строки astra-safepolicy. При этом в ИС не должно остаться программ, которым разрешено запускать другие программы, включая запуск в режиме эмуляции.
- Активировать блокировку интерпретатора bash.
- Активировать запрет установки бита исполнения.
- Настроить системные и пользовательские профили подсистемы Киоск-2 и включить подсистему Киоск-2 (подробнее см. статью Системный Киоск-2: пакет parsec-kiosk2 (ограничения пользователя).
Для выполнения указанных мер выполнить следующие действия:
При работе в терминале и в сценариях удаленной настройки:
Активировать блокировку интерпретаторов (кроме интерпретатора bash). Команда:
Command sudo astra-interpreters-lock enable Активировать блокировку интерпретатора bash. Команда:
Command sudo astra-bash-lock enable Активировать запрет установки бита исполнения. Команда:
Command sudo astra-nochmodx-lock enable - Проверить корректность выполнения действий:
Проверка активации интерпретаторов (кроме интерпретатора bash):
Command sudo astra-interpreters-lock status результатом команды должно быть "АКТИВНО" и нулевой код завершения;
Command sudo astra-interpreters-lock is-enabled результатом команды должно быть "ВКЛЮЧЕНО" и нулевой код завершения.
Проверка активации интерпретатора bash:
Command sudo astra-bash-lock status результатом команды должно быть "АКТИВНО" и нулевой код завершения;
Command sudo astra-bash-lock is-enabled результатом команды должно быть "ВКЛЮЧЕНО" и нулевой код завершения.
Проверка активации запрета установки бита исполнения:
Command sudo astra-nochmodx-lock status результатом команды должно быть "АКТИВНО" и нулевой код завершения;
Command sudo astra-nochmodx-lock is-enabled результатом команды должно быть "ВКЛЮЧЕНО" и нулевой код завершения.
- После настройки профилей пользователей и системных профилей активировать режим Киоск-2 и связанные с ним режимы работы
Активировать режим Киоск-2. Команда:
Command echo 1 | sudo tee /sys/module/parsec/parameters/uc_enforce Включить протоколирование попыток нарушений установленных фильтров доступа. Команда:
Command echo 1 | sudo tee /sys/module/parsec/parameters/uc_complain; Включить режим контроля доступа Киоск-2 и протоколирования с сохранением данного состояния после перезагрузки. Команда:
Command echo 1 | sudo tee /etc/parsec/kiosk2_enforce; echo 1 | sudo tee /etc/parsec/kiosk2_complain;
При работе в графической сессии:
Открыть инструмент управления политиками безопасности с помощью меню:
Пуск — Панель управления — Безопасность — Политика безопасности
или выполнив в графическом терминале команду:Command sudo fly-admin-smc - Войти в раздел политики консоли и интерпретаторов:
Настройки безопасности — Политика консоли и интерпретаторов. - Активировать пункты:
- "Включить блокировку интерпретаторов кроме Bash для пользователей".
- "Включить блокировку интерпретатора Bash для пользователей".
- Подтвердить изменения путем нажатия на зеленую галочку.
- Убедиться, что механизм "Запрет установки бита исполнения для всех пользователей, включая администраторов" активирован:
Настройки безопасности - Системные параметры.
После выполнения указанных действий перезагрузить ОС:
выполнив в терминале команду:
Command sudo reboot - или используя графическое меню Пуск — Завершение работы — Перезагрузка.
Настройка режима работы модуля digsig_verif
Графический инструмент fly-admin-smc
Графический инструмент fly-admin-smc может применяться для настройки всех параметров ЗПС. Инструмент входит в состав пакета fly-admin-local, устанавливается по умолчанию при установке ОС и доступен в графическом меню: <<Панель управления — Безопасность — Политика безопасности — Замкнутая программная среда>>. Описание графического инструмента приведено в его электронной справке. Модуль fly-admin-smc для работы с ЗПС входит в пакет fly-admin-digsig и также устанавливается по умолчанию.
Инструмент командной строки astra-digsig-control
Инструмент командной строки astra-digsig-control входит в состав пакета astra-safepolicy. Применяется только для настройки режима проверки подписи в исполняемых файлах.
Параметры работы ЗПС в каталоге /etc/digsig/
Параметры работы ЗПС в файле /etc/digsig/digsig_initramfs.conf
Настройка режима работы ЗПС может осуществляться путем прямого редактирования конфигурационного файла /etc/digsig/digsig_initramfs.conf.
Предупреждение | ||||
---|---|---|---|---|
Для того, чтобы изменения, сделанные в каталоге /etc/digsig (в том числе — изменения, сделанные в конфигурационном файле /etc/digsig/digsig_initramfs.conf) активировались:
|
Параметрызадаются в виде:
Блок кода |
---|
<имя_параметра>=<значение_параметра> |
Используются следующие параметры:
- DIGSIG_ELF_MODE — режим проверки встроенной ЭЦП в файлах формата ELF. Возможные значения:
- 0 — значение по умолчанию. Проверка встроенной ЭЦП отключена. Может применяться как отладочный режим для разработки и отладки СПО;
1 — штатный режим проверки встроенной ЭЦП. Проверка встроенной ЭЦП включена. Выполнение файлов, имеющих неверную встроенную ЭЦП или не имеющих встроенную ЭЦП, запрещается;
- 2 — режим проверки работы СПО в ЗПС. Проверка встроенной ЭЦП включена. Выполнение файлов, имеющих неверную встроенную ЭЦП или не имеющих встроенную ЭЦП, разрешается, но при этом выдается сообщение об ошибке проверки ЭЦП;
- DIGSIG_XATTR_MODE — режим проверки прикрепленной ЭЦП в расширенных атрибутах. Возможные значения:
- 0 — значение по умолчанию. Проверка прикрепленной ЭЦП отключена. Может применяться как отладочный режим для разработки и отладки СПО;
- 1 — штатный режим проверки прикрепленной ЭЦП. Проверка прикрепленной ЭЦП включена. Выполнение файлов, имеющих неверную прикрепленную ЭЦП или не имеющих прикрепленную ЭЦП, запрещается;
- 2 — режим проверки работы СПО в ЗПС. Проверка прикрепленной ЭЦП включена. Выполнение файлов, имеющих неверную прикрепленную ЭЦП или не имеющих прикрепленную ЭЦП, разрешается, но при этом выдается сообщение об ошибке проверки ЭЦП;
DIGSIG_IGNORE_XATTR_KEYS – режим применения при проверке встроенной ЭЦП ключей для проверки присоединенной ЭЦП:
- 0 — значение по умолчанию. При проверке встроенной ЭЦП ключи для проверки присоединенной ЭЦП используются;
- 1 – при проверке встроенной ЭЦП ключи для проверки присоединенной ЭЦП игнорируются;
- DIGSIG_IGNORE_GOST2001 – режим использования при проверке ЭЦП по ГОСТ~Р~34.10-2001:
- 0 — значение по умолчанию. При проверке ЭЦП по ГОСТ~Р~34.10-2001 используется;
- 1 – при проверке ЭЦП по ГОСТ~Р~34.10-2001 не используется;
Данные для работы ЗПС
Помимо конфигурационного файла /etc/digsig/digsig_initramfs.conf в каталоге /etc/digsig/ представлены:
- каталог /etc/digsig/keys — каталог дополнительных ключей для проверки встроенной и присоединенной ЭЦП;
- файл /etc/digsig/xattr_control — список шаблонов шаблонов имен, определяющих файлы, в которых проверяется присоединенная ЭЦП;
- каталог /etc/digsig/xattr_keys — каталог дополнительных ключей, используемых только при проверке присоединенной ЭЦП;
Шаблоны для проверки присоединенной ЭЦП
В файле /etc/digsig/xattr_control хранится список шаблонов шаблонов имен, определяющих имена файлов, в которых проверяется присоединенная ЭЦП. Порядок применения шаблонов:
- в шаблонах должны указываться абсолютные пути, т.е шаблон всегда должен начинаться с символа slash (косая черта, "/");
- шаблоны, начинающиеся с двух символов slash ("//"), указывают имя конкретного файла. Например: //bin/script.sh;
- шаблоны, оканчивающиеся символом slash, указывают имя каталога, в котором должны проверяться все файлы (включая файлы в подкаталогах). Например: /bin/;
- все остальные шаблоны рассматриваются как префикс имени файла, Например, шаблону /bin/script соответствуют файлы: /bin/script, /bin/script.signed, /bin/script12345 и т.д.
Hide If | ||||||||
---|---|---|---|---|---|---|---|---|
Динамическое управление режимами работы ЗПСДинамическое управление режимами работы ЗПС осуществляется через интерфейс sysfs. При этом действуют следующие ограничения:
Доступны следующие интерфейсы, представленные специальными файлами:
Для получения значения параметра конфигурации, управляемого интерфейсом, нужное значение следует прочитать из соответствующего интерфейса:
Например, проверка установленных режимов проверки присоединенной и отсоединенной ЭЦП может быть выполнена командой:
|
Ключи для работы с ЭЦП
В модуль digsig_verify встроены открытые ключи, которые используются:
- для проверки встроенных ЭЦП;
- для проверки присоединенных ЭЦП;
- для проверки ЭЦП в дополнительных ключах, загружаемых из каталога /etc/digsig/keys.
В каждый момент времени модуль использует два набора ключей:
- основной набор ключей, встроенный в модуль — для проверки всех ЭЦП;
- дополнительный набор ключей в каталоге /etc/digsig/keys (изначально пустой) — для проверки встроенных ЭЦП;
- дополнительный набор ключей в каталоге /etc/digsig/keys_xattrs (изначально пустой) — для проверки присоединенных ЭЦП и, возможно, встроенных ЭЦП. Подпись на первом ключе из этого набора не проверяется..
Все ключи хранятся в указанных каталогах и их подкаталогах (см. ниже). Ключи хранятся в формате gnupg --export/etc/digsig/keys и загружаются при загрузке ОС;
При проверке ЭЦП первоначально поиск ключей выполняется в дополнительном наборе. Если дополнительный набор не содержит ключа, использовавшегося для создания ЭЦП, модуль ищет подходящий ключ в основном наборе.
Каждый новый ключ, использованный для подписывания СПО, необходимо включить в дополнительный набор ключей, для чего скопировать файл с ключом в каталог /etc/digsig/keys/ или /etc/digsig/xattr_keys, например, с использованием команды:
Command |
---|
sudo cp /<каталог>/<файл ключа> /etc/digsig/keys/ |
Каждый ключ в момент его добавления в каталог /etc/digsig/keys должен быть подписан уже загруженным ключом. При этом в подкаталогах ключи располагаются в иерархической структуре, которая обрабатывается сверху вниз таким образом, что:
- файлы ключей в корневом каталоге (/etc/digsig/keys) должны быть подписаны встроенными в модуль digsig_verify ключами;
- каждый ключ в подкаталогах должен быть подписан либо ключом из вышележащего каталога, либо встроенным ключом.
Например:
Информация |
---|
/etc/digsig/keys/key1.gpg — публичный ключ 1, подписанный на встроенном ключе; /etc/digsig/keys/key2.gpg — публичный ключ 2, подписанный на встроенном ключе; /etc/digsig/keys/key1/key1-1.gpg — публичный ключ, подписанный на ключе 1 /etc/digsig/keys/key1/key1-2.gpg — публичный ключ, подписанный на ключе 1 /etc/digsig/keys/key2/key2-1.gpg — публичный ключ, подписанный на ключе 2 /etc/digsig/keys/key2/key2-2.gpg — публичный ключ, подписанный на ключе 2 |
Каждый дополнительный ключ, использованный для проверки присоединенной ЭЦП, необходимо скопировать в каталог /etc/digsig/xattr_keys/. Например:
Command |
---|
sudo cp /<каталог>/<файл ключа> /etc/digsig/xattr_keys/ |
В каталоге /etc/digsig/xattr_keys/ также может располагаться иерархическая структура дополнительных ключей, в которой одни дополнительные ключи должны быть подписаны на других дополнительных ключах. При этом дополнительные ключи должны располагаться в подкаталогах таким образом, чтобы при их загрузке не нарушалась цепочка проверки подписей (см. пример выше).
Графический инструмент fly-admin-smc
В состав Astra Linux входит графический инструмент fly-admin-smc, предоставляющий возможности работы с настройками ЗПС. Инструмент доступен в графическом меню: "Пуск" - "Панель управления" - "Безопасность" - "Политика безопасности" - "Замкнутая программная среда". Работа с инструментом подробно описана во встроенной справке. (клавиша F1).
Подписывание ПО
Встроенная ЭЦП
См. Создание встроенной подписи в ELF файлах для режима ЗПС а также Подписание пакетов ПО.
Присоединенная ЭЦП
Далее рассматривается создание собственного ключа, предназначенного для создания и проверки присоединенной ЭЦП. Для создания ключей используется ПО GNU Privacy Guard. Входящий в состав Astra Linux модифицированный GnuPG поддерживает алгоритм ГОСТ~Р~34.11-94. Список доступных алгоритмов можно проверить командой:
Command |
---|
gpg --version |
Далее приведен пример создания дополнительного ключа и его использования для создание встроенной ЭЦП.
Создать ключевую пару. По умолчанию пара будет сохранена подкаталоге .gnupg домашнего каталога текущего пользователя. Ключевая пара может быть создана с помощью графического инструмента fly-admin-amc, или в командной строке в интерактивном или пакетом режиме.
Предупреждение По умолчанию для ключевой пары используется алгоритм RSA. Использование этого алгоритма в ЗПС Astra Linux не поддерживается. Для ЗПС Astra Linux следует использовать алгоритм GOST_R34.10-2012. Для создания ключевой пары в интерактивном режиме выполнить команду gpg с возможностью интерактивного выбора алгоритма:
Command gpg --full-generate-key Для создания ключевой пары следует выбрать алгоритм GOST_R34.10-2012. После ответа на заданные вопросы будет выдана информация о созданной ключевой паре вида:
Блок кода pub gP256 2024-03-12 [SC] 566F70D5D822D1B51B23CBE60055EBA236DA8851 uid Astra Linux <info@astralinux.ru>
Далее в примерах для идентификации ключа используется идентификатор ключа - последовательность шестнадцатеричных цифр, в примере выше это 566F70D5D822D1B51B23CBE60055EBA236DA8851. Ключ можно также идентифицировать по имени пользователя;
- Для создания ключевой пары с использованием алгоритмов ГОСТ в пакетном режиме:
Создать файл с параметрами ключа, например:
Блок кода Key-Type:GOST_R34.10-2012 %no-protection Name-Real:<имя_пользователя> Name-Comment: <комментарий> Name-Email: <e-mail>
подробнее см. Unattended GPG key generation;
Выполнить команду:
Command gpg --gen-key --batch <имя_файла_с_параметрами_ключа>
Информацию о созданном ключе можно получить командой:
Command gpg --list-keys
Для того, чтобы изменения, сделанные в конфигурационном файле /etc/digsig/digsig_initramfs.conf активировались:
Выполнить команду:
Command |
---|
sudo update-initramfs -u -k all |
Блок кода |
---|
<имя_параметра>=<значение_параметра> |
Используются следующие параметры:
- DIGSIG_ELF_MODE — режим проверки встроенной ЭЦП в файлах формата ELF. Возможные значения:
- 0 — Значение по умолчанию. Проверка встроенной ЭЦП отключена. Может применяться как отладочный режим для разработки и отладки СПО;
- 1 — Штатный режим проверки встроенной ЭЦП. Проверка встроенной ЭЦП включена. Выполнение файлов, имеющих неверную встроенную ЭЦП или не имеющих встроенную ЭЦП, запрещается;
- 2 — Режим проверки работы СПО в ЗПС. Проверка встроенной ЭЦП включена. Выполнение файлов, имеющих неверную встроенную ЭЦП или не имеющих встроенную ЭЦП, разрешается, но при этом выдается сообщение об ошибке проверки ЭЦП;
- DIGSIG_XATTR_MODE — режим проверки прикрепленной ЭЦП в расширенных атрибутах. Возможные значения:
- 0 — Значение по умолчанию. Проверка прикрепленной ЭЦП отключена. Может применяться как отладочный режим для разработки и отладки СПО;
- 1 — Штатный режим проверки прикрепленной ЭЦП. Проверка прикрепленной ЭЦП включена. Выполнение файлов, имеющих неверную прикрепленную ЭЦП или не имеющих прикрепленную ЭЦП, запрещается;
- 2 — Режим проверки работы СПО в ЗПС. Проверка прикрепленной ЭЦП включена. Выполнение файлов, имеющих неверную прикрепленную ЭЦП или не имеющих прикрепленную ЭЦП, разрешается, но при этом выдается сообщение об ошибке проверки ЭЦП;
DIGSIG_IGNORE_XATTR_KEYS – режим применения при проверке встроенной ЭЦП ключей для проверки присоединенной ЭЦП:
- 0 — Значение по умолчанию. При проверке встроенной ЭЦП ключи для проверки присоединенной ЭЦП используются;
- 1 – При проверке встроенной ЭЦП ключи для проверки присоединенной ЭЦП игнорируются;
- DIGSIG_IGNORE_GOST2001 – режим использования при проверке ЭЦП по ГОСТ~Р~34.10-2001:
- 0 — Значение по умолчанию. При проверке ЭЦП по ГОСТ~Р~34.10-2001 используется;
- 1 – При проверке ЭЦП по ГОСТ~Р~34.10-2001 не используется;
Динамическое управление режимами работы ЗПС
Динамическое управление модулем digsig_verif осуществляется через интерфейс sysfs. Изменения, внесенные этим способом, активируются немедленно и сохраняются до перезагрузки ОС. Для управления доступны следующие интерфейсы, представленные специальными файлами:
- Интерфейсы, управляющие параметрами конфигурации:
- /sys/digsig/elf_mode --- просмотр и переключение режима проверки встроенной ЭЦП. Управляет параметром конфигурации DIGSIG_ELF_MODE. Поддерживается только динамическое включение режима проверки (режим 1 или 2). Динамическое выключение и динамическое изменение включенного режима не поддерживаются;
- /sys/digsig/xattr_mode --- просмотр и переключение режима проверки присоединенной ЭЦП. Управляет параметром конфигурации DIGSIG_XATTR_MODE. Поддерживается только динамическое включение режима проверки (режим 1 или 2). Динамическое выключение и динамическое изменение включенного режима не поддерживаются;
- /sys/digsig/ignore_gost2001 --- управление режимом проверки ЭЦП по ГОСТ~Р~34.10-2001. Управляет параметром конфигурации DIGSIG_IGNORE_GOST2001. Поддерживается только динамическое включение режима исключения. Динамическое выключение не поддерживается;
- /sys/digsig/ignore_xattr_keys --- управление режимом применения при проверке встроенной ЭЦП ключей для проверки присоединенной ЭЦП. Управляет параметром конфигурации DIGSIG_IGNORE_XATTR_KEYS. Поддерживается только динамическое включение режима исключения. Динамическое выключение не поддерживается;
- Интерфейсы для передачи данных:
- /sys/digsig/keys --- интерфейс загрузки дополнительных ключей для проверки встроенной и присоединенной ЭЦП;
- /sys/digsig/xattr_control --- список шаблонов имен, используемых при проверке присоединенной ЭЦП;
- /sys/digsig/xattr_keys --- интерфейс загрузки дополнительных ключей, используемых только при проверке присоединенной ЭЦП;
Для задания значения параметра конфигурации, управляемого интерфейсом, нужное значение следует записать в соответствующий файл:
Command |
---|
echo <значение> | sudo tee /sys/digsig/<имя_файла> |
Для получения значения параметра конфигурации, управляемого файлом, нужное значение следует прочитать из соответствующего файла:
Command |
---|
sudo cat /sys/digsig/<имя_файла> |
Например, проверка режимов проверки присоединенной и отсоединенной ЭЦП может быть выполнена командой:
Command |
---|
sudo cat /sys/digsig/elf_mode /sys/digsig/xattr_mode |
Ключи для работы с ЭЦП
В модуль digsig_verify встроены открытые ключи, которые используются:
- для проверки встроенных ЭЦП;
- для проверки присоединенных ЭЦП;
- для проверки ЭЦП в дополнительных ключах, загружаемых из каталога /etc/digsig/keys.
В каждый момент времени модуль использует два набора ключей:
- основной набор ключей — для проверки всех ЭЦП;
- дополнительный набор ключей в каталоге /etc/digsig/keys (изначально пустой) — для проверки встроенных ЭЦП;
- дополнительный набор ключей в каталоге /etc/digsig/keys_xattrs (изначально пустой) — для проверки присоединенных ЭЦП и, возможно, встроенных ЭЦП. Подпись на первом ключе из этого набора не проверяется..
Все ключи хранятся в указанных каталогах и их подкаталогах (см. ниже). Ключи хранятся в формате gnupg --export/etc/digsig/keys и загружаются при загрузке ОС;
При проверке ЭЦП первоначально поиск ключей выполняется в дополнительном наборе. Если дополнительный набор не содержит ключа, использовавшегося для создания ЭЦП, модуль ищет подходящий ключ в основном наборе.
Каждый новый ключ, использованный для подписывания СПО, необходимо включить в дополнительный набор ключей, для чего скопировать файл с ключом в каталог /etc/digsig/keys/ или /etc/digsig/xattr_keys, например, с использованием команды:
Command |
---|
sudo cp /<каталог>/<файл ключа> /etc/digsig/keys/ |
Каждый ключ в момент его добавления в каталог /etc/digsig/keys должен быть подписан уже загруженным ключом. При этом в подкаталогах ключи располагаются в иерархической структуре, которая обрабатывается сверху вниз таким образом, что:
- файлы ключей в корневом каталоге (/etc/digsig/keys) должны быть подписаны встроенными в модуль digsig_verify ключами;
- каждый ключ в подкаталогах должен быть подписан либо ключом из вышележащего каталога, либо встроенным ключом.
Например:
Информация |
---|
/etc/digsig/keys/key1.gpg - публичный ключ 1, подписанный на встроенном ключе; /etc/digsig/keys/key2.gpg - публичный ключ 2, подписанный на встроенном ключе; /etc/digsig/keys/key1/key1-1.gpg - публичный ключ, подписанный на ключе 1 /etc/digsig/keys/key1/key1-2.gpg - публичный ключ, подписанный на ключе 1 /etc/digsig/keys/key2/key2-1.gpg - публичный ключ, подписанный на ключе 2 /etc/digsig/keys/key2/key2-2.gpg - публичный ключ, подписанный на ключе 2 |
Каждый дополнительный ключ, использованный для проверки присоединенной ЭЦП, необходимо скопировать в каталог /etc/digsig/xattr_keys/, например:
Command |
---|
sudo cp /<каталог>/<файл ключа> /etc/digsig/xattr_keys/ |
В каталоге /etc/digsig/xattr_keys/ также может располагаться иерархическая структура дополнительных ключей, в которой одни дополнительные ключи должны быть подписаны на других дополнительных ключах. При этом дополнительные ключи должны располагаться в подкаталогах таким образом, чтобы при их загрузке не нарушалась цепочка проверки подписей (см. пример выше).
Подписывание ПО
Встроенная ЭЦП
См. Создание встроенной подписи в ELF файлах для режима ЗПС.
Присоединенная ЭЦП
В примере рассматривается создание собственного ключа, предназначенного для создание и проверки присоединенной ЭЦП. Для создания дополнительных ключей используется ПО GNU Privacy Guard. Входящий в состав Astra Linux модифицированный GnuPG поддерживает алгоритм ГОСТ~Р~34.11-94. Список доступных алгоритмов можно проверить командой:
Command |
---|
gpg --version |
Далее приведен пример создания дополнительного ключа и его использования для создание встроенной ЭЦП.
Создать ключевую пару По умолчанию пара будет сохранена подкаталоге .gnupg домашнего каталога текущего пользователя. Для создания ключевой пары выполнить команду:
Command gpg --gen-key После ответа на заданные вопросы будет выдана информация о созданной ключевой паре вида:
Блок кода _открытый и секретный ключи созданы и подписаны. pub rsa3072 2022-11-24 [SC] [ годен до: 2024-11-23] 12B6FA0CD98F2D9CE72AB595C0316DBD6D879F9Fо uid имя_пользователя <адрес_электронной_почты> sub rsa3072 2022-11-24 [E] [ годен до: 2024-11-23]
Далее используется идентификатор ключа - в примере выше последовательность 12B6FA0CD98F2D9CE72AB595C0316DBD6D879F9F;
Экспортировать ключ в файл:
gpg --export <идентификатор_ключа> > <имя_файла_с_экспортированным_ключом>Command При наличии установленного ключа для подписи созданный ключ может быть подписан:
Command gpg --export <идентификатор_ключа> | sudo gpg --import <имя_файла_с_экспортированным_ключом>import
sudo gpg --sign-key <идентификатор_ключа>для применения подписанный ключ должен быть экспортирован в каталог /etc/digsig/xattr_keys. Команды:
При отсутствии подписанного ключа созданный ключ можно просто скопировать в каталогCommand sudo gpg --export <идентификатор_ключа> | sudo tee /etc/digsig/xattr_keys/<имя_файла_с_подписанным_экспортированным_ключом>
:Информация Наличие подписи в ключах для проверки присоединенной ЭЦП не проверяется. Поэтому созданный ключ можно экспортировать не подписывая:
Command sudo gpg --export <идентификатор_ключа> | sudo tee /etc/digsig/xattr_keys
Command sudo cp
/etc/digsig/xattr_keys//<имя_файла_с_экспортированным_ключом>
В файле /etc/digsig/xattr_control задать маски имен контролируемых файлов, например:
Блок кода /bin/spo
Если заданная маска оканчивается символом "/", то она интерпретируется как имя каталога и контролируются все файлы в этом каталоге, в ином случае маска интерпретируется как префикс полного имени контролируемых файлов.
Подписать контролируемые файлы внешней ЭЦП:
Предупреждение Подписание файлов должно быть выполнено до включения проверки ЭЦП, так как после включения проверки ЭЦП подписание неподписанных не подписанных файлов будет заблокировано.
Command bsign --sign --xattr <имя_файла> Дополнительная информация доступна в справке по утилите bsign;
Включить проверку ЭЦП:
- Изменить параметр DIGSIG_XATTR_MODE в файле
Для временного включения проверки присоединенной подписи выполнить команду:
echo 1 | sudo teeCommand - /etc/digsig/
- digsig_initramfs.conf, указав нужный режим проверки;
Выполнить команду:
Command
sudo update-initramfs -u -k all Перезагрузить ОС
;
Для проверки наличия и правильности ЭЦП файла формата ELF используется утилита можно использовать утилиту bsign:
Command |
---|
bsign -w <имя_файла> |
Подписанный файл формата ELF может выполняться:
Command |
---|
/sys/digsig/./test_elf |
Проверка работы ЗПС
Модуль проверки подписи приложений digsig_verif является модулем ядра. Сообщения модулей ядра можно просмотреть командой:
Command |
---|
sudo dmesg |
Или, в случае модуля digsig_verif:
Command |
---|
sudo dmesg | grep DIGSIG |
Попытки запуска неподписанных не подписанных файлов во включенной ЗПС будут отображаться в журналах, сохраняемых в файлах /var/log/messages и /var/log/kernel.log, сообщениями вида:
Блок кода |
---|
... DIGSIG: [ERROR] NOT SIGNED: path=.... |