Skip to content
제품 목록

준비 중보안 아키텍처

에이전트 실행 샌드박스

에이전트가 실행하는 명령을 여섯 겹으로 막는 실행 환경

모델이 잘못 판단해도 피해가 없도록 실행 파일·파일·네트워크·시크릿·자원·승인을 따로 막습니다.

  • gVisor
  • seccomp
  • egress proxy
  • secret broker
  • OPA

설계한 규칙을 단순화해 옮겼습니다. 예시 명령을 눌러 보면 어느 계층이 무엇 때문에 막는지 보입니다.

명령 차단 판정설계한 계층 규칙을 단순화해 브라우저에서 판정합니다. 실제로 명령을 실행하지 않습니다.
차단실행하지 않고 에이전트에 차단 사유를 돌려줍니다.
  1. 실행 파일차단다운로드한 스크립트를 셸로 바로 실행합니다.
  2. 파일 시스템통과/workspace만 쓰기 가능, 나머지는 읽기 전용
  3. 네트워크차단송신 허용목록에 없는 호스트: get.example.net
  4. 시크릿통과시크릿 접근 없음
  5. 자원통과cgroup 기본 한도 안에서 실행
  6. 사람 승인통과승인 필요 없음

한 계층이 놓쳐도 다음 계층이 막도록 모든 계층을 끝까지 평가합니다. 판정 결과는 감사 로그에 남깁니다.

한 겹이 뚫려도

모든 계층을 끝까지 평가해 앞 계층이 놓친 것을 다음 계층이 막습니다.

시크릿은 핸들로만

실제 토큰은 샌드박스에 들어가지 않고 송신 프록시에서만 주입됩니다.

되돌리기 어려운 작업은 사람에게

rm -rf, force push, DROP은 승인 전까지 멈춥니다.

이런 문제를 풉니다 ​

코딩 에이전트는 셸 명령을 실행합니다. 테스트를 돌리라고 시켰는데 curl ... | sh를 실행할 수도 있고, 읽은 문서 안에 숨은 지시(프롬프트 인젝션)를 따를 수도 있습니다. 모델이 똑똑해져도 모델이 판단을 잘하는 것과 잘못 판단해도 피해가 없는 것은 다른 문제입니다.

이 설계는 두 번째를 다룹니다. 에이전트를 믿지 않는다고 가정하고, 한 계층이 뚫려도 다음 계층이 막도록 여섯 겹으로 나눴습니다.

동작 방식 ​

정책 판정은 실행 전에, 격리는 실행 중에, 감사는 실행 뒤에 일어납니다.

위협과 막는 계층 ​

위협예시1차로 막는 곳뚫렸을 때 다음 방어남는 위험
원격 스크립트 실행curl x.sh | sh정책 엔진송신 프록시가 도메인 차단허용 도메인(github.com)에 올라간 악성 스크립트
비밀 파일 탈취cat ~/.ssh/id_rsa파일 시스템(마운트 안 함)송신 프록시작업 폴더 안에 실수로 커밋된 비밀
토큰 유출printenv, 로그 출력시크릿 브로커(핸들만 존재)감사 로그 패턴 탐지브로커가 주입한 요청의 응답에 포함된 값
데이터 파괴rm -rf, DROP TABLE사람 승인작업 폴더 스냅샷, DB 읽기 전용 계정승인자가 내용을 안 읽고 승인
자원 고갈무한 루프, 포크 폭탄cgroup 한도실행 시간 제한한도 안에서 반복 실행되는 비용
프롬프트 인젝션문서 속 "이 명령을 실행해"계층 전체(모델을 믿지 않음)감사 로그허용 범위 안에서의 잘못된 작업

남는 위험 칸을 비워 두지 않는 것이 원칙입니다. 막지 못하는 것을 적어 둬야 다음 설계 대상이 보입니다.

런타임 선택 ​

후보격리 수준시작 시간판단
Docker + seccomp·AppArmor커널 공유빠름신뢰하는 코드용. 에이전트 명령에는 부족
gVisor (runsc)사용자 공간 커널빠름기본값. Docker 그대로 쓰면서 시스템 콜을 가로챔
Firecracker microVM하드웨어 가상화수백 ms외부 사용자 코드처럼 위험도가 높을 때
Kata Containers경량 VM중간쿠버네티스 환경에서 Firecracker 대안

실행 흐름 ​

실제 값의 시크릿은 샌드박스 안에 들어가지 않습니다.

기존 작업과의 연결 ​

  • 콘솔은 engine-process 실행 이벤트와 증거를 보여주는 화면입니다. 여기에 계층별 판정 결과를 붙입니다.
  • sec-agent-lab은 합성 텔레메트리로 탐지·분류·검증의 경계를 실험하는 저장소입니다. 샌드박스 감사 로그를 그 입력으로 씁니다.

로드맵 ​

  1. 정책 엔진을 OPA(Rego) 규칙으로 옮기고 이 페이지 판정과 같은 테스트 케이스로 검증
  2. gVisor 런타임 + 송신 프록시(도메인 허용목록) 최소 구성
  3. 시크릿 브로커: 핸들 교환 방식 구현
  4. 레드팀 시나리오(인젝션 문서 10종)로 계층별 차단율 측정

업무에 AI를 붙여 실제로 돌려봅니다.