KyoMel / Yogyakarta, Indonesia

Term 101101 / 344

Sandbox Architecture

Month
November 2025
Day
5
Source
2025/nov-term.md

Definition:

Sandbox Architecture is a security design pattern that creates isolated execution environments where untrusted code can run safely without affecting the host system or other applications. Like a child’s sandbox that contains sand and prevents it from spreading everywhere, a security sandbox contains potentially dangerous code and prevents it from accessing sensitive resources, making unauthorized network calls, or damaging the system.

Key Properties:

  • Isolation: Code runs in a restricted environment separate from the host
  • Controlled access: Limited permissions to system resources
  • Containment: Prevents malicious code from escaping or causing damage
  • Monitoring: All activities within the sandbox are observable
  • Disposable: Sandbox can be destroyed and recreated easily

Core Concepts:

  • Security boundaries: Clear separation between trusted and untrusted code
  • Privilege restriction: Minimal permissions principle
  • Resource limitations: CPU, memory, disk, and network constraints
  • API filtering: Only allowed operations can be performed
  • Process isolation: Separate processes or containers for untrusted code

Example:

Allow users to upload and run custom JavaScript code on your website without compromising security

// Chrome's multi-process architecture
const browserSandbox = {
  browserProcess: {
    privileges: 'FULL',
    responsibilities: ['UI', 'Network', 'File System', 'Process Management']
  },

  rendererProcess: {
    privileges: 'RESTRICTED',
    responsibilities: ['Render Web Pages', 'Execute JavaScript'],
    restrictions: [
      'No direct file system access',
      'No direct network access',
      'No system API access',
      'Must communicate via IPC'
    ]
  },

  pluginProcess: {
    privileges: 'MINIMAL',
    responsibilities: ['Run Browser Plugins'],
    restrictions: [
      'Heavily restricted API access',
      'Limited memory allocation',
      'Network access via browser process only'
    ]
  }
};

Keep reading