Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 19(105)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4

Библиографическое описание:
Мельников Д.А., Куров А.В. ОПИСАНИЕ МОДЕЛИ ПРОЦЕССА ПОИСКА УЯЗВИМОСТЕЙ В DOCKER КОНТЕЙНЕРАХ // Студенческий: электрон. научн. журн. 2020. № 19(105). URL: https://sibac.info/journal/student/105/180215 (дата обращения: 27.11.2024).

ОПИСАНИЕ МОДЕЛИ ПРОЦЕССА ПОИСКА УЯЗВИМОСТЕЙ В DOCKER КОНТЕЙНЕРАХ

Мельников Дмитрий Александрович

студент, кафедра «Программное обеспечение ЭВМ и информационные технологии», Московский государственный технический университет имени Н.Э. Баумана,

РФ, г. Москва

Куров Андрей Владимирович

канд. техн. наук, доц. кафедры «Программное обеспечение ЭВМ и информационные технологии», Московский государственный технический университет имени Н.Э. Баумана

РФ, г. Москва

АННОТАЦИЯ

Целью данной статьи является описание модели процесса поиска уязвимостей в Docker контейнерах. Рассматриваются сравнение и тестирование существующих решений поиска уязвимостей, таких как Clair и Docker Security Scanning в рамках описанного процесса. Приводится описание показателя вероятности полноты информации об уязвимостях, а также его расчет для рассмотренных систем поиска уязвимостей.

 

Введение

С каждым годом количество уязвимостей, связанных с безопасностью ОС только растет [1], что дает больше возможностей для их эксплуатации. Так как технология виртуализации на уровне операционной системы имеет те же проблемы безопасности, что и обычные ОС или другие системы виртуализации ОС, то они также подвержены тем же самым уязвимостям. А благодаря тому, что контейнеры могут быть запущены в намного большем количестве чем виртуальные машины, то количество потенциально уязвимых систем увеличивается очень быстро.

В настоящее время одним из самых популярных инструментов виртуализации является Docker - программное обеспечение для автоматизации развёртывания и управления программного обеспечения в среде виртуализации на уровне операционной системы.

В связи с актуальностью проблемы эксплуатации уязвимостей в Docker контейнерах набирают популярность средства поиска уязвимостей. Однако, выбирая то или иное средство поиска уязвимостей, следует понимать его достоинства и недостатки, а также иметь в своем арсенале методы расчета некоторых показателей, таких как вероятность полноты информации об уязвимостях, чтобы выбрать наиболее подходящий инструмент или сделать вывод о необходимости разработки собственного.

Модель процесса поиска уязвимостей в Docker контейнерах

Все системы сканирования любых систем на наличие уязвимостей объединяет следующие сущности:

1. Объект сканирования – программное или техническое средство, которое требуется просканировать на наличие уязвимости;

2. Информация об уязвимостях – информация, описывающая уязвимости, различные условия или параметры, требуемые для выявления уязвимостей;

3. Информация, полученная при сканировании объекта сканирования – это та информация, которая используется в сопоставлении с информации об условиях наличия уязвимостей;

4. Информация о результатах оценивания наличия уязвимостей – информация, которая описывает какие результаты получены при сопоставлении информации, полученной при сканировании объекта сканирования и информации об уязвимостях.

Также все системы сканирования любых систем на наличие уязвимостей объединяет следующие операции, выполняемых в следующем порядке:

1. Инициализация процесса сканирования – операция, которая инициализирует систему сканирования на выполнение задачи, выходным параметром которого будет информация об объекте сканирования;

2. Загрузка информации об уязвимостях – операция загрузки всей требуемой информации об уязвимостях, которые требуются для сканирования и оценивания. Входным параметром является информация об объекте сканирования. Выходным параметром является информация об уязвимостях;

3. Сканирование объекта сканирования – процесс анализа и поиска данных, требуемых для оценивания. Входным параметром являются информация об уязвимостях, информация об объекте сканирования. Выходным параметром является информация, полученная при сканировании объекта сканирования;

4. Оценивание наличие уязвимостей – процесс сопоставления информации, полученной при сканировании, и информации об уязвимостях.

Входным параметром являются информация об уязвимостях, информация об объекте сканирования, информация, полученная при сканировании объекта сканирования. Выходным параметром является информация о результатах оценивания наличия уязвимостей;

Учитывая специфику операций и сущностей, используемых в процессе поиска уязвимостей в Docker контейнерах, требуется уточнить и переопределить различные процессы. Они идут в следующем порядке:

1. Поиск Docker образа – процесс поиска данного Docker образа, который требуется просканировать;

2. Загрузка Docker образа – процесс загрузки данного Docker образа из репозитория Docker образов;

3. Сохранение Docker образа в архив – выполнение команды docker save для данного Docker образа;

4. Процесс разархивирования данного Docker образа;

5. Загрузка информации об уязвимостях;

6. Сканирование файловой системы распакованного архива;

7. Оценивание наличия уязвимостей.

Тестирование работы программ Clair и Docker Security Scanning

Одними из самых популярных систем сканирования Docker образов на наличие уязвимостей являются системы Clair [2] и Docker Security Scanning [3]. Clair позволяет сканировать образы, базовым образом которых являются Ubuntu, Debian, CentOS, Oracle Linux и Alpine.  Docker Security Scanning - Ubuntu, Debian, CentOS.

Для сравнения работы данных систем были выбраны образы Ubuntu 16.04, Debian 10, CentOS 7.  Каждый образ был просканирован обеими системами, в результате чего были получены средние временные затраты каждого этапа в соответствие с моделью, описанной ранее. Результаты сканирования системами Clair и Docker Security Scanning представлены на рисунках 1 и 2 соответственно. Также в таблице 1 представлено сравнение результатов, полученных при сканировании образов данными программами.

 

Рисунок 1. Результаты сканирования программой Clair

 

Рисунок 2. Результаты сканирования программой Docker Security Scanning

 

Таблица 1

Сравнение результатов сканирования образов

Наименование процесса

Время, с

Clair

Docket Security Scanning

Загрузка информации об уязвимостях

300

200

Поиск Docker образа

10

12

Загрузка Docker образа

300

300

Сохранение Docker образа в архив

21

20

Процесс разархивирования данного Docker образа

50

45

Сканирование файловой системы

10

5

Оценивание наличия уязвимостей

82

90

Итоговое время

773

672

 

Расчет эффективности работы сканера уязвимостей

Одним из основных требований к сканеру уязвимостей является обеспечение полноты информации об уязвимостях [4].

Для оценивания системы с точки зрения полноты информации можно воспользоваться формулой (1):

                                                            (1)

где   - вероятность полноты информации об уязвимостях в различных операционных системах;

 - среднее время существенного изменения данных у поставщиков данных об уязвимостях;

q - среднее время существенного изменения данных у поставщиков данных об уязвимостях;

 - среднее время подготовки информации о новых уязвимостях в сканер;

 -  среднее время передачи информации о новых уязвимостях в сканер;

 – среднее время ввода информации о новых уязвимостях в сканер.

Однако требуется корректировка данной формулы, так как не учтены следующие параметры: количество поддерживаемых данным программным комплексом операционных систем, количество требуемых поддержки операционных систем программным комплексом [5]. А также, так как среднее время подготовки, передачи и ввода информации является общим временем загрузки информации об уязвимостях, то значение вероятности будет определяться по формуле (2).

,                                                         (2)

где  - вероятность полноты информации об уязвимостях в различных операционных системах;

 - среднее время существенного изменения данных у поставщиков данных об уязвимостях;

q - среднее время между соседними обновлениями информации в сканере;

 - среднее время загрузки информации об уязвимостях;

 - количество поддерживаемых операционных систем;

 - количество требуемых поддержки операционных систем.

За существенное изменение данных у поставщиков данных примем появления информации о 5 уязвимостях. Информация о среднем времени существенного изменения данных у поставщиков данных об уязвимостях отсутствует, однако его можно рассчитать по формуле (3)

,                                      (3)

где  - среднее время существенного изменения данных у поставщиков данных об уязвимостях,

 – общее количество уязвимостей,

 -  процентное отношение количества уязвимостей, связанных с ОС,

 - процентное отношение количества уязвимостей, связанных с программными пакетами,

 - количество уязвимостей, не связанных с операционными системами, которые требуют поддержки,

 - количество уязвимостей, требуемых для существенного изменения данных.

Количество найденных уязвимостей за 2019 год составляет 8822 уязвимостей. Процентное отношение количества, связанных с ОС составляет 38%. Процентное отношение количества, связанных с программными пакетами составляет 28% [6]. Количество уязвимостей, не связанных с операционными системами, которые требуют поддержки составляет 1356. На основе полученных данных по формуле (3) получаем  = 35 305 секунд.

На основе полученного значения  по формуле (2) можем рассчитать вероятность полноты информации для Clair и Docker Security Scanning для случая, когда необходима поддержка, например, 10 операционных систем.

Получим следующие результаты:  = 0.27 и  = 0.41 для Docker Security Scanning и Сlair соответственно.

Вывод

Был описан процесс поиска уязвимостей в Docker контейнерах. В рамках описанного процесса были рассмотрены две популярные системы поиска уязвимостей в Docker контейнерах: Clair и Docker Security Scanning. Были измерены временные затраты для каждого из этапов поиска уязвимостей, а также рассчитаны показатели вероятности полноты информации об уязвимостях.

Полученные значения свидетельствуют о целесообразности разработки собственной системы в случае, если необходима поддержка более 5 операционных систем.

Приводится описание показателя вероятности полноты информации об уязвимостях, а также его расчет для рассмотренных систем поиска уязвимостей.

 

Список литературы:

  1. Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities [Электронный ресурс]. URL: https://www.banyanops.com/blog/analyzing-docker-hub/ (дата обращения: 20.01.2020)
  2. Clair [Электронный ресурс]. URL: https://github.com/coreos/clair (дата обращения: 22.01.2020)
  3. Docker Security Scanning [Электронный ресурс]. URL: https://docs.docker.com/docker-cloud/builds/image-scan/ (дата обращения: 22.01.2020)
  4. Определение вероятности нарушения критических свойств информационного актива на основе CVSS метрик уязвимостей [Электронный ресурс]. URL: https://www.science-education.ru/ru/article/view?id=13290 (дата обращения: 5.02.2020)
  5. NVD Common Vulnerability Scoring System Support v2 [Электронный ресурс]. URL: https://nvd.nist.gov/cvss.cfm (дата обращения: 6.02.2020)
  6. 2019’s MVPs – The most vulnerable player [Электронный ресурс]. URL: https://techtalk.gfi.com/2019s-mvps-the-most-vulnerable-players/ (дата обращения 9.02.2020)

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.