HN 표시: YSA – 아웃바운드 네트워크 제어 기능이 있는 AI 에이전트용 샌드박스

hackernews | | 💼 비즈니스
#ai 에이전트 #네트워크 제어 #ai #claude #mistral #tip #네트워크 #보안 #샌드박스 #컨테이너
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

YSA는 프로덕션 코드베이스에서 안전하게 AI 에이전트를 실행하기 위해 개발된 샌드박스 도구로, 루트리스 Podman 컨테이너 내에서 강력한 보안 격리 기능을 제공합니다. 이 시스템은 L7 프록시와 iptables 규칙을 통해 아웃바운드 트래픽을 엄격하게 제어하며, TLS 종료 및 읽기 전용 파일 시스템 등의 보안 조치를 적용하여 프롬프트 인jection과 같은 잠재적 유출 위험을 방지합니다. 또한 제공되는 대시보드를 통해 다중 작업을 병렬로 실행하고 각 컨테이너의 네트워크 트래픽을 실시간으로 시각화하여 모니터링할 수 있습니다. 현재 개발자가 매일 실무에서 사용하고 있으며, 보안 모델과 프록시 우회 탐지 기능에 대한 피드백을 기대하고 있습니다.

본문

Docs · CLI Reference · API Reference · Guides Early development — this repo is under active development. Expect breaking changes between releases. ysa is a secure container runtime for AI coding agents — a CLI and SDK, nothing else. Every agent runs in an isolated, rootless Podman container with a hardened sandbox, its own git worktree, and optional network policy enforcement. No cloud, no telemetry, no data leaving your machine. | Goal | What ysa does | |---|---| | Security | Every agent runs in a locked-down container: no root, read-only filesystem, syscall whitelist, capability-stripped | | Sovereignty | Runs entirely on your machine. No cloud, no telemetry, no data leaving your network | | Composability | Use runTask() as a primitive to build any orchestration layer on top | - Hardened sandbox — rootless Podman with defense-in-depth (see Container security) - Network policy — optional outbound traffic control with a local proxy and firewall enforcement - Multi-language — one container image, any runtime: Node.js, Python, Go, Rust, Ruby, PHP, Java, .NET, Elixir, C/C++ (via mise + apt) - Multi-provider — Claude Code and Mistral out of the box, extensible via registerProvider() - SDK — import { runTask } from "@ysa-ai/ysa/runtime" — build your own orchestration layer - Session resume — continue or refine a stopped/completed agent session - Sandbox shell — open an interactive session inside the secured container for manual intervention - Podman 5.x+ (rootless mode) - macOS or Linux - Windows support coming soon npm install -g @ysa-ai/ysa # First-time setup: preflight checks, CA cert, container images, network hooks ysa setup ysa setup will verify Podman is installed and configured correctly, then build the container images (~2–3 min on first run). Re-run it any time to check your environment. From source: git clone https://github.com/ysa-ai/ysa cd ysa bun install bun run build ysa setup # From inside any git repo — no config required ysa run "summarize this codebase" # Iterate on the result ysa refine "now write tests for it" ysa setup # First-run setup (preflight, images, CA cert, hooks) ysa run "prompt" [opts] # Run a task ysa refine "prompt" # Continue/iterate on a completed task ysa list # List tasks ysa logs # Stream logs for a task ysa stop # Stop a running task ysa teardown # Remove task resources (container + worktree) ysa runtime [tool] # Manage per-project runtimes ysa run options: | Flag | Default | Description | |---|---|---| -b, --branch | auto | Git branch name for the worktree | -m, --max-turns | 60 | Max agent turns | -n, --network | none | Network policy: none | strict | -q, --quiet | — | Progress only, no agent output | -v, --verbose | — | Show full log including tool calls | -i, --interactive | — | Live terminal session inside the sandbox | --no-commit | — | Prevent agent from committing (useful for review/analysis tasks) | Two modes: - Unrestricted — full internet access inside the container - Restricted — all traffic routed through a local MITM proxy. GET-only, no request body, rate limits, outbound byte budget. Enforced at both the proxy and firewall level inside the container network namespace. Every container runs directly on the host kernel via rootless Podman — no virtual machine, no hypervisor. The security constraints are enforced at the kernel level: --cap-drop ALL — strips all Linux process capabilities (nochown , nosetuid , nonet_admin , no elevated access of any kind)--read-only — immutable root filesystem; the agent cannot modify system files--security-opt no-new-privileges — prevents any process inside from gaining elevated privileges--security-opt seccomp=... — syscall whitelist (~190 allowed out of ~400+); blocksclone3 , memfd tricks, and other escalation paths--tmpfs /tmp — writable scratch space is in-memory only--memory 4g --cpus 2 --pids-limit 512 — hard resource limits per container- Rootless Podman — the container daemon itself runs as an unprivileged user; no process has root on the host at any point The git safe-wrapper shadows /usr/bin/git inside the container and strips 38+ dangerous config keys (hooks, filters, SSH command, proxy, credentials). A pre-push guard blocks pushes to any branch except the task's own branch. The sandbox is validated by two automated test suites — run them to verify the hardening on your own machine: # Run the full security suite (container sandbox + network proxy) bash container/tests/security-test.sh # Container sandbox only (no proxy required) bash container/tests/security-test.sh --skip-network attack-test.sh — 155 tests across 38 attack categories: privilege escalation, filesystem escapes, git hook injection, credential theft, signal abuse, and more. Runs inside the container.network-proxy-test.sh — 60 tests for the MITM proxy and firewall enforcement: exfiltration attempts, method bypasses, rule verification. ysa uses mise as a universal toolchain manager — one container image, any language runtime. Configure runtimes per project

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →