vibe-coding-club.vercel.app


Advanced 4주차는 “AI가 만든 코드를 어디서 실행할 것인가”를 다뤘다.

이번 주는 기능보다 경계를 먼저 본 시간이었다. 코드 품질만큼 실행 환경이 중요하다는 걸 다시 확인했다.


이번 주 구조

Week4 구성은 4개였다.

  1. 왜 Sandbox인가
  2. 격리 기술 스택
  3. 실제 구현체 비교
  4. 실습

실습은 3개로 진행됐다.

  • Sandbox Escape Demo
  • Safe Code Executor
  • Network Isolation Demo

왜 샌드박스인가

AI 코드 실행에서 가장 불편한 지점은 예측 가능성이 낮다는 점이다. 같은 요청에도 코드가 달라진다. 실행 전에는 부작용 범위를 확신하기 어렵다.

이번 주에서 반복된 위험은 세 가지였다.

  • Sandbox Escape
  • Data Exfiltration
  • Resource Exhaustion

예시는 단순했다. CSV처럼 평범한 입력에 악성 문자열이 섞이면, 실행 코드가 외부 유출로 이어질 수 있다.

그래서 핵심은 “완벽한 코드”보다 “실수해도 밖으로 번지지 않는 경계”였다.


방어 원칙

기본 원칙은 Defense in Depth였다. 한 겹으로 막지 않는다. 여러 겹으로 줄인다.

흐름은 보통 이렇게 잡는다.

  • 정적 분석
  • 격리 실행
  • 리소스 제한
  • 시스템콜 제한
  • 네트워크 격리
  • 감사 로그

여기서 특히 계속 강조된 건 Allowlist였다.

  • Denylist: 기본 허용, 일부 차단
  • Allowlist: 기본 차단, 필요한 것만 허용

실행 환경은 결국 후자가 안전했다.


격리 기술 스택

이번 주 설명을 한 줄로 줄이면 이거였다.

  • 무엇을 보게 할지
  • 얼마나 쓰게 할지
  • 무엇을 하게 할지

각각 대응되는 기술은 다음이었다.

  • Linux Namespaces
  • cgroups
  • seccomp

이 3가지를 바닥으로 깔고, 위에서 Docker, gVisor, Firecracker 같은 선택지가 올라간다.

gVisor는 커널 접근 경계를 더 두껍게 만든 선택지였고, Firecracker는 격리 강도를 높이면서 부팅 시간을 줄인 MicroVM 쪽 선택지였다.


실제 구현체

이번 주에서 비교한 구현체는 다음이었다.

  • E2B
  • Modal
  • OpenAI Code Interpreter
  • Claude Code

같은 “코드 실행” 문제를 풀어도 각 서비스가 택한 제약은 달랐다.

  • 네트워크를 어디까지 열지
  • 파일시스템을 얼마나 남길지
  • cold start와 격리 강도 중 무엇을 우선할지

Claude Code 파트는 프록시 경유 제어 관점에서 정리되어 있었다. 임의 외부 서버로 바로 나가는 경로를 줄이고, 허용된 경로 중심으로 운영하는 방식이다.


실습

실습은 개념을 코드로 확인하는 흐름이었다.

실습 1

01_sandbox_escape_demo.py

AST 기반 정적 분석으로 import os, __import__, __subclasses__ 같은 패턴을 차단한다.

실습 2

02_safe_code_executor.py

subprocessresource로 CPU, 메모리, 파일 크기, 프로세스 수를 제한한다. 타임아웃도 별도로 둔다.

실습 3

03_network_isolation_demo.py

네트워크 접근을 모드별로 제어한다. 화이트리스트와 DLP 패턴 탐지를 같이 확인한다.

실습 코드는 아래 저장소에서 확인할 수 있다.


4주차를 마치며

이번 주는 보안 기능을 많이 배운 주차라기보다, 실행 경계 설계를 먼저 배우는 주차에 가까웠다.

생성 모델이 좋아질수록 실행 안전성은 자동으로 해결되지 않는다. 오히려 더 먼저 설계해야 했다.

코드 실행을 붙일 때는 이제 모델 선택보다 격리 전략부터 확인하게 될 것 같다.


메모

  • AI 코드 실행은 기능 이전에 경계 설계 문제다
  • 기본 차단 후 허용하는 방식이 운영 리스크를 줄인다
  • Namespaces, cgroups, seccomp는 설명용 개념이 아니라 실무 기본기다
  • 실습으로 보면 이론보다 훨씬 빨리 이해된다