4. 함부로 실행하지 않는 Agent
무엇을 보안이라 부를 것인가
이 차시를 마치면
보안 특화 Agent 의 네 기준을 알고, 지시가 아니라 구조로 막는다는 뜻을 설명합니다.
"보안에 특화된 Agent" 를 무엇으로 판단할지 정의합니다. 네 가지 기준이 모두 코드 구조로 강제되어야 합니다.
먼저, 용어를 정합니다
분석 학습팩에는 "보안 특화 Agent" 라는 용어가 없습니다. 아래 정의는 학습팩의 개별 규칙을 하나의 기준으로 묶은 것입니다.
| 기준 | 뜻 | 근거 |
|---|---|---|
| ① 권한 최소화 | Agent 가 접근할 수 있는 범위가 코드에 고정되어 있음 | Tool 영역의 "read-only Tool 을 write Tool 로 몰래 변경 금지" |
| ② 승인 게이트 | 위험한 행동은 사람의 승인 뒤에만 실행됨 | HITL 패턴 7단계 |
| ③ 멱등성 | 재개나 재실행이 일어나도 같은 행동이 두 번 수행되지 않음 | "Interrupt 이전에 비멱등 side effect 추가" 금지 |
| ④ 추적 가능성 | 무엇을 누가 언제 승인했는지 상태에 남음 | 학습팩의 "실행 여부 기록" 서술을 감사 로그로 구체화 분석 |
비유
일반 Agent 는 만능 열쇠를 가진 직원입니다. 시키는 대로 잘 하지만, 잘못 이해하면 열지 말아야 할 문도 엽니다.
보안 특화 Agent 는 출입증에 적힌 층만 갈 수 있고, 금고를 열 때는 반드시 관리자와 함께 가야 하며, 다녀온 기록이 자동으로 남는 직원입니다.
이 직원이 착해서가 아니라 출입증과 금고 구조가 그렇게 만들어져 있기 때문에 안전합니다.
핵심 — prompt 가 아니라 구조로 막습니다
보안 설계의 핵심은 Agent 에게 "조심하라"고 지시하는 것이 아니라, 구조로 못 하게 막는 것입니다.
학습팩도 같은 취지를 적어 둡니다. 안전 불변조건은 "prompt 편의를 위해 제거하면 안 된다"고 명시되어 있습니다. 즉 안전 규칙은 문장이 아니라 계약입니다.
| 지시로 막는 방식 | 구조로 막는 방식 |
|---|---|
| "workspace 폴더만 읽어" 라고 prompt 에 적음 | 허용 디렉터리를 코드 상수로 고정하고 벗어나면 예외를 던짐 |
| "삭제하기 전에 물어봐" 라고 prompt 에 적음 | 삭제 코드를 승인 Node 뒤에만 배치 |
| "두 번 보내지 마" 라고 prompt 에 적음 | 실행 기록을 남겨 같은 작업이 두 번 실행되지 않게 함 |
왼쪽은 모델이 지시를 다르게 해석하면 무너집니다. 오른쪽은 해석과 무관하게 동작합니다. 분석
제작 순서 일곱 단계
1) 위험 등급 정의 — 어떤 행동이 승인 대상인가
2) State 설계 — 승인·재시도·실행기록을 담을 자리를 먼저 만든다
3) Tool 설계 — 읽기 도구와 쓰기 도구를 파일 수준에서 분리한다
4) Node 설계 — side effect 를 가진 node 를 하나로 몰아 둔다
5) Graph 조립 — 위험 경로가 반드시 승인 node 를 지나게 만든다
6) 멱등성·감사로그 — 재실행 방어와 기록을 붙인다
7) 테스트 — "승인 없이 실행되지 않는다"를 회귀 테스트로 고정한다
이 순서에는 이유가 있습니다. State 를 나중에 설계하면 승인 여부를 담을 자리가 없어 전역 변수나 prompt 로 처리하게 되고, 그러면 ②부터 ④가 구조로 강제되지 않습니다. 분석
이해도 확인
문항을 불러오는 중입니다.