본문 바로가기
C.W.K.
Stream
Lesson 05 of 10 · published

출력 필터링 — 모델의 말을 그대로 믿지 마

~14 min · security, output-filtering

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

프롬프트가 옳아도 출력은 틀릴 수 있어

모델이 공격에 넘어가거나 드문 실패를 내거나 정책을 어긴 내용을 만들 수 있어. 출력 필터는 앞의 방어가 놓친 결과를 사용자에게 닿기 직전에 잡는 층이야.

검사할 항목

  • 이메일, 전화번호, 주민번호, 신용카드, 내부 API 끝점 같은 민감정보.
  • 이미지 src나 링크 href에 숨은 정보 반출 URL.
  • 화면이 그려내고 사용자가 믿게 될 Markdown과 HTML 구조.
  • 욕설, 혐오 표현, 해당 서비스 정책에서 제한한 주제.
  • "ignore previous instructions"나 예상 밖 도구 호출 문법 같은 주입 흔적.

코드로 강제해

  • 사용자에게 보내기 전 원본 출력에 정규식과 분류기를 돌려.
  • HTML·Markdown 정화기로 위험한 구조를 걷어내.
  • 위험도가 높은 내용은 두 번째 LLM 판정기로 검사해.
  • 심각도에 따라 차단하고 가리거나 경고를 울려.

Code

출력 정제기 연쇄·python
def sanitize(text: str) -> tuple[str, list[str]]:
    flags = []
    text, flag = strip_credentials(text)
    flags += flag
    text, flag = strip_exfil_urls(text)
    flags += flag
    text, flag = sanitize_markdown(text)
    flags += flag
    return text, flags

out, flags = sanitize(model_text)
if "credential_leak" in flags:
    alert_security(out)
return out

External links

Exercise

외부 호스트를 가리키는 image src처럼 구체적인 정보 반출 경로 하나를 검사하는 출력 필터를 만들어봐. 정상 출력과 공격용 가짜 출력에 모두 시험해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.