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.
Технология виртуализации позволяет запускать несколько экземпляров, обычно с различными гостевыми операционными системами, на одном физическом оборудовании. Хотя виртуализация на основе гипервизора обеспечивает лучшее использование ресурсов и более сильную изоляцию, она также создает высокие накладные расходы из-за необходимости хост-операционной системе поддерживать различные гостевые операционные системы. Для решения этой проблемы была разработана виртуализация на уровне операционной системы, которая обеспечивает легковесную, минимизированную и эффективную виртуализацию, но влияет на изоляцию между экземплярами, поскольку они совместно используют одну хост-операционную систему. В данной работе устанавливаются фундаментальные концепции виртуализации, анализируются различия между виртуализацией на основе гипервизора и виртуализацией на уровне ОС, обсуждается жизненный цикл создания контейнеров, строится модель угроз контейнеров и посредством тематических исследований анализируется изоляция, обеспечиваемая контейнерами.
Проблема эффективности использования ресурсов: традиционный подход развертывания различных сервисов на разных серверах, хотя и повышает надежность и безопасность, требует высоких затрат и обеспечивает низкое использование ресурсов
Проблема накладных расходов виртуализации: виртуализация на основе гипервизора, хотя и улучшает использование ресурсов, создает высокие накладные расходы из-за необходимости поддерживать несколько гостевых операционных систем
Проблема безопасной изоляции контейнеров: виртуализация на уровне ОС, хотя и решает проблему накладных расходов, может влиять на безопасную изоляцию из-за совместного использования ядра операционной системы
Традиционная виртуализация: виртуализация на основе гипервизора имеет высокие накладные расходы, каждая виртуальная машина требует полной гостевой операционной системы
Недостаточный анализ безопасности: анализ безопасности и изоляции виртуализации на уровне ОС недостаточно глубокий
Отсутствие модели угроз: отсутствует систематическая модель угроз контейнеров для выявления потенциальных векторов атак
Установлена сравнительная база виртуализации: систематическое сравнение преимуществ и недостатков виртуализации на основе гипервизора и виртуализации на уровне ОС
Построена детальная модель жизненного цикла создания контейнеров: анализ полного процесса контейнеров Docker от построения до запуска
Предложена комплексная модель угроз контейнеров: выявление и классификация 9 основных векторов атак в системах контейнеров
Предоставлен анализ реальных уязвимостей: глубокий анализ проблем безопасности на примере двух реальных уязвимостей CVE-2024-21626 и CVE-2022-0847
Даны рекомендации по укреплению безопасности контейнеров: практические рекомендации по безопасности на основе результатов анализа
Данное исследование направлено на систематический анализ безопасности и изоляции виртуализации на уровне ОС (в частности, контейнеров Docker) путем построения модели угроз для выявления потенциальных векторов атак и предоставления рекомендаций по укреплению безопасности.
Исследование сосредоточено на четырех основных компонентах системы контейнеров Docker:
Docker Engine: технология контейнеризации с открытым исходным кодом, обеспечивающая возможность построения и контейнеризации приложений
Docker Daemon (dockerd): фоновый процесс, прослушивающий команды Docker, служащий интерфейсом между CLI и средой выполнения контейнеров
Containerd: высокоуровневая система выполнения контейнеров, обеспечивающая управление передачей образов, управление жизненным циклом контейнеров, функции хранения и сетей
Runc: легковесная, безопасная низкоуровневая среда выполнения контейнеров, напрямую взаимодействующая с базовой операционной системой
Внешние атаки: удаленный доступ к системе контейнеров через сеть
Внутренние атаки: атаки, инициированные злоумышленником, уже находящимся внутри контейнера в качестве пользователя
Контейнер с точки зрения хост-операционной системы является процессом, использующим chroot для монтирования независимой файловой системы в качестве корневой файловой системы
Злоумышленник создает символические ссылки, указывающие на дескрипторы файлов 7 и 8
Выполняет команду sudo docker exec -it -w /foo <container-name> sleep 500
Runc монтирует файловую систему хоста в контейнер, позволяя злоумышленнику получить доступ к файловой системе хоста
Данная работа основана на развитии технологии виртуализации; концепция виртуализации существует с 1960-х годов, но стала основной технологией только в 1990-х годах.
Двойственный характер виртуализации на уровне ОС: хотя она обеспечивает легковесное и эффективное решение виртуализации, совместное использование ядра операционной системы создает проблемы с безопасной изоляцией
Разнообразие векторов угроз: системы контейнеров сталкиваются с полным спектром угроз безопасности на протяжении всего жизненного цикла, от репозитория образов до среды выполнения
Реальные риски безопасности: анализ случаев CVE подтверждает реальное существование серьезных угроз безопасности, таких как выход из контейнера и повышение привилегий
Постоянные проблемы безопасности: безопасность контейнеров — это постоянно развивающаяся проблема, требующая постоянного обновления защитных мер
Ограничение области исследования: работа в основном сосредоточена на контейнерах Docker, не охватывая другие технологии контейнеризации (такие как FreeBSD Jails, Solaris Zones)
Глубина модели угроз: хотя выявлены основные векторы атак, обсуждение конкретных защитных мер для каждого типа атаки недостаточно глубокое
Количество экспериментальных случаев: анализ только двух случаев CVE может быть недостаточным для полного отражения сложности угроз безопасности контейнеров
Недостаток количественного анализа: отсутствует количественная оценка уровня риска различных векторов атак
Работа предлагает следующие направления исследований:
Обнаружение угроз на основе ИИ: интеграция технологии искусственного интеллекта для повышения способности систем контейнеризации противостоять новым уязвимостям
Протоколы безопасной коммуникации: разработка более безопасных протоколов коммуникации между контейнерами
Оптимизация для беспроводной среды: оптимизация сетей контейнеров для беспроводной среды
Системные инновации: улучшение распределения ресурсов посредством системных инноваций для обеспечения производительности и безопасности в динамической распределенной инфраструктуре
Работа цитирует 38 связанных источников, включая в основном:
Классические учебники по операционным системам (Tanenbaum & Bos, Modern Operating Systems)
Специализированные работы по безопасности контейнеров (Rice, Container Security)
Важные отчеты об уязвимостях безопасности (CVE-2024-21626, CVE-2022-0847)
Связанные работы авторского коллектива в области безопасности, ИИ и IoT
Общая оценка: Данная работа обеспечивает относительно полную аналитическую базу для безопасности виртуализации на уровне ОС. Хотя она имеет ограниченный теоретический вклад, она обладает высокой практической ценностью и систематичностью, пригодна в качестве вводного и справочного материала в области безопасности контейнеров.