2.4.17 Сканер уязвимостей OpenSCAP
Скачать документ Установка OpenSCAP
Отображение информации о содержимом SCAP
Сканирование
Проверка содержимого SCAP
Практические примеры
Сканирование уязвимостей на удаленной машине
Сканирование docker-образов и контейнеров
CVE-сканирование контейнера
Пример сканирования контейнера docker с помощью пользовательской политики безопасности
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Рабочая станция
- Версия ПО: openscap-scanner-1:1.3.8-1, openscap-utils-1:1.3.8-1, openscap-containers-1.3.8-1
Инструмент OpenSCAP может использоваться только в РЕД ОС 7.3.
Во многих документах надзорных органов определены требования к мерам безопасности информационных систем, связанные с актуализацией используемых средств защиты и их регулярному обновлению. Так ФСТЭК России в Методическом документе о мерах защиты информации в государственных информационных системах (утверждён 11 февраля 2014 г.) прямо указывает, что оператором ГИС «должны осуществляться выявление (поиск), анализ и устранение уязвимостей в информационной системе. При выявлении (поиске), анализе и устранении уязвимостей в информационной системе должны проводиться:
- устранение выявленных уязвимостей, в том числе путем установки обновлений программного обеспечения средств защиты информации, общесистемного программного обеспечения, прикладного программного обеспечения или микропрограммного обеспечения технических средств».
Но не стоит думать, что эта мера лишь ещё одно требование регулятора. Практика тестирования на проникновение показывает, что взлом хоста без установленных обновлений занимает не более 15 минут.
Отслеживать изменения в ОС и выход обновлений достаточно сложная и трудоемкая задача, которая нуждается в автоматизации. На сегодняшний день самым популярным методом автоматизации аудита безопасности является подход, предложенный NIST (Национальный институт стандартов и технологий США) и описанный в спецификации SCAP (Security Content Automation Protocol) в 2009 году.
Протокол автоматизации содержимого безопасности (SCAP) — это метод использования определённых стандартов для обеспечения автоматического управления уязвимостями, измерения и оценки соответствия политикам систем, развёрнутых в организации. Приложения, которые проводят мониторинг безопасности, используют стандарты при измерении систем для поиска уязвимостей и предлагают методы оценки этих результатов для оценки возможного воздействия. Набор спецификаций SCAP стандартизирует номенклатуру и форматы, используемые этими продуктами автоматизированного управления уязвимостями, измерения и соответствия политикам.
Начиная с SCAP версии 1.0 (ноябрь 2009 г.) одним из его компонентов является открытый язык уязвимостей и оценки (OVAL). OVAL — это международный стандарт информационной безопасности, стандарт сообщества для продвижения открытого и общедоступного контента безопасности, а также для стандартизации передачи этой информации по всему спектру инструментов и сервисов безопасности. OVAL включает в себя язык, используемый для кодирования сведений о системе, и набор репозиториев контента, хранящихся в сообществе. Язык стандартизирует три основных этапа процесса оценки:
представление информации о конфигурации систем для тестирования;
анализ системы на наличие заданного состояния машины (уязвимость, конфигурация, состояние исправления и т. д.);
отчёт о результатах этой оценки.
Примером реализации SCAP является проект OpenSCAP (https://www.open-scap.org/). С помощью OpenSCAP вы можете проверить параметры конфигурации безопасности системы и проверить систему на наличие признаков компрометации, используя правила, основанные на стандартах и спецификациях.
OpenSCAP использует SCAP, набор спецификаций, поддерживаемых NIST. SCAP был создан для обеспечения стандартизированного подхода к обеспечению безопасности системы. OpenSCAP сочетается со многими спецификациями, такими как CPE, CCE и OVAL, для создания контрольного списка, выраженного SCAP, который может обрабатываться продуктами, проверенными SCAP.
Если вы хотите выполнить настройку или сканирование уязвимостей локальной системы, необходимо следующее:
инструмент (oscap или SCAP Workbench);
содержимое SCAP (поток исходных данных SCAP, XCCDF, OVAL…).
Для удобства пользователей мы уже подготовили файл определений OVAL для РЕД ОС, который доступен по адресу: https://redos.red-soft.ru/support/secure/redos.xml.
Установка OpenSCAP
Вы можете либо собрать OpenSCAP из исходного кода, предоставляемого разработчиком продукта, либо использовать существующую сборку для РЕД ОС из репозитория.
Чтобы установить OpenSCAP в РЕД ОС, перейдите в сеанс пользователя root:
su -
и выполните следующую команду:
dnf install openscap-scanner openscap-utils
После завершения установки вы можете начать использовать oscap - инструмент командной строки.
Дальнейшая работа с утилитой выполняется с правами локального пользователя.
Чтобы отобразить версию OpenSCAP, поддерживаемые спецификации, встроенные имена CPE и поддерживаемые объекты OVAL, введите следующую команду:
oscap --version
Отображение информации о содержимом SCAP
Информация о файле SCAP может быть отображена с помощью команды oscap info
:
oscap info redos.xml Document type: OVAL Definitions OVAL version: 5.10 Generated: 2022-10-17T12:11:58.000-03:00 Imported: 2022-10-17T12:11:58
Тип документа (Document type) описывает, в каком формате находится файл.
Импортировано (Imported) — это дата, когда файл был импортирован для использования с OpenSCAP. Поскольку OpenSCAP использует локальную файловую систему и не имеет собственного формата базы данных, дата импорта совпадает с датой изменения файла.
Сканирование
Основная цель OpenSCAP — выполнить настройку и сканирование уязвимостей локальной системы. OpenSCAP может оценивать исходные потоки данных SCAP, эталонные тесты XCCDF и определения OVAL и генерировать соответствующие результаты. Контент SCAP может предоставляться либо в одном файле (как исходный поток данных SCAP), либо в виде нескольких отдельных XML-файлов.
Документ SCAP может иметь форму одного файла OVAL (файл определения OVAL). Инструмент oscap обрабатывает файл определения OVAL во время оценки определений OVAL. Он собирает системную информацию, оценивает ее и создает файл результатов OVAL. Результат оценки каждого определения OVAL выводится в стандартный поток вывода. В следующих примерах описываются наиболее распространенные сценарии, связанные с файлом определения OVAL.
Для оценки определений OVAL можно использовать команду:
oscap oval eval --results <файл-результат> <OVAL-файл>
где:
<OVAL-файл> - это файл определения OVAL;
<файл-результат> - это путь, по которому будет храниться файл результатов OVAL.
Можно выбрать и оценить одно конкретное определение в данном файле определения OVAL, используя опцию --id:
oscap oval eval --id oval:redos:def:60 --results oval-results.xml redos.xml Definition oval:redos:def:60: true Evaluation done.
Проверка содержимого SCAP
Инструмент oscap можно использовать для проверки содержимого безопасности по стандартным XML-схемам SCAP. Результаты проверки выводятся в стандартный поток ошибок (stderr). Общий синтаксис команды проверки следующий:
oscap module validate [module_options_and_arguments] <ФАЙЛ>
где
<ФАЙЛ> - полный путь к проверяемому файлу.
Module - можно использовать: xccdf, oval, cpe или cve.
При проверке спецификации OVAL или XCCDF включается дополнительная проверка на основе Schematron. Этот метод проверки работает медленнее, но обеспечивает более глубокий анализ.
Запустите одну из следующих команд, чтобы проверить документ OVAL или XCCDF без проверок Schematron:
oscap xccdf validate --skip-schematron xccdf-file.xml или oscap oval validate --skip-schematron oval-file.xml
Результаты проверки выводятся в стандартный поток ошибок (stderr).
Обратите внимание, что для остальной oscap-функциональности, если вы не укажете --skip-validation (--skip-valid), проверка будет происходить автоматически перед использованием файлов. Поэтому вам не нужно явно проверять поток данных перед использованием. Хотя он не будет включать этап проверки на основе Schematron.
Практические примеры
В этом разделе демонстрируется практическое использование содержимого безопасности, предоставляемого для продуктов РЕД СОФТ:
1) загрузите описание уязвимостей:
wget https://redos.red-soft.ru/support/secure/redos.xml
2) запустите сканирование:
oscap oval eval --results results.xml --report report.html redos.xml
3) оцените результаты:
Definition oval:redos:def:60: true
Это образец вывода, в котором сообщается, что рекомендации по безопасности РЕД ОС (ROS-20220318-03) def:60
были выпущены, но обновление не было применено на конкретном экземпляре ОС (true).
Также вместе с выводом результатов в стандартный поток вывода генерируются удобочитаемый отчет report.html и машиночитаемый отчет results.xml.
Внешний вид report.html приведён на рисунке ниже.
Информация о генераторе результатов содержит версию oscap, использованную при сканировании, дату и время операции и итоговые сведения об обнаруженных проблемах.
Информация о генераторе определений содержит основную информацию о файле определений OVAL — название, дату и время его выпуска, количество определений и тестов.
Результат сканирования в первую очередь содержит информацию об исследуемом хосте: его имя, название ОС, версию и архитектуру. Также дана дополнительная расширенная информация об обнаруженных хостах ОС. Самая важная часть отчета — результаты проверки актуальности установленных пакетов ОС. Строки отчета имеют цветовое выделение согласно статусу обнаруженной проблемы: зеленые строки отмечают пакеты, которые не установлены в системе или имеют актуальную версию, оранжевым отмечены пакеты, требующие обновления.
Таблица описания имеет следующие столбцы:
ID — уникальный идентификатор описания, присваиваемый производителем ОС;
Result — результат выполнения проверки: false — если проблем не обнаружено, true — требуется исправление недостатка;
Class — в данном случае всегда принимает значение vulnerability (уязвимость);
Reference ID — ссылка на бюллетень производителя, связанная с базой знаний РЕД ОС, где хранится дополнительная информация об уязвимости;
Title — заголовок названия бюллетеня, позволяющий понять, о какой уязвимости идёт речь.
Файл results.xml содержит те же сведения, что и html-файл отчета, но более удобен для использования в других системах анализа и сканирования уязвимостей.
Сканирование уязвимостей на удаленной машине
Сначала необходимо обеспечить доступ к клиентской машине. Для этого потребуется настроить сетевой протокол ssh, который позволит получить удаленный доступ к клиенту. Подробную информацию о настройке удаленного доступа по ssh см. в нашей статье «Работа с клиентом и сервером SSH».
Далее на сервере установите сканер уязвимостей командой (необходимы права администратора системы или суперпользователя root):
dnf install openscap-scanner openscap-utils
Загрузите файл определений OVAL для РЕД ОС:
wget https://redos.red-soft.ru/support/secure/redos.xml
Подключитесь к клиентской машине и установите сканер OpenSCAP:
ssh user@10.81.186.86 su - dnf install openscap-scanner
Отключитесь от сессии клиентской машины:
exit
После установки можно запускать сканирование клиентской машины:
oscap-ssh user@10.81.186.86 22 oval eval --results results.xml --report report.html redos.xml
где:
user@10.81.186.86 — имя пользователя и IP-адрес клиента;
22 — номер порта для подключения по ssh;
results.xml — путь к файлу-результату сканирования;
report.html — путь к файлу-отчету сканирования;
redos.xml — путь к файлу OVAL РЕД ОС.
Результаты сканирования:
Сканирование docker-образов и контейнеров
Функционал openscap позволяет проводить сканирование на уязвимости не только запущенной локальной машины, но также docker-образов и контейнеров. Для этого необходимо установить docker:
dnf install docker-ce docker-registry python3-docker
Запустите docker и добавьте его в автозагрузку:
systemctl enable docker --now
Дополнительно потребуется установить набор инструментов openSCAP. Для сканирования используется инструмент oscap-docker из пакета openscap-containers, который можно установить с помощью команды:
dnf install openscap-containers
oscap-docker — это простой инструмент, предоставляющий интерфейс для использования oscap в среде Docker и позволяющий проводить сканирование запущенных контейнеров и образов Docker почти так же, как сканирование локальной машины. Получить список доступных образов можно командой:
docker search registry.red-soft.ru/ubi7
Установка необходимого образа производится командой:
docker pull registry.red-soft.ru/ubi7/<название_образа>
Запуск контейнера из образа осуществляется командой:
docker run --name "REDOS" -ti registry.red-soft.ru/ubi7/<название_образа> /bin/bash
Данная команда запустит новый контейнер под названием REDOS и предоставит интерактивный интерфейс.
CVE-сканирование контейнера
oscap-docker довольно прост в использовании, команда имеет следующий синтаксис:
oscap-docker <образ/контейнер>[-cve] <идентификатор_образа/контейнера> <параметры_oscap>
Запуск сканирования локального запущенного контейнера с автоматической загрузкой файла определений OVAL для РЕД ОС::
oscap-docker container-cve REDOS --results results.xml --report report.html
Если контейнер не запущен, его можно запустить командой:
docker start REDOS
В результате сканирования будет сгенерирован файл результатов OVAL и удобочитаемый HTML-отчет.
Пример сканирования контейнера docker с помощью пользовательской политики безопасности
Существует возможность использования собственной политики безопасности для сканирования контейнера. Так, например, можно использовать файл определений OVAL для РЕД ОС.
Для запуска сканирования с автоматическим скачиванием файла описания уязвимостей для РЕД ОС:
oscap-docker image-cve registry.red-soft.ru/ubi7/ubi --results results1.xml --report report1.html
Также есть возможность загрузить файл определений OVAL для РЕД ОС:
wget https://redos.red-soft.ru/support/secure/redos.xml
Затем выполнить сканирование с использованием пользовательского содержимого:
oscap-docker image-cve registry.red-soft.ru/ubi7/ubi --results results1.xml --report report1.html --file redos.xml
Результаты сканирования:
Дата последнего изменения: 10.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.