LLM 애플리케이션을 위한 OWASP Top 10
LLM 애플리케이션을 위한 OWASP Top 10
LLM을 위한 OWASP Top 10이란
OWASP Top 10 목록은 OWASP 애플리케이션 보안 프로젝트 커뮤니티에서 제공하는 보안 프레임워크로, 대규모 언어 모델(LLM) 시스템에서 가장 중요한 위험 요소를 식별합니다. 이는 AI 기반 애플리케이션에서 흔히 발생하는 공격 패턴과 보안 취약점을 정의하여, 조직이 더 안전한 생성형 AI 시스템을 구축할 수 있도록 돕습니다. 이러한 위험을 더 잘 이해하기 위해 각각을 개별적으로 살펴보는 것이 중요합니다.
프롬프트 인젝션
프롬프트 인젝션 공격은 공격자가 시스템 프롬프트 또는 사용자 입력을 조작하여 LLM의 지시를 덮어쓰는 행위입니다. 공격자는 모델이 민감한 데이터를 공개하거나 정책을 무시하거나 유해한 LLM 출력을 생성하도록 속일 수 있습니다. 프롬프트 인젝션을 방지하려면 입력을 검증하고 응답을 철저히 모니터링하는 것이 필수적입니다.
안전하지 않은 출력 처리
안전하지 않은 출력 처리는 애플리케이션이 LLM 출력을 검증 없이 직접 신뢰하는 경우 발생합니다. 코드, SQL 또는 마크업으로 사용되는 출력은 매우 위험할 수 있습니다. 공격자는 이를 악용하여 원격 코드 실행, 크로스 사이트 스크립팅(XSS), 또는 비인가 작업을 유발할 수 있습니다.
학습 데이터 오염
학습 데이터 오염은 사전 학습 모델 또는 학습 데이터셋에 악의적이거나 편향된 데이터를 주입하는 공격입니다. 이는 숨겨진 백도어, 왜곡된 출력, 또는 모델 사용 전반에 걸쳐 지속되는 비일관적인 동작을 유발할 수 있습니다.
모델 서비스 거부
모델 서비스 거부(DoS) 공격은 비용이 많이 드는 또는 반복적인 프롬프트로 LLM 시스템을 과부하시키는 공격을 의미합니다. 이러한 공격은 연산 비용을 증가시키고 성능을 저하시켜, 요청 제한을 초과하게 만들며 정상 사용자에게 서비스 장애를 발생시킬 수 있습니다.
공급망 취약점
공급망 취약점은 서드파티 오픈소스 모델, API, 데이터셋 또는 플러그인을 통해 도입되는 위험에서 발생합니다. 손상된 의존성이나 검증되지 않은 구성 요소는 LLM 애플리케이션에 숨겨진 보안 결함을 유입할 수 있습니다.
민감 정보 노출
민감 정보 노출은 LLM이 API 키, 내부 문서 또는 기타 민감한 정보를 의도치 않게 노출하는 상황입니다. 이는 주로 잘못된 데이터 처리, 보안되지 않은 프롬프트 또는 테스트되지 않은 통합에서 발생합니다.
안전하지 않은 플러그인 설계
안전하지 않은 플러그인 설계는 LLM과 외부 도구 간의 취약하게 설계된 통합 구조를 의미합니다. 잘못된 접근 제어, 과도한 권한, 또는 안전하지 않은 API는 공격자가 모델을 통해 비인가 작업을 수행하도록 만들 수 있습니다.
과도한 권한 부여
과도한 권한 부여는 LLM이 인간의 감독 없이 현실 세계 작업을 수행할 수 있을 정도로 과도한 자율성을 부여받은 상태를 의미합니다. 이는 금융, 커뮤니케이션, 인프라 시스템 등에서 의도치 않은 작업을 수행할 위험을 증가시킵니다.
과신
과신은 사용자가 LLM 출력을 검증 없이 완전히 신뢰하는 상황을 의미합니다. 모델은 환각이나 잘못된 정보를 생성할 수 있기 때문에, 무비판적인 신뢰는 보안, 운영 또는 규정 준수 실패로 이어질 수 있습니다.
모델 탈취
모델 탈취는 독점적인 LLM을 무단으로 추출하거나 복제하는 행위입니다. 공격자는 API 남용 또는 질의 기반 모델 재구성, 역공학 등을 사용하여 사전 학습된 모델이나 모델 동작을 탈취할 수 있습니다.
조직은 어떻게 LLM을 보안할 수 있는가?
입력 검증 및 출력 제어
조직은 프롬프트 인젝션 공격 위험을 줄이기 위해 모든 사용자 입력을 검증해야 하며, LLM 출력이 실행 또는 표시되기 전에 안전한지 반드시 확인해야 합니다. LLM은 입력을 예측 불가능하게 해석할 수 있으므로 출력은 항상 신뢰할 수 없는 것으로 간주하고 철저히 검증해야 합니다. 이는 출력이 코드, 데이터베이스 또는 시스템 명령과 상호작용할 때 특히 중요하며, 검증되지 않은 응답은 보안 취약점이나 의도치 않은 동작을 유발할 수 있습니다.
접근 제어 및 최소 권한 원칙
LLM과 연결된 도구, API, 플러그인은 최소 권한 원칙에 따라 기능 수행에 필요한 최소한의 권한만 부여해야 합니다. 권한을 제한하면 프롬프트가 손상되거나 통합이 악용될 경우 발생할 수 있는 피해를 줄일 수 있습니다. 강력한 접근 제어를 구현하면 각 사용자 또는 구성 요소가 명시적으로 허용된 작업만 수행할 수 있어 보안 위험이 더욱 감소합니다.
데이터 격리 및 개인정보 보호
민감한 데이터는 일반 LLM 프롬프트와 분리되어야 합니다. 조직은 모델 컨텍스트 창에 민감한 정보를 노출하지 않아야 하며, 암호화 및 엄격한 데이터 거버넌스 정책을 적용해야 합니다. 이러한 방식은 민감 정보 노출 위험을 줄이고 규정 준수를 유지하며, 데이터 유출을 방지하는 데 도움이 됩니다.
모니터링 및 이상 탐지
지속적인 로깅과 모니터링은 비정상적인 사용 패턴을 탐지하는 데 도움이 됩니다. 예를 들어 높은 비용의 반복 쿼리, 의심스러운 프롬프트 행동, 비정상적인 API 요청 증가 등이 있습니다. 조기 탐지는 서비스 거부(DoS) 공격 및 악용 시도의 영향을 줄이는 데 중요합니다.
AI 시스템의 보안 개발 생명주기
AI 애플리케이션은 레드팀 테스트, 적대적 프롬프트 테스트, 의존성 검토를 포함한 구조화된 보안 테스트 과정을 따라야 합니다. 학습 데이터 오염, LLM 보안, 통합 요소에 대한 정기적인 감사는 새로운 위험을 식별하는 데 도움이 됩니다.
웹 애플리케이션 방화벽(WAF) 보호
웹 애플리케이션 방화벽은 LLM API 및 AI 게이트웨이 앞단에 배치되어 악성 트래픽을 필터링해야 합니다. WAF는 프롬프트 인젝션 공격을 차단하고, 요청 속도 제한을 적용하며, LLM 엔드포인트를 대상으로 하는 자동화된 공격 및 서비스 거부 공격을 줄이는 데 도움을 줍니다.
FAQ
LLM을 위한 OWASP Top 10애플리케이션이 왜 중요한가?
LLM 애플리케이션을 위한 OWASP Top 10은 조직이 핵심 AI 보안 위험을 식별하고 우선순위를 설정하도록 도우며, 안전한 개발 관행을 개선하고 LLM 시스템, API, 플러그인 및 서드파티 통합에서의 취약점을 줄이는 데 기여합니다.
LLM 보안 취약점은 기존 애플리케이션 취약점과 어떻게 다른가?
LLM 보안 취약점은 예측 불가능한 언어 동작, 프롬프트 조작, 데이터 유출 가능성에서 발생합니다. 반면 기존 취약점은 주로 코드 오류, 잘못된 시스템 설정 또는 네트워크 취약점을 대상으로 합니다.
LLM 애플리케이션에서 가장 흔한 보안 위험은 무엇인가?
프롬프트 인젝션, 안전하지 않은 출력 처리, 학습 데이터 오염, 민감 정보 노출, 과도한 권한 부여, 공급망 취약점은 대규모 언어 모델 애플리케이션에서 가장 흔한 보안 위험 요소입니다.
프롬프트 인젝션이란 무엇인가?
프롬프트 인젝션은 공격자가 작성한 입력을 통해 LLM을 조작하는 공격 기법입니다. 이러한 공격은 모델이 시스템 프롬프트를 무시하거나 자연어 해석 방식을 악용하여 민감 정보를 노출하도록 만들 수 있습니다.