Пример Separate Storage

21 мая 2024

ID separate_storage_example

Пример Separate Storage демонстрирует использование паттерна Distrustful Decomposition для решения задачи раздельного хранения данных для доверенных и недоверенных приложений.

Архитектура примера

Пример Separate Storage содержит две пользовательские программы: UserManager и CertificateManager.

Эти программы работают с данными, которые размещаются в соответствующих файлах:

  • Программа UserManager работает с данными из файла userlist.txt;
  • Программа CertificateManager работает с данными из файла certificate.cer.

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

secure_logger_uml

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

Политика безопасности в примере Separate Storage имеет следующие особенности:

  • Программа UserManager имеет доступ к файловой системе только через программу VfsUser.
  • Программа CertificateManager имеет доступ к файловой системе через только через программу VfsCertificate.

Файлы примера

Код примера и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples/separate_storage

Сборка и запуск примера

Чтобы запустить пример на QEMU, перейдите в директорию с примером, соберите пример и выполните следующие команды:

$ cd build/einit

# Перед выполнением следующей команды убедитесь, что путь к

# директории с исполняемым файлом qemu-system-aarch64 сохранен в

# переменной окружения PATH. В случае отсутствия

# добавьте его в переменную PATH.

$ qemu-system-aarch64 -m 2048 -machine vexpress-a15 -nographic -monitor none -sd sdcard0.img -kernel kos-qemu-image

Также см. "Сборка и запуск примеров".

Подготовка SD-карты для запуска на Raspberry Pi 4 B

Для запуска примера Separate Storage на Raspberry Pi 4 B необходимы следующие дополнительные действия:

  • создать директорию /lib на загрузочном разделе SD-карты, если этой директории не существует;
  • скопировать в директорию /lib на SD-карте содержимое директории build/hdd/part1/lib, которая генерируется во время сборки примера;
  • SD-карта, помимо загрузочного раздела с образом решения, должна также содержать 2 дополнительных раздела с файловой системой ext2 или ext3;
  • первый дополнительный раздел должен содержать файл userlist.txt из директории ./resources/files/;
  • второй дополнительный раздел должен содержать файл certificate.cer из директории ./resources/files/.

Для запуска примера Separate Storage на Raspberry Pi 4 B можно использовать SD-карту, подготовленную для запуска примера vfs_extfs на Raspberry Pi 4 B, скопировав файлы userlist.txt и certificate.cer на соответствующие разделы.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!