2025-11-20T01:55:14.885016

Analysis of Security in OS-Level Virtualization

Ketha, Song, Zhu
Virtualization is a technique that allows multiple instances typically running different guest operating systems on top of single physical hardware. A hypervisor, a layer of software running on top of the host operating system, typically runs and manages these different guest operating systems. Rather than to run different services on different servers for reliability and security reasons, companies started to employ virtualization over their servers to run these services within a single server. This approach proves beneficial to the companies as it provides much better reliability, stronger isolation, improved security and resource utilization compared to running services on multiple servers. Although hypervisor based virtualization offers better resource utilization and stronger isolation, it also suffers from high overhead as the host operating system has to maintain different guest operating systems. To tackle this issue, another form of virtualization known as Operating System-level virtualization has emerged. This virtualization provides light-weight, minimal and efficient virtualization, as the different instances are run on top of the same host operating system, sharing the resources of the host operating system. But due to instances sharing the same host operating system affects the isolation of the instances. In this paper, we will first establish the basic concepts of virtualization and point out the differences between the hyper-visor based virtualization and operating system-level virtualization. Next, we will discuss the container creation life-cycle which helps in forming a container threat model for the container systems, which allows to map different potential attack vectors within these systems. Finally, we will discuss a case study, which further looks at isolation provided by the containers.
academic

Анализ безопасности виртуализации на уровне ОС

Основная информация

  • ID статьи: 2501.01334
  • Название: Analysis of Security in OS-Level Virtualization
  • Авторы: Krishna Sai Ketha, Guanqun Song, Ting Zhu (The Ohio State University)
  • Классификация: cs.CR (Криптография и безопасность), cs.OS (Операционные системы)
  • Дата публикации: 2 января 2025 г. (препринт arXiv)
  • Ссылка на статью: https://arxiv.org/abs/2501.01334

Аннотация

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

Исследовательский контекст и мотивация

Определение проблемы

  1. Проблема эффективности использования ресурсов: традиционный подход развертывания различных сервисов на разных серверах, хотя и повышает надежность и безопасность, требует высоких затрат и обеспечивает низкое использование ресурсов
  2. Проблема накладных расходов виртуализации: виртуализация на основе гипервизора, хотя и улучшает использование ресурсов, создает высокие накладные расходы из-за необходимости поддерживать несколько гостевых операционных систем
  3. Проблема безопасной изоляции контейнеров: виртуализация на уровне ОС, хотя и решает проблему накладных расходов, может влиять на безопасную изоляцию из-за совместного использования ядра операционной системы

Важность исследования

  • Коммерческие требования: предприятиям необходимо безопасно и эффективно запускать несколько сервисов на одном сервере
  • Тренд облачных вычислений: с 1990-х годов технология виртуализации широко применяется в облачных средах
  • Угрозы безопасности: широкое внедрение технологии контейнеров создает новые проблемы безопасности и векторы атак

Ограничения существующих подходов

  • Традиционная виртуализация: виртуализация на основе гипервизора имеет высокие накладные расходы, каждая виртуальная машина требует полной гостевой операционной системы
  • Недостаточный анализ безопасности: анализ безопасности и изоляции виртуализации на уровне ОС недостаточно глубокий
  • Отсутствие модели угроз: отсутствует систематическая модель угроз контейнеров для выявления потенциальных векторов атак

Основные вклады

  1. Установлена сравнительная база виртуализации: систематическое сравнение преимуществ и недостатков виртуализации на основе гипервизора и виртуализации на уровне ОС
  2. Построена детальная модель жизненного цикла создания контейнеров: анализ полного процесса контейнеров Docker от построения до запуска
  3. Предложена комплексная модель угроз контейнеров: выявление и классификация 9 основных векторов атак в системах контейнеров
  4. Предоставлен анализ реальных уязвимостей: глубокий анализ проблем безопасности на примере двух реальных уязвимостей CVE-2024-21626 и CVE-2022-0847
  5. Даны рекомендации по укреплению безопасности контейнеров: практические рекомендации по безопасности на основе результатов анализа

Подробное описание методологии

Определение задачи

Данное исследование направлено на систематический анализ безопасности и изоляции виртуализации на уровне ОС (в частности, контейнеров Docker) путем построения модели угроз для выявления потенциальных векторов атак и предоставления рекомендаций по укреплению безопасности.

Архитектура исследования

1. Анализ жизненного цикла создания контейнеров

Исследование сосредоточено на четырех основных компонентах системы контейнеров Docker:

  • Docker Engine: технология контейнеризации с открытым исходным кодом, обеспечивающая возможность построения и контейнеризации приложений
  • Docker Daemon (dockerd): фоновый процесс, прослушивающий команды Docker, служащий интерфейсом между CLI и средой выполнения контейнеров
  • Containerd: высокоуровневая система выполнения контейнеров, обеспечивающая управление передачей образов, управление жизненным циклом контейнеров, функции хранения и сетей
  • Runc: легковесная, безопасная низкоуровневая среда выполнения контейнеров, напрямую взаимодействующая с базовой операционной системой

2. Процесс создания контейнеров

Dockerfile → Docker Build → Docker Daemon → Containerd → Runc → Container
  1. Системный администратор выполняет команду "docker build" через Docker CLI
  2. Docker CLI вызывает Docker Daemon для обработки запроса
  3. Docker Daemon перенаправляет запрос Containerd для создания контейнера
  4. Containerd извлекает образ и передает его Runc
  5. Runc взаимодействует с базовой операционной системой, создавая и управляя контейнером на основе конфигурации образа

Построение модели угроз

Классификация атак

Внешние атаки: удаленный доступ к системе контейнеров через сеть Внутренние атаки: атаки, инициированные злоумышленником, уже находящимся внутри контейнера в качестве пользователя

Девять основных векторов атак

  1. Манипуляция образами репозитория: злоумышленник подделывает образы контейнеров в репозитории
  2. Уязвимости кода приложения: использование уязвимостей в коде приложения и сторонних зависимостях
  3. Неправильная конфигурация образа контейнера: предоставление избыточных ненужных прав при конфигурировании образа
  4. Неправильная конфигурация контейнера: извлечение образов, содержащих вредоносный код, из открытых каталогов
  5. Уязвимости хоста: использование уязвимостей операционной системы хоста, на котором запущены контейнеры
  6. Передача информации внутри системы: злоумышленник отслеживает обмен информацией между контейнерами
  7. Уязвимости при выходе из контейнера: использование уязвимостей в системах выполнения, таких как containerd или runc, для выхода в хост
  8. Небезопасная сетевая коммуникация: злоумышленник отслеживает коммуникацию между контейнерами для получения информации
  9. Неконтролируемое потребление ресурсов: вредоносные скрипты потребляют чрезмерные ресурсы, приводя к нехватке ресурсов для других контейнеров

Экспериментальная установка

Методология тематических исследований

Данное исследование использует метод анализа реальных уязвимостей, выбирая две репрезентативные уязвимости безопасности для глубокого анализа:

  1. Runc Container Breakout (CVE-2024-21626)
  2. Dirty Pipe Vulnerability (CVE-2022-0847)

Аналитическая база

  • Анализ механизма уязвимости: детальное разъяснение технических принципов уязвимости
  • Оценка области влияния: определение диапазона затронутых версий программного обеспечения
  • Воспроизведение сценария атаки: демонстрация процесса атаки через практические команды
  • Оценка серьезности: оценка степени влияния уязвимости на безопасность

Результаты экспериментов

Тематическое исследование 1: Runc Container Breakout (CVE-2024-21626)

Детали уязвимости

  • Время обнаружения: 31 января 2024 г.
  • Затронутые версии:
    • runc: v1.0.0-rc93 до v1.1.11
    • containerd: v1.4.7 до v1.6.27 и v1.7.0 до v1.7.12
    • docker: <v25.0.2
  • Уровень серьезности: высокий

Механизм атаки

  1. Контейнер с точки зрения хост-операционной системы является процессом, использующим chroot для монтирования независимой файловой системы в качестве корневой файловой системы
  2. Злоумышленник создает символические ссылки, указывающие на дескрипторы файлов 7 и 8
  3. Выполняет команду sudo docker exec -it -w /foo <container-name> sleep 500
  4. Runc монтирует файловую систему хоста в контейнер, позволяя злоумышленнику получить доступ к файловой системе хоста

Характеристики атаки

  • Низкие требования к привилегиям: злоумышленник может успешно атаковать без запуска вредоносного кода или высоких привилегий
  • Прямой доступ к файловой системе: возможность прямого чтения файлов в операционной системе хоста

Тематическое исследование 2: Dirty Pipe Vulnerability (CVE-2022-0847)

Детали уязвимости

  • Время обнаружения: 7 марта 2022 г.
  • Затронутые версии: ядро Linux >v5.8.0
  • Уровень серьезности: высокий

Механизм атаки

  1. Неправильная инициализация члена "flags" в новой структуре буфера канала ядра Linux
  2. Дефекты в функциях "copy-page-to-iter-pipe" и "push-pipe" могут содержать устаревшие значения
  3. Непривилегированный локальный пользователь может изменять страницы в кэше страниц, связанные с файлами только для чтения
  4. Злоумышленник может изменять файлы только для чтения, такие как /etc/passwd, достигая повышения привилегий

Экспериментальные выводы

Характеристики угроз безопасности

  1. Постоянная угроза: CVE-2024-21626 не является первым случаем; ранее CVE-2019-5736 была аналогичной уязвимостью выхода из runc
  2. Влияние на уровне системы: обе уязвимости могут привести к получению злоумышленником прав доступа к операционной системе хоста
  3. Широкое влияние: уязвимости влияют на большое количество систем контейнеров, используемых в производственных средах

Анализ изоляции

Безопасная изоляция контейнеров имеет следующие проблемы:

  • Риск совместного использования ядра: все контейнеры совместно используют одно ядро операционной системы, уязвимости ядра влияют на все контейнеры
  • Уязвимости среды выполнения: уязвимости в системе выполнения контейнеров (например, runc) могут привести к выходу из контейнера
  • Риск ошибок конфигурации: неправильная конфигурация прав доступа увеличивает риск безопасности

Связанные работы

Исследования безопасности виртуализации

Данная работа основана на развитии технологии виртуализации; концепция виртуализации существует с 1960-х годов, но стала основной технологией только в 1990-х годах.

Анализ угроз безопасности контейнеров

Связанные исследования в основном сосредоточены на:

  1. Механизмы изоляции контейнеров: анализ различий в изоляции между контейнерами и традиционной виртуализацией
  2. Выявление векторов атак: определение специфичных для контейнерной среды способов атак
  3. Методы укрепления безопасности: предложение лучших практик безопасности контейнеров

Сравнение вклада данной работы

  • Систематическая модель угроз: по сравнению с существующими исследованиями, данная работа обеспечивает более полную классификацию угроз контейнеров
  • Анализ реальных случаев: предоставление конкретных доказательств угроз безопасности посредством анализа реальных уязвимостей CVE
  • Перспектива жизненного цикла: анализ проблем безопасности с точки зрения жизненного цикла создания контейнеров

Заключение и обсуждение

Основные выводы

  1. Двойственный характер виртуализации на уровне ОС: хотя она обеспечивает легковесное и эффективное решение виртуализации, совместное использование ядра операционной системы создает проблемы с безопасной изоляцией
  2. Разнообразие векторов угроз: системы контейнеров сталкиваются с полным спектром угроз безопасности на протяжении всего жизненного цикла, от репозитория образов до среды выполнения
  3. Реальные риски безопасности: анализ случаев CVE подтверждает реальное существование серьезных угроз безопасности, таких как выход из контейнера и повышение привилегий
  4. Постоянные проблемы безопасности: безопасность контейнеров — это постоянно развивающаяся проблема, требующая постоянного обновления защитных мер

Рекомендации по лучшим практикам безопасности

  1. Безопасность образов: проверка образов контейнеров, извлекаемых из открытых репозиториев, сканирование потенциальных уязвимостей
  2. Минимизация привилегий: избежание предоставления контейнерам ненужных прав доступа
  3. Своевременное обновление: поддержание актуальных версий механизма контейнеризации, среды выполнения, инструментов и сторонних компонентов
  4. Управление зависимостями: обеспечение того, чтобы зависимости не содержали известных уязвимостей
  5. Безопасная коммуникация: передача информации между контейнерами через защищенные соединения
  6. Регулярное сканирование безопасности: использование безопасных скриптов для периодического сканирования уязвимостей контейнеров

Ограничения

  1. Ограничение области исследования: работа в основном сосредоточена на контейнерах Docker, не охватывая другие технологии контейнеризации (такие как FreeBSD Jails, Solaris Zones)
  2. Глубина модели угроз: хотя выявлены основные векторы атак, обсуждение конкретных защитных мер для каждого типа атаки недостаточно глубокое
  3. Количество экспериментальных случаев: анализ только двух случаев CVE может быть недостаточным для полного отражения сложности угроз безопасности контейнеров
  4. Недостаток количественного анализа: отсутствует количественная оценка уровня риска различных векторов атак

Направления будущих исследований

Работа предлагает следующие направления исследований:

  1. Обнаружение угроз на основе ИИ: интеграция технологии искусственного интеллекта для повышения способности систем контейнеризации противостоять новым уязвимостям
  2. Протоколы безопасной коммуникации: разработка более безопасных протоколов коммуникации между контейнерами
  3. Оптимизация для беспроводной среды: оптимизация сетей контейнеров для беспроводной среды
  4. Системные инновации: улучшение распределения ресурсов посредством системных инноваций для обеспечения производительности и безопасности в динамической распределенной инфраструктуре

Углубленная оценка

Преимущества

  1. Систематический анализ: обеспечение полной аналитической базы от фундаментальных концепций до реальных угроз
  2. Высокая практическая ценность: модель угроз и рекомендации по безопасности имеют руководящее значение для практического развертывания
  3. Глубокий анализ случаев: предоставление конкретных технических деталей посредством анализа реальных уязвимостей CVE
  4. Ясная структура: логичная организация работы, постепенное развитие от теории к практике
  5. Высокая актуальность: анализ последних уязвимостей безопасности (CVE-2024-21626)

Недостатки

  1. Ограниченный теоретический вклад: в основном представляет организацию и анализ существующих знаний, отсутствует оригинальный теоретический вклад
  2. Недостаточная экспериментальная верификация: отсутствует крупномасштабная экспериментальная верификация эффективности модели угроз
  3. Отсутствие количественного анализа: не предоставляется количественная оценка риска различных векторов атак
  4. Недостаточная глубина решений: хотя предложены рекомендации по безопасности, отсутствуют конкретные технические решения
  5. Слабый сравнительный анализ: сравнительный анализ с другими исследованиями безопасности контейнеров относительно слаб

Влияние

  1. Академический вклад: обеспечение систематической базы анализа угроз для исследований безопасности контейнеров
  2. Практическая ценность: руководящее значение для практики безопасности контейнеров предприятий и разработчиков
  3. Образовательная ценность: пригодность в качестве справочного материала для преподавания безопасности контейнеров
  4. Основа для исследований: обеспечение основы для последующих углубленных исследований безопасности контейнеров

Применимые сценарии

  1. Развертывание контейнеров в предприятиях: предоставление справочной информации для разработки политики безопасности контейнеров в предприятиях
  2. Аудит безопасности: использование в качестве контрольного списка для оценки безопасности систем контейнеров
  3. Образование и обучение: использование для повышения осведомленности о безопасности контейнеров и технического обучения
  4. Начало исследований: обеспечение базовой основы для углубленных исследований технологий безопасности контейнеров

Библиография

Работа цитирует 38 связанных источников, включая в основном:

  • Классические учебники по операционным системам (Tanenbaum & Bos, Modern Operating Systems)
  • Специализированные работы по безопасности контейнеров (Rice, Container Security)
  • Важные отчеты об уязвимостях безопасности (CVE-2024-21626, CVE-2022-0847)
  • Связанные работы авторского коллектива в области безопасности, ИИ и IoT

Общая оценка: Данная работа обеспечивает относительно полную аналитическую базу для безопасности виртуализации на уровне ОС. Хотя она имеет ограниченный теоретический вклад, она обладает высокой практической ценностью и систематичностью, пригодна в качестве вводного и справочного материала в области безопасности контейнеров.