```yaml
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
process-diagram.gvprocess.mdreadme.mdname: when-configuring-sandbox-security-use-sandbox-configurator description: '```yaml' version: 1.0.0 category: security tags:
Use this skill when configuring sandbox network isolation, setting up trusted domain whitelists, implementing zero-trust network policies for AI code execution, configuring corporate proxies and internal registries, or preventing data exfiltration through network controls.
Do NOT use for production network security (use infrastructure-as-code instead), configuring firewall rules on live systems, bypassing organizational network policies, or setting up VPNs and network routing (use networking specialists). Avoid for troubleshooting network connectivity issues unrelated to sandbox security.
All network security configurations MUST be validated through:
metadata:
skill_name: when-configuring-sandbox-security-use-sandbox-configurator
version: 1.0.0
category: specialized-tools
difficulty: intermediate
estimated_duration: 20-40 minutes
trigger_patterns:
- "configure sandbox security"
- "sandbox isolation"
- "file system boundaries"
- "sandbox permissions"
- "secure sandbox"
dependencies:
- Claude Code sandbox environment
- Admin/root access (if applicable)
agents:
- security-manager (security architect)
- cicd-engineer (infrastructure specialist)
success_criteria:
- Security policies defined
- File boundaries configured
- Network isolation set
- Policies tested and verified
- Documentation complete
Configure Claude Code sandbox security with file system and network isolation boundaries. Ensures safe code execution with proper access controls and resource limits.
Required:
Optional:
Verification:
# Check Claude Code version
claude --version
# Verify sandbox availability
echo "Sandbox check"
Role: Design security policies, define boundaries, validate configurations
Expertise:
Output: Security policies, boundary definitions, validation tests
Role: Implement security configurations, manage resources, deploy policies
Expertise:
Output: Configuration files, deployment scripts, monitoring tools
Objective: Identify security needs, compliance requirements, and threat models
Evidence-Based Validation:
security-manager Actions:
# Pre-task coordination
npx claude-flow@alpha hooks pre-task --description "Assess sandbox security requirements"
# Create security directory structure
mkdir -p sandbox-security/{policies,config,tests,docs}
# Document security requirements
cat > sandbox-security/docs/REQUIREMENTS.md << 'EOF'
# Sandbox Security Requirements
## Objectives
- Prevent unauthorized file access
- Isolate network communications
- Enforce resource limits
- Audit all operations
- Comply with security standards
## Threat Model
### Threats
1. **File System Escape**: Unauthorized access to host files
2. **Network Intrusion**: Malicious network connections
3. **Resource Exhaustion**: DoS through resource abuse
4. **Data Exfiltration**: Unauthorized data transfer
5. **Privilege Escalation**: Gaining unauthorized permissions
### Mitigations
1. File system boundaries and whitelisting
2. Network isolation and domain restrictions
3. CPU/memory/disk quotas
4. Audit logging and monitoring
5. Least privilege principles
## Compliance Requirements
- SOC 2 Type II (if applicable)
- GDPR data protection
- Internal security policies
- Industry standards (OWASP, NIST)
## Access Control
- Read-only for system files
- Read-write for workspace only
- No access to sensitive directories (/etc, /root, /sys)
- Temp directory with size limits
EOF
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/docs/REQUIREMENTS.md" --memory-key "sandbox/requirements"
# Create threat assessment
cat > sandbox-security/docs/THREAT-ASSESSMENT.md << 'EOF'
# Threat Assessment
## Risk Matrix
| Threat | Likelihood | Impact | Risk Level | Mitigation Priority |
|--------|-----------|--------|------------|-------------------|
| File Escape | Medium | Critical | High | P0 |
| Network Intrusion | Low | High | Medium | P1 |
| Resource Exhaustion | High | Medium | Medium | P1 |
| Data Exfiltration | Low | Critical | High | P0 |
| Privilege Escalation | Low | Critical | High | P0 |
## Recommended Controls
### Critical (P0)
1. File system boundaries with strict whitelisting
2. Network isolation with trusted domain list
3. Mandatory audit logging
### High (P1)
4. Resource quotas and limits
5. Real-time monitoring and alerts
6. Regular security audits
### Medium (P2)
7. Automated security testing
8. Incident response procedures
9. Security awareness training
EOF
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/docs/THREAT-ASSESSMENT.md" --memory-key "sandbox/threat-assessment"
# Store requirements in memory
npx claude-flow@alpha memory store \
--key "sandbox/phase1-complete" \
--value "{\"status\": \"complete\", \"threats_identified\": 5, \"controls_defined\": 9, \"timestamp\": \"$(date -Iseconds)\"}"
Success Criteria:
Objective: Set file system boundaries, define access rules, implement restrictions
Evidence-Based Validation:
security-manager Actions:
# Define file system policy
cat > sandbox-security/policies/file-system-policy.json << 'EOF'
{
"file_system": {
"mode": "whitelist",
"workspace": {
"path": "/workspace",
"permissions": "read-write",
"size_limit_gb": 10
},
"allowed_paths": [
"/workspace/**",
"/tmp/sandbox/**",
"/usr/local/bin",
"/usr/bin",
"/bin"
],
"denied_paths": [
"/etc/**",
"/root/**",
"/sys/**",
"/proc/**",
"/dev/**",
"/home/**",
"~/.ssh/**",
"~/.aws/**",
"~/.config/**"
],
"temp_directory": {
"path": "/tmp/sandbox",
"size_limit_mb": 1000,
"auto_cleanup": true,
"cleanup_age_hours": 24
},
"readonly_paths": [
"/usr/local/lib",
"/usr/lib",
"/lib"
]
},
"enforcement": {
"strict_mode": true,
"symlink_resolution": "deny",
"case_sensitive": true,
"audit_all_access": true
}
}
EOF
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/policies/file-system-policy.json" --memory-key "sandbox/file-policy"
cicd-engineer Actions:
# Create file isolation configuration script
cat > sandbox-security/config/configure-file-isolation.sh << 'EOF'
#!/bin/bash
set -e
echo "Configuring file system isolation..."
# Create workspace directory
mkdir -p /workspace
chmod 755 /workspace
# Create isolated temp directory
mkdir -p /tmp/sandbox
chmod 1777 /tmp/sandbox
# Set resource limits
cat > /etc/security/limits.d/sandbox.conf << 'LIMITS'
sandbox soft fsize 10485760
sandbox hard fsize 10485760
sandbox soft nofile 1024
sandbox hard nofile 2048
LIMITS
# Configure AppArmor profile (if available)
if command -v apparmor_parser &> /dev/null; then
cat > /etc/apparmor.d/sandbox << 'APPARMOR'
#include <tunables/global>
profile sandbox {
#include <abstractions/base>
/workspace/** rw,
/tmp/sandbox/** rw,
/usr/bin/** rix,
/bin/** rix,
deny /etc/** rwklx,
deny /root/** rwklx,
deny /sys/** rwklx,
deny /proc/sys/** rwklx,
deny /home/** rwklx,
}
APPARMOR
apparmor_parser -r /etc/apparmor.d/sandbox
echo "AppArmor profile loaded"
fi
echo "File isolation configured successfully"
EOF
chmod +x sandbox-security/config/configure-file-isolation.sh
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/config/configure-file-isolation.sh" --memory-key "sandbox/file-config"
# Store configuration
npx claude-flow@alpha memory store \
--key "sandbox/phase2-complete" \
--value "{\"status\": \"complete\", \"file_boundaries\": true, \"timestamp\": \"$(date -Iseconds)\"}"
Success Criteria:
Objective: Define trusted domains, implement network restrictions, configure firewall rules
Evidence-Based Validation:
security-manager Actions:
# Define network security policy
cat > sandbox-security/policies/network-policy.json << 'EOF'
{
"network": {
"mode": "whitelist",
"trusted_domains": [
"*.anthropic.com",
"api.openai.com",
"github.com",
"*.github.com",
"raw.githubusercontent.com",
"npmjs.org",
"*.npmjs.org",
"pypi.org",
"*.pypi.org",
"docker.io",
"*.docker.io"
],
"blocked_domains": [
"*.example-malicious.com",
"suspicious-domain.net"
],
"allowed_ports": {
"outbound": [80, 443, 22, 3000, 5000, 8000, 8080],
"inbound": [3000, 5000, 8000, 8080]
},
"protocols": {
"allowed": ["http", "https", "ssh", "git"],
"denied": ["ftp", "telnet", "smtp"]
},
"rate_limiting": {
"enabled": true,
"requests_per_minute": 100,
"burst": 150
}
},
"firewall": {
"default_policy": "deny",
"egress_rules": [
{
"action": "allow",
"destination": "trusted_domains",
"ports": [80, 443]
}
],
"ingress_rules": [
{
"action": "allow",
"source": "localhost",
"ports": [3000, 8000, 8080]
}
]
}
}
EOF
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/policies/network-policy.json" --memory-key "sandbox/network-policy"
cicd-engineer Actions:
# Create network isolation configuration
cat > sandbox-security/config/configure-network-isolation.sh << 'EOF'
#!/bin/bash
set -e
echo "Configuring network isolation..."
# Create firewall rules (using iptables)
if command -v iptables &> /dev/null; then
# Default deny
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Allow loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow outbound HTTPS to trusted domains
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
# Allow outbound SSH
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
# Allow inbound on application ports
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
echo "Firewall rules configured"
fi
# Configure DNS filtering (using hosts file)
cat >> /etc/hosts << 'HOSTS'
# Blocked domains
127.0.0.1 example-malicious.com
127.0.0.1 suspicious-domain.net
HOSTS
echo "Network isolation configured successfully"
EOF
chmod +x sandbox-security/config/configure-network-isolation.sh
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/config/configure-network-isolation.sh" --memory-key "sandbox/network-config"
# Store configuration
npx claude-flow@alpha memory store \
--key "sandbox/phase3-complete" \
--value "{\"status\": \"complete\", \"network_isolated\": true, \"timestamp\": \"$(date -Iseconds)\"}"
Success Criteria:
Objective: Validate all security configurations through comprehensive testing
Evidence-Based Validation:
security-manager Actions:
# Create security test suite
cat > sandbox-security/tests/security-tests.sh << 'EOF'
#!/bin/bash
PASS=0
FAIL=0
echo "Running Security Test Suite"
echo "============================"
# Test 1: File system boundaries
echo -e "\nTest 1: File system access control"
if ! cat /etc/shadow 2>/dev/null; then
echo "✓ Cannot read /etc/shadow"
((PASS++))
else
echo "✗ Can read /etc/shadow (SECURITY ISSUE)"
((FAIL++))
fi
# Test 2: Workspace access
echo -e "\nTest 2: Workspace access"
if touch /workspace/test.txt 2>/dev/null; then
echo "✓ Can write to workspace"
((PASS++))
rm -f /workspace/test.txt
else
echo "✗ Cannot write to workspace"
((FAIL++))
fi
# Test 3: Temp directory access
echo -e "\nTest 3: Temp directory access"
if touch /tmp/sandbox/test.txt 2>/dev/null; then
echo "✓ Can write to temp directory"
((PASS++))
rm -f /tmp/sandbox/test.txt
else
echo "✗ Cannot write to temp directory"
((FAIL++))
fi
# Test 4: SSH key protection
echo -e "\nTest 4: SSH key protection"
if ! cat ~/.ssh/id_rsa 2>/dev/null; then
echo "✓ Cannot read SSH keys"
((PASS++))
else
echo "✗ Can read SSH keys (SECURITY ISSUE)"
((FAIL++))
fi
# Test 5: Network access to trusted domain
echo -e "\nTest 5: Network access (trusted domain)"
if curl -s --max-time 5 https://api.anthropic.com >/dev/null 2>&1; then
echo "✓ Can access trusted domain"
((PASS++))
else
echo "⚠ Cannot access trusted domain (check network)"
((FAIL++))
fi
# Test 6: Network access to blocked domain
echo -e "\nTest 6: Network access (blocked domain)"
if ! curl -s --max-time 5 https://example-malicious.com >/dev/null 2>&1; then
echo "✓ Cannot access blocked domain"
((PASS++))
else
echo "✗ Can access blocked domain (SECURITY ISSUE)"
((FAIL++))
fi
# Summary
echo -e "\n============================"
echo "Test Summary:"
echo "Passed: $PASS"
echo "Failed: $FAIL"
echo "============================"
if [ $FAIL -eq 0 ]; then
echo "✓ All security tests passed!"
exit 0
else
echo "✗ Some security tests failed!"
exit 1
fi
EOF
chmod +x sandbox-security/tests/security-tests.sh
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/tests/security-tests.sh" --memory-key "sandbox/security-tests"
# Run tests
./sandbox-security/tests/security-tests.sh || echo "Tests failed - review configuration"
cicd-engineer Actions:
# Create automated test runner
cat > sandbox-security/tests/run-all-tests.sh << 'EOF'
#!/bin/bash
echo "Running all security tests..."
echo "=============================="
# Run security test suite
./sandbox-security/tests/security-tests.sh
# Capture results
TEST_RESULT=$?
# Log results
echo "{\"timestamp\": \"$(date -Iseconds)\", \"result\": \"$TEST_RESULT\"}" >> sandbox-security/tests/test-results.log
# Notify
if [ $TEST_RESULT -eq 0 ]; then
npx claude-flow@alpha hooks notify --message "Security tests passed"
else
npx claude-flow@alpha hooks notify --message "Security tests FAILED - review immediately"
fi
exit $TEST_RESULT
EOF
chmod +x sandbox-security/tests/run-all-tests.sh
# Post-edit hook
npx claude-flow@alpha hooks post-edit --file "sandbox-security/tests/run-all-tests.sh" --memory-key "sandbox/test-runner"
# Store test results
npx claude-flow@alpha memory store \
--key "sandbox/phase4-complete" \
--value "{\"status\": \"complete\", \"tests_passed\": true, \"timestamp\": \"$(date -Iseconds)\"}"
Success Criteria:
Objective: Deploy security configuration and setup continuous monitoring
Evidence-Based Validation:
security-manager Actions:
# Create deployment guide
cat > sandbox-security/docs/DEPLOYMENT.md << 'EOF'
# Security Deployment Guide
## Pre-Deployment Checklist
- [ ] All policies reviewed and approved
- [ ] Test suite passing
- [ ] Backup configuration created
- [ ] Rollback plan documented
## Deployment Steps
1. **Backup Current Configuration**
```bash
./sandbox-security/scripts/backup-config.sh
Deploy File Isolation
./sandbox-security/config/configure-file-isolation.sh
Deploy Network Isolation
./sandbox-security/config/configure-network-isolation.sh
Verify Deployment
./sandbox-security/tests/security-tests.sh
Enable Monitoring
./sandbox-security/monitoring/start-monitoring.sh
If issues occur:
./sandbox-security/scripts/rollback-config.sh
EOF
npx claude-flow@alpha hooks post-task --task-id "sandbox-security-config"
**cicd-engineer Actions:**
```bash
# Create monitoring script
cat > sandbox-security/monitoring/start-monitoring.sh << 'EOF'
#!/bin/bash
echo "Starting security monitoring..."
# Monitor file access
tail -f /var/log/audit/audit.log | grep --line-buffered "denied" &
# Monitor network connections
tcpdump -i any -n 'tcp[tcpflags] & (tcp-syn) != 0' &
# Monitor resource usage
while true; do
echo "[$(date -Iseconds)] Resource usage:"
df -h /workspace
du -sh /tmp/sandbox
sleep 300
done &
echo "Monitoring started (PIDs: $!)"
EOF
chmod +x sandbox-security/monitoring/start-monitoring.sh
# Create final documentation
cat > sandbox-security/docs/SECURITY-SUMMARY.md << 'EOF'
# Security Configuration Summary
## Implemented Controls
### File System Security
- Whitelist mode enabled
- Workspace: /workspace (10GB limit)
- Temp: /tmp/sandbox (1GB limit, 24h cleanup)
- Denied: /etc, /root, /sys, /proc, /dev, /home, ~/.ssh, ~/.aws
### Network Security
- Whitelist mode enabled
- Trusted domains: *.anthropic.com, github.com, npmjs.org, pypi.org
- Allowed ports: 80, 443, 22, 3000, 5000, 8000, 8080
- Firewall: Default deny with specific allow rules
- Rate limiting: 100 req/min, burst 150
### Monitoring
- File access auditing
- Network connection monitoring
- Resource usage tracking
- Security alert system
## Security Posture
| Control | Status | Effectiveness |
|---------|--------|---------------|
| File Isolation | ✓ Active | High |
| Network Isolation | ✓ Active | High |
| Resource Limits | ✓ Active | Medium |
| Audit Logging | ✓ Active | High |
| Monitoring | ✓ Active | Medium |
## Compliance
- SOC 2 Type II controls implemented
- GDPR data protection measures in place
- Internal security policies enforced
- OWASP security guidelines followed
## Maintenance
- Review policies quarterly
- Update trusted domains as needed
- Audit logs monthly
- Test security weekly
- Update documentation continuously
EOF
# Post-edit hooks
npx claude-flow@alpha hooks post-edit --file "sandbox-security/monitoring/start-monitoring.sh" --memory-key "sandbox/monitoring"
npx claude-flow@alpha hooks post-edit --file "sandbox-security/docs/SECURITY-SUMMARY.md" --memory-key "sandbox/summary"
# Session end
npx claude-flow@alpha hooks session-end --export-metrics true
# Store final status
npx claude-flow@alpha memory store \
--key "sandbox/phase5-complete" \
--value "{\"status\": \"complete\", \"deployed\": true, \"monitoring\": true, \"timestamp\": \"$(date -Iseconds)\"}"
npx claude-flow@alpha memory store \
--key "sandbox/workflow-complete" \
--value "{\"status\": \"success\", \"security_level\": \"high\", \"compliance\": true, \"timestamp\": \"$(date -Iseconds)\"}"
Success Criteria:
Total Estimated Duration: 20-40 minutes
Phase Breakdown:
Key Deliverables: