피드로 돌아가기
Giving Your Local LLM Safe Filesystem Access With Ollama Tool Use
Dev.toDev.to
Security

Path Traversal 방지를 위한 Local LLM 파일시스템 샌드박스 설계

Giving Your Local LLM Safe Filesystem Access With Ollama Tool Use

Pavel Espitia2026년 6월 12일13intermediate

Context

Local LLM에 파일시스템 접근 권한 부여 시 Path Traversal 및 Prompt Injection으로 인한 시스템 권한 탈취 위험 존재. 단순한 경로 검사로는 샌드박스 우회 가능성이 높아 엄격한 실행 제어 계층 설계가 필요함.

Technical Solution

  • path.resolve와 path.relative를 결합하여 루트 경로 외부로의 접근을 구조적으로 차단하는 Sandbox 메커니즘 구현
  • fs.realpath를 통한 Symlink Resolve 단계 추가로 샌드박스 내부의 우회 경로 원천 봉쇄
  • Basename 기반의 Deny-list를 적용하여 .env, .git 등 민감 파일에 대한 2차 접근 제어 수행
  • MAX_READ_BYTES(256KB) 제한을 통해 대용량 파일 로드로 인한 RAM 고갈 및 DOS 공격 방어
  • 쓰기 작업 시 Human-in-the-loop 모델을 적용하여 모델의 제안과 사용자의 승인을 분리한 실행 구조 설계
  • Zod를 활용한 인자 검증 및 에러 핸들링으로 모델의 Hallucination으로 인한 프로세스 크래시 방지

- path.resolve 후 path.relative 결과값이 '..'로 시작하는지 반드시 확인 - Symlink가 포함된 환경일 경우 fs.realpath 호출 후 재검증 절차 수행 - 파일 읽기 도구에 최대 바이트 제한(Byte Budget) 설정 - 모든 쓰기 작업은 자동화 루프에서 제외하고 명시적 사용자 승인 단계 구축 - 도구 입력값에 대해 Zod 등 스키마 검증 라이브러리 적용

원문 읽기