Пример kcfm_hello
Пример демонстрирует работу с компонентом KCFM в решении на базе KasperskyOS. Для простой программы Hello выполняется построение графа потока управления и автоматическое формирование части политики безопасности решения.
Директория примера в SDK
Код примера и скрипты для сборки находятся по следующему пути:
/opt/KasperskyOS-Community-Edition-<platform>-<version>/examples/kcfm_hello
Список программ
Hello– прикладная программа, для которой выполняется построение графа потока управления и автоматическое формирование части политики безопасности решения
Описание инициализации
Файл описания инициализации решения init.yaml генерируется в процессе сборки решения на основе шаблона ./einit/src/init.yaml.in. Макросы вида @INIT_*@, которые содержатся в шаблоне, автоматически раскрываются в итоговом файле init.yaml. Подробнее см. "Шаблон init.yaml.in".
Описание политики безопасности
Файл security.psl содержит описание политики безопасности решения и генерируется в процессе сборки решения на основе шаблона:
./einit/src/security.psl.in
Макрос @INIT_EXTERNAL_ENTITIES@ в шаблоне security.psl.in при сборке решения заменяется на список системных программ, поставляемых в составе KasperskyOS SDK.
Подробнее см. "Шаблон security.psl.in".
Описание политики безопасности решения в этом примере разрешает любые взаимодействия процессов между собой и ядром. Эту политику можно использовать только в качестве заглушки на ранних стадиях разработки решения, чтобы модуль безопасности не препятствовал взаимодействиям.
Дополнительно в файл hello/CMakeLists.txt для сборки программы Hello добавлена CMake-команда kcfm_generate_default_policy(). Эта команда автоматически формирует часть политики безопасности решения в виде PSL-файла на основе исходного кода программы. В этом PSL-файле перечислены и разрешены все IPC-вызовы служб ядра и интерфейсов системной программы VFS, используемые в коде программы. Политика безопасности формируется так чтобы разрешить программе доступ к используемым IPC-вызовам и запретить ко всем неиспользуемым. PSL-файл создается в директории ./build/hello/Hello и включен включить в описание политики безопасности решения следующей командой в файле security.psl.in:
use hello.Hello.kcfmDefaultPolicy._
Ресурсы
В директории ./resources/xdl/hello содержится файл Hello.edl – EDL-описание для программы Hello.
Сценарий работы
- В файл
hello/CMakeLists.txtдля сборки программыHelloдобавлены следующие CMake-команды:kcfm_generate_audit_policy()для автоматического формирования части политики безопасности решения;kcfm_generate_signature()для построения графа потока управления.
- При сборке программы
Helloформируется часть политики информации в файле./build/_headers_/hello/Hello/kcfmDefaultPolicy.pslи файлы, содержащие граф потока управления в директорииbuild/hello/kcfm_generated. - После сборки образа решения программа
Helloвыводит сообщение в терминал и завершается.
Сборка и запуск примера
Для сборки и запуска примера используется система CMake из состава KasperskyOS Community Edition.
См. "Сборка и запуск примеров".