Workload Sandboxing
How Fabric isolates workloads for security
Overview
Every workload on Fabric runs in a sandboxed environment. This protects:
- Device owners from malicious code
- Job submitters from data leaks
- The network from compromised nodes
Sandbox Technology
Fabric uses OS-native sandboxing mechanisms for each platform:
macOS:
- Uses Apple built-in sandboxing
- Same technology used by App Store apps
- No additional software required
Linux:
- Uses kernel namespaces
- Provides process, network, and filesystem isolation
Windows:
- Uses restricted process tokens
- Process group isolation
- Limited system call access
What is Restricted
Network access:
- Outbound network connections are blocked
- Workloads cannot access the internet
- Cannot communicate with other processes
Filesystem access:
- Limited to temporary working directory
- Cannot read system files
- Cannot write outside workspace
- Workspace is deleted after job completion
System calls:
- Limited to necessary operations
- Cannot access hardware directly
- Cannot spawn unrestricted processes
What is Allowed
Read access:
- System libraries (for Python packages to work)
- Temporary workspace files
- Input data provided by the job
Write access:
- Temporary workspace only
- Output files designated by the workload
Compute:
- Full CPU access (within resource limits)
- GPU access (if job requires it)
- Memory up to configured limits
Resource Limits
Each job has configurable limits:
- Timeout: Maximum execution time (default: 30 minutes)
- Memory: Maximum RAM usage
- CPU: Process priority
Jobs exceeding these limits are terminated and marked as failed.
Custom Workloads
Custom workloads uploaded by enterprises run with the same sandboxing.
The sandbox prevents custom code from:
- Accessing the device owner files
- Making network requests
- Persisting data between jobs
- Interfering with other processes
Proof of Execution
After each job, the agent generates a Proof of Execution containing:
- SHA256 hash of workload code
- SHA256 hash of input data
- SHA256 hash of output
- Execution timing
- Anonymized node identifier
This provides verification that the job was executed correctly.
Privacy Protection
For device owners:
- Your personal files are never accessible to workloads
- Your identity is anonymized to job submitters
- Workloads cannot exfiltrate data (no network access)
For job submitters:
- Your code and data are processed in isolation
- Other workloads cannot access your data
- Results are uploaded securely