오픈에이아이(OpenAI)의 챗지피티(ChatGPT)가 등장한 이후 생성형 AI의 엔진이자 핵심인 LLM(Large Language Model)에 대한 관심이 급증하기 시작했다. LLM은 방대한 양의 텍스트 데이터를 학습하여 자연어 처리(Natural Language Processing, NLP) 및 생성 작업을 수행할 수 있는 인공지능 모델로 딥러닝 기술을 활용해 단어와 문장이나 문단 간의 관계를 이해하고 학습하게 된다. 이런 과정을 통해 질문 해석, 답변 생성, 언어 번역 등 다양한 작업을 수행하는 모델을 생성할 수 있게 된다. 대표적인 LLM 모델로 오픈에이아이(OpenAI)의 지피티(GPT). 구글(Google)의 제미니(Gemini). 메타(Meta)의 라마(Llama), 마이크로소프트(Microsoft)의 빙챗(Bing Chat)등이 있으며, 해당 업체들은 LLM모델을 기반으로 프롬프트나 질문을 입력받으면 응답 텍스트를 생성하는 생성형AI에 LLM을 활용하고 있다.
다수의 기업들이 업무 효율화를 목적으로 앞다투어 LLM 도입을 위한 LLM 애플리케이션을 개발하면서 LLM기반의 애플리케이션으로 인한 새로운 보안사고를 야기하기 시작했다. 악의적인 사용자가 모델을 오염시키거나 민감한 데이터를 탈취하는 등의 공격이 발생하기 시작한 것이다. 소프트웨어 보안 개선을 위해 설립된 비영리 단체 OWASP는 이러한 LLM 보안위협을 대응하기 위해 2023년 8월 ‘OWASP Top 10 for LLM Applications 1.0’을 출시하였으며, 2023년 10월에는 [그림 1]의 1.1버전을 발표하였다. 2.0버전은 2024년 10월경에 발표 예정이다.
[그림 1] OWASP Top 10 for LLM Applications v1.1 구성도 (출처 : OWASP)
OWASP Top 10 for LLM Applications는 LLM을 배포하고 관리할 때 발생하는 잠재적인 보안 위험에 대해 아래 [표 1]과 같이 LLM 애플리케이션에서 발생할 수 있는 가장 중요한 10가지 취약점 항목을 선정했다.
번호 | 항목 | 설명 |
---|---|---|
1 | Prompt Injection | 프롬프트에 교묘한 입력을 통해 LLM을 조작하여 LLM이 의도하지 않은 작업을 수행하는 취약점 |
2 | Insecure Output Handling | LLM 출력이 검토 없이 사용될 때 발생하며, 백엔드 시스템이 노출되거나 XSS, CSRF, SSRF 권한상승 또는 원격 코드 실행 등의 공격이 이뤄지는 취약점 |
3 | Training Data Poisoning | LLM 훈련 데이터 조작을 통해 편향을 주입시켜 모델의 보안 및 성능, 윤리적 행동을 손상시키는 취약점 |
4 | Model Denial of Service | 공격자가 악의적으로 LLM의 리소스를 많이 사용하여 서비스의 성능 저하나 비용을 급증시키는 취약점 |
5 | Supply Chain Vulnerabilities | LLM 공급망 취약점으로 타사 데이터 세트나 플러그인 등 취약한 구성 요소나 서비스로 인해 손상되어 보안 공격으로 이어질 수 있는 취약점 |
6 | Sensitive Information Disclosure | LLM 응답 중 우연히 기밀 데이터가 노출되어 무단 데이터 접근, 개인정보 침해, 보안 침해가 발생할 수 있는 취약점 |
7 | Insecure Plugin Design | LLM 플러그인의 안전하지 않은 입력과 불충분한 액세스 제어를 통해 원격 코드 실행 등이 이뤄질 수 있는 취약점 |
8 | Excessive Agency | 과도한 기능, 과도한 권한, 과도한 자율성으로 인해 LLM이 예상치 못한 모호한 출력에 대응하여 해로운 작업을 수행할 수 있는 취약점 |
9 | Overreliance | LLM에 과도하게 의존하는 시스템이나 사용자가 LLM에서 생성된 부정확하거나 부적절한 콘텐츠로 인해 잘못된 의사소통 및 잘못된 정보를 얻고 법적 문제 및 보안 문제를 유발하는 취약점 |
10 | Model Theft | 악의적인 행동 또는 APT를 통해 LLM 언어 모델에 무단으로 접근하거나 모델을 유출하는 취약점 |
[표 1] OWASP Top 10 for LLM Applications 항목
본 문서에서 살펴볼 2번 Insecure Output Handling 취약점은 현재 LLM 애플리케이션 개발자들이 주로 사용하는 랭체인(LangChain), 라마인덱스(LlamaIndex) 프레임워크들에 관련된 CVE가 다수 존재하며 GPT-3.5 및 GPT-4로 구동되는 생성형 AI ‘챗소닉 (Chatsonic)’에서 크로스 사이트 스크립팅(Cross-Site Scripting, XSS)이 발생하여 조치된 사례도 확인할 수 있었다.
Insecure Output Handling 취약점은 원격 코드 실행을 통해 시스템에 접근하여 제어할 수 있어 매우 치명적인 취약점이다. 주로 LLM에서 생성된 출력이 충분한 유효성 검사와 정제 및 처리가 부족한 상태에서 하위 구성 요소 및 시스템에 전달되어 발생한다. 또한 LLM에서 생성된 출력은 프롬프트 입력을 통해 제어될 수 있으므로 사용자에게 추가 기능에 대한 간접 액세스를 부여한다.
해당 취약점은 웹 브라우저에서 크로스 사이트 스크립팅 및 크로스 사이트 리퀘스트 변조 (Cross-Site Request Forgery, CSRF) 를 비롯한 여러 보안 취약점을 유발하거나 백엔드 시스템에서 SSRF 권한 상승 또는 원격 코드 실행을 발생시킬 수 있다.