KasperskyOS Community Edition 1.3
- Что нового
- Введение
- О KasperskyOS Community Edition
- Обзор KasperskyOS
- Краткое руководство разработчика решений на базе KasperskyOS
- Начало работы
- Разработка под KasperskyOS
- KasperskyOS API
- Коды возврата
- Библиотека libkos
- Управление дескрипторами (handle_api.h)
- Управление виртуальной памятью (vmm_api.h)
- Выделение и освобождение памяти (alloc.h)
- Использование DMA (dma.h)
- Ввод-вывод через память (mmio.h)
- Управление обработкой прерываний (irq.h)
- Управление потоками исполнения (высокоуровневый API thread.h)
- Управление потоками исполнения (низкоуровневый API thread_api.h)
- Управление процессами (высокоуровневый API task.h)
- Управление процессами (низкоуровневый API task_api.h)
- Инициализация IPC-транспорта для межпроцессного взаимодействия и управление обработкой IPC-запросов (transport-kos.h, transport-kos-dispatch.h)
- Инициализация IPC-транспорта для обращения к модулю безопасности (transport-kos-security.h)
- Генерация случайных чисел (random_api.h)
- Получение и изменение значений времени (time_api.h)
- Использование уведомлений (notice_api.h)
- Динамическое создание IPC-каналов (cm_api.h, ns_api.h)
- Использование примитивов синхронизации (event.h, mutex.h, rwlock.h, semaphore.h, condvar.h)
- Управление изоляцией памяти для ввода-вывода (iommu_api.h)
- Использование очередей (queue.h)
- Использование барьеров памяти (barriers.h)
- Выполнение системных вызовов (syscalls.h)
- Прерывание IPC (ipc_api.h)
- Использование сессий (session.h)
- Использование объектов KosObject (objects.h)
- Использование контейнеров объектов KosObject (objcontainer.h)
- Использование строк KosString (strings.h)
- Управление драйвером XHCI DbC ядра KasperskyOS (xhcidbg_api.h)
- Получение данных аудита безопасности (vlog_api.h)
- Использование фьютексов (sync.h)
- Получение IPC-дескрипторов и идентификаторов служб для использования статически созданных IPC-каналов (sl_api.h)
- Управление электропитанием (pm_api.h)
- Поддержка POSIX
- Получение статистических сведений о системе через API библиотеки libc
- Динамическое создание IPC-каналов с использованием системной программы DCM
- Компонент MessageBus
- Компонент LogRR
- Компонент ExecutionManager
- Компонент PackageManager
- Сборка решения на базе KasperskyOS
- Сборка образа решения
- Общая схема сборки
- Использование CMake из состава KasperskyOS Community Edition
- Библиотеки CMake в составе KasperskyOS Community Edition
- Сборка без использования CMake
- Использование динамических библиотек
- Отладка программ в решении на базе KasperskyOS
- Разработка политик безопасности
- Формальные спецификации компонентов решения на базе KasperskyOS
- Описание политики безопасности решения на базе KasperskyOS
- Общие сведения об описании политики безопасности решения на базе KasperskyOS
- Синтаксис языка PSL
- Установка глобальных параметров политики безопасности решения на базе KasperskyOS
- Включение PSL-файлов в описание политики безопасности решения на базе KasperskyOS
- Включение EDL-файлов в описание политики безопасности решения на базе KasperskyOS
- Создание объектов моделей безопасности
- Привязка методов моделей безопасности к событиям безопасности
- Создание профилей аудита безопасности
- Создание и выполнение тестов политики безопасности решения на базе KasperskyOS
- Типы данных в языке PSL
- Примеры привязок методов моделей безопасности к событиям безопасности
- Примеры описаний простейших политик безопасности решений на базе KasperskyOS
- Примеры профилей аудита безопасности
- Примеры тестов политик безопасности решений на базе KasperskyOS
- Модели безопасности KasperskyOS
- Модель безопасности Pred
- Модель безопасности Bool
- Модель безопасности Math
- Модель безопасности Struct
- Модель безопасности Base
- Модель безопасности Regex
- Модель безопасности HashSet
- Модель безопасности StaticMap
- Объект модели безопасности StaticMap
- Правило init модели безопасности StaticMap
- Правило fini модели безопасности StaticMap
- Правило set модели безопасности StaticMap
- Правило commit модели безопасности StaticMap
- Правило rollback модели безопасности StaticMap
- Выражение get модели безопасности StaticMap
- Выражение get_uncommitted модели безопасности StaticMap
- Модель безопасности Flow
- Модель безопасности Mic
- Объект модели безопасности Mic
- Правило create модели безопасности Mic
- Правило delete модели безопасности Mic
- Правило execute модели безопасности Mic
- Правило upgrade модели безопасности Mic
- Правило call модели безопасности Mic
- Правило invoke модели безопасности Mic
- Правило read модели безопасности Mic
- Правило write модели безопасности Mic
- Выражение query_level модели безопасности Mic
- Использование шаблонизации при создании описания политики безопасности решения на базе KasperskyOS
- Методы служб ядра KasperskyOS
- Служба виртуальной памяти
- Служба ввода-вывода
- Служба потоков исполнения
- Служба дескрипторов
- Служба процессов
- Служба синхронизации
- Службы файловой системы
- Служба времени
- Служба слоя аппаратных абстракций
- Служба управления драйвером XHCI DbC ядра KasperskyOS
- Служба аудита
- Служба профилирования
- Служба управления изоляцией памяти для ввода-вывода
- Служба соединений
- Служба управления электропитанием
- Служба уведомлений
- Служба прерывания IPC
- Служба взаимодействия со встроенным программным обеспечением аппаратной платформы
- Использование системных программ Klog и KlogStorage для выполнения аудита безопасности
- Паттерны безопасности при разработке под KasperskyOS
- Разработка драйверов под KasperskyOS
- Приложения
- Примеры в KasperskyOS Community Edition
- Пример hello
- Пример echo
- Пример ping
- Пример net_with_separate_vfs
- Пример net2_with_separate_vfs
- Пример embedded_vfs
- Пример vfs_extfs
- Пример multi_vfs_ntpd
- Пример multi_vfs_dns_client
- Пример multi_vfs_dhcpcd
- Пример mqtt_publisher (Mosquitto)
- Пример mqtt_subscriber (Mosquitto)
- Пример gpio_input
- Пример gpio_output
- Пример gpio_interrupt
- Пример gpio_echo
- Пример koslogger
- Пример pcre
- Пример messagebus
- Пример i2c_ds1307_rtc
- Пример i2c_bm8563_rtc
- Пример iperf_separate_vfs
- Пример uart
- Пример spi_check_regs
- Пример barcode_scanner
- Пример watchdog_system_reset
- Пример shared_libs
- Пример pal_tests
- Пример hello_from_rust
- Пример hello_corrosion
- Пример mass_storage
- Пример can_loopback
- Пример can2can
- Пример adc_hello
- Сведения о некоторых лимитах, установленных в системе
- Примеры в KasperskyOS Community Edition
- Лицензирование
- Предоставление данных
- Глоссарий
- ASLR
- Callable-дескриптор
- CDL
- DCM-дескриптор
- DMA
- EDL
- Execute-интерфейс
- GSI
- IDL
- Init-описание
- IPC
- IPC-дескриптор
- IPC-запрос
- IPC-канал
- IPC-ответ
- IPC-сообщение
- IPC-транспорт
- KasperskyOS
- KPA-пакет
- KSM
- KSS
- MDL
- MID
- MMIO
- OCap
- PAL
- PCB
- PSL
- RIID
- SCP
- SID
- SMP
- TCB
- TLS
- Аппаратное прерывание
- Арена IPC-сообщения
- Аудит безопасности
- Барьер памяти
- Блок управления потоком исполнения
- Блок управления процессом
- Блокировка чтения-записи
- Буфер DMA
- Буфер MDL
- Выражение модели безопасности
- Данные аудита безопасности
- Дерево наследования дескрипторов
- Дескриптор
- Дескриптор арены
- Дескриптор участка арены
- Замороженное состояние процесса
- Идентификатор безопасности
- Идентификатор метода службы
- Идентификатор службы
- Инициализирующая программа
- Интерфейс безопасности
- Интерфейс службы
- Интерфейсный метод
- Инфериор
- Клиент
- Клиентская библиотека компонента решения
- Клиентский процесс
- Компонент решения на базе KasperskyOS
- Контекст безопасности
- Контекст передачи ресурса
- Контекст пользовательского ресурса
- Конфигурация аудита безопасности
- Критическая секция
- Локальная память потока исполнения
- Мандатная ссылка
- Манифест KPA-пакета
- Маска прав дескриптора
- Маска процессоров
- Маска событий
- Маска сходства
- Межпроцессное взаимодействие
- Метод модели безопасности
- Метод службы
- Модель безопасности KasperskyOS
- Мьютекс
- Начальное значение генератора случайных чисел
- Общая системная информация
- Объект контекста передачи ресурса
- Объект модели безопасности
- Описание политики безопасности решения на базе KasperskyOS
- Память MMIO
- Паттерн безопасности
- Политика безопасности решения на базе KasperskyOS
- Пользовательский ресурс
- Поставщик ресурсов
- Поток исполнения
- Потребитель ресурсов
- Правило модели безопасности
- Прерывание MSI
- Приемник уведомлений
- Прикладная программа
- Программа
- Профиль аудита безопасности
- Процесс
- Прямой доступ к памяти
- Пустой процесс
- Разыменование дескриптора
- Рандомизация размещения адресного пространства
- Рекурсивный мьютекс
- Ресурс
- Решение модуля безопасности
- Решение на базе KasperskyOS
- Семафор
- Сервер
- Серверная библиотека компонента решения
- Серверный процесс
- Система паттернов безопасности
- Системная программа
- Системный ресурс
- Служба
- Слушающий дескриптор
- Событие
- Событие безопасности
- Страница статических соединений
- Таблица описания памяти
- Точка рабочих характеристик
- Транспортная библиотека
- Транспортный код
- Транспортный контейнер дескриптора
- Уровень аудита безопасности
- Уровень целостности ресурса
- Уровень целостности субъекта
- Условная переменная
- Фиксированная часть IPC-сообщения
- Формальная спецификация компонента решения на базе KasperskyOS
- Фьютекс
- Шаблон безопасности
- Информация о стороннем коде
- Уведомления о товарных знаках
Пример pal_tests
Пример демонстрирует использование PAL (Policy Assertion Language) при написании тестов политики безопасности решения на базе KasperskyOS. Тесты на языке PAL позволяют проверить политику безопасности решения еще до начала разработки программного кода, основываясь на формальных спецификациях компонентов решения. Подробнее о PAL см. "Создание и выполнение тестов политики безопасности решения на базе KasperskyOS".
Директория примера в SDK
Код примера и скрипты для сборки находятся по следующему пути:
Список программ
Тесты проверяют события безопасности следующих программ:
WebServer
– прикладная программа, предоставляющая пользователю доступ к программеService
через веб-интерфейс.Service
– прикладная программа, обрабатывающая запросы пользователя и возвращающая результат выполнения запроса.UserManager
– прикладная программа, реализующая управление учетными записями и авторизацией пользователей.
Описание инициализации
Файл init.yaml
генерируется автоматически в директории сборки примера и не важен для понимания этого примера.
Описание политики безопасности
Файлы описания политики безопасности решения на базе KasperskyOS находятся по следующему пути ./einit/src
.
Файл security.psl
содержит описание политики безопасности решения. Этот файл является файлом верхнего уровня, в который через декларацию use
включены части описания политики безопасности решения в виде PSL-файлов: core.psl
, user_mngr.psl
, service.psl
, vfs_net.psl
, vfs_sdcard.psl
.
Файл pal_tests.psl
содержит наборы тестов и также включен в файл верхнего уровня security.psl
через декларацию use
.
Ресурсы
В директориях ./resources/edl
и ./resources/idl
расположены EDL- и IDL-описания для программ WebServer
, Service
и UserManager
.
Сценарий работы
Запускаются на выполнение наборы тестов, описанных в файле pal_tests.psl
. Тесты проверяют, соблюдаются ли заданные политики безопасности для каждой из списка программ. Результаты выполнения тестов отображаются в стандартном выводе.
Сборка и запуск примера
См. "Создание и выполнение тестов политики безопасности решения на базе KasperskyOS".