Пример Secure Logger
Пример Secure Logger
демонстрирует использование паттерна Distrustful Decomposition для решения задачи разделения функциональности чтения и записи в журнал событий.
Архитектура примера
Цель безопасности в примере Secure Logger
заключается в том, чтобы предотвратить возможность искажения или удаления информации в журнале событий. В примере для достижения этой цели безопасности используются возможности, предоставляемые KasperskyOS.
При рассмотрении системы журналирования можно выделить следующие функциональные шаги:
- генерация информации для записи в журнал;
- сохранение информации в журнал;
- чтение записей из журнала;
- предоставление записей в удобном для потребителя виде.
Таким образом, подсистему журналирования можно разделить на четыре процесса в зависимости от необходимых функциональных возможностей каждого процесса.
Для этого пример Secure Logger
содержит четыре программы: Application
, Logger
, Reader
и LogViewer
.
- Программа
Application
инициирует создание записей в журнале событий, поддерживаемом программойLogger
. - Программа
Logger
создает записи в журнале и записывает их на диск. - Программа
Reader
читает записи с диска для передачи программеLogViewer
. - Программа
LogViewer
передает записи пользователю.
IPC-интерфейс, который предоставляет программа Logger
, предназначен только для записи в хранилище. IPC-интерфейс программы Reader
предназначен только для чтения из хранилища. Архитектура примера выглядит следующим образом:
- Программа
Application
использует интерфейс программыLogger
для сохранения записей. - Программа
LogViewer
использует интерфейс программыReader
для чтения записей и предоставления их пользователю.
В общем случае программа LogViewer
имеет внешние каналы взаимодействия с пользователем (прием команд на чтение данных, предоставление данных пользователю). Очевидно, что эта программа является недоверенным компонентом системы, через которую может проводиться атака. Однако даже в случае успешной атаки, вплоть до внедрения произвольно исполняемого кода в программу LogViewer
, информация в журнале не будет искажена, так как эта программа может пользоваться только интерфейсом чтения данных, через который искажение или удаление невозможно. При этом LogViewer
не имеет возможности получить доступ к другим интерфейсам, так как доступ контролируется модулем безопасности.
Политика безопасности в примере Secure Logger
имеет следующие особенности:
- Программа
Application
имеет возможность обращаться к программеLogger
для создания новой записи в журнале событий. - Программа
LogViewer
имеет возможность обращаться к программеReader
для чтения записей из журнала событий. - Программа
Application
не имеет возможности обращаться к программеReader
для чтения записей из журнала событий. - Программа
LogViewer
не имеет возможности обращаться к программеLogger
для создания новой записи в журнале событий.
Файлы примера
Код примера и скрипты для сборки находятся по следующему пути:
Сборка и запуск примера
См. "Сборка и запуск примеров".