Antivirus API
Antivirus API предназначен для разработки и использования защитного ПО с минимально необходимыми для этого правами и изоляцией от внешнего воздействия других приложений или пользователей.
Использовать функции данного API могут только приложения,
соответствующие профилю безопасности Antivirus.
Для этого требуется получить ключевые пары,
при запросе указав, что они будут использоваться именно для антивирусного ПО.
Аналогичным образом можно запросить
публичные ключевые пары
для профиля Antivirus, чтобы использовать их при разработке.
Antivirus API обеспечивается несколькими функциями и компонентами:
- специализированными разделяемыми библиотеками;
- сервисом для запуска фонового процесса антивируса av-launcher;
- директориями для хранения общих данных;
- дополнительными событиями аудита;
- модулем безопасности Linux
die-hard.
Сервис для запуска антивируса
Для работы антивируса добавлен специальный сервис av-launcher, который запускается после загрузки системы от имени текущего пользователя с минимальным необходимым набором прав, имеет доступ к файлам текущего пользователя на чтение и запись, а также доступ к некоторым системным файлам.
Примечание. Cписок доступных директорий на чтение/запись может меняться с выходом новых релизов ОС. Для поддержания актуальности списка в своих приложениях разработчикам рекомендуется использовать скрипт на обход системы и проверки доступности директорий. Готовую реализацию скрипта можно найти в демо-примере Antivirus Demo.
Для корректной настройки запуска av-launcher необходимо в установочный пакет поместить символьную ссылку на desktop-файл:
%install
mkdir -p %{buildroot}%{_sysconfdir}/av-launcher
ln -s %{_datadir}/applications/%{name}.desktop \
%{buildroot}%{_sysconfdir}/av-launcher/antivirus.desktop
%files
%{_sysconfdir}/av-launcher/antivirus.desktop
Общие директории
Для антивирусного ПО доступны стандартные директории данных пользователя. Дополнительно для хранения настроек av-launcher может быть использована директория /etc/av-launcher/antivirus.
Дополнительные события аудита
Библиотека libomplog предоставляет несколько типов событий, предназначенных для использования в антивирусном ПО.
| Тип события | Описание |
|---|---|
AV_SERVICE_STARTED |
Сервис монитора запущен |
AV_SERVICE_STOPPED |
Сервис монитора остановлен |
AV_APPLICATION_STARTED |
Приложение запущено |
AV_APPLICATION_STOPPED |
Приложение остановлено |
AV_SCAN_STARTED |
Сканирование начато |
AV_SCAN_STOPPED |
Сканирование завершено |
AV_UPDATE_FINISHED |
Обновление баз завершено |
AV_AUDIT_STARTED |
Журналирование начато |
AV_AUDIT_STOPPED |
Журналирование остановлено |
AV_THREAT_DETECTED |
Угроза обнаружена |
AV_INFO |
Общая неклассифицированная информация |
AV_ERROR |
Ошибки при работе |
AV_SCAN_POSTPONED |
Сканирование отложено |
Для записи данных о событиях
нужно указать
разрешение LogSecurityEvents.
Дополнительные возможности
Модуль безопасности Linux die-hard гарантирует, что на состояние процессов, находящихся в группе die-hard, не могут влиять процессы, находящиеся вне этой группы. В частности, это предотвращает отключение или остановку работы антивируса.