TL;DR

  • NVIDIA OpenShell은 커널 수준 격리와 선언형 YAML 정책을 결합해 로컬 파일, 자격 증명, 외부 네트워크에 대한 무제한 접근 없이 자율 AI 에이전트 플릿을 실행하는 오픈소스 런타임임.
  • OpenShell은 에이전트의 파일 읽기, 패키지 설치, API 호출, 자격 증명 사용 기능을 유지하면서 접근 범위를 명시적으로 통제함.
  • 파일시스템, 네트워크, 프로세스, 제공자 자격 증명 정책으로 데이터 유출, 자격 증명 탈취, 무단 API 사용, 권한 상승 위험을 다룸.
  • OpenShell 0.1.x에는 안정적인 릴리스 주기, 새로운 격리 프리미티브, 확장된 확장 기능 표면이 포함됨.
  • 보안 코딩, 기업 내부 개발, 규정 준수 및 감사, 재사용 가능한 에이전트 환경 구축을 지원함.

OpenShell이 필요한 이유

  • AI 에이전트는 파일 읽기, 패키지 설치, API 호출, 자격 증명 사용이 가능할 때 가장 유용하지만, 같은 접근 권한이 상당한 위험을 유발할 수 있음.
  • OpenShell은 에이전트의 기능을 보존하면서 에이전트가 접근할 수 있는 대상을 명시적으로 통제하도록 설계된 런타임임.
  • 샌드박스 런타임 제어와 선언형 YAML 정책을 결합해 에이전트가 로컬 파일, 자격 증명, 외부 네트워크에 제한 없이 접근하지 못하도록 함.

일반적인 위험과 통제 방법

  • 데이터 유출
  • 통제되지 않으면 에이전트가 소스 코드나 내부 파일을 승인되지 않은 엔드포인트로 업로드할 수 있음.
  • OpenShell은 네트워크 정책으로 승인된 목적지만 허용하고 나머지 아웃바운드 트래픽을 차단함.
  • 자격 증명 탈취
  • 에이전트가 SSH 키나 클라우드 자격 증명 같은 로컬 비밀 정보에 접근할 수 있음.
  • 파일시스템 제한인 Landlock으로 접근을 선언된 경로에만 한정함.
  • 승인되지 않은 API 사용
  • 에이전트가 프롬프트나 데이터를 승인되지 않은 모델 제공자에게 전송할 수 있음.
  • 제공자 프로필과 네트워크 정책으로 모델 트래픽을 승인된 엔드포인트와 바이너리로 제한함.
  • 권한 상승
  • 에이전트가 sudo, setuid 경로 또는 위험한 시스템 호출 동작을 시도할 수 있음.
  • 비특권 프로세스 신원과 seccomp 제한으로 권한 상승 경로를 차단함.

보호 계층 한눈에 보기

  • 파일시스템: 허용된 경로 밖의 읽기와 쓰기를 막으며, 샌드박스 생성 시 정책이 고정됨.
  • 네트워크: 승인되지 않은 아웃바운드 연결을 막으며, 실행 중 정책을 다시 불러올 수 있음.
  • 프로세스: 권한 상승과 위험한 시스템 호출을 막으며, 샌드박스 생성 시 정책이 고정됨.
  • 제공자 자격 증명: 프로필에서 승인한 엔드포인트에서만 불투명한 자격 증명 자리표시자를 해석함.
  • 자격 증명 연결, 교체, 폐기는 실행 중 갱신되며, 새 환경 변수는 새 프로세스가 필요함.
  • 자세한 내용은 샌드박스 정책과 기본 정책을 참고할 수 있음.

일반적인 사용 사례

  • 보안 코딩 에이전트: 파일 및 네트워크 접근을 제한한 상태로 Claude Code, OpenCode, Codex 또는 GitHub Copilot CLI 실행.
  • 기업 내부 개발: 민감한 맥락을 자체 통제하면서 선택된 샌드박스에 자체 호스팅 또는 비공개 모델 엔드포인트 접근 권한 부여.
  • 규정 준수 및 감사: 정책 YAML을 버전 관리하고 검토 및 감사할 수 있는 보안 제어로 취급.
  • 재사용 가능한 환경: 기본 Ubuntu 워크로드를 사용하거나 자체 컨테이너 런타임을 가져와 사용.

다음 단계

  • 런타임 아키텍처를 이해하려면 아키텍처 문서를 참고할 수 있음.
  • 이미지를 준비하고 에이전트를 실행하려면 첫 에이전트 실행 안내를 참고할 수 있음.
  • OpenShell이 보호 계층 전반에서 정책 제어를 적용하는 방식을 알아보려면 샌드박스 정책을 참고할 수 있음.
  • OpenShell 0.1.x의 변경 사항은 업그레이드 안내에서 확인할 수 있음.