부록 B. 셀프 체크 정답과 해설
1장
1-1. 매개변수화된 쿼리는 쿼리 구조와 값을 다른 통로로 보내므로 파서가 구조를 고정합니다. LLM에는 시스템 프롬프트, 사용자 요청, 문서, 도구 결과가 한 컨텍스트로 들어가고, 역할 표시가 있어도 무엇을 지시로 따를지는 파서의 문법이 아니라 모델의 확률적 판단이 정하므로 구조적 분리가 성립하지 않습니다.
1-2. 컨텍스트 조립 지점(누가 쓴 텍스트가 섞이는가), 도구 실행 지점(누구의 권한으로 무엇을 검사하고 실행하는가), 출력 해석 지점(출력이 코드나 명령으로 해석될 수 있는가), 기억 쓰기 지점(저장된 내용을 나중에 누가 읽는가)입니다.
1-3. 남는 위험의 내용과 그 위험의 책임자입니다. 이전은 위험 자체를 줄이지 않고, 수용은 위험을 안고 가는 결정이므로 기록이 없으면 아무도 책임지지 않는 위험이 됩니다. 재검토 조건을 함께 적어 두면 상황이 바뀌었을 때 결정을 다시 열 수 있습니다.
1-4. 예를 들어 에이전트의 모든 도구 호출이 공용 서비스 계정으로 나가고 요청한 사용자의 식별자가 로그에 남지 않는 설계입니다. 사고가 나면 누구의 요청이 그 행동을 일으켰는지 증명할 수 없어 영향 범위와 책임을 확정하지 못합니다. 토큰을 그대로 넘겨 하위 시스템 로그에 중계 서버만 남는 구조도 같은 결함입니다.
1-5. 출발점에는 ASI06(Memory & Context Poisoning), 확산에는 ASI08(Cascading Failures)을 붙입니다. ASI08은 초기 결함이 아니라 그 결함이 에이전트·도구·워크플로를 따라 번지는 현상을 가리키므로, 직접적인 침해는 그에 맞는 번호로 따로 분류합니다. 출발점을 고치지 않고 확산만 막으면 같은 사고가 다시 시작됩니다.
1-6. MITRE ATLAS입니다. 공격 전술과 기법이 사례 연구와 연결되어 있어 단계별 시나리오를 만들기에 알맞습니다. NIST AI RMF는 조직이 AI 위험을 어떻게 관리하는가(책임, 맥락, 측정, 대응)에, SAIF는 어떤 보안 통제를 어떻게 갖추는가(핵심 요소와 위험별 통제)에 답합니다.
1-7. 새 신뢰 경계는 모델의 요약이 채널 게시라는 행동이 되고 그 게시물이 다른 직원의 화면에 렌더링되는 지점입니다. 재검토 조건의 예는 "게시 대상에 외부 공유 채널 추가", "요약 대상에 외부 문서 출처 추가", "게시 전 확인 단계 제거", "게시 도구에 수정·삭제 기능 추가"입니다.
2장
2-1. 흰 글씨, 주석, 메타데이터처럼 화면에 보이지 않는 내용도 모델에게는 입력이므로, 사람이 보는 화면이 아니라 모델이 실제로 받는 텍스트(추출 결과)를 기준으로 검토하고 선별해야 합니다.
2-2. 직접·간접 인젝션은 지시가 들어온 경로로, 탈옥은 모델의 안전 정책 우회라는 목적으로 나뉩니다. 예를 들어 공유 문서에 숨은 지시가 모델에게 안전 정책상 금지된 콘텐츠를 만들게 했다면 간접 인젝션이면서 탈옥입니다. 사용자 입력만 보는 탈옥 필터는 이런 사례를 놓칩니다.
2-3. 이탈 단계는 사용자 요청으로 계획을 먼저 확정한 뒤 외부 콘텐츠를 읽게 하거나(계획 고정), 계획하는 쪽이 원문을 보지 않고 읽는 쪽이 정해진 형식의 데이터만 넘기게 하는 설계(원문을 보지 않는 계획자)로 끊습니다. 예상하지 못한 목표 변화가 보이면 실행을 멈추는 의도 검증도 해당합니다. 전달 단계는 외부 콘텐츠를 읽는 흐름에서 쓰기 도구를 호출할 수 없게 분리하거나, 영향이 큰 행동에 사람 확인을 두거나, 수신자와 도메인을 허용 목록으로 묶어 끊습니다.
2-4. 따옴표나 태그를 닫고 데이터 영역을 벗어나 지시 문맥으로 빠져나오는 시도가 어려워집니다. 그래도 모델이 문자열 값 속 지시를 따를 가능성은 남습니다. 인코딩은 경계를 분명히 할 뿐 모델의 판단을 강제하지 않으므로 권한 분리와 확인이 함께 필요합니다.
2-5. 첫째, 실제 서비스 경로(업로드와 텍스트 추출)를 거친 한국어 공격 사례와 정상·경계 사례로 탐지율과 오차단율을 따로 잽니다. 둘째, 판정이 없거나 오류일 때의 동작과, 탐지되었을 때 차단·표시·사람 검토 가운데 무엇을 할지를 정합니다. Prompt Shields 문서도 주로 영어로 학습·평가되었으니 언어마다 평가하라고 안내합니다.
2-6. 답변 오염은 민감 정보가 밖으로 나가지 않고 정상 형식의 답변 안에서 추천이 비틀리거나 조건이 빠지는 모습으로 나타나서, 반출을 보는 탐지 규칙에 걸리지 않습니다. 근거 문서와 인용을 붙이고 원문과 대조하는 검증, 필수 항목이 빠지지 않았는지 보는 결정적 검사, 중요한 결정에 대한 사람 검토가 이를 줄입니다.
2-7. 첫째 원인은 승인 요청이 너무 잦아 내용을 읽지 않게 되는 것이고, 위험도에 따라 확인 대상을 좁혀 대응합니다. 둘째 원인은 화면이 실제 인자 대신 모델의 요약을 보여 주어 사람이 그 설명을 믿게 되는 것이고, 대상·인자·효과를 원래 값으로 보여 주고 승인과 실행 인자를 묶어 바뀌면 다시 묻게 해서 대응합니다. 승인율과 승인까지 걸린 시간을 모니터링하면 형식적 승인을 알아챌 수 있습니다.
2-8. 예시 답안입니다(게시 전 사람 확인을 넷째 줄로 더해도 좋습니다).
- 확률을 낮추는 층: 후기 본문은 "외부 공개 페이지, 작성자 미확인" 출처를 붙여 도구 결과로만 전달하고, 선별 모델로 지시 삽입을 표시한다.
- 권한 분리: 후기를 읽는 단계는 게시 도구를 호출할 수 없고, 정리 결과는 정해진 표 형식으로만 받아 결정적 코드가 게시한다.
- 출력 제한: 게시 전에 외부 링크·이미지·마크업을 제거하고, 게시 위치를 지정된 위키 공간으로 고정한다.
3장
3-1. 예를 들어 컨텍스트 조립(필요 이상의 필드가 들어감, 필드 단위 조회 도구로 줄임), 외부 모델 호출(원문이 외부로 감, 가림·가명 처리와 계약 조건 확인), 로그와 캐시(원문이 남음, 가림과 보존 기간)입니다. 도구 인자(인자 검증과 목적지 제한)나 요약·임베딩·미세조정 데이터 같은 파생 데이터(학습 전 정제와 삭제 절차)를 들어도 됩니다.
3-2. 확장 기능과 하위 시스템 활동의 로깅·모니터링, 그리고 요청률 제한입니다. 둘 다 잘못된 행동을 나중에 발견하거나 그 횟수를 줄일 뿐, 모델이 해로운 행동을 할 수 있게 만드는 기능·권한·자율성을 줄이지 않기 때문에 예방책이 아닙니다.
3-3. 하위 시스템으로 가는 모든 요청을 모델의 판단이 아니라 하위 시스템이 보안 정책에 따라 매번 인가 검사한다는 원칙입니다. 예를 들어 "관리자만 환불을 승인할 수 있다"를 시스템 프롬프트에만 적고 환불 API는 호출자의 권한을 검사하지 않는 설계는 이 원칙을 어깁니다.
3-4. 입력과 출력이 모델 학습에 쓰이는지와 그 거부 방법, 오남용 감시 로그의 보관 기간, 애플리케이션 상태(대화, 파일, 벡터 저장소)의 보관 기간과 삭제 방법, 보관을 줄이는 옵션의 승인 조건, 저장·처리 지역입니다. 조건은 기능과 계약마다 다르므로 확인한 날짜와 함께 기록합니다.
3-5. 기본은 textContent처럼 텍스트로만 다루는 방식으로 그립니다. 서식이 꼭 필요하면 원시 HTML을 끈 마크다운 렌더러와 허용 목록 기반 정화기(OWASP는 DOMPurify를 권함)를 거칩니다. CSP는 이 둘을 대신하지 않는 추가 방어층입니다.
3-6. 상태 핸들을 가졌다는 사실을 인증으로 취급하는 것을 금지합니다. 서버는 모든 요청을 검증하고, 핸들을 안전한 난수로 만들며, 검증된 토큰에서 얻은 사용자 ID와 핸들을 서버에서 묶어 다른 주체가 내민 핸들은 거부해야 합니다. 핸들에 만료를 두면 위험이 더 줄어듭니다.
3-7. 예시 답안입니다. find_free_rooms(시작, 끝, 인원)은 회의실 목록 조회만 하는 읽기 전용 도구이며 확인이 필요 없습니다. read_my_calendar(기간)은 요청한 직원 본인의 일정만 사용자 맥락의 토큰으로 읽으며 확인이 필요 없습니다. book_room(회의실, 시작, 끝)은 예약 생성만 하고 수정·삭제 기능은 없으며, 사용자 맥락으로 실행되고 서버가 중복과 권한을 검사하며 생성 전 사용자 확인을 받습니다. 범용 캘린더 쓰기 권한은 넣지 않습니다.
4장
4-1. 핸드오프, 호스팅 도구(웹 검색, 파일 검색, 호스팅 MCP, 코드 인터프리터 등), 내장 실행 도구(컴퓨터, 셸 등) 가운데 두 가지를 쓰면 됩니다. 대신 둘 통제로는 차단 모드의 입력 가드레일, 실행 환경 격리와 도메인 허용 목록, 하위 시스템의 서버 측 인가, 직접 만든 함수 도구로 감싸 검사하기 등이 있습니다.
4-2. 유해 콘텐츠 분류는 "이 콘텐츠가 안전 정책상 해로운가", 인젝션 공격 탐지는 "이 입력이나 문서가 모델의 지시를 바꾸려는 시도를 담고 있는가", 인가 검사는 "이 주체가 이 자원에 이 행동을 해도 되는가"에 답합니다. 서로 대체하지 못합니다.
4-3. 대상 시스템과 버전, 운영과 분리된 시험 환경, 합성 데이터와 가짜 비밀값 사용, 허용·금지 행위(모의 도구 사용, 제3자 시스템 금지), 중단 조건, 연락과 보고 체계(누구에게, 어떤 형식으로, 언제)입니다.
4-4. 출력이나 외부 요청에 그 값이 나타나면 유출로 자동 판정하기 위해서입니다. 실제 데이터나 실제 비밀값과 겹치지 않아야 하고, 모델이 우연히 만들어 낼 수 없을 만큼 고유해야 합니다.
4-5. 공격 통과율은 9 ÷ 240 = 3.75%, 오차단율은 15 ÷ 500 = 3%입니다. 이 두 숫자만으로는 시나리오 단위로 몇 개가 한 번이라도 뚫렸는지, 어느 층이 공격을 잡았는지, 정상 업무가 끝까지 처리되었는지(업무 완료율), 통과한 공격의 경로와 피해 크기를 알 수 없습니다. 이 가운데 하나를 쓰면 됩니다.
4-6. 상한은 대략 3 ÷ 60 = 5%입니다. 실제 성공률이 약 5%보다 낮을 가능성이 크다고는 말할 수 있지만, 성공률이 0이라거나 다른 경로, 다른 변형, 다른 모델 버전에서도 안전하다고는 말할 수 없습니다.
4-7. 각 통제의 단독 효과와 함께 쓸 때의 효과를 나누어 보려면 기준선, 기준선 + 입력 선별, 기준선 + 쓰기 도구 확인, 둘 다 적용의 네 구성이 필요합니다. 평가 세트 버전, 모델·프롬프트·도구 버전, 반복 횟수(그리고 판정 방법)를 고정합니다. 시나리오 단위 공격 통과율과 정상 업무 완료율(또는 오차단율)을 함께 봅니다. 한 통제를 뺀 구성과 비교하면 겹치는 통제를 찾을 수 있습니다.
5장
5-1. 세션 식별자, 접근 토큰, 비밀번호, 암호화 키와 비밀값, 데이터베이스 접속 문자열, 결제 정보, 민감한 개인정보 가운데 네 가지입니다. 대신 해시한 사용자 식별자, 추적 식별자, 도구 이름과 결과 상태, 토큰 수, 가드레일 판정 같은 정보를 남깁니다.
5-2. 경보는 사람에게 알리기만 하고 실행은 계속되며, 예산 상한은 코드가 실행을 멈춥니다. 작업 하나에 걸 수 있는 상한으로는 모델 호출 수, 도구 호출과 재시도 횟수, 하위 에이전트 수, 반복 깊이, 비용, 실행 시간이 있습니다.
5-3. 지속적 입력 넘침은 컨텍스트 창을 넘는 입력을 반복해 보내는 것이고, 입력 크기 상한으로 막습니다. 자원 집약적 질의는 연산이 많이 드는 요청으로 자원을 소진시키는 것이고, 시간 제한과 조절, 자원 배분 관리, 요청률 제한으로 막습니다.
5-4. Anthropic 문서에 따르면 모델 ID의 가중치는 고정되어 있지만(이전 세대의 별칭은 최신 스냅샷을 따라감) 요청 라우터, 안전 분류기, 샘플링 로직 같은 서빙 인프라가 바뀌면 관측되는 동작이 조금 달라질 수 있습니다. 운영팀은 회귀 평가 세트를 정기적으로 다시 돌리고, 지원 중단·은퇴 일정을 추적해 대체 모델을 은퇴 전에 미리 시험합니다.
5-5. 실행될 명령을 인자까지 잘리지 않은 형태로 보여 주고, 사용자 시스템에서 코드를 실행하는 위험한 작업임을 밝히고, 명시적인 사용자 승인을 받아야 합니다(취소도 가능해야 합니다). 서버 명령은 기본 권한이 최소인 샌드박스에서, 파일·네트워크 접근을 제한해 실행하는 것이 권장됩니다.
5-6. 1천 명 이상의 정보주체에 관한 개인정보가 유출등이 된 경우, 민감정보나 고유식별정보가 유출등이 된 경우, 개인정보처리시스템이나 개인정보 처리에 쓰는 정보기기에 대한 외부의 불법 접근으로 유출등이 된 경우입니다. 알게 된 때부터 72시간 이내에 개인정보보호위원회 또는 한국인터넷진흥원에 신고합니다. 부득이한 사유나, 회수·삭제로 권익 침해 가능성이 현저히 낮아진 경우의 예외도 있으므로 실제 판단은 개인정보 보호 책임자와 법무가 합니다.
5-7. 예시 답안입니다. (1) 메모리 쓰기 중지: AI 플랫폼 당직이 끄며, 새 기억 저장이 멈추고 기존 기억 읽기는 유지됩니다. 오염이 확인되면 읽기까지 끄는 2단계를 둡니다. (2) 외부 발송 도구 차단: 서비스 당직이 끄며, 메일·메시지 발송이 멈추고 초안 작성만 남습니다. (3) 커넥터·MCP 연결 해제와 토큰 회수: 보안 운영이 실행하며, 해당 외부 시스템의 조회와 변경이 멈춥니다. (4) 읽기 전용 안내 모드: 서비스 책임자가 켜며, 상담이 미리 준비한 안내 위주로 축소됩니다.