0Pricing
Cyber Security Academy · 강의

OWASP LLM Top 10

LLM 애플리케이션의 주요 위험을 알아봅니다.

OWASP LLM Top 10은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

LLM 상위 10개 목록이 필요한 이유

대규모 언어 모델 애플리케이션을 위한 OWASP 상위 10개 목록은 LLM을 기반으로 구축된 시스템에 특화된 가장 중요한 보안 위험을 정리한 커뮤니티 주도 목록입니다. 잘 알려진 OWASP 웹 상위 10개 목록을 본떠 만들었지만, 기존 AppSec 목록에서 놓치는 위협을 다룹니다.

LLM 애플리케이션은 자연어 제어 흐름, 비결정적 출력, 모델 공급망, 자율 에이전트라는 새로운 공격 표면을 만들기 때문에 이 목록이 필요합니다. 이 목록은 보안 팀에 공통 어휘와 위협 모델링을 위한 점검표를 제공합니다.

아래 코드는 2025년 판의 LLM01-LLM10 번호 체계를 사용합니다.

LLM01 프롬프트 인젝션

LLM01: 프롬프트 인젝션은 일관되게 가장 큰 위험 1위입니다. 공격자가 제어하는 텍스트가 개발자의 지시를 덮어쓰는 이유는 모델이 신뢰할 수 있는 지시와 신뢰할 수 없는 데이터를 구분하지 못하기 때문입니다.

  • 직접: 사용자가 재정의 지시를 입력합니다.
  • 간접: 검색된 웹 페이지, 파일 또는 도구 출력에 지시가 숨겨져 있습니다.

완화 방법: 도구에 최소 권한을 적용하고, 검색된 모든 콘텐츠를 데이터로 취급하며, 민감한 작업에는 사람 확인 지점을 추가하고, 데이터 반출 경로를 차단하십시오.

LLM02 민감 정보 노출

LLM02: 민감 정보 노출은 모델이 노출해서는 안 되는 데이터, 즉 PII, 비밀 정보, 독점 학습 데이터 또는 다른 고객 조직의 정보를 드러내는 문제를 다룹니다.

정보 유출은 모델이 학습 데이터를 기억하고 있거나, 지나치게 넓은 문맥 주입이 발생하거나, 자격 증명이 포함된 system 프롬프트를 사용하는 경우에 일어납니다.

  • 문맥에 넣는 데이터를 정제하고 최소화하십시오.
  • 프롬프트에 실제 비밀 정보를 넣지 말고, 별도 경로로 범위가 제한되고 수명이 짧은 토큰을 사용하십시오.
  • 응답을 반환하기 전에 출력 필터링과 데이터 손실 방지 검사를 적용하십시오.

LLM03 공급망

LLM03: 공급망 위험은 타사 모델, 데이터 집합, 플러그인 및 라이브러리에서 발생합니다. 오염된 기반 모델, 모델 허브에서 받은 백도어 삽입 미세 조정 모델 또는 악성 파이썬 의존성이 앱 전체를 침해할 수 있습니다.

  • 모델의 출처와 체크섬을 검증하십시오.
  • 버전을 고정하고 라이선스를 검토하십시오.
  • 직렬화된 모델 파일을 검사하고(pickle은 로드할 때 코드를 실행할 수 있으므로) safetensors와 같은 안전한 형식을 우선 사용하십시오.
# Pickle deserialization can run arbitrary code on load.
# Prefer safetensors for untrusted model weights:
from safetensors.torch import load_file
state = load_file("model.safetensors")

LLM04 데이터 및 모델 오염

LLM04: 데이터 및 모델 오염은 학습 또는 미세 조정 과정을 겨냥합니다. 학습 데이터에 영향을 줄 수 있는 공격자는 백도어(숨겨진 작동 조건)를 심거나, 출력에 편향을 만들거나, 품질을 저하시킬 수 있습니다.

사용자가 제출한 문서를 수집하는 RAG 처리 과정은 배포 후에도 실제 오염 공격 표면으로 남습니다.

  • 학습 데이터 출처를 검토하고 서명하십시오.
  • 데이터 집합에 이상 징후 탐지를 사용하십시오.
  • 사용자가 기여한 콘텐츠를 색인화하기 전에 격리하고 검토하십시오.

LLM05 부적절한 출력 처리

LLM05: 부적절한 출력 처리는 후속 구성 요소가 검증 없이 모델 출력을 신뢰할 때 발생합니다. 주입을 통해 공격자의 영향을 받을 수 있는 출력을 검증하지 않고 셸, SQL query, 브라우저 또는 코드 평가 기능에 전달하면 XSS, SSRF 또는 RCE로 이어지는 직접적인 경로가 됩니다.

규칙: LLM의 출력을 신뢰할 수 없는 사용자 입력과 똑같이 취급하십시오. 어떤 해석기에 전달하기 전에 인코딩하고, validate를 적용하고, 샌드박스 처리하십시오.

# DANGEROUS: model output flows straight into a shell
os.system(model_output)        # never do this

# SAFER: validate against an allowlist, no shell
if action in ALLOWED_ACTIONS:
    run_safe(action, args)

LLM06 과도한 자율성

LLM06: 과도한 자율성은 모델에 지나치게 많은 기능, 권한 또는 자율성을 부여하여 발생하는 피해를 말합니다. 모델이 도구를 호출할 수 있으면 주입은 단순한 텍스트가 아니라 실제 작업이 됩니다.

  • 과도한 기능: 앱에 실제로 필요하지 않은 도구입니다.
  • 과도한 권한: 읽기만으로 충분한데 쓰기/삭제 권한까지 가진 도구입니다.
  • 과도한 자율성: 사람의 승인 없이 수행되는 영향력이 큰 작업입니다.

도구별로 최소 권한을 적용하고 되돌릴 수 없는 작업에는 확인을 요구하십시오.

LLM07 system 프롬프트 유출

LLM07: system 프롬프트 유출은 system 프롬프트가 안전한 비밀 저장소가 아니라는 점을 강조합니다. 공격자는 흔히 프롬프트를 추출할 수 있으며, 프롬프트에 자격 증명, 숨겨진 비즈니스 로직 또는 추가 공격에 도움이 되는 필터링 규칙이 포함되어 있을 수도 있습니다.

  • system 프롬프트는 복구될 수 있다고 가정하고, 그 안에 비밀 정보나 키를 절대 포함하지 마십시오.
  • 프롬프트 규칙이 지켜지기를 기대하지 말고 백엔드에서 권한 부여를 적용하십시오.
  • 보안 통제가 프롬프트 텍스트에만 존재한다면 해당 통제가 무력화된 것으로 간주하십시오.

LLM08, LLM09, LLM10

나머지 항목은 다음과 같습니다.

  • LLM08 벡터 및 임베딩 취약점: RAG 임베딩의 위험으로, 고객 영역 간 정보 유출, 임베딩 역산, 오염된 문서의 색인화 등이 있습니다. 검색 시점에 접근 제어를 적용하십시오.
  • LLM09 허위 정보: 확신에 찬 환각과 과도한 의존이 문제입니다. 중요한 결과에는 근거 연결, 인용 및 사람의 검토를 추가하십시오.
  • LLM10 무제한 사용: 비용이 많이 들거나 폭주하는 질의로 인해 비용 소진과 서비스 거부가 발생할 수 있습니다. 호출률 제한, 토큰 예산, 시간 제한 및 비용 경보를 적용하십시오.

위협 모델링에서 목록 사용하기

상위 10개 목록은 설계 검토 중 구조화된 점검 목록으로 사용할 때 가장 유용합니다.

  • 각 구성 요소(입력, 검색, 도구, 출력)를 관련 LLM 위험에 연결하십시오.
  • 각 위험에 대해 구체적인 통제와 담당자를 지정하십시오.
  • 악용 사례를 작성하고 이를 자동화된 검사로 바꾸십시오.

이 목록을 표준 OWASP 상위 10개 목록, 기계 학습에 특화된 전술을 다루는 MITRE ATLAS, 거버넌스를 위한 NIST 인공지능 위험 관리 프레임워크와 함께 사용하십시오.

점검 목록에서 심층 방어로

어떤 하나의 통제도 이러한 위험을 모두 다룰 수 없습니다. 여러 겹으로 적용하십시오.

  • 입력 계층: 검증, 분류, 호출률 제한
  • 모델 계층: 최소 권한 도구, 범위가 제한된 문맥, 보호 모델
  • 출력 계층: 검증, 인코딩, DLP, 사람의 승인
  • 플랫폼 계층: 로그 기록, 모니터링, 공급망 검증, 비용 통제

어느 한 계층이든 실패할 수 있다고 가정하고, 단일 실패가 침해로 이어지지 않도록 설계하십시오.

빠른 확인

OWASP LLM 범주에 대한 이해도를 확인하십시오.

복습

OWASP LLM 상위 10개를 한눈에 보기:

  • LLM01 프롬프트 인젝션, LLM02 민감 정보 노출, LLM03 공급망, LLM04 데이터 및 모델 오염, LLM05 부적절한 출력 처리
  • LLM06 과도한 자율성, LLM07 system 프롬프트 유출, LLM08 벡터 및 임베딩 취약점, LLM09 허위 정보, LLM10 무제한 사용
  • 모델 출력과 system 프롬프트를 신뢰할 수 없고 비밀이 아닌 것으로 취급하십시오.
  • 이 목록을 위협 모델링 점검 목록으로 사용하고, MITRE ATLAS 및 NIST 인공지능 RMF와 함께 적용하며, 입력, 모델, 출력 및 플랫폼 계층 전반에 심층 방어를 적용하십시오.

자주 묻는 질문

“OWASP LLM Top 10” 강의는 무료인가요?

네 — “OWASP LLM Top 10” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“OWASP LLM Top 10”에서 뭘 배우나요?

LLM 애플리케이션의 주요 위험을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“OWASP LLM Top 10” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 프롬프트 인젝션과 탈옥
  2. OWASP LLM Top 10
  3. 인공지능 에이전트 및 도구 사용 보안
  4. 모델, 데이터 및 공급망 위험
← Cyber Security Academy(으)로 돌아가기