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, не могут влиять процессы, находящиеся вне этой группы. В частности, это предотвращает отключение или остановку работы антивируса.