LLM 앱 보안: 생성형 AI 개발의 위험 및 예방
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
- 대상자: LLM(대규모 언어 모델) 앱 개발 및 보안 엔지니어, AI 시스템 설계자
- 난이도: 중급 이상 (보안 프레임워크 이해 및 실무 적용 경험 필요)
핵심 요약
- OWASP Top 10 for LLM Applications 2025에서 정의한 주요 위험: Prompt Injection, System Prompt Leakage, Unbounded Consumption, Data and Model Poisoning 등 10가지 항목
- Prompt Injection 예방: 입력 검증, 역할 제한, 구조화된 출력 제어
- Unbounded Consumption 대응: max_tokens 제한 및 입력 크기 제한 적용
섹션별 세부 요약
1. OWASP Top 10 for LLM Applications 2025
- LLM 앱에 특정된 10가지 주요 보안 위험 목록 제공
- 예시: Prompt Injection, System Prompt Leakage, Data Poisoning 등
- 참고 링크: OWASP LLM Top 10
2. Prompt Injection
- 정의: 사용자 지시가 LLM에 의도치 않은 동작을 유발하는 공격
- 예시: GitHub Copilot, Slack AI에서의 정보 유출 사례
- 대응: 입력 검증, 역할 제한, 구조화된 출력 제어
- 코드 예시:
```python
llm = ChatOpenAI(max_tokens=100) # 출력 토큰 제한
```
3. System Prompt Leakage
- 정의: 시스템 프롬프트에 기밀 정보(예: API 키) 포함 시 유출 위험
- 예시: 시스템 프롬프트에 인증 정보 포함한 코드
- 대응: 시스템 프롬프트에 기밀 정보 포함 금지, 보안 제어를 LLM 외부에서 수행
4. Unbounded Consumption
- 정의: 사용자가 과도한 입력/출력 토큰을 유발하여 리소스 소모
- 예시: "반복 문자 생성" 명령으로 출력 제한 초과
- 대응: max_tokens 제한, 입력 크기 제한 적용
5. Data and Model Poisoning
- 정의: 훈련 데이터 또는 임베딩 데이터 조작으로 모델 동작 변경
- 대응: 데이터 출처 검증, 모델 업데이트 시 재검증
결론
- LLM 앱 개발 시 OWASP Top 10 위험 항목을 기반으로 입력 검증, 출력 제한, 보안 프레임워크 적용을 필수적으로 수행해야 함.
- 코드 수준 보안 검사와 프롬프트 역할 제한을 통해 Prompt Injection 및 System Prompt Leakage 예방이 핵심.