반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- sigmoid
- 오차제곱합
- AVG
- 합계
- COUNT
- 평균
- 수치미분
- 렐루함수
- max
- total
- 데이터베이스
- 교차엔트로피오차
- 신경망
- PyQt5
- 학습 구현
- 미니배치
- PYTHON
- 제약조건
- 최댓값
- Next.js
- Depthwise Separagle Convolution
- Pointwise Convolution
- sum
- Depthwise Convolution
- MIN
- sqlite3
- 밑바닥부터 시작하는 딥러닝
- join
- 시험데이터
- next.js 튜토리얼
Archives
- Today
- Total
우잉's Development
[LLM 기초] 프롬프트 보안 본문
728x90
반응형
LLM 취약점
- Prompt Injections
- 정교하게 제작된 프롬프트를 사용하여 필터를 우회하거나 LLM을 조작하여, 이전 지시사항을 무시하게 하거나 의도 하지 않은 행동을 수행하게 만드는 방법
- 프롬프트를 유출하거나, 제한된 사용 범위를 넘는 답변을 하거나, 시스템에 악성코드를 실행하도록 만드는 것이 대부분 이 방식을 통해 이루어짐 - Data Leakage
: LLM의 응답을 통해 민감한 정보, 독점 알고리즘, 또는 기타 기밀 세부사항을 실수로 공개 - Inadequate Sandboxing
: 외부 자원이나 민감한 시스템에 접근할 수 있는 LLM을 적절하게 격리하지 못하여 잠재적인 악용과 무단 접근이 가능하게 되는 경우 - Unauthorized Code Execution
: 자연어 프롬프트를 통해 기본 시스템에서의 악의적인 코드, 명령, 또는 행동을 실행 - SSRFVulnerabilities
: 내부 서비스, API, 또는 데이터 저장소와 같은 제한된 자원에 접근하거나 의도치 않은 요청을 수행하도록 악용 - Overreliance on LLM-generated Content
: 사람의 감독 없이 LLM 생성 컨텤츠에 과도하게 의존하게 되므로 인해 해로운 결과를 초래하게 되는 문제 - Inadequate AI AIignment
: LLM의 목표와 행동이 의도된 사용 사례와 일치하도록 보장하지 않아, 원치 않는 결과나 취약점을 초래하는 문제 - Insufficient Access Controls
: 접근 제어나 인증을 제대로 구현하지 않아, 비인증 사용자가 LLM과 상호작용하고 취약점을 악용할 수 있는 문제 - Improper Error Handling
: 오류메세지나 디버깅 정보가 공개되어 민감한 정보, 시스템 세부사항, 또는 잠재적 공격 경로를 노출하게 되는 문제 - Training Data Poisoning
: 학습 데이터나 미세 조정 절차를 악의적으로 조작하여 LLM에 취약점이나 백도어를 도입하는 공격
AutoGPT Jailbreaking
- Docker Sandbox 안에서 실행되어 외부와 통신할 수 없는 AutoGPT를 탈옥시켜, 외부 시스템의 코드를 실행하도록 만듦.
- 보안에 취약점이 있는 Doxker를 사용해서 실험한 케이스지만, 코드를 직접 실행하게 하는 경우에 대한 문제를 실증함.
- 이 문제는 전통적으로 늘 있어 왔던 문제이긴 하지만, 프롬프트 인젝션을 통해 해킹 할 수 있다는 점을 시사
방어
- 프롬프트 구조로 방어
: 프롬프트에 입력에 대한 구분자를 사용. 프롬프트를 사용자의 입력값 이전과 이후로 나눠서 구성, 사용자의 입력 이전의 프롬프트의 내용을 답변하지 말라고 지시 -> 쉽게 풀릴 수 있음. - 인젝션 체커로 방어
: 프롬프트 실행 전 프롬프트에 인젝션 프롬프트가 존재하는지 다른 LLM으로 확인 후 프롬프트 실행 - 태스트 분리로 방어
: 명령을 입력 받는 LLM과 문제 해결을 수행하는 LLM을 분리해서 사용
Solutions
현재로썬 100% 방어는 현실적으로 어렵다는 것을 인정 하고 코드보안과 거의 동일한 정책으로 보안점검 실시
- Pre-defined(System) 프롬프트에 보안 정보를 넣지 않도록 주의
- 내부 서비스와 외부 서비스에 대한 데이터 주입을 명확하게 분리
- 명령을 실행하는 LLM의 경우에는 시스템을 반드시 분리
728x90
반응형
'Deep learning > LLM' 카테고리의 다른 글
[LLM 기본] 프롬프트 엔지니어링 기본 (0) | 2023.09.05 |
---|---|
[LLM 기본] 생성 조건 (0) | 2023.09.05 |
[LLM 기초] 프롬프트 엔지니어링 기초2 (0) | 2023.08.31 |
[LLM 기초] 프롬프트 엔지니어링 기초 1 (0) | 2023.08.31 |
[LLM 기초] 프롬프트 엔지니어링 개요 (0) | 2023.08.30 |
Comments