# 보안 점검표 · IT 문의 Agent - 이름: - 사용한 CLI 에이전트: codex / claude / agy - 이 파일을 `my-work/SECURITY.md`로 복사해 채웁니다. 절마다 어느 실습에서 채우는지 제목에 적혀 있습니다. ## 1. 공격해 보기 (Lab 01 예제 1 · `open-it-agent`) | 공격 | 무엇을 노렸나 | 결과 (막힘 · 새어 나감) | 새어 나간 것 | | --- | --- | --- | --- | | 처음 받은 지침 보기 | | | | | 사칭으로 내부 코드 | | | | | 그냥 묻기 · 출입 번호 | | | | | 이름 사칭 · 남의 접수 건 | | | | | 연락처 | | | | | 없는 직원 · 긴 질문 · 빈 질문 | | | | | 내가 만든 공격 | | | | ## 2. 관문이 아낀 시간 (Lab 01 예제 3 · `bench -n 5`) | 요청 | 어디서 끝났나 | p50 | LLM을 불렀나 | | --- | --- | --- | --- | | 없는 직원 (`bad-user`) | 입력 검증 (400) | | | | 알려진 공격 (`injection-ko`) · `my-secure` | 규칙 (차단) | | | | 알려진 공격 (`injection-ko`) · `open-it-agent` | 끝까지 | | | | 정상 질문 (`faq-vpn`) · `my-secure` | 끝까지 | | | 한 줄 정리: ## 3. 숨긴 공격과 글자 정리 (Lab 01 과제 2 · `lab01-challenge2`) | 숨긴 방법 | 예 | 고치기 전 | 글자 정리 뒤 | | --- | --- | --- | --- | | 전각 글자 | | | | | 한 글자씩 띄우기 | | | | | 보이지 않는 글자 | | | | | 점 찍어 나누기 | | | | | 정상 질문 4개 | | | | ## 4. 위협 목록과 관문 (Lab 01 · Lab 02) | 위협 | 막는 관문 (입력 검증 · 규칙 · 판별 LLM · 데이터 API · 지시문 · 출력 필터) | 테스트 케이스 | | --- | --- | --- | | 지시문 바꾸기 · 지시문 보기 | | | | 지시문 속 비밀 | | | | 남의 정보 | | | | 개인정보가 답에 | | | | 너무 긴 · 빈 입력, 없는 직원 | | | | 글자를 숨긴 공격 | | | ## 5. 규칙 · 판별 LLM 재기 (Lab 02 예제 3 · 과제 1) | 테스트 | 규칙만 (예제 3) | 규칙 + 판별 LLM (과제 1) | | --- | --- | --- | | 알려진 공격 10 (`lab01-challenge` 앞 10) | | | | 새 공격 8 (`lab02-challenge` 앞 8) | | | | 정상 10 (막지 않아야 함) | | | | VPN 질문 p50 (`bench`) | | | | 알려진 공격 p50 (`bench injection-ko`) | | | ## 6. 판별 LLM이 멈추면 (Lab 02 과제 2 · `lab02-challenge2`) | 요청 | 고치기 전 | 고친 뒤 | 걸린 시간 | | --- | --- | --- | --- | | 정상 질문 | | | | | 새 공격 | | | | | 알려진 공격 (규칙) | | | | | 빈 질문 | | | | fail-closed로 정한 까닭과 그 값(정상 질문도 못 받음): ## 7. 관문별 시간과 기록 (Lab 03 예제 3 · `lab03-layers -v`) | 케이스 | HTTP | `route` | `security.blocked_by` | `masked` | 시간 | | --- | --- | --- | --- | --- | --- | | ① 입력 검증 | | | | | | | ② 규칙 | | | | | | | ③ 판별 LLM | | | | | | | ④ 출력 필터 | | | | | | | ⑤ 정상 | | | | | | ## 8. 어려운 보안 테스트 (Lab 03 과제 1 · `cases/my-cases.json`) | 케이스 | 기대 | 처음 | 고친 곳 | 고친 뒤 | | --- | --- | --- | --- | --- | | | | | | | ## 9. 감사 로그와 보안 요약 (Lab 03 과제 2 · `lab03-challenge2`) | 칸 | 값 | 뜻 | | --- | --- | --- | | `total` | | | | `answered` | | | | `blocked.rule` · `blocked.guard` · `blocked.output_filter` | | | | `masked` | | | | `pii_in_log` | | | 로그에 남기지 않은 것과 그 까닭: ## 10. 아직 막지 못한 것 · 운영에서 더 할 일 - (예: `user`를 본문으로 받으면 누구나 다른 사람 이름을 쓸 수 있다 → 로그인 · 인증 헤더) -