Статья опубликована в рамках: Научного журнала «Студенческий» № 19(105)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4
ОПИСАНИЕ МОДЕЛИ ПРОЦЕССА ПОИСКА УЯЗВИМОСТЕЙ В 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 операционных систем.
Приводится описание показателя вероятности полноты информации об уязвимостях, а также его расчет для рассмотренных систем поиска уязвимостей.
Список литературы:
- 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)
- Clair [Электронный ресурс]. URL: https://github.com/coreos/clair (дата обращения: 22.01.2020)
- Docker Security Scanning [Электронный ресурс]. URL: https://docs.docker.com/docker-cloud/builds/image-scan/ (дата обращения: 22.01.2020)
- Определение вероятности нарушения критических свойств информационного актива на основе CVSS метрик уязвимостей [Электронный ресурс]. URL: https://www.science-education.ru/ru/article/view?id=13290 (дата обращения: 5.02.2020)
- NVD Common Vulnerability Scoring System Support v2 [Электронный ресурс]. URL: https://nvd.nist.gov/cvss.cfm (дата обращения: 6.02.2020)
- 2019’s MVPs – The most vulnerable player [Электронный ресурс]. URL: https://techtalk.gfi.com/2019s-mvps-the-most-vulnerable-players/ (дата обращения 9.02.2020)
Оставить комментарий