AI

[AI] LLM OWASP 10 : 무제한 소비

poiri3r 2026. 3. 9. 10:36

https://owasp.org/www-chapter-seoul/assets/files/LLMAll_ko-KR-2025-04-02.pdf

 

무제한 소비는 LLM이 입력 쿼리 또는 프롬프트에 기반하여 출력을 생성하는 과정을 의미합니다. LLM의 추론 기능은 학습된 패턴과 지식을 적용하여 학습된 패턴과 지식을 적용하여 관련 응답이나 예측을 생성하는 핵심적인 역할을 합니다.

서비스를 방해하거나, 대상의 재정 자원을 고갈시키는 공격들은 모두 공통적인 보안 취약점을 악용하여 성공합니다. 무제한 소비는 LLM 어플리케이션이 이용자의 과도하고 통제되지 않은 추론을 허용할 때 발생하며, 이는 서비스 거부, 경제적 손실, 모델 도용, 서비스 성능 저하 등의 위험을 초래할 수 있습니다.

 

일반적인 취약점 예시입니다.

일반적 취약점 예시

1. 가변 길이 입력 플러딩 : 다양한 길이의 입력을 대량 전송하여 LLM 처리 효율성을 악용 -> 리소스 소진 or 응답 불가능, 가용성에 영향을 줌

2. 지갑 거부 공격 : 공격자가 대량의 연산 작업을 수행하도록 유도하여 클라우드 기반 AI 서비스의 비용 모델을 악용. 이로 인해 서베스 제공자가 감당할 수 없는 재정적 부담을 안을 수도 있음

3. 지속적 오버플로우 : LLM의 컨텍스트 윈도우를 초과하는 입력을 지속적으로 보내 과도한 컴퓨팅 자원 소비 유발

4. 자원 집약적 쿼리 : 복잡한 문장 구조나 정교한 언어 패턴을 포함하는 과도하게 높은 연산 비용이 필요한 쿼리를 제출

5. API를 통한 모델 추출 : 프롬프트 인젝션을 활용하여 모델 API를 통해 충분한 출력을 수집함으로써 모델의 일부 복제 혹은 그림자 모델 생성

6. 기능적 모델 복제 : 공격자가 대상 모델을 활용하여 합성 훈련 데이터를 생성한 후, 이를 기반으로 다른 모델을 미세 조정하여 기존 모델과 기능적으로 동일한 모델 제작.

7. 부채널 공격 : 악의적인 공격자가 LLM의 입력 필터링 기법을 악용하여 부채널 공격 수행

공격시나리오 예시입니다

공격 시나리오

시나리오 #1 통제되지 않은 입력 크기 : 공격자가 LLM 애플리케이션에 비정상적으로 큰 입력을 제출하여, 과도한 메모리 사용과 CPU 부하를 유발합니다. 이로인해 시스템이 다운되거나 서비스 속도가 심각하게 저하될 수 있습니다.

시나리오 #2 반복 요청 : 공격자가 LLM API에 대량의 요청을 전송하여 계산 리소스를 과도하게 소모하고 정상적인 사용자가 서비스를 사용할 수 없게 만듭니다.

시나리오 #3 자원 집약적 쿼리 : LLM의 가장 비용이 많이 드는 프로세스를 트리거하도록 설계된 특정 입력을 조작하여 CPU 사용 시간을 연장하고 잠재적인 시스템 오류를 유발합니다.

시나리오 #4 지갑 거부 공격 : 클라우드 기반 AI 서비스의 사용량 기반 유료 모델을 악용하기 위해 과도한 작업을 생성해, 제공업체에 지속 불가능한 비용을 초래합니다.

시나리오 #5 기능적 모델 복제 : 공격자는 LLM의 API를 사용하여 합성 학습 데이털르 생성하고 다른 모델을 미세 조정하여 기능적으로 동등한 모델을 생성하고, 기존 모델 추출 제한을 우회합니다.

시나리오 #6 시스템 입력 필터링 우회 :  입력 필터링 기술과 LLM의 프리앰블을 우회하여 부채널 공격을 수행하고 모델 정보를 자신의 통제하에 있는 원격 제어 리소스로 가져옵니다.

 

예방 및 완화 전략

1. 입력 검증 : 입력 유효성을 엄격하게 검사하여 합리적인 크기 제한을 초과하지 않도록 합니다

2. Logits 및 Logprobs 노출 제한 : api 응답에서 logit_bias 및 logprobs의 노출을 제한하거나 난독화합니다.

3. 속도 제한 : 속도 제한 및 사용자 할당량을 적용하여 단일 엔터티가 주어진 시간동안 요청할 수 있는 요청 수를 제한합니다.

4. 자원 할당 관리 :자원 할당을 동적으로 모니터링하고 관리하여 리소스 낭비를 방지합니다.

5. 타임아웃 및 조절 : 자원을 많이 사용하는 작업에 대해 타임아웃을 설정하고, 처리속도를 조절 합니다.

6. 샌드박스 기술 : LLM의 네트워크 자원, 내부 서비스 및 API에 대한 LLM의 액세스를 제한합니다.

7. 포괄적인 로깅, 모니터링 및 이상 징후 탐지 : 자원 사용량을 지속적으로 모니터링하고 로깅을 구현하여 비정상적인 자원 소비 패턴을 감지하고 대응해야합니다.

8. 워터마킹 : LLM 출력물의 무단 사용을 감지하고 방지할 수 있도록 워터마킹 프레임워크를 구현합니다.

9. 단계적 성능 저하 : 과부하가 걸렸을 때 시스템이 정상적으로 작동하도록 설계하여 부분적인 기능을 구현합니다.

10. 대기열 처리 제한 및 확장성 확보 : 대기 중인 작업 수와 총 작업에 대한 제한을 구현하고, 동적 확장 및 로드 밸런싱을 통합하여 다양한 요구를 처리하고 일관된 시스템 성능을 보장합니다.

11. 적대적 견고성 훈련 : 적대적 쿼리 및 추출 시도를 탐지하고 완화할 수 있도록 모델을 훈련합니다.

12. 글리치 토큰 필터링 : 알려진 글리치 목록을 구축하고, 이를 모델의 컨텍스트 윈도우에 추가하기 전에 필터링합니다.

13. 접근 통제 : 역할 기반 접근 제어(RBAC) 및 최소 권한 원칙을 적용하여, LLM 모델 저장소 및 훈련 환경에 대한 무단 접근을 제한합니다.

14. 중앙 집중형 ML 모델 인벤토리 : 기업이나 조직내에서 사용하는 모든 AI 모델을 중앙 집중식 모델 인벤토리 또는 레지스트리를 사용하여 적절한 거버넌스 및 액세스 제어를 보장합니다. 

15. 자동화된 ML Ops 배포 : 거버넌스, 추적, 승인 워크플로우를 포함한 자동화된 MLOps 배포를 구현하여, 인프라 내에서 모델 접근 및 배포 통제를 강화합니다.

 

이렇게 해서 총 10개의 LLM OWASP TOP 10에 대해 알아봤습니다.

어떻게 보면 당연하게 생각한 부분이 많았던 것 같은데, 또 사소하게 놓치기 쉬운 포인트들이 있는 것 같습니다.

또한 저희와 같은 일반적인 LLM 사용자 뿐 아니라 악의적으로 공격하려는 사람들이 있기 때문에, 그에 대한 방비가 중요한 것 같습니다.

읽어주셔서 감사합니다