Требования CIS, STIG или внутренней политики бессмысленно проверять вручную по таблице: конфигурация меняется, а доказательства устаревают. OpenSCAP читает SCAP-контент, состоящий из описания проверок XCCDF и машинных проверок OVAL, и сравнивает с ним настройки сервера. Результат — отчёт с оценкой по каждому правилу и, при желании, скрипт исправлений. Разберём полный цикл на своём сервере.

Что именно проверяет OpenSCAP

OpenSCAP — не антивирус и не сканер уязвимостей пакетов. Он отвечает на вопрос, выполнены ли требования выбранного профиля: настроен ли аудит, запрещён ли вход root по SSH, выставлены ли права на файлы, включён ли firewall. Проверки бывают декларативными и основанными на OVAL. Часть правил требует перезагрузки или ручного решения, поэтому отчёт всегда содержит не только «пройдено» и «провалено».

Сам движок не содержит политик: их поставляет пакет SCAP Security Guide. Контент привязан к выпуску дистрибутива, поэтому для Debian 12, Ubuntu 22.04 и RHEL 9 нужны разные файлы. Профиль от другой версии не даёт корректного результата.

Установка и поиск контента

В Debian и Ubuntu сканер ставится из openscap-scanner, а профили — из пакетов ssg-*. В RHEL, Fedora, AlmaLinux и Rocky Linux оба компонента входят в openscap-scanner и scap-security-guide. После установки перечислите доступные наборы данных. Для Ubuntu 22.04 используется пакет ssg-debderived, для Debian 12 — ssg-debian, а для RHEL — scap-security-guide.

sudo apt install openscap-scanner ssg-debderived
oscap --version
ls /usr/share/xml/scap/ssg/content/ssg-*-ds.xml

Файлы с суффиксом -ds.xml — это SCAP source data stream, единый контейнер с профилями и проверками. Именно его указывают в командах. Если нужного выпуска нет в репозитории, обновите пакеты или используйте контент для поддерживаемой версии, а не произвольный файл из интернета.

Выбор профиля

Команда oscap info показывает список профилей и их идентификаторы. Идентификатор нужно копировать целиком: сокращённое имя вроде cis может совпасть с другим профилем. Для сервера обычно берут level 1, для ужесточённой системы — level 2, для проверки специфических требований — STIG или PCI DSS.

oscap info /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml
oscap info --profiles /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml

Идентификаторы различаются: у Ubuntu 22.04 профиль CIS называется xccdf_org.ssgproject.content_profile_cis_level1_server, у RHEL 9 — ..._cis. Всегда копируйте точный идентификатор из вывода и прочитайте описание профиля перед первым сканом.

Первый скан

Запускайте оценку от root: многие проверки читают защищённые файлы и состояние служб. Сохраняйте XML с результатами и HTML-отчёт. Сканирование не меняет систему, если не указан --remediate, поэтому первый прогон безопасен.

sudo oscap xccdf eval \
  --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
  --results /var/tmp/oscap-results.xml \
  --report /var/tmp/oscap-report.html \
  /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml

Код возврата 0 означает, что все проверенные правила пройдены, 2 — есть провалы. В shell-скриптах это нужно учитывать: set -e прервёт выполнение после первого неудачного правила. Оборачивайте вызов в || true, если отчёт важнее кода возврата, и отдельно анализируйте XML.

Храните отчёты с датой в имени в защищённом каталоге. Не отправляйте XML во внешние сервисы: он раскрывает состав пакетов, сетевые настройки и версии служб.

Как читать отчёт

В HTML-отчёте каждое правило получает статус:

  • pass — требование выполнено, fail — есть отклонение;
  • notapplicable — правило не относится к системе, например проверка SELinux на Ubuntu;
  • notchecked — не хватает зависимости или проверка невозможна в контейнере.

Смотрите не только на число провалов, но и на важность. Начните с высокого уровня критичности и с того, что действительно входит в вашу политику.

oscap xccdf generate report /var/tmp/oscap-results.xml > report.html
ls -lh /var/tmp/oscap-*.xml

Ремедиация без сюрпризов

OpenSCAP может сгенерировать Bash- или Ansible-исправления. Никогда не запускайте их сразу на рабочем сервере: правило может отключить пароль root, изменить SSH или удалить пакет. Сначала сформируйте скрипт, прочитайте его и примените на тестовой машине или снапшоте.

oscap xccdf generate fix \
  --profile xccdf_org.ssgproject.content_profile_cis_level1_server \
  --fix-type bash \
  /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml > /var/tmp/fix.sh
less /var/tmp/fix.sh
sudo bash /var/tmp/fix.sh

Для парка машин удобнее --fix-type ansible. Флаг --remediate применяет исправления во время скана, но тогда сложнее понять, что изменилось. После ремедиации перезапустите службы и проверьте доступ по SSH в отдельной сессии.

Тонкая настройка профиля

Не все правила подходят инфраструктуре: иногда требование конфликтует с приложением или недоступно. Правильный путь — tailoring-файл, а не правка исходного контента. Его создают в SCAP Workbench или копируют профиль из datastream, отключают лишние правила и применяют при каждом скане. Проверьте tailoring на тестовой машине перед рабочим сервером.

oscap xccdf eval --tailoring-file tailoring.xml \
  --profile xccdf_org.ssgproject.content_profile_cis_level1_server_customized \
  /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml

В tailoring-файле у правила указывают selected="false". Подставьте идентификатор профиля из сохранённого tailoring-файла. Каждое исключение фиксируйте с причиной и сроком пересмотра, иначе через полгода никто не вспомнит, почему требование отключено. Обновление SCAP-контента может изменить идентификаторы и логику проверок, поэтому после обновления пакетов прогоняйте скан заново и сверяйте tailoring.

Регулярный режим и ограничения

Запускайте проверку по расписанию через systemd-таймер или cron, но не чаще раза в неделю: полный скан нагружает диск. Сравнивайте статусы между запусками, а при нескольких серверах собирайте XML централизованно с ограниченным доступом.

Помните, что «зелёный» отчёт не гарантирует безопасность: SCAP проверяет известные настройки, а не логику приложений и не свежесть патчей. Контент может давать ложные срабатывания, а исправления — ломать совместимость. Используйте OpenSCAP как измеримый чек-лист и дополняйте его обновлениями, аудитом журналов и тестами восстановления.

Итог

OpenSCAP превращает требования стандарта в повторяемую проверку. Установите сканер и SCAP Security Guide, выберите точный профиль через oscap info, сохраните XML и HTML-отчёт, разберите статусы правил. Ремедиацию применяйте только после чтения скрипта и теста на копии, а исключения оформляйте tailoring-файлом. Регулярный скан и контроль различий дадут понятную картину соответствия вместо разовой формальности.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте