Skip to content
/ VM Public

Обработка OVAL файла от компании RHEL

Notifications You must be signed in to change notification settings

ec11psee/VM

Repository files navigation

  1. Формат OVAL описывает уязвимости и методы (критерии) их определения в следующей связи: определение уязвимости "definition" содержит в себе основное описание уязвимости и ссылается на Тест по которому определяется наличие уязвимости. Тест ссылается на объект и его состояние, а также описывает условие их связи. Если состояние объекта соответствует условию, то уязвимость присутствует на объекте защиты.

  2. Описание объектов: В начале базы в поле "Generator" указаны общие поля с информацией о версии Патча для которой создана база:

  • product_name

  • schema_version

  • timestamp

  • content_version

    2.1 В следующем поле "definitions" представлен список определений уязвимостей "definition". Для каждого определения указываются:

    • class: Тип
    • id: Номер опредления (используется для составления связи между болями базы OVAL (связь определение-тест))
    • version: Версия изменения определения уязвимости
    • metadata: Поле в котором содержится:
      • title: Название уязвимости
      • affect: Набор полей в котором содержатся:
        • family: Семейство ОС, для которой описана уязвимость
        • platfrom: Версия ОС, для которой описана уязвимость
      • reference: Ссылки на справочные сайты, содержащие описываемую уязвимость
        • ref_url: Ссылка на источник
        • ref_id: Номер уязвимости присвоенный в другом источнике
        • source: Краткое наименование источника
      • description: Описание уязвимости
      • advisory: Набор полей, связанный с информацией о статусе угрозы, её направленности, и рейтинге уязвимости
    • criteria: Содержит критерии для определения уязвимости
      • operator: Определяет зависимость критериев (должен выполнится один или несколько, чтобы считать, что уязвимость применима к объекту)
      • criterion: Набор полей, содержащий критерии
        • comment: Описание условия проверки
        • test_ref: Ссылка на конкретный тест для проверки условия

    2.2 В поле "tests" представлен список тестов, в каждом тесте указываются объекты и их проверяемые состояния:

    • check: Условие проверки по которому проверяется объект:
    • id: Номер теста (для ссылки в "definition")
    • version: Версия корректировки теста
    • object|object_ref: Ссылка на проверяемый объект
    • state|state_ref: Ссылка на состояние объекта

    2.3 В поле "objects" представлен список проверяемых объектов:

    • id: Номер объекта (для ссылки в "tests")
    • version: Версия корректировки описания объекта
    • name: Имя проверяемого объекта|тип проверки (операции)
    • filepath: Путь к файлу соответствующему проверяемому объекту
    • pattern: Регулярное выражение, для получения ифнормации об объекте с файла

    2.4 В поле "states" представлен список состояний, для состояний указываются:

    • id: Номер состояния (для ссылки в "tests")
    • version: Версия корректировки описания состояния
    • name: Имя проверяемого объекта|тип проверки (операции)
    • filepath: Путь к файлу, для которого определяется состояние
    • pattern: Регулярное выражение, для получения информации об объекте с файла
    • evr: Описание состояния
      • datatype: Тип данных, описывающих состояние
      • operataion: Непосредственно состояние объекта 2.5 в поле "variables" содержится список значений переменных, в котором указываются:
    • comment: Описание переменной
    • datatype: Тип переменной
    • id: Номер переменной
    • version: Версия корректировки описания переменной указываются операции, значения и связь с объектами
  1. Из критериев можно убрать проверки redhatrelease2 key так как независимо от проверки подписи ключа, уязвимость присутствует в проверяемых пакетах
  2. В файле "Построение дерева полей.py" написан код для получения всех полей xml файла с примером значений каждого поля. В файле «Анализ уязвимостей.py.» произведен парсинг файла «rhel-8.oval.xml». Структура была переделана в формат словаря, что позволяет удобно обращаться к конкретной уязвимости по её ID. Структура Definition, Tests, Objects, States сохранена. К каждому объекту структуры также можно обращаться по ID. Структура сохранена, так как она является оптимальной для предотвращения повторения одних и тех же элементов в базе уязвимостей. Для удобства просмотра критериев была написана функция criteria_obrabotka, которая отображает текстовое описание всех проверок с соответствующим уровнем проверки. Удалены:
  • Дата выявления уязвимости.
  • Ссылки на сторонние ресурсы. По коду CVE можно автоматически найти ссылки. Версия изменения описания полей.
  • Поле «Generator»

About

Обработка OVAL файла от компании RHEL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages