IT & Networking Foundations
Beginner 12 min read IT & Networking Foundations

Virtualization and Containers

Isolation primitives that power labs and clouds

VMs virtualize hardware; containers virtualize the OS. Security labs, malware sandboxes and cloud workloads all build on these isolation primitives — and each has very different isolation guarantees.

virtualizationhypervisorcontainerssandboxisolationDocker
Before we start

What you will learn

  • Compare hypervisor VMs, containers and sandboxes by isolation strength
  • Explain why your security lab should snapshot and isolate VMs
  • Recognize escape risk as the core threat in any virtualization layer
Introduction

What is this?

Virtualization runs multiple isolated 'machines' on one host. A hypervisor (VMware, KVM) virtualizes the hardware, each guest running a full OS. Containers (Docker, LXC) virtualize at the OS level, sharing the host kernel but isolating processes, filesystems and networks with namespaces/cgroups. Sandboxes are purpose-built low-assurance Isolations for untrusted code. Security practitioners use VMs as primary lab isolation and containers as the modern deployment unit.

Motivation

Why do you need it?

  • Every security lab in this track assumes you can safely run vulnerable software in isolated VMs.
  • Containers are the unit of cloud workloads, so container isolation is a cloud-security question.
  • Malware analysis relies on VM snapshots to roll back after an infection executes.
  • Understanding the isolation boundary tells you what a 'container escape' or 'VM escape' even means.
Think about it

Mental model

Imagine

Hotels with separate rooms vs a hostel's bunk beds in one room

Think of

VMs vs containers

A hypervisor VM is a locked hotel room: separate walls, plumbing, locks — heavier but genuinely separate. A container is a bunk in a shared room: your space is fenced off, but you all share the same building (kernel) and the night staff (host system).

Mechanics

How it works

  • A type-2 hypervisor runs as an app on the host OS and emulates hardware; a type-1 hypervisor (bare metal) owns the machine directly.
  • Each VM has a full guest kernel and OS; snapshots capture full machine state.
  • Containers share the host kernel and use namespaces (pid, net, mount, user) plus cgroups to isolate and limit processes.
  • Images are layered filesystems; the runtime adds networking and storage via drivers.
  • Isolation strength: VMs isolate the kernel; containers rely on the kernel's own isolation machinery — same kernel, thinner wall.

Isolation boundaries for VMs vs containers.

Host hardware
Hypervisor (type-1)
Guest VM A
Guest VM B
Host kernel
Containers A/B
Real world

In production

  • A security analyst runs DVWA and Juice Shop in separate snapshotted VMs so each session starts clean.
  • Cloud workloads deploy as containers on a managed node pool; the isolation boundary is the node shared with other tenants' pods (multi-tenancy risk).
  • A malware sandbox boots a disposable VM per sample, reverts to a clean snapshot after detonation, and collects network artifacts.
Guidelines

Best practices

  • Run vulnerable lab targets in their own VM/network, never directly on a workstation you use for work accounts.
  • Snapshot before every risky experiment so rollback is instant.
  • Pin container images and use an image scanner (see Container Security).
  • Treat the host running your VM/container lab as a low-trust environment: patch it and isolate it from production.
Watch out

Common mistakes

  • Running a 'disposable' lab VM on the same network as production — snapshots don't protect neighbors.
  • Assuming container isolation equals VM isolation; a kernel bug shared by all containers is an escape path.
  • Disabling snapshots to 'save space', then losing an incident's evidence tier.
When things break

Debugging tips

  • For a flaky VM, check the hypervisor console and resource contention (overcommit).
  • For container startup failures, read the runtime and image errors before the app logs.
  • A slow containerized service that's fast natively often points to resource limits (cgroups) rather than code.
Security

Security considerations

  • The VM escape / container escape question is 'can code inside the boundary reach the host?' Assume yes for low-provenance code, and isolate accordingly.
  • Grants of privileges (--privileged containers, nested virtualization) reduce isolation; check them.
Interviews

Interview checkpoint

Test yourself

Quick quiz

0/2
1

Which offers the strongest isolation boundary between two untrusted workloads on one host?

2

Running a vulnerable practice app in a container is identical in risk to running it in a VM.

Go deeper

Official documentation