Log in to leave a comment
No posts yet
AI 에이전트가 내 터미널에서 직접 명령어를 입력하고 파일을 수정하는 시대가 왔습니다. Anthropic의 Claude Code는 혁신적입니다. 하지만 이 혁신은 양날의 검입니다. AI가 내 시스템의 전체 권한을 가진 채 실행된다는 것은 보안 엔지니어링 관점에서 거대한 재앙의 씨앗을 품고 있는 것과 같습니다.
단순한 실수나 환각 현상 한 번으로 .ssh 개인키가 외부에 노출되거나 환경 변수에 저장된 AWS 자격 증명이 유출될 수 있습니다. 이건 이론적인 가설이 아니라 실제적인 위협입니다. 해결책은 명확합니다. AI 에이전트를 가두어야 합니다. 단순한 Docker 격리를 넘어 시스템 수준의 보안을 제공하는 Incus가 필요한 이유입니다.
AI 에이전트를 어디서 실행하느냐가 데이터 보안의 성패를 가릅니다. 로컬 터미널에서 직접 실행하는 행위는 사실상 집 현관문을 열어두는 것과 다름없습니다.
| 비교 항목 | 호스트 터미널 | Docker 컨테이너 | Incus 시스템 컨테이너 |
|---|---|---|---|
| 격리 경계 | 없음 (권한 상속) | 프로세스 수준 격리 | 커널 수준 시스템 격리 |
| 시크릿 노출 | 매우 높음 | 낮음 | 매우 낮음 |
| 상태 지속성 | 영구적 | 휘발성 | 영구적 |
| 권한 관리 | 사용자 권한 노출 | Root 남용 위험 | 비특권 모드 강제 |
실제로 2024년 발표된 보안 리포트에 따르면, 자율형 에이전트의 권한 남용 사례 중 60% 이상이 부적절한 샌드박스 설정에서 기인했습니다. Docker는 가볍지만 에이전트가 시스템 서비스를 건드리거나 복잡한 패키지 의존성을 관리해야 할 때 한계를 드러냅니다. 반면 Incus는 가상 머신(VM)과 유사한 수준의 독립된 운영체제 환경을 제공하면서도 오버헤드는 훨씬 적습니다.
시니어 보안 엔지니어들이 Docker 대신 Incus를 선택하는 이유는 명확합니다. Docker는 애플리케이션을 배포하기 위한 도구이지, 신뢰할 수 없는 에이전트를 가두기 위한 감옥이 아니기 때문입니다.
Incus의 핵심은 유저 네임스페이스(User Namespaces)입니다. 컨테이너 내부에서는 root(UID 0) 권한을 가진 것처럼 보이지만, 실제 호스트 시스템에서는 아무런 권한이 없는 높은 숫자의 사용자(예: UID 1,000,000)로 매핑됩니다. AI가 컨테이너를 탈출하더라도 호스트 시스템에서는 그저 정체불명의 일반 사용자일 뿐입니다.
Docker 컨테이너는 삭제하면 데이터가 사라집니다. 하지만 Claude Code와 같은 에이전트는 이전 작업의 맥락과 설치된 도구들을 기억해야 합니다. Incus는 시스템 컨테이너이므로 컨테이너를 끄고 켜도 모든 상태가 보존됩니다. 에이전트에게 연속성 있는 뇌를 제공하는 셈입니다.
Incus는 리눅스 커널 기능을 사용하기 때문에 Mac에서 직접 실행할 수 없습니다. 대신 가벼운 리눅스 가상화 레이어인 Colima를 징검다리로 활용합니다.
먼저 필요한 도구를 설치하고 AI 작업에 적합한 자원을 할당합니다. CPU와 메모리를 충분히 주지 않으면 에이전트의 추론 속도가 현저히 떨어집니다.
brew install colima incus
colima start --cpu 4 --memory 8 --runtime incus --network-address
Colima VM 내부의 Incus 서버를 Mac 터미널에서 제어할 수 있도록 연결합니다.
colima ssh로 진입하여 sudo incus admin init --auto를 실행합니다.incus remote add colima-vm <IP>로 서버를 등록합니다.인터넷 접속이 막히는 경우가 잦습니다. 이는 보통 Docker가 설치된 환경에서 iptables 정책을 DROP으로 변경하기 때문입니다. 다음 명령어로 통로를 열어주어야 합니다.
sudo firewall-cmd --zone=trusted --change-interface=incusbr0 --permanent
sudo firewall-cmd --reload
AI 에이전트가 악의적으로 변하거나 해킹되었을 때, Incus는 어떻게 시스템을 보호하는지 구체적인 시나리오로 확인해 보겠습니다.
에이전트가 디버깅 중이라며 printenv를 실행하거나 악성 라이브러리가 메모리 내의 AWS 키를 탈취하려고 시도합니다.
스크립트가 ~/.ssh/id_rsa 경로를 훑어 외부로 전송하려고 합니다.
보안이 전제되지 않은 AI 도입은 나중에 더 큰 비용으로 돌아오는 기술 부채입니다. 생산성이 달콤하다고 해서 집 열쇠를 AI에게 통째로 넘겨줄 수는 없습니다. Incus 샌드박스는 AI 시대의 개발자가 갖추어야 할 최소한의 안전벨트입니다.
지금 즉시 로컬 터미널에서 실행 중인 Claude Code를 중단하십시오. 격리된 Incus 환경으로 마이그레이션하는 것이 여러분의 코드와 자산, 그리고 커리어를 지키는 가장 확실한 방법입니다. 오늘 당장 colima start --edit 명령어로 본인만의 안전한 개발 실험실을 구축해 보시기 바랍니다.