|
В состав Astra Linux Special Edition входят системы контейнеризации Docker и Podman. В соответствии с требованиями ФСТЭК эти системы должны обеспечивать следующий функционал:
Для реализации этих требований в состав Astra Linux Special Edition включены средства выявления уязвимостей в образах контейнеров, используемых системами контейнеризации. Далее в статье описан порядок установки, настройки и применения этих средств для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8) с установленным обновлением 1.8.3 и Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) с установленным обновлением 1.7.8. Для более ранних обновлений см.статью Проверка образов контейнеров на наличие уязвимостей средствами Astra Linux.
Система сканирования уязвимостей представлена в пакетах openscap-scanner и oval-db. Эти пакеты устанавливаются автоматически при установке систем контейнеризации Docker или Podman. Также пакеты могут быть установлены отдельно, например, для загрузки oval-описаний с последующим копированием этих описаний в изолированную сеть или для поиска уязвимостей в образах без возможности запуска этих образов.
При установке пакетов сразу устанавливаются oval-описания для контейнеров Astra Linux. Эти описания будут обновляться по мере установки оперативных обновлений, однако для более быстрой актуализации описаний следует настроить автоматическое обновление. Порядок настройки автоматического обновления описан далее. Oval-описания для иных операционных систем могут быть добавлены вручную.
После установки пакетов система готова к работе с базовыми настройками (настройками по умолчанию). По умолчанию применяются следующие настройки:
Сканирование выполняется в следующем порядке:
| В более ранних обновлениях система контейнеризации получает список образов раз в 7/30 дней (в зависимости от настройки astra-sec-level) и всегда сканирует каждый образ из списка, что может требовать значительных вычислительных ресурсов. |
Таким образом, при использовании контейнеров Astra Linux система сканирования может эксплуатироваться сразу после установки, обеспечивая соответствие требованиям ФСТЭК, и не требуя специальных настроек, кроме настройки автоматического обновления oval-описаний для образов Astra Linux. При использовании образов контейнеров, предоставляемых сторонними производителями, дополнительно потребуется вручную загрузить соответствующие oval-описания. Порядок действий по загрузке описан далее.
В системе сканирования уязвимостей имеется возможность обновлять и добавлять собственные oval-описания. Это можно сделать следующими способами:
Обновление oval-описаний для Astra Linux с сервера Astra Linux. Может выполняться в автоматическом и ручном режимах.
Ручная загрузка любых oval-описаний.
Для работы с описаниями используется инструмент командной строки oval-db. Для работы с инструментом необходимы права суперпользователя или участие в группе oval-db-admin. Общую справку по использованию инструмента можно получить любой из команд:
sudo oval-db -h |
Пример вывода справки:
A oval-db client to work with oval-db daemon Usage: oval-db [command] Available Commands: auto-update Enable or disable auto-update for the oval-db completion Generate the autocompletion script for the specified shell config Open GUI for configuration the scanner help Help about any command history History of scanning list List of all loaded files load A command to load and split .xml file by the severity level remove Remove oval descriptions for specific version of OS restore Restore a specific OS and version of oval-db files status A command to check daemon status update Update the oval db to a new version vul-info Search for vulnerability information by definition ID Flags: -h, --help help for oval-db Use "oval-db [command] --help" for more information about a command. |
Справку по опциям подкоманд можно получить используя опцию -h после любой команды, например:
| sudo oval-db auto-update -h |
На сервере Astra Linux хранятся oval-описания только для контейнеров Astra Linux. Для других ОС oval-описания добавляются вручную. |
Автоматическое обновление oval-описаний включается командой:
sudo oval-db auto-update -e |
Эта команда включает автоматическое обновление oval-описаний, проверяя наличие и актуальность описаний всех возможных версий. Периодичность автоматического обновления oval-описаний может быть изменена в конфигурационном файле /usr/share/oval/conf/daemon.json параметром Interval. События, связанные с обновлением oval-описаний, регистрируются в системном журнале /var/log/syslog:
Операции автоматического обновления oval-описаний могут завершаться со следующим результатом:
unchanged - файл не изменен (уже актуальный).
downloaded - файл скачан (изначально не было в системе).
up-to-date - файл обновлен (изначально был в системе).
Для выключения автоматического обновления oval-описаний используется команда:
sudo oval-db auto-update -e=false |
Для принудительного выполнения обновления oval-описаний используется команда:
sudo oval-db update -v all |
Опция -v all указывает, что необходимо обновить все описания. Для сокращения объемов загрузки можно вместо значения all использовать версию системы из файла /etc/os-release, например:
sudo oval-db update -v 1.8_x86-64. |
Oval-описания для сторонних ОС доступны на на Интернет-ресурсах производителей этих ОС. Для загрузки этих описаний и, возможно, их распаковки после загрузки, следуйте инструкциям производителей.
Для добавления загруженного и распакованного файла с oval-описанием в базу данных системы сканирования используется команда:
sudo oval-db load -f <полный_абсолютный_путь_к_файлу> -o <имя_ОС> -v <версия_ОС> |
Флаги команды:
-f — полный абсолютный путь к добавляемому файлу (путь от корневого каталога файловых системы);
-o — название ОС;
-v — версия ОС;
Информация для значений флагов -o и -v доступна в файле /etc/os-release.
Пример для Ubuntu (https://security-metadata.canonical.com/oval/ - примеры файлов для Ubuntu):
Загрузить файл с архивом описания:
wget https://security-metadata.canonical.com/oval/com.ubuntu.noble.cve.oval.xml.bz2 |
Файл com.ubuntu.noble.cve.oval.xml.bz2 будет сохранен в текущем каталоге.
Распаковать загруженный файл:
bunzip2 -k com.ubuntu.noble.cve.oval.xml.bz2 |
Описание будет распаковано в файл с именем com.ubuntu.noble.cve.oval.xml в текущем каталоге.
Добавить файл в базу данных. Для добавления должно быть указано полное абсолютное имя файла:
sudo oval-db load -o ubuntu -v 24.04 -f `pwd`/com.ubuntu.noble.cve.oval.xml |
После загрузки в каталоге /usr/share/oval/db/<имя_ОС>/<версия_ОС>/ будут созданы файлы базы данных, в которых описания угроз будут сгруппированы по степени их критичности, и файл manifest.json с общим описанием. Для приведенного выше примера файла Ubuntu Nobble (24.04):
-rwxrwxr-x 1 root root 37747 июл 3 14:27 CriticalSeverity.xml |
Удаление oval-описаний
Для удаления ранее загруженных oval-описаний используется команда:
sudo oval-db remove -o <имя_ОС> -v <версия_ОС> |
Флаги команды задают название и версию ОС, аналогично флагам команды добавления описания.
При выполнении обновления oval-описаний старые старые описания не удаляются, а перемещаются в подкаталог backup. Таким образом создается резервная копия, с помощью которой можно восстановить старые файлы при необходимости. Команда для восстановления:
sudo oval-db restore -o <имя_ОС> -v <версия_ОС> |
Флаги команды определяют имя и версию ОС аналогично флагам команд загрузки и удаления.
Все команды инструмента поддерживают опцию -h, позволяющую вывести краткую справку по команде.
Команды инструмента:
Конфигурация системы сканирования хранится в следующих файлах:
{
"scan_on_image_create": true,
"scan_on_container_start": true,
"periodic_scan_time_in_hours": 168
} |
{
"scan_on_image_create": true,
"scan_on_container_start": true,
"swarm_rules_enabled": true,
"periodic_scan_time_in_hours": 168
} |
{
"Database": {
"Path": "/usr/share/oval/history/scan_results.db",
"ExpireTime": 48
},
"Update": {
"Auto": true,
"ManifestUrl": "https://dl.astralinux.ru/artifactory/al-oval/oval_meta.json",
"TmpDir": "/tmp/oval_temp/",
"Interval": 24
}
} |
ExpireTime — время (в часах) после которого результаты сканирования считаются устаревшими;
Update — блок параметров автоматического обновления oval-описаний для Astra Linux.
Auto — автоматическая проверка наличия обновлений oval-описаний (true/false);
ManifestUrl — путь до ресурса с которого будет выполняться обновление.
TmpDir — временный каталог для размещения загружаемых файлов.
Interval — время (в часах) через которое проверяется нет ли обновлений для файлов уязвимостей.
{
"engine": "docker",
"allow-run-wo-oval-file": true,
"levels": {
"critical": {
"enabled": true,
"drop": true
},
"high": {
"enabled": true,
"drop": true
},
"medium": {
"enabled": true,
"drop": true
},
"low": {
"enabled": true,
"drop": true
},
"none": {
"enabled": true,
"drop": true
}
}
} |