|
В состав Astra Linux Special Edition входят системы контейнеризации Docker и Podman. В соответствии с требованиями ФСТЭК эти системы должны обеспечивать следующий функционал:
Для реализации этих требований в состав Astra Linux Special Edition включены средства выявления уязвимостей в образах контейнеров, используемых системами контейнеризации. Далее в статье описан порядок установки, настройки и применения этих средств.
Система сканирования уязвимостей представлена в пакетах openscap-scanner и oval-db. Эти пакеты устанавливаются автоматически при установке систем контейнеризации Docker или Podman. Также пакеты могут быть установлены отдельно, например, для загрузки oval-описаний с последующим копированием этих описаний в изолированную сеть или для поиска уязвимостей в образах без возможности запуска этих образов.
При установке пакетов сразу устанавливаются oval-описания для контейнеров Astra Linux. Эти описания будут обновляться по мере установки оперативных обновлений, однако для более быстрой актуализации описаний следует настроить автоматическое обновление. Порядок настройки автоматического обновления описан далее. Oval-описания для
После установки пакетов система готова к работу с базовыми настройками (настройками по умолчанию). Начиная с обновлений 1.8.3 (для Docker и Podman) и 1.7.8 (только для Docker) по умолчанию применяются следующие настройки:
Таким образом, при использовании контейнеров Astra Linux система сканирования может эксплуатироваться сразу после установки, обеспечивая соответствие требованиям ФСТЭК, и не требуя специальных настроек, кроме настройки автоматического обновления oval-описаний для образов Astra Limux. При использовании контейнеров сторонних производителей дополнительно потребуется вручную загрузить соответствующие oval-описания. Порядок действий по загрузке описан далее.
Конфигурация системы сканирования хранится в следующих файлах:
{
"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
} |
В системе сканирования уязвимостей имеется возможность обновлять и добавлять собственные oval-описания. Это можно сделать следующими способами:
| На сервере Astra Linux хранятся oval-описания только для контейнеров Astra Linux. Для других ОС oval-описания добавляются вручную. |
| sudo oval-db auto-update -e |
Jul 3 10:29:01 se18-25055 systemd[1]: Starting oval-dbd.service - OVAL Database Daemon... Jul 3 10:29:01 se18-25055 systemd[1]: Started oval-dbd.service - OVAL Database Daemon. Jul 3 10:29:01 se18-25055 oval-dbd[32338]: 2025/07/03 10:29:01 INFO failed to read config file /usr/share/oval/conf/daemon.json, open /usr/share/oval/conf/daemon.json: no such file or directory. Using defaults. Jul 3 10:29:01 se18-25055 oval_dbd_audit[32338]: oval_dbd.audit|0|root|cafa28faa9564b38958266d01e99a706|oval_dbd.started|success|socketPath=/tmp/oval-dbd/daemon_vul_scanner.sock Jul 3 10:29:01 se18-25055 oval_dbd_audit[32338]: oval_dbd.audit|0|root|cafa28faa9564b38958266d01e99a706|oval_dbd.started|success|socketPath=/tmp/oval-dbd/daemon_cli.sock |
| sudo oval-db auto-update -e=false |
sudo oval-db update -v all |
sudo oval-db update -v 1.8_x86-64. |
Oval-описания для сторонних ОС доступны на на Интернет-ресурсах производителей этих ОС. Для загрузки этих описаний и, возможно, их распаковки после загрузки, следуйте инструкциям производителей.
Для добавления загруженного и распакованного файла с oval-описанием в базу данных системы сканирования используется команда:
| sudo oval-db load -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 |
| bunzip2 -k com.ubuntu.noble.cve.oval.xml.bz2 |
| 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-описаний используется команда:
| sudo oval-db remove -o <имя_ОС> -v <версия_ОС> |
Флаги команды задают название и версию ОС, аналогично флагам команды добавления описания.
Восстановление oval-описаний из резервных копия
При выполнении обновления oval-описаний старые старые описания не удаляются, а перемещаются в подкаталог backup. Таким образом создается резервная копия, с помощью которой можно восстановить старые файлы при необходимости. Команда для восстановления:
| sudo oval-db restore -o <имя_ОС> -v <версия_ОС> |
Флаги команды определяют имя и версию ОС аналогично флагам команд загрузки и удаления.
| Для работы с инструментом oval-db нужны права суперпользователя или участие в группе oval-db-admin. |
Общую справку по подкомандам инструмента oval-db можно получить любой из команд:
| sudo oval-db -h sudo oval-db --help sudo oval-db help |
Пример вывода справки:
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 |
Команды инструмента:

Навигация. Производится либо с помощью мыши, либо с помощью клавиатуры.
В случае использования клавиатуры перемещение вниз по пунктам меню осуществляется клавишей TAB.
В блоке Vulnerability можно настраивать обработку контейнеров для каждого уровня уязвимостей.

Сценарий при сканировании контейнеров.
Enabled/Drop - контейнер сканируется, в случае нахождения уязвимости, контейнер останавливается и добавляется запись в журнал событий.
Enabled/Scan - контейнер сканируется и запускается, в случае нахождения уязвимости добавляется запись в журнал событий.
Disabled - сканирование отключено.
aelrei@astra-70380:~$ sudo oval-db load -h A command to load and split .xml file by the severity level Usage: oval-db load [flags] Flags: -f, --filepath string Path to the input file (required) -h, --help help for load -o, --os string OS of oval file (required) -v, --version string Version of OS (required) |
Меню помощи для load.
Позволяет загружать и интегрировать файлы сторонних ОС вручную администратором.
Подробнее об этой команде можно почитать в 3.2.6 Манипуляции с файлами oval-описаний..
aelrei@astra-70380:~$ sudo oval-db remove -h Remove oval descriptions for specific version of OS Usage: oval-db remove [flags] Flags: -h, --help help for remove -o, --os string OS of oval file (required) -v, --version string Version of OS (required) |
Меню помощи для remove.
Позволяет удалить файлы для ОС конкретной версии.
Подробнее об этой команде можно почитать в 3.2.6 Манипуляции с файлами oval-описаний..Пдрбе эйкомандможнопчит в 3.26Мпяци с фамиoval-пий.
aelrei@astra-70380:~$ sudo oval-db restore -h Restore a specific OS and version of oval-db files Usage: oval-db restore [flags] Flags: -h, --help help for restore -o, --os string OS of oval file to restore (required) -v, --version string Version of OS to restore (required) |
Меню помощи для restore.
Позволяет восстановить файлы уязвимостей из backup.
Подробнее об этой команде можно почитать в 3.2.6 Манипуляции с файлами oval-описаний..Пдрб экемжчтть3.2.6 Мнипуляции самovlописний.
aelrei@astra-70380:~$ sudo oval-db status -h A command to check daemon status Usage: oval-db status [flags] Flags: -h, --help help for status |
Меню помощи для status.
Позволяет посмотреть статус демона, его версию и режим auto-update.
aelrei@astra-70380:~$ sudo oval-db status Daemon Status: Status: running Version: 0.1.0.0 Auto-update: true |
Статус демона.
aelrei@astra-70380:~$ sudo oval-db update -h Update the oval db to a new version Usage: oval-db update [flags] Flags: -h, --help help for update -v, --version string Version to update the service to (required) |
Меню помощи для update.
Позволяет обновить файлы с описанием уязвимостей в полуавтоматическом режиме.
Подробнее об этой команде можно почитать в 3.2.6 Манипуляции с файлами oval-описаний..
aelrei@astra-70380:~$ sudo oval-db vul-info Error: required flag(s) "id", "os", "version" not set Usage: oval-db vul-info [flags] Flags: -h, --help help for vul-info -i, --id string Definition ID to search for (required) -o, --os string In which OS we need to search for vulnerability (required) -v, --version string In which version of OS we need to search for vulnerability (required) -x, --xml Print raw xml |
Меню помощи для vul-info.
Позволяет посмотреть информацию по конкретной уязвимости с помощью её ID (требуется полный ID).
К примеру: oval:astra:def:1139872346980661574462931648992835
Флаги:
aelrei@astra-70380:~$ sudo oval-db vul-info -o astra -v 1.7_x86-64 -i oval:astra:def:1139872346980661574462931648992835
Definition Found in NoneSeverity.xml:
ID: oval:astra:def:1139872346980661574462931648992835
Class: vulnerability
Title: Astra Linux - уязвимость в linux-5.15, linux-6.1
Description: In the Linux kernel, the following vulnerability has been resolved:
can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock
The following 3 locks would race against each other, causing the
deadlock situation in the Syzbot bug report:
- j1939_socks_lock
- active_session_list_lock
- sk_session_queue_lock
A reasonable fix is to change j1939_socks_lock to an rwlock, since in
the rare situations where a write lock is required for the linked list
that j1939_socks_lock is protecting, the code does not attempt to
acquire any more locks. This would break the circular lock dependency,
where, for example, the current thread already locks j1939_socks_lock
and attempts to acquire sk_session_queue_lock, and at the same time,
another thread attempts to acquire j1939_socks_lock while holding
sk_session_queue_lock.
NOTE: This patch along does not fix the unregister_netdevice bug
reported by Syzbot; instead, it solves a deadlock situation to prepare
for one or more further patches to actually fix the Syzbot bug, which
appears to be a reference counting problem within the j1939 codebase.
[mkl: remove unrelated newline change]
Remediation:
References:
Source: CVE
URL: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-52638
ID: CVE-2023-52638 |
Информация об уязвимости. Форматированный вид.
|
Информация об уязвимости. XML вид.
Меню помощи для completion. Позволяет сгенерировать скрипт автодополнения для указанной оболочки. Команды:
Для того, чтобы посмотреть, как применить этот скрипт в системе, нужна команда:
Инструкция по применения скрипта для bash. |
Начиная с обновления 1.7.8 и 1.8.3 сканирование выполняется в следующем порядке:
В более ранних обновлениях система контейнеризации получает список образов раз в 7/30 дней (в зависимости от настройки astra-sec-level) и сканирует каждый образ из списка.