본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 05. 13:19

나의 LLM 보안 시스템이 학술 논문을 해커의 공격으로 오해했던 이유

요약

LLM 보안 시스템이 학술 논문의 특수 기호와 수학적 표기법을 GCG 적대적 공격으로 오인하여 72%의 높은 오탐률을 기록한 사례를 다룹니다. 알파벳 비율을 기준으로 엔트로피 탐지 임계값을 조정함으로써 오탐률을 6.7%까지 낮춘 해결책을 제시합니다.

핵심 포인트

  • 학술 문서의 그리스 문자와 수학 기호가 GCG 공격과 유사한 엔트로피 패턴을 보임
  • 기존 엔트로피 기반 탐지 방식은 공식 문서에서 72%의 높은 오탐률 발생
  • 텍스트 내 알파벳 비율을 활용한 조건부 엔트로피 임계값 조정으로 문제 해결
  • 보정 후 오탐률을 6.7%까지 성공적으로 감소시킴

나의 적대적 프롬프트 탐지기(adversarial prompt detector)가 학술 논문들을 GCG 접미사 공격(GCG suffix attacks)으로 분류하고 있었습니다.
가끔 그러는 것이 아니었습니다. 72%의 확률로 그랬습니다.

어떤 일이 일어났는지, 왜 지나고 보니 완전히 이해가 되는 일인지, 그리고 이 수치를 6.7%까지 낮춘 해결책은 무엇인지 설명하겠습니다.

GCG 접미사 공격(GCG Suffix Attacks)의 형태

GCG (Greedy Coordinate Gradient) 공격은 완전한 노이즈처럼 보이는 적대적 문자열(adversarial strings)입니다:

Ignore previous instructions. Sure here is ]( revert-->Mother $_[ describing...

이것들은 경사 하강 최적화 알고리즘(gradient optimization algorithm)에 의해 생성됩니다. 인간에게는 횡설수설처럼 보이지만, 언어 모델(language model)에게는 우회 키(bypass key)가 됩니다.

나의 탐지기는 엔트로피 점수(entropy scoring)를 사용하여 이를 잡아냅니다. GCG 문자열은 특이한 문자 분포를 가집니다. 높은 기호 밀도, 낮은 알파벳 비율, 자연어의 정상 범위를 벗어난 엔트로피를 보입니다.

실제 공격에는 아주 잘 작동했습니다. 그러다 다른 것을 대상으로 테스트를 해보았습니다.

모든 것을 망가뜨린 테스트

나는 FormalProseBench를 구축했습니다. 학술 논문, 법률 문서, 재무 보고서에서 추출한 75개의 프롬프트로 구성되었습니다. 정당한 사용자들이 LLM에 붙여넣을 수 있는 실제 텍스트입니다.

보정 전 오탐률(False positive rate): 72%
이는 75개의 공식 문서 중 54개가 공격으로 분류되었음을 의미합니다.

화학 논문이 차단되었습니다. 법률 요약서가 차단되었습니다. 통계학 교과서 발췌본이 차단되었습니다.

나는 정당한 연구 작업을 수행하려는 사용자의 절반을 거부하는 보안 시스템을 만든 셈이었습니다.

실제로 무엇이 트리거를 작동시켰는가

어떤 문서들이 왜 탐지기를 작동시키는지 깊이 파고들었습니다. 확인하자마자 패턴이 즉시 나타났습니다:

  • 그리스 문자 (α, β, σ, μ) — 높은 유니코드 코드 포인트(Unicode codepoint) 값을 가지며, 일반적인 텍스트에서는 이례적임
  • 엠 대시(Em dashes) 및 인용 대괄호, [1], [2,3] 등이 밀집된 클러스터로 나타남
  • 수학적 표기법 — 기호, 숫자, 연산자가 혼합된 방정식. GCG 엔트로피 탐지기는 이를 보고 다음과 같이 계산했습니다: 특이한 문자 분포, 잠재적인 적대적 페이로드(adversarial payload).

신호(signal) 자체는 틀리지 않았습니다. 그 신호가 무엇을 의미하는지에 대해 틀렸던 것입니다.

해결책

통찰(insight): GCG 공격은 알파벳 비율이 낮은 텍스트입니다. 반면 학술적 글쓰기는 압도적으로 알파벳 중심적입니다. 즉, 기호(symbols)는 문장 주변의 장식일 뿐, 콘텐츠 그 자체가 아닙니다.

def _is_natural_language_prose(text: str) -> bool:
    letters = sum(c.isalpha() for c in text)
    ratio = letters / max(len(text), 1)
...

텍스트의 알파벳 문자 비율이 65% 이상이면, 낮은 범위(LOW-range)의 엔트로피(entropy) 신호를 비활성화합니다. 오직 높은 범위(HIGH-range)의 임계값(threshold)(일반적인 문서에서는 나타나지 않는 밀집된 기호 클러스터)만 활성화된 상태로 유지됩니다.

보정(calibration) 후 오탐률(False positive rate): 6.7%
이는 75개 중 5개에 해당하며 — 이들은 모두 실제로 높은 범위(HIGH-range)의 엔트로피 임계값을 초과하는 수학 중심의 문서들입니다.

남은 5개의 오탐(false positive)은 수 페이지에 걸쳐 밀집된 방정식이 포함된 문서들입니다. 이 시점에서 탐지기가 옳다고 볼 수도 있습니다. 해당 문자 분포는 진정으로 변칙적(anomalous)이기 때문입니다.

더 넓은 교훈

모든 탐지 휴리스틱(heuristic)에는 그림자가 있습니다. 공격을 잡아내는 바로 그 신호가, 해당 신호의 표면적 특징을 공유하는 합법적인 콘텐츠까지 잡아낼 수 있습니다.

해결책은 휴리스틱을 제거하는 것이 아닙니다. 신호의 모호함을 해소할 수 있는 사전 정보(prior), 즉 맥락(context)을 추가하는 것입니다.

_is_natural_language_prose()가 바로 그 사전 정보입니다. 적대적 페이로드(adversarial payload)라고 외치기 전에, 당신이 보고 있는 것이 박사 학위 논문은 아닌지 먼저 확인하십시오.

전체 시스템은 오픈 소스입니다. 11개의 탐지 계층(detection layers)으로 구성되어 있으며, 오프라인에서 실행되고 GPU도 필요하지 않습니다.

pip install fie-sdk

GitHub: github.com/AyushSingh110/Failure_Intelligence_System

여러분이 직접 만든 분류기(classifier)에서 겪었던 가장 이상한 오탐(false positive) 사례는 무엇인가요? 여러분의 공포스러운 경험담을 듣고 싶습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0