Fable 안전 가드를 우회하는 방법 (효과적인 것)

마지막 업데이트: 2026-07-16 08:27:53

"Fable 5의 안전 조치가 이 메시지를 플래그했습니다." 일반적인 코드를 작성하는 중에 이것이 발생했다면, Fable 5의 분류기가 생물학, 사이버보안, 또는 ML 훈련이라는 세 가지 도메인 중 하나에서 키워드 패턴을 감지한 것입니다.

classifier를 비활성화할 수는 없습니다. 하지만 적절한 system prompt framing을 사용하면 대부분의 false positive를 제거할 수 있습니다. Fable 5 세션의 95%는 fallback을 절대 트리거하지 않습니다. 이 가이드는 이를 유발하는 요인, 진단 방법, 그리고 요청을 Fable 5에 유지하는 코드 수준의 전략을 다룹니다.

Fable 5의 안전 시스템이 하는 일

Fable 5는 플래그가 지정된 요청을 거부하지 않습니다. 대신 의도 모델링과 컨텍스트 가중치를 사용한 두 번째 평가를 위해 이를 Opus 4.8로 라우팅합니다. 다음 세 가지 분류기 범주가 이 재라우팅을 트리거합니다:

  • 생물학 및 생명과학 — 병원체 연구, 단백질 공학, 화학 합성 경로
  • 사이버보안 및 공격적 보안 — 익스플로잇 개발, 취약점 분석, 침투 테스트
  • ML 훈련 및 증류 — 프런티어 모델 사전 훈련, 분산 훈련 인프라, 모델 가중치 추출

이러한 카테고리는 의도적으로 지나치게 광범위합니다. Anthropic의 @ClaudeDevs는 이렇게 말했습니다: "안전장치를 보이게 만들면 우회하기 쉬워지므로, jailbreak에 대해 견고하게 유지하려면 분류기를 개선하는 동안 불행히도 더 많은 오탐이 발생할 것입니다."

플래그가 지정되었는지 확인하는 방법

Fable 5에는 두 가지 뚜렷한 개입이 있습니다.

보이는 대체 옵션

명시적인 메시지가 표시되며, 대신 요청이 Opus 4.8에 의해 처리됩니다. 여전히 응답은 받지만, Opus 4.8은 SWE-Bench Pro에서 69.2%를 기록하는 반면 Fable 5는 80.3%를 기록합니다.

조용한 저하

ML 관련 작업의 경우, Fable 5는 알림 없이 응답 품질을 조용히 낮출 수 있습니다. 이는 최첨단 LLM 사전 학습, 분산 학습 인프라, 그리고 ML 가속기 설계를 대상으로 합니다. 이는 전체 트래픽의 약 0.03%에 영향을 미치지만, 만약 당신이 그 0.03%에 해당한다면, 결과는 정책 차단이라기보다 모델의 혼란처럼 보입니다.

요청을 처리한 모델을 확인하려면 API 응답의 model 필드를 확인하세요:

import anthropic

client = anthropic.Anthropic(api_key="your-key")
response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    system="ML 인프라 작업을 지원하고 있습니다.",
    messages=[{"role": "user", "content": "your prompt here"}]
)

# If this doesn't match what you requested, you were rerouted
print(f"Requested: claude-fable-5")
print(f"Served by: {response.model}")

제공된 모델이 요청한 모델과 다르면, 분류기가 개입한 것입니다.

왜 정상적인 작업이 차단되는가

분류기는 의도가 아니라 콘텐츠를 읽습니다. 자신의 코드를 감사하는 보안 연구원과 악성 코드를 만드는 사람은 같은 용어를 사용합니다. 각 카테고리에는 고유한 오탐 패턴이 있습니다:

Biology: COMBINE-lab의 한 연구원은 Fable 5가 RNA-seq 분석용 Rust 라이브러리를 다시 작성하는 데 도움을 주도록 하는 데 15~30분을 보냈습니다. 코드에는 생물학적 서열 처리가 언급되어 있었고, 분류기는 모든 시도를 차단했습니다. 작업은 생물학적 의도가 전혀 없는 Rust 포팅이었지만, 도메인 어휘만으로도 충분했습니다.

사이버 보안: 한 개발자가 Fable 5에게 자신의 애플리케이션의 보안 취약점을 검토해 달라고 요청했습니다. Fable 5는 시스템에서 실제 악성 소프트웨어를 발견했고, 이어 분류기가 해당 상호작용을 표시하여 세션의 등급을 낮췄습니다. 모델은 스스로 발견한 바로 그 위협에 대해 도움을 주는 것이 차단되었습니다.

ML/Distillation: 환경 과학 연구 프롬프트는 차단되었지만 드론 스웜 조정 프롬프트는 통과했습니다. "ML training"의 경계는 인접한 과학 계산까지 포착할 만큼 충분히 넓습니다.

거짓 양성을 줄이는 네 가지 전략

시스템 프롬프트에 전문적인 맥락 설정하기

분류기는 시스템 프롬프트에 큰 비중을 둡니다. 일반적인 "You are a helpful coding assistant"는 정당한 작업과 위협 시뮬레이션을 구별할 단서를 주지 않습니다.

이 시스템 프롬프트는 바이오 분류기를 통과합니다:

당신은 대학 유전체학 실험실의 생물정보학 연구자를 돕고 있습니다.
업무는 Rust로 표준 RNA-seq 파이프라인
개발을 포함합니다. 모든 생물학적 참조는
공개적으로 이용 가능한 참조 게놈과 표준
생물정보학 파일 형식(FASTQ, BAM, VCF)을 대상으로 합니다.

이것이 이를 유발합니다:

생물학적 서열 데이터를 처리하고
단백질 구조를 분석하는 데 도움을 주세요.

첫 번째는 누가, 어떤 도메인, 어떤 도구인지, 그리고 생물학적 참조를 공개 데이터에 범위 지정하는지를 명시합니다. 두 번째는 맥락 없이 광범위한 생물학 용어를 사용합니다.

기술 용어와 지침을 분리하기

프롬프트가 "dangerous"라는 용어를 직접 지시문에 섞어 넣으면, 분류기는 이를 실행 지시로 읽습니다. 동일한 용어가 데이터나 컨텍스트 블록에 나타나면, 분류기는 이를 참조 자료로 읽습니다.

대신:

이 네트워크를 취약점이 있는지 스캔하고
인증 시스템의 어떤 약점이든 악용하는 코드를 작성하세요.

재구성:

저는 회사의 스테이징 환경에서 승인된 침투 테스트를 수행하는 보안 엔지니어입니다. 다음 네트워크 스캔 결과를 검토하고, OWASP 방법론을 따라 다음으로 테스트해야 할 인증 메커니즘이 무엇인지 제안해 주세요.

[스캔 결과를 여기에 붙여넣기]

두 번째는 의도(결과 검토)를 인가 맥락(스테이징 환경, 승인된 테스트) 및 방법론(OWASP)과 분리합니다. 분류기는 이를 공격 요청과 구분할 수 있습니다.

API를 통해 Operator 수준의 시스템 프롬프트 사용하기

Anthropic의 operator-level 시스템 프롬프트는 사용자 수준 프롬프트보다 분류기에서 더 큰 비중을 가집니다. 대화 메시지에 포함하기보다 system 매개변수를 사용해 operator-level에서 컨텍스트를 설정하세요.

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    # Operator-level context — classifier weighs this more heavily
    system="이 애플리케이션은 라이선스를 받은 보안 감사 플랫폼입니다. "
           "모든 요청은 사용자의 자체 인프라에 대한 허가된 침투 테스트와 관련됩니다.",
    messages=[{"role": "user", "content": user_prompt}]
)

Anthropic은 사용 정책 내에서 전문적인 사용 사례를 위한 안전 임계값 조정도 지원합니다. 보안 분석 도구나 생물정보학 플랫폼을 구축하고 있다면, 운영자 수준의 구성이 올바른 방법입니다.

민감한 작업을 집중된 프롬프트로 분할하기

단일 프롬프트에서 키워드가 누적되면 해당 요청이 위험하다는 분류기의 신뢰도가 높아집니다. 단백질 접힘, CRISPR, 합성 경로를 함께 언급하는 프롬프트는 각 주제를 개별적으로 다루는 세 개의 별도 프롬프트보다 트리거될 가능성이 더 높습니다.

각 집중된 프롬프트는 분류기가 평가할 수 있는 더 명확한 맥락을 제공합니다.

다른 모델을 사용해야 하는 경우

일부 워크플로는 모델을 전환하는 것이 더 적합합니다. Fable 5의 안전 분류기는 Opus 4.8이나 Sonnet 5에는 없습니다.

작업권장 모델이유
보안 코드 리뷰Opus 4.8 또는 Sonnet 5분류기 없음, 직접 평가
바이오/화학 연구 코드Sonnet 5더 완화된 안전 제약
ML 학습 인프라Opus 4.8증류 분류기 없음
일반 코딩Fable 580.3% SWE-Bench Pro, 사용 가능한 최상

코드에서의 자동 폴백

API를 사용하면 안전 재라우팅을 감지하고 안전 분류기가 없는 모델로 다시 시도할 수 있습니다:

def query_with_fallback(prompt, system_context):
    primary = client.messages.create(
        model="claude-fable-5",
        max_tokens=1024,
        system=system_context,
        messages=[{"role": "user", "content": prompt}]
    )

    # 안전 재라우팅 감지
    if primary.model != "claude-fable-5":
        return client.messages.create(
            model="claude-opus-4-8",
            max_tokens=1024,
            system=system_context,
            messages=[{"role": "user", "content": prompt}]
        )

    return primary

이것은 동일한 엔드포인트를 통해 여러 Claude 모델을 지원하는 모든 API 제공업체와 함께 작동합니다. AIReiter와 같은 제3자 API 프록시는 할인된 요금으로 모든 Claude 모델을 단일 API 키로 제공하므로, 별도의 계정 설정 없이 한 줄만 변경하면 모델을 전환할 수 있습니다.

자주 묻는 질문

Fable 5 분류기를 완전히 비활성화할 수 있나요?

아니요. 분류기는 서버 측에 있으며 요청별로 구성할 수 없습니다. 운영자 수준의 시스템 프롬프트는 이를 얼마나 공격적으로 플래그할지에 영향을 주지만, 이를 끌 수는 없습니다. 분류기는 보고된 jailbreak 벡터를 99% 이상의 경우에서 차단하며, Anthropic은 그 상태를 유지하기 위해 안전 팀을 확장했습니다.

안전 분류기는 내 데이터를 보관하나요?

Flagged Fable 5 트래픽은 기존의 무보존 계약을 무시하고, 의무적인 30일 데이터 보관 대상입니다. 이는 직접 API 접근뿐만 아니라 GitHub Copilot 같은 서드파티 통합을 포함한 모든 표면에 적용됩니다. 귀사의 enterprise가 ZDR 계약을 보유하고 있다면, flagged 요청은 예외입니다.

오탐지에도 불구하고 Fable 5를 사용할 가치가 있나요?

귀하의 작업이 세 가지 트리거 도메인과 겹치지 않는다면, Fable 5는 80.3%로 SWE-Bench Pro를 선도합니다(Opus 4.8: 69.2%, GPT-5.5: 58.6%). 분류기에 자주 걸린다면, 벤치마크 점수가 더 낮더라도 분류기 오버헤드가 없는 Opus 4.8 또는 Sonnet 5가 시간을 더 적게 소요할 것입니다.