홍드로이드의 야매코딩

AI 에이전트 보안 격리 — 읽기 전용으로 걸어도 키가 샙니다 본문

AI & Vibe Coding

AI 에이전트 보안 격리 — 읽기 전용으로 걸어도 키가 샙니다

홍드로이드 2026. 8. 31. 12:27
반응형

AI 에이전트에 코드를 맡길 때 읽기 전용으로만 붙이면 안전하겠지 싶습니다. 고칠 수 없으니까요. 그런데 공식 보안 문서를 보니 읽기 전용이어도 그 폴더 안의 설정 파일과 클라우드 자격증명은 그대로 읽힙니다. "못 고친다"와 "못 본다"는 완전히 다른 얘기였어요. 그 밖에도 권한 검사는 샌드박스가 아니고, 암호화된 통신은 들여다볼 수 없습니다. 정리했습니다.

📌 30초 요약

  • ★★읽기 전용이어도 키 파일은 읽힙니다.
  • ★권한 검사는 샌드박스가 아닙니다 — 위험을 추론하지 않습니다.
  • ⚠️ 암호화된 통신은 못 들여다봅니다.
  • ★네트워크를 아예 없애고 소켓 하나만 두는 방법이 있습니다.
  • 키는 중계가 대신 넣어주면 에이전트가 못 봅니다.
  • ⚠️ 프록시 설정을 무시하는 프로그램이 있습니다.

읽기 전용으로 걸어도 키가 샙니다

가장 흔한 착각입니다. 코드를 분석만 시키려고 폴더를 읽기 전용으로 붙이면 파일을 못 고치니 안심하게 되죠. 그런데 문서가 경고를 따로 답니다 — 읽기 전용 접근만으로도 자격증명이 노출될 수 있다는 겁니다.

문서가 붙이기 전에 빼거나 지워야 할 파일 목록을 표로 제시하는데, 익숙한 것들이에요 — 환경 설정 파일, 저장소 접속 정보, 클라우드 접근 키, 컨테이너 저장소 인증 정보, 패키지 저장소 토큰, 그리고 개인 키. 프로젝트 폴더에 하나쯤 굴러다니기 쉬운 것들이죠. 에이전트가 악의적인 파일을 읽고 그 지시대로 움직이면, 이 값들이 그대로 밖으로 나갈 수 있습니다.

📁 통째로 붙이지 말고 골라 담으세요

문서의 처방은 두 가지입니다 — 필요한 소스 파일만 복사해 넣거나, 붙일 때 걸러내는 목록을 쓰라는 것. 그리고 개인 폴더의 민감한 디렉터리는 절대 붙이지 말라고 못 박습니다. 열쇠 꾸러미가 든 서랍을 통째로 내주는 셈이거든요. 무료 모델을 붙여 에이전트를 굴리는 환경이라면 키 파일이 여기저기 흩어져 있기 쉬우니 특히 확인하세요.

권한 검사는 샌드박스가 아닙니다

명령을 실행하기 전에 구문을 해석해 내가 정한 규칙과 맞춰봅니다. 깔끔하게 해석되지 않거나 허용 규칙에 안 맞으면 승인을 받고요. 여기까지는 든든한데, 문서가 성격을 분명히 합니다 — 이건 권한을 거르는 문일 뿐 격리가 아닙니다.

무슨 뜻이냐면 명령이 향하는 경로나 실제 효과를 보고 "이건 위험하다"고 추론하지 않는다는 겁니다. 몇 가지 안전장치와 보호 경로 목록은 따로 있지만, 그 밖에는 내가 허용해둔 규칙에 걸리면 통과합니다. "허용 규칙을 넓게 잡아뒀는데 알아서 걸러주겠지"가 안 통하는 이유예요.

암호화된 통신은 못 들여다봅니다

"허용한 주소로만 나가게 막았다"고 해도 한 겹 더 봐야 합니다. 가벼운 격리 도구의 중계는 보내는 쪽이 말한 주소 이름만 보고 판단하고, 암호화된 내용을 풀어보지 않습니다. 그래서 안에서 도는 코드가 허용된 주소를 앞세워 다른 곳에 닿는 기법을 쓸 여지가 남아요.

격리 방식 특징
가벼운 격리 도구 설정이 간단하고 부담이 거의 없음 — 커널은 공유
컨테이너 설정하기 나름 — 옵션을 안 조이면 헐거움
호출을 가로채는 층 격리가 강함 — 파일 작업이 많으면 크게 느려짐
가상 머신 커널을 따로 씀 — 부담이 가장 큼

표에서 짚어둘 게 있습니다. 가상 머신이 자동으로 더 안전한 건 아니라고 문서가 분명히 말해요 — 어떤 가상화 계층을 쓰느냐에 크게 달렸다는 겁니다. 그리고 가벼운 격리는 같은 커널을 쓰기 때문에 커널 쪽 약점이 있으면 빠져나갈 여지가 남습니다.

네트워크를 없애고 소켓 하나만 둡니다

가장 인상적인 구성입니다. 컨테이너에 네트워크 인터페이스를 아예 안 줍니다. 밖과 통하는 길은 바깥에 있는 중계로 이어진 소켓 하나뿐이에요.

효과가 분명합니다 — 읽어들인 파일에 심긴 지시에 넘어가 에이전트가 조종당해도, 아무 서버로나 데이터를 빼낼 수가 없습니다. 오직 중계를 통해서만 나갈 수 있고, 어디까지 닿을지는 중계가 정합니다. 여기에 키를 중계가 대신 넣어주는 방식을 얹으면 에이전트는 키를 아예 구경도 못 하면서 필요한 요청은 다 할 수 있어요.

⏱️ 격리와 별개로 실행량도 묶어둬야 합니다

격리로 할 수 있는 일을 좁혔다면, 얼마나 오래 도느냐도 함께 묶어야 합니다. 차례 수나 쓸 돈에 상한을 걸 수 있는데, 걸려서 멈추면 결과 글이 아예 안 옵니다. 대신 비용과 세션 번호는 남아 이어받을 수 있어요. 종료 상태를 먼저 확인하고 결과를 읽는 습관이 필요합니다.

자주 묻는 질문 (FAQ)

Q. 프록시를 걸었는데 어떤 요청은 그냥 나갑니다.

모든 프로그램이 프록시 설정을 따르는 건 아닙니다. 흔히 쓰는 명령줄 도구 대부분은 따르지만, 일부 실행 환경의 요청 기능은 기본적으로 무시합니다. 별도 설정을 켜야 따르는 경우도 있고요. 빈틈 없이 하려면 호출을 강제로 가로채는 도구를 쓰거나, 방화벽 규칙으로 나가는 트래픽을 통째로 돌리는 방식이 확실합니다. "설정했으니 됐다"고 넘기지 말고 실제로 어디로 나가는지 확인하세요.

Q. 우리도 이렇게까지 해야 하나요?

문서가 먼저 선을 그어줍니다. "모든 배포에 최고 수준의 보안이 필요한 건 아니다"라고요. 노트북에서 혼자 쓰는 것과, 여러 고객의 데이터를 한 서버에서 다루는 건 요구가 다르죠. 다만 남이 만든 내용을 읽어 처리하는 작업이라면 이야기가 달라집니다. 저장소 안내 파일에 이상한 지시가 섞여 있는 것만으로도 예상 못 한 행동이 나올 수 있거든요.

Q. 기본으로 켜져 있는 방어도 있나요?

몇 가지 있습니다. 권한 규칙과 명령 해석은 앞서 본 대로고, 웹 검색 결과는 원문을 그대로 넣지 않고 요약해서 들여옵니다. 검색으로 딸려 들어오는 지시를 줄이려는 장치죠. 명령을 제한된 환경에서 돌리는 모드도 있고요. 다만 이것들은 기본값이지 완결된 방어가 아닙니다. 문서의 표현대로 여러 겹을 쌓는 것이 원칙이고, 기본 지시문에서 안전 지시가 빠지지 않았는지도 함께 확인해야 합니다.

🧾 정직하게 밝혀둘 것

  • 제가 구축해 운영해본 실측이 아닙니다. 공식 보안 문서의 위협 모델·격리 비교·주의 사항을 우리말로 정리했습니다.
  • ★명령어·설정 옵션·파일 경로·성능 배수는 옮기지 않았습니다. 실제로 구축할 때는 원문 예시를 보세요.
  • ★"못 고친다와 못 본다는 다르다"는 제 정리이고, 문서는 읽기 전용에서도 자격증명이 노출될 수 있다는 경고와 파일 목록을 제시합니다.
  • 격리 도구의 성능 부담은 작업 성격에 따라 크게 달라집니다. 문서가 제시한 경향이며 직접 재보는 게 정확합니다.

✨ 정리하면

읽기 전용으로 붙여도 그 안의 키 파일은 그대로 읽힙니다 — 통째로 붙이지 말고 필요한 것만 골라 담으세요. 권한 검사는 격리가 아니라 문일 뿐이고, 가벼운 격리의 중계는 암호화된 내용을 못 들여다봅니다. 가장 확실한 구성은 네트워크를 아예 없애고 소켓 하나로만 내보내면서, 키는 바깥 중계가 대신 넣어주는 방식이에요. 기본 지시문에서 안전 지시가 빠지는 문제는 기본 지시문 정리, 여러 고객을 한 서버에서 돌릴 때의 격리는 설정 불러오기 정리, 무료 모델을 붙여 쓰는 환경은 OpenCode + GLM, 전체 비용 흐름은 AI 지출 관리 허브에 모아뒀습니다.

※ 출처: Claude 에이전트 안전 배포 공식 문서(2026년 8월 31일 열람). 권장 구성과 도구는 계속 갱신됩니다.

반응형
Comments