실행 격리 — 자동으로 만들어진 코드를 어디서 돌릴지 정하는 기준 (2026)
자동으로 만들어진 코드는 검토 여부와 상관없이 일단 남의 코드로 취급하는 편이 안전합니다.
문제는 그 코드가 실행되는 순간에 벌어집니다.
파일을 지우거나, 사내망에 요청을 보내거나, 환경변수에 든 키를 읽어 갈 수 있습니다.
실행 격리는 이 지점을 막기 위해 “어디서 돌릴지”를 미리 정해 두는 설계입니다.
같은 코드라도 실행 위치에 따라 사고 범위가 완전히 달라집니다. https://dinsightlab.com
신뢰 경계는 입력이 아니라 실행에서 갈린다
보안 설계에서 신뢰 경계는 검증되지 않은 것이 검증된 영역으로 넘어오는 선입니다.
사용자 입력은 대개 문자열이라 검사로 걸러집니다.
그런데 코드는 다릅니다.
코드는 검사 대상이 아니라 실행 대상이고, 실행되는 순간 그 프로세스가 가진 권한을 전부 물려받습니다.
개발자 노트북에서 돌리면 노트북 권한을 갖고, 운영 서버에서 돌리면 운영 권한을 갖습니다.
그래서 “이 코드가 안전한가”보다 “이 코드가 실패해도 무엇까지만 망가지는가”가 먼저입니다.
격리 수준은 네 단계로 나뉜다
현실에서 쓰이는 격리 수준은 대략 네 가지입니다.
-
같은 프로세스 안에서 실행 — 격리가 없고 가장 빠릅니다.
-
별도 프로세스 + 권한 축소 — 파일·네트워크 접근을 제한합니다.
-
컨테이너 — 파일시스템과 네트워크가 분리되지만 커널은 공유합니다.
-
마이크로VM — 커널까지 분리해 탈출 위험을 가장 크게 줄입니다.
아래로 내려갈수록 안전하지만 시작 시간과 비용이 올라갑니다.
선택 기준은 “그 코드가 접근할 수 있는 자산의 가치”입니다.
읽을 데이터가 공개 자료뿐이라면 2번으로 충분하고, 고객 데이터나 결제 키가 같은 머신에 있다면 3~4번이 필요합니다. https://dinsightlab.com

격리에도 구멍이 남는다
격리 환경을 썼다고 끝이 아닙니다.
자주 남는 구멍은 세 가지입니다.
첫째, 자격증명을 격리 환경 안으로 그대로 넣어 주는 경우입니다.
격리는 됐지만 키가 안에 있으면 의미가 없습니다.
둘째, 네트워크를 열어 두는 경우입니다.
외부로 나가는 요청이 가능하면 데이터가 밖으로 나갈 수 있습니다.
셋째, 결과물을 검증 없이 원래 환경으로 되가져오는 경우입니다.
격리 안에서 만들어진 파일이 밖에서 그대로 실행되면 경계가 무너집니다.
비용은 어디서 생기나
격리 실행의 비용은 세 가지로 나뉩니다.
시작 지연, 유휴 자원, 운영 인력입니다.
시작 지연은 실행마다 수백 밀리초에서 수 초가 붙는 문제이고, 자주 호출되는 구조라면 체감이 큽니다.
그래서 샌드박스를 미리 띄워 두고 재사용하는 방식이 쓰이는데, 재사용하면 이전 실행의 흔적이 남을 수 있습니다.
안전과 속도가 여기서 정면으로 부딪칩니다.
기준은 단순합니다.
같은 사용자의 연속 작업이면 재사용하고, 사용자나 신뢰 수준이 바뀌면 새로 띄웁니다.
정리
실행 격리는 보안 기능이라기보다 사고 범위를 미리 정해 두는 설계 결정입니다.
코드를 믿을 수 있는지 판단하는 대신, 믿지 못해도 괜찮은 자리를 만들어 두는 쪽이 유지하기 쉽습니다.
2026년 9월 기준으로 격리 실행 환경은 외부 서비스와 자체 구축 양쪽 모두 선택지가 있고, 고려 요소는 데이터가 어디에 머무르는지입니다. https://dinsightlab.com