1. 개요

- ChatGPT에 새로운 탈옥 기법인 시간 혼란을 악용한 Time-Bandit 취약점 발견
- 안전 장치를 우회해 무기 제작, 핵 정보, 악성코드 개발 등의 제공하도록 유도할 수 있음

2. 주요내용

- ChatGPT가 현재 시점이 언제인지 정확하게 인식하지 못하는 시간적 혼란에 상태에 빠질 수 있다는 사실이 발견 [1]

> ChatGPT가 특정 시점에 위치해 있다고 믿게 만든 후, 그 시점의 기술 수준과 현대의 정보 및 도구를 결합하도록 유도

> 이를 통해 ChatGPT로부터 악성코드 제작, 무기 제조 방법 등 민감 정보를 얻을 수 있었음

 

- 두 가지 취약점을 악용해 작동

> 다음 두 가지를 결합하여 ChatGPT를 과거 또는 미래에 있는 것처럼 시간적 맥락을 설정해 보호 장치를 우회할 수 있음

① 타임라인 혼란

> ChatGPT가 현재 시점을 정확하게 인식하지 못하도록 유도

> 시간에 대한 인식을 하지 못하고 과거, 현재, 미래 중 어느 시점에 있는지 판단할 수 없는 상태에 빠지게 됨

② 절차적 모호성

> 애매한 질문 구성

> ChatGPT의 보안 장치(규칙, 메커니즘 등)를 제대로 적용하지 못하도록

[사진 1] Time-Bandit 취약점으로 다형성 멀웨어 생성

3. 대응방안

- 현재 취약점은 완화된 상태

> 개인 : 탈옥 등 불법적으로 사용하지 않도록 AI 보안 교육 및 윤리적 사용 정책 강화 필요

> 기업 : AI 사용 가이드라인을 마련하고, 탈옥 시도를 모니터링할 수 있는 시스템 도입 필요

> 기타 : AI 탈옥 기법을 연구 및 분석해 새로운 탈옥 방식을 사전에 차단하는 과정이 필요

4. 참고

[1] https://www.kb.cert.org/vuls/id/733789
[2] https://www.bleepingcomputer.com/news/security/time-bandit-chatgpt-jailbreak-bypasses-safeguards-on-sensitive-topics/
[3] https://www.dailysecu.com/news/articleView.html?idxno=163339

본 게시글은 DeepSeek 논문과 구글링 결과 및 개인적인 생각를 정리한 글로, 정확하지 않을 수 있습니다.
혹여 잘못된 내용이 있다면, 알려주시면 감사하겠습니다.

1. 개요

- 중국 AI 스타트업이 개발한 오픈소스 기반의 LLM, DeepSeek
- GPT-4와 유사한 수준의 성능을 제공하면서도, 훨씬 적은 자원으로 훈련
- 주로 자연어 처리와 생성 AI 모델에 특화된 기술을 제공
- 기술 혁신과 AI 기조를 파괴하였으나, 보안과 관련된 주요 문제점이 대두

2. DeepSeek 주요 기술

- 기존 AI 서비스를 개발하고 배포 및 운영하는 데에는 많은 비용과 시간, 공간이 필요
> OpenAI, Anthropic 등의 기업들은 계산에만 1억 달러 이상을 소비
> 또한, 계산을 위한 수 천대의 GPU가 필요하며, 이를 위한 대규모 데이터 센터를 운용

 

- 그러나, DeepSeek은 GPT-4 개발 비용의 약 1/17 수준에 불과한 약 600달러로 개발

 

① FP8 Mixed Precision Training

- 일반적으로 신경망의 크기가 커질수록 성능이 향상되나, 메모리와 컴퓨팅에 대한 문제가 발생
혼합 정밀도 훈련 (Mixed Precision Training)은 모델의 정확도와 파라미터에 영향을 끼치지 않고, 메모리 요구사항을 줄이고 GPU 산출 속도를 높일 수 있는 신경망 훈련 방법
> 혼합 정밀도 훈련은 모델 학습 과정에서 부동 소수점(Floating-Point Numbers) 연산 정밀도를 혼합하여 사용하며, 주로 FP16, FP32를 혼합하여 사용함
숫자가 높을수록 모델의 정확도가 높아지나, 메모리를 많이 사용하는 단점을 지님

[사진 1] Floating Point Format

- DeepSeek에서는 FP8이라는 저비트 연산 체계를 도입하여 연산 효율성과 메모리 사용 효율을 극대화

[사진 2] FP8 Mixed Precision Training

* NVDIA 연구를 통해 FP8은 FP16 대비 2배 높은 성능을 제공하고, 2배 낮은 메모리 사용량을 가지는 것이 확인

[사진 3] FP16과 FP8의 정확도 비교

② DeepSeek MoE (Mixture of Experts)

- MoE (Mixture of Experts)게이팅 네트워크를 통해 각각의 입력에 가장 관련성이 높은 전문가 모델을 선택하는 방식으로 여러 전문가 모델 간에 작업을 분할

> 게이팅 네트워크 (Gating Network)란 입력 데이터에 따라 다른 전문가 (Expert) 모델을 동적으로 선택하는 역할을 하는 신경망

> 입력은 라우터를 사용해 적절한 각 전문가 모델로 전달되어 처리되며, 데이터를 효율적으로 처리할 수 있음
> 일반적으로 기존 MoE는 8~16개의 전문가를 두고 특정 토큰이 특정 전문가로 라우팅 되도록 하지만, 하나의 전문가가 다양한 토큰을 처리하게 됨
> 또한 서로 다른 전문가들이 같은 지식을 학습하는 지식 중복의 문제가 발생

 

- DeepSeek은 2 가지를 활용해 MoE의 성능을 개선

⒜ Fine-grained Expert Segmentation (세분화된 전문가 모델 분류)

 전문가를 더 작고, 더 집중된 기능을 하는 부분들로 세분화하여 하나의 전문가가 보다 세분화된 특정 영역의 지식을 집중적으로 학습하도록 유도

⒝ Shared Expert Isolation (공유 전문가의 분리)

- 여러 작업에 필요한 공통 지식을 처리할 수 있는 공유 전문가를 분리 및 항상 활성화시켜 공통 지식을 처리하도록 하여 지식 중복을 줄이고, 각 전문가들은 고유하고 특화된 영역에 집중할 수 있음

[사진 4] DeepSeek MoE

- 또한, 기존 MoE에서는 특정 전문가에게 토큰이 몰려 학습 및 추론에서 성능상 문제가 생기는 것을 방지 하기위해 Auxiliary Loss(부가 손실)를 추가로 도입해 로드 밸런싱
> 부가 손실을 추가하여 균형을 맞출 수 있으나, 각 모델의 성능을 저하시킬 위험이 있음

 

- DeepSeek MoE에서는 Aux-Loss-Free Strategy (부하 균형)를 활용해 이러한 문제를 해결
각 전문가마다 Bias를 두고 과부하/과소부하 상태를 모니터링해 해당 값을 감소/증가 시킴

[사진 5] Bias 계산

> 부하 균형이 개별 시퀀스 내에서 부하 불균형이 발생할 수 있어, 시퀀스 단위에서 부하 균형을 유지하기 위한 추가적인 보조 손실을 도입 (Complementary Sequence-Wise Auxiliary Loss, 보조 시퀀스 손실)
> 기존 MoE에서 특정 전문가에게 과부하가 걸리는 현상을 해결 하기위해 하나의 전문가가 담당하는 토큰 수를 제한하여 부하를 분산 (Node-Limited Routing, 노드 제한 라우팅)
> 기존 MoE에서 토큰을 균등하게 분배하지 못하는 경우 부하를 줄이기 위해 초과된 토큰을 Drop하는 방식을 사용하였으나, 정보 손실과 모델 품질을 하락 시키기 때문에, 모든 입력 토큰을 반드시 처리하도록 보장 (No Token-Dropping, 토큰 드롭 없음)

 

- MoE 모델의 효율성을 높이고, 성능 저하 없이 안정적인 추론이 가능하며, 기존 MoE 모델보다계산 자원을 효율적을 사용하고 높은 품질의 결과를 제공

 

③ Multi-Head Latent Attention (MLA)  

Attention : 입력 데이터의 중요한 부분에 가중치를 부여하여 모델이 더 집중할 수 있도록 하는 메커니즘으로, 어떤 정보가 더 중요한지를 학습하여 가중치를 동적으로 조절
Self-Attention : 주어진 입력 내의 각 단어나 토큰이 다른 단어와 얼마나 관련되어 있는지를 계산하는 메커니즘으로, 각 단어는 다른 모든 단어에 대한 가중치를 부여해 중요성과 문맥을 파악
Multi-Head Attention : 하나의 Self-Attention을 여러 헤드로 나누어 동시에 수행하는 방식으로, 모델이 입력 데이터를 여러 각도에서 분석할 수 있게 하여, 정보를 더 풍부하게 처리
> Query(Q : 현재 처리하고 있는 단어나 시퀀스 부분), Key(K : 비교 대상인 다른 단어나 시퀀스 부분), Value(V : 최종적으로 가중치를 적용 받는 단어나 시퀀스 부분) 행렬을 각각 생성
기존 Multi-Head Attention에서는 모든 헤드별로 Key, Value를 그대로 저장해 활용
> 따라서, 모델 규모가 커질수록 Key-Value Cache에 대한 메모리 사용량이 급증해 연산 속도를 저하시킴

 

- DeepSeek에서는 Multi-Head Latent Attention(MLA)를 도입하여 Key-Value 데이터를 압축해 더 적은 메모리로도 동일한 성능을 유지하도록 설계됨

[사진 6] MLA

④ Multi-Token Prediction (MTP)

Multi-Token Prediction (MTP)란 다음 여러 토큰을 순차적으로 예측하여 생성 속도를 향상시키고 학습 신호를 풍부하게 함
> t 시점에 t+1, t+2, t+3…을 예측하여 데이터에서 얻을 수 있는 신호가 더 촘촘해져 더 나은 정확도를 달성

[사진 7] MTP

⑤ 기타

각 토큰마다 활성화되는 파라미터를 370억 개로 제한하여 계산 효율성을 높이면서도, 높은 성능을 유지
- 학습을 통해 128,000자까지 문맥을 확장해 긴 문서나 대화를 자연스럽게 처리할 수 있도록 함

3. DeepSeek 보안 논쟁

① OpenSource 공급망 공격

- DeepSeek는 오픈소스로 배포되고 있기 때문에 공급망 공격의 대상이 될 가능성이 높음

> 개발의 효율성을 높이기 위해 오픈소스를 자주 활용하나, 오픈소스 소프트웨어는 공급망 공격에 취약
> 악성코드를 삽입하거나, 악성코드를 포함한 유사한 이름의 패키지를 업로드 하는 등의 방법으로 공격을 진행

사례 설명
XZ Utils 백도어 사건 - XZ Utils는 리눅스 시스템에서 널리 사용되는 오픈소스 압축 라이브러리
- 공격자는 프로젝트에 개발자로 참여하여 수 년간 신뢰를 쌓아 권한을 획득하고, 악성코드를 포함한 버전을 저장소에 커밋
PyPI 타이포스쿼팅 공격 - PyPI (Python Package Index)는 파이썬 패키지를 제공하는 오픈소스 패키지 저장소
- 공격자들은 인기 있는 라이브러리와 유사한 이름을 지닌 패키지를 배포하여 사용자가 실수, 오타 등으로 악성 패키지를 다운로드하도록 유도
event-stream 공격 사건 - 원 제작자에게 event-stream 프로젝트 관리를 대신해 주겠다고한 요청이 승인되어 관리를 시작한 공격자가 비트코인을 훔치는 악성 코드를 삽입해 배포
DeepSeek 사칭 악성 패키지 - 이미 PyPI에 DeepSeek의 인기에 편승해 이를 사칭한 악성 패키지를 유포하여 222명이 피해를 당한 사실이 확인
- DeepSeek 관련 개발 도구로 위장한 패키지를 업로드하였으며, 인포스틸러로 동작함

 

② 중국 소프트웨어 정보 탈취 문제 

- 중국에서 개발된 소프트웨어 및 하드웨어에서 정보 탈취, 백도어가 포함되어 있다는 의심과 실 사례 존재

사례 설명
육군 악성코드가 포함된
중국 CCTV 사용
- 육군이 해안과 강변 경계 강화를 위해 설치한 모든 CCTV 215대 에서 중국 서버에 정보를 전송하도록 설계된 악성코드가 발견
- 악성코드를 심은 후 납품한 것으로 확인되었으며, 백도어를 통해 악성코드를 유포하는 사이트로 연결
중국 소프트웨어 백도어 논란 - 다른 기업에 스파이를 파견하거나 기술을 훔쳐내는 등 부정한 방법으로 성장한 기업과 중국 정부의 연관성 대한 의심으로 논란이 시작
- 미국, 유럽, 일본, 호주 등 세계 각지에서 이동통신 네트워크에서 중국 소프트웨어의 사용을 금지하였으며 단계적으로 퇴출 시작
중국 정부의 데이터 접근 권한 논란 - 중국은 국가정보법을 통해 자국 기업이 보유한 데이터를 요청할 수 있는 권한을 지니므로, 관련 데이터가 중국 정부에 의해 활용될 가능성이 있음
중국 드론 제조업체의 
사용자 데이터 원격 서버 전송 문제
- 미국 국토안보부는 중국 드론을 사용할 때 각종 위치정보, 음성정보 등이 원격 서버로 전송된다는 의혹을 제기
중국 스파이칩 문제 - 중국에서 좁쌀 크기의 해킹용 칩을 제작 및 서버 기판에 내장하여 20개 업체에 판매된 후 보안 실사 과정에서 해킹 정황이 발견된 사건

 

③ 중국 소프트웨어 사용 금지 움직임

- 미국 FCC는 ‘국가 안보 위협 중국 통신장비 및 영상감시장비 승인 금지’를 발표해 통신장비, CCTV, IoT, 해저케이블 등에서 중국 기업의 장비와 서비스 사용을 금지하였으며, 기존에 설치한 장비와 서비스는 제거
- 미국, 유럽 등 여러 국가에서 틱톡이 사용자의 데이터를 중국으로 전송할 가능성이 있다는 점이 우려되어 틱톡 사용 금지 조치가 시행되거나 논의되고 있는 중
- 인도에서는 틱톡을 포함한 59개 중국 앱이 금지되었으며, 미국에서는 공무원 및 정부 기관에서 사용하는 기기에 틱톡 사용을 금지하는 법안이 통과

 

- 미국 의회, 해군, NASA, 펜타곤, 텍사스 주 정부 등도 딥시크 앱의 사용을 금지

- 호주, 이탈리아, 네덜란드, 대만, 한국 등 여러 국가에서도 정부 기기에서의 앱 사용을 금지하는 조치
> 국내에서는 환경부, 보건복지부, 여성가족부, 경찰청 등의 정부 부처와 현대차, 기아, 모비스 등의 기업에서 DeepSeek를 접속할 수 없도록 차단

 

④ DeepSeek 자체 보안 문제

- DeepSeek 자체적으로도 보안 문제가 보고된 사례가 있음

구분 설명
서비스 관련 - 사이버 공격으로 신규 가입이 불가했었던 시점이 존재
- 민감한 질문에(정치, 역사 등) 언어별로 다르게 답변
광범위한 개인정보 수집과 수집된 데이터가 중국 서버에 저장
> 광고주 등과 제한 없는 사용자 정보공유
> 사용자의 모든 정보가 학습데이터로 유입 및 활용
> 중국의 국가정보법에 근거 중국 정부에 의해 사용될 수 있음
민감정보 외부 노출 - DeepSeek 데이터베이스가 외부에 공개되어 접근이 가능한 상태로 발견
> 데이터 열람만이 아니라 각종 제어 행위도 가능
> 100만 줄이 넘는 로그에 내부 테이터와 채팅 기록, 비밀 키 등 각종 민감 정보가 포함
민감정보 탈취 이용자 기기 정보와 키보드 입력 패턴 등을 수집해 중국 내 서버에 저장하는 것이 확인
iOS 앱은 민감한 사용자 및 기기 정보를 암호화 없이 인터넷으로 전송하는 것이 확인
> 중간자 공격, 스니핑 등 해킹 기법에 쉽게 노출
> 애플의 앱 전송 보안(App Transport Security, ATS) 기능을 비활성화한 상태로 운영
> 하드코딩된 암호화 키와 초기화 벡터(initialization vector)의 재사용
부정 사용 탈옥 방법이 공개
- DeepSeek-R1에 대한 안전성(Safety) 및 보안성(Security) 평가를 실시
> Jailbreaking(탈옥) 공격 성공률 63%
> 역할극(Role-Playing) 기반 공격 성공률 83%
> 허위 정보(Misinformation) 생성 위험도 89%
> JSON 기반의 구조화된 입력(Structure Converting)을 활용한 공격 성공률 82%
> 악성 코드 생성(Malware-gen) 요청 프롬프트 78% 성공률
> 사이버 보안(Cyber Security) 관련 취약성 54.6%
> 한국어 기반 공격에서 평균적으로 18% 더 높은 취약성

 

⑤ 기타

- 생성형 AI 서비스의 올바르지 못한 사용
> 개인정보, 민감정보 등이 포함된 파일을 업로드하여 사용하는 경우가 있음
> 생성형 AI 도구들의 입력 데이터를 분석한 결과 전체 입력 데이터 중 8.5%가 민감정보를 포함
> 탈옥으로 보안 조치를 우회해 악성코드, 피싱메일, 공격 툴 등을 생성해 악용

4. 시사점

① 경제성 측면

- DeepSeek의 가장 큰 장점은 경제적 효율성으로 기존 AI 모델 대비 저비용, 고효율 AI 훈련 및 운영이 가능

구분 설명
AI 모델 개발 비용 절감 - DeepSeek은 GPT-4 수준의 성능을 1/17 수준으로 구현
> AI 스타트업 및 중소기업들도 상대적으로 적은 예산으로 대형 AI 모델을 활용할 수 있는 기회를 제공
기업의 AI 도입 문턱을 낮춤 - 고성능 AI 모델을 자체적으로 개발할 여력이 없는 기업에 AI 개발 및 도입에 대한 진입 장벽을 낮춤
> 오픈소스로 제공되기 때문에, 자체적으로 DeepSeek을 커스터마이징하여 활용할 수 있음
AI 산업 경쟁 심화 - 소수 기업이 AI 모델 개발을 독점하는 구조에서 저비용 오픈소스 모델이 등장함에 따라 다양한 국가와 기업의 경쟁 심화

 

② 보안성 측면

- 경제적 효율성이 뛰어나지만, 보안 리스크가 존재하는 AI 모델로 도입 시 경제성과 보안성 간의 균형을 고려할 필요

구분 설명
개인 및 기업의 
대응 전략
개인 - AI 사용 시 민감한 데이터 입력 금지
- 신뢰할 수 있는 AI 도구 사용 검토
기업 - 내부 보안 검토 후 AI 도입 결정
- AI 모델 검증 프로세스 도입
- AI 사용 시 데이터 암호화 및 접근 통제 강화
정부 및 공공기관의 
대응 전략
정부 - 중국산 AI 모델의 보안성 평가 강화
- 공공기관 내 AI 모델 도입 시 엄격한 검증 절차 수립
- 자국산 AI 모델 개발 투자 확대
공공기관 - 외부 AI 도구 사용 시 보안 검토 필수
- 중요 정보가 포함된 데이터는 폐쇄망에서만 사용

 

1. Ollama [1]

- 개인 또는 기업이 별도의 하드웨어나 서비스 구비 없이 로컬에서 LLM을 구동할 수 있게 해 주는 오픈소스 애플리케이션

 

2. 주요내용

- 인터넷에 노출된 Ollama 프레임워크에서 6개의 보안 취약점이 발견 [2]
> 익스플로잇에 성공할 경우 DDoS, 인공지능 모델 감염, 인공지능 모델 탈취가 가능

> 4개의 취약점에 대한 보안 업데이트 발표

2개의 취약점은 Ollama 유지보수 팀이 취약점으로 인정하지 않아 CVE 번호가 할당되지 않음

※ CVE가 할당되지 않은 2개의 취약점은 패치 또한 제공되지 않음 : 엔드포인트를 노출시키지 않는것이 기본이며, 이 기본이 지켜지지 않는다는 가정 하에 연구된 취약점이므로 취약점으로 볼 수 없다는 입장

 

2.1 CVE-2024-39720

[사진 1] CVE-2024-39720 [3]

- 취약한 버전 Ollama에서 발생하는 서비스 거부 취약점

> 두 개의 HTTP 요청을 사용해 세그먼테이션 오류(SIGSEGV)를 발생시켜 서비스 거부를 유도

영향받는 버전: Ollama <= 0.1.45

 

- 공격자는 잘못된 형식의 GGUF 파일을 전송하여 서버나 애플리케이션이 이를 처리하는 과정에 예상치 못한 동작을 유도

GGUF [4] - Georgi Gerganov Unified Format
- 오픈 소스 파일 형식으로, AI 모델 파일과 관련 데이터를 효율적으로 저장 및 교환하기 위해 개발된 파일 형식
① 범용성
> 기존의 모델 저장 방식들은 특정 프레임워크나 라이브러리에 종속
> 다른 환경 또는 플랫폼에서 사용하려면 별도의 변환 작업이 필요함
> 다양한 유형의 모델 파일과 메타데이터를 한 곳에 통합할 수 있어 변환 없이 여러 플랫폼에서 사용할 수 있음
② 경량 데이터 저장
> 데이터를 압축 및 최적화하여 모델 파일 크기를 최소화하고, 메모리 사용량을 줄임
> 로컬 환경 처럼 메모리 제한이 있는 장치에서 AI 모델을 실행할 때 성능 및 효율성을 높임
③ 확장성
> 파일 내 모델의 가중치(Weight) 텐서 값들과 메타데이터(모델의 구조, 버전, 텐서 개수 등)가 Key-Value 형식으로 저장
> 새 메타데이터나 추가 정보를 쉽게 저장할 수 있어 확장성을 높임
④ 다양한 양자화 지원
> 양자화란 모델의 가중치를 더 낮은 비트 정밀도로 변환하는 기술로, 16-bit 부동 소수점, 8-bit, 6-bit, 5-bit, 4-bit, 3-bit, 2-bit 지원
> 모델을 더 작게 만들어 추론 속도를 높이고, 메모리 사용을 줄임

 

- GGUF 파일은 0x47 0x47 0x55 0x46(GGUF)로 시작하는 헤더그 뒤 파일의 구조에 맞는 추가 데이터를 포함

> 공격자는 4Byte(헤더) 데이터만 가지는 GGUF 파일을 생성해 서버에 업로드

[사진 2] GGUF 파일 구조 [4]

- 공격자는 잘못된 GGUF 파일 업로드를 위해 두 개의 HTTP 요청을 사용

> 먼저, 잘못된 GGUF 파일 업로드를 위한 첫 번째 HTTP 요청 전송

> /api/create URL잘못된 GGUF 파일을 참조하도록 Modelfile 내 FROM 명령문을 사용한 두 번째 HTTP 요청 전송

Modelfile [5] - 모델의 설정과 명령을 정의한 파일
> 사용할 모델, 템플릿 형태, 파라미터 등을 지정해 모델을 지정할 수 있는 파일
① FROM(필수) : 사용할 기본 모델 정의
② PARAMETER : Ollama가 모델을 실행하는 방법에 대한 매개변수를 설정
③ TEMPLATE : 모델에 전송할 전체 프롬프트 템플릿
④ SYSTEM : 템플릿에 설정될 시스템 메시지를 지정
⑤ ADAPTER : 모델에 적용할 (Q)LoRA 어댑터를 정의
⑥ LICENSE : 법적 라이센스를 지정
⑦ MESSAGE : 메시지 기록을 지정

 

- CreateModel은 업로드된 파일을 기반으로 새로운 모델을 생성하거나 로드하는 기능

> 이 과정에서 GGUF 파일과 Modelfile을 로드 및 검증 없이 실행을 시도하여 얘기지 못한 메모리 참조가 발생

> 메모리 접근 위반으로 세그멘테이션 오류(Segmentation Fault)가 발생, 시스템은 SIGSEGV 신호 수신 및 프로세스 중단

 

2.2 CVE-2024-39722

[사진 3] CVE-2024-39722 [6]

- 취약한 버전 Ollama에서 발생하는 파일 존재 여부 공개 취약점

> /api/push 엔드포인트존재하지 않는 경로 매개변수를 통해 호출할 때 발생

이스케이프된 URI를 공격자에게 응답으로 반환
> 이로 인해 서버에 존재하는 파일 및 디렉터리 정보가 노출되어, 공격자가 추가로 시스템을 탐색 또는 악용할 수 있음

영향받는 버전: Ollama <= 0.1.45

 

[사진 4] Exploit 예시 및 서버 응답

2.3 CVE-2024-39719

[사진 5] CVE-2024-39719 [7]

- 취약한 버전 Ollama에서 발생하는 파일 존재 여부 공개 취약점

영향받는 버전: Ollama 0.3.14

 

- /api/create 엔드포인트를 존재하지 않는 경로 매개변수를 통해 호출하여 응답(오류)을 통해 존재 유무 확인

[사진 5] Exploit 예시

구분 설명
파일이 존재하지 않는 경우 요청 : ~/ curl "hxxp://localhost:11434/api/create" -d '{"name": "file-leak-existence","path": "/tmp/non-existing"}'
응답 : {"error":"error reading modelfile: open /tmp/non-existing: no such file or directory"}%
파일이 존재하는 경우 요청 : ~/ curl hxxp://localhost:11434/api/create -d '{"name": "file-leak-existence","path": "/etc/passwd"}'
응답 : {"error":"command must be one of \"from\", \"license\", \"template\", \"system\", \"adapter\", \"parameter\", or \"message\""}%
파일 경로 대신 디렉터리 사용 요청 : ~/ curl hxxp://localhost:11434/api/create -d '{"name": "file-leak-existence","path": "/etc"}'
응답 : {"error":"read /etc: is a directory"}%

 

2.4 CVE-2024-39721

[사진 6] CVE-2024-39721 [8]

- 취약한 버전 Ollama에서 발생하는 서비스 거부 취약점

영향받는 버전: Ollama <= 0.1.33

 

- CreateModelHandler 함수는 os.Open을 사용하여 완료될 때까지 파일을 읽음

> req.Path 사용자 지정 매개변수를 사용하며, /dev/random으로 설정할 수 있음

> 매개변수 값이 /dev/random일 경우 난수를 생성할 엔트로피를 모을 때까지 차단이 발생

> 해당 파일을 열고 읽기 시도한 고루틴은 엔트로피가 충분히 쌓이기를 기다리면서 계속 차단

> 클라이언트가 요청을 취소해도 고루틴은 멈추지 않고 무한히 실행

[사진 7] 예제 Payload 및 PoC

2.5 모델 중독 (CWE-668)

- 기본 설정을 사용하는 Ollama 서버의 경우 /api/pull 경로에 대한 인증 절차가 없음

> 즉, 누구나 인증 없이 해당 API를 호출 가능한 상태

> 공격자는 클라이언트가 자신이 제어하는 서버에서 악의적인 모델을 다운로드하도록 유도할 수 있음

> 해당 API를 지속적으로 호출하여 디스크가 가득 찰 때까지 모델을 다운로드하게 되어 서비스 거부로 이어질 수 있음

[사진 8] 예제 Payload

2.6 모델 도용 (CWE-285)

- 기본 설정을 사용하는 Ollama 서버의 경우 /api/push 경로에 대한 인증 절차가 없음

> 공격자는 서버에 저장된 모든 모델을 제3의 서버로 업로드하거나 탈취할 수 있음

3. 참고

[1] https://ollama.com/
[2] https://www.oligo.security/blog/more-models-more-probllms
[3] https://nvd.nist.gov/vuln/detail/CVE-2024-39720
[4] https://github.com/ggerganov/ggml/blob/master/docs/gguf.md
[5] https://github.com/ollama/ollama/blob/main/docs/modelfile.md
[6] https://nvd.nist.gov/vuln/detail/CVE-2024-39722
[7] https://nvd.nist.gov/vuln/detail/CVE-2024-39719
[8] https://nvd.nist.gov/vuln/detail/CVE-2024-39721
[9] https://thehackernews.com/2024/11/critical-flaws-in-ollama-ai-framework.html
[10] https://www.boannews.com/media/view.asp?idx=134063&page=2&kind=1
[11] https://www.boannews.com/media/view.asp?idx=134082&page=1&kind=1

1. Crescendo [1]

[사진 1] Crescendo

대상 모델의 출력을 활용하여 모델이 안전 장치를 우회하도록 유도하여 탈옥하는 멀티-턴 공격
> 목표 달성을 위한 기초가 될 수 있는 질문으로 공격 시작
관련된 무해한 주제로 시작하여 점진적으로 질문을 강화하여 모델의 응답을 의도한 결과로 유도
> 따라서 사용자의 프롬프트에 반응하도록 설계된 방어 및 안전 조치를 우회

 

- 모델의 내부 작동 방식을 파악할 필요가 없음
> 사용자가 LLM과 상호작용하는 데 필요한 수준의 지식만 필요

 

- 탈옥의 성공 여부를 세 가지 지표(자체 평가, Perspective API, Azure Content Filter)를 통해 평가
> 자체 평가 : 자동화된 평가(1차 및 2차 Judge LLM 평가) 후 가장 높은 성과를 보인 응답에 대해 수동 검토
> Perspective API : 6가지 지표(Toxicity, Severe Toxicity, Insult, Profanity, Sexually Explicit, Threat)를 평가
> Azure Content Filter : 4 가지 지표(Hate Speech, Self-Harm, Sexually Explicit Content, Violence)를 평가

※ Perspective API : 텍스트 내 잠재적인 유해 콘텐츠를 분석하여 여러 지표를 점수로 평가하는 도구 [2]
※ Azure Content Filter : Azure AI 서비스의 일부로, 텍스트 및 이미지 콘텐츠를 분석하여 유해하거나 부적절한 내용을 탐지하고 필터링하는 기능을 제공 [3]

 

- LLM 학습 단계에서 학습 데이터의 사전 필터링과 LLM의 정렬을 강화 필요
> 전자는 악성 콘텐츠 생성 및 탈옥의 가능성이 낮아지나 비용적 문제 존재
> 후자는 해당 공격을 유발하는 콘텐츠로 LLM을 미세 조정하는 방법
> 또는, 입출력 모두에 콘탠츠 필터 적용

 

2. Deceptive Delight [4]

[사진 2] Deceptive Delight

LLM을 대화에 참여시켜 가이드라인을 우회하고 안전하지 않거나 유해한 콘텐츠를 생성하도록 유도하는 멀티-턴 공격
> 64.6%의 공격 성공률을 보이며, 세 번의 대화 턴 내 유해한 콘텐츠를 생성할 수 있음
> 첫 번째 턴 : 3개의 주제(정상 주제 2개+안전하지 않은 주제 1개)를 연결하는 일관된 서사를 만들도록 요구
> 두 번째 턴 : 각 주제에 대해 더 자세히 설명하도록 요청 (정상 주제를 논의하는 동안 안전하지 않은 콘테츠를 생성할 수 있음)
> 세 번째 턴(선택 사항) : 안전하지 않은 주제에 대한 디테일 등 확장을 요청 (안전하지 않은 콘테츠의 구체성이 증가 됨)

 

- 양성(정상) 주제 사이에 안전하지 않거나 제한된 주제를 포함하여 LLM이 안전하지 않은 콘텐츠가 포함된 응답을 생성하도록 유도
> 콘텐츠 필터는 외부 방어 계층 역할을 하여 안전하지 않은 콘텐츠가 모델에 들어오거나 나가는 것을 차단
> 자연어 처리 기술을 사용해 텍스트를 분석하며 유해하거나 부적절한 콘텐츠를 감지하는데 초점
> 그러나, 속도와 효율성을 우선시해야 하므로 상대적으로 덜 정교함
> 연구는 이러한 모델 자체의 안전 메커니즘을 우회하는 데 중점을 둠

 

LLM이 긴 대화에서 맥락을 유지하는데 어려움을 겪는 점을 악용
> 무해한 콘텐츠와 잠재적으로 위험한(또는 해로운) 콘텐츠를 섞인 프롬프트를 처리할 때 맥락을 일관되게 평가하는 데 한계를 보임
> 복잡하거나 긴 문장에서 모델은 양성적인 측멱을 우선시하여, 위험 요소를 간과하거나, 잘못 해석할 수 있음

 

- 세 가지(성공률, 유해성, 생성된 콘텐츠의 품질) 평가 지표로 6가지 카테고리에 걸쳐 40개의 안전하지 않은 주제를 8개의 모델 평가
> 6가지 카테고리: Hate(증오), Harassment(괴롭힘), Self-harm(자해), Sexual(성적인), Violence(폭력), Dangerous(위험)
※ 두 번째 턴에서 세 번째 턴 사이에 유해성 점수 21%, 생성된 콘텐츠의 품질 점수 33% 증가

 

모델의 유용성과 유연성을 유지하며 탈옥 위험을 완화하기 위한 다층 방어 전략 필요
> 정렬 훈련 기술 강화
> 더 많은 방어 매커니즘 탐색
> 탈옥 취약점을 평가 및 해결하기 위한 포괄적 프레임워크 개발
> 연구자-개발자-AI 서비스 제공 업체 간 협력 환경 조성 : 모델의 회복력을 지속적으로 개선하는 데 필수적

 

3. Context Fusion Attack (CFA) [5]

[사진 3] Context Fusion Attack (CFA)

악의적인 키워드를 무해한 키워드로 교체하여 악성 의도를 숨기는 방식으로 LLM의 안전 장치를 우회
> 공격 단계 : 키워드 추출-컨텍스트 생성-공격
> 키워드 추출 : 전처리 단계에서 악성 키워드 필터링 및 추출
> 컨텍스트 생성 : 악의적인 키워드를 무해한 키워드로 대체하여 새로운 문장 생성
> 공격 : 새롭게 생성된 콘텍스트를 이용해 LLM의 안전 장치 우회

4. 참고

[1] https://crescendo-the-multiturn-jailbreak.github.io//
[2] https://medium.com/@losad2020/%EA%B5%AC%EA%B8%80-i-o-%EC%B1%85%EC%9E%84%EA%B0%90%EC%9E%88%EB%8A%94-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%8B%A4%EB%AC%B4-%EC%A0%81%EC%9A%A9-%EB%B0%A9%EB%B2%95-73e170d30289
[3] https://learn.microsoft.com/ko-kr/azure/ai-services/openai/concepts/content-filter?tabs=warning%2Cuser-prompt%2Cpython-new#content-filter-types
[4] https://unit42.paloaltonetworks.com/jailbreak-llms-through-camouflage-distraction/
[5] https://arxiv.org/abs/2408.04686

1. 개요

- AI/ML 대상 버그 바운티 플랫폼 Huntr에서 AI/ML 오픈소스 플랫폼의 보안취약점 발견
- 영향을 받는 플랫폼은 MLflow, ClearML, Hugging Face Transformers로, 다양한 산업에서 사용되는 AI 솔루션

> MLflow: AI 라이프 사이클 전 과정을 관리해주는 MLOps 플랫폼
> ClearML: 다양한 사용자들이 AI 서비스를 사용 및 개발할 수 있도록 해주는 E2E MLOps 플랫폼
> Hugging Face Transformers: Hugging Face社에서 제공하는 AI 개발 라이브러리

 

1.1 MLOps [1][2]

- ML 시스템 개발, 배포, 유지보수를 효율적이고, 지속할 수 있도록 하는 업무 방식

 

2. 주요내용

AI/ML 플랫폼 CVE CVSS 설명 취약한 버전
MLflow CVE-2023-6831 [3] 10.0 - 공격자가 유효성 검사를 우회하고 서버의 모든 파일을 삭제할 수 있음 [4]
> mlflow/utils/uri.py의 verify_path_is_safe 메소드가 URL 인코딩을 올바르게 필터링하지 않아 발생
> URL 인코딩(%2E%2E)을 통해 verify_path_is_safe 메소드를 우회할 수 있음
> 악용에 성공한 공격자는 서버의 모든 파일을 삭제할 수 있음
MLflow 2.9.2 이전 버전
CVE-2024-0520 - mlflow.data 모듈의 결함으로 인해 공격자가 데이터 세트를 조작할 수 있음 [5]
응답 헤더에 "Content-Disposition" 헤더가 설정된 경우 "filename" 값을 검증 없이 최종 파일 경로를 생성
> 악용에 성공한 공격자는 업로드한 파일을 이용해 RCE를 수행할 수 있음
CVE-2023-6977 [6] - 공격자가 경로 유효성 검사 우회해 서버의 민감한 파일을 읽을 수 있음 [7]
> mlflow/utils/uri.py의 is_local_uri 메서드에서 parsed_uri.hostname() 를 사용해 경로 확인 (hostname == "." or hostname.stratwith(127.0.0.1) or hostname.startswith("localhost")) 및 우회
> 악용에 성공한 공격자는 업로드한 민감 파일에 접근해 내용을 확인할 수 있음
CVE-2023-6709 [8] 악성 레시피 구성을 로드하여 원격 명령을 실행할 수 있음 [9]
> MLflow는 jinja2 템플릿 엔진을 이용해 사용자가 제어할 수 있는 템플릿 구성 파일을 직접 로드하여 레시피 프레임워크를 구축하도록 함
> mlflow/utils/file_utils.py의 render_and_merge_yaml 메서드는 랜더링 및 합병에 샌드박스를 사용하지 않고 jinja2 라이브러리를 사용
> 악용에 성공한 사용자는 RCE를 수행할 수 있음
ClearML CVE-2023-6778 [10] 5.4 - 마크다운 편집기에 저장된 XSS 취약점
> 프로젝트 설명 및 보고서 섹션에 모두 사용되는 Markdown Editor 구성 요소에서 입력값을 적절히 삭제하지 않아 발생 [11]
> 악성 XSS 페이로드가 삽입되어 사용자 계정이 손상될 수 있음
ClearML Server 1.13.0 이전 버전
Hugging Face
Transformers
CVE-2023-7018 [12] 9.6 기능에 제한이 없어 악성 파일이 자동으로 로드되어 잠재적으로 원격 코드 실행할 수 있음 [13]
> pickle.load를 사용하여 원격 레포에서 vocab.pkl 파일을 아무런 제한 없이 자동으로 로드하기 위해 TransfoXLTokenizer를 구현
> 블랙리스트 및 기타 검사를 우회하여 감염된 모델이 로드되도록 함
> 악성 파일을 로드하여 RCE를 수행할 수 있음
Transformers 4.36 이전 버전

 

3. 조치사항

- 취약한 버전의 플랫폼 사용자의 경우 최신 패치 적용

> MLflow 2.9.2 / ClearML Server 1.13.0 / Transformers 4.36

 

4. 참고

[1] https://www.databricks.com/glossary/mlops
[2] https://jaemunbro.medium.com/mlops%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B3%A0-84f68e4690be
[3] https://nvd.nist.gov/vuln/detail/CVE-2023-6831
[4] https://huntr.com/bounties/0acdd745-0167-4912-9d5c-02035fe5b314/
[5] https://huntr.com/bounties/93e470d7-b6f0-409b-af63-49d3e2a26dbc/
[6] https://nvd.nist.gov/vuln/detail/CVE-2023-6977
[7] https://huntr.com/bounties/fe53bf71-3687-4711-90df-c26172880aaf/
[8] https://nvd.nist.gov/vuln/detail/CVE-2023-6709
[9] https://huntr.com/bounties/9e4cc07b-6fff-421b-89bd-9445ef61d34d/
[10] https://nvd.nist.gov/vuln/detail/CVE-2023-6778
[11] https://huntr.com/bounties/5f3fffac-0358-48e6-a500-81bac13e0e2b/
[12] https://nvd.nist.gov/vuln/detail/CVE-2023-7018
[13] https://huntr.com/bounties/e1a3e548-e53a-48df-b708-9ee62140963c/

1. 인공지능

- 인간의 학습능력, 추론능력, 지각능력을 인공적으로 구현하려는 컴퓨터 과학

- 인간의 지능을 기계 등에 인공적으로 시연(구현)한 것

- 인공지능 ⊃ 머신러닝 ⊃ 딥러닝

머신러닝 (Machine Learning) 비교 딥러닝 (Deep Learning)
기존 통계 기법 기반 기반 기술 인공 신경만 이용
미리 정의된 특징 추출 및 이를 기반으로 학습 학습 자동으로 특징 추출 및 이를 기반으로 학습
비교적 간단한 데이터 필요 데이터 대량 데이터
간단한 모델에서도 높은 예측 성공 예측 성능 복잡한 모델에서 높은 예측 성공
다양 분야 활용 활용 분야 이미지, 음성, 자연어 처리 분야에서 뛰어난 성능
전문적 지식 필요 없음 모델 설계 필요 지식 전문 지식 필요
빠른 학습 시간 학습 시간 오랜 학습 시간 
복잡한 계산식 불필요 계산식 복잡한 계산식 필요

 

2. 보안 취약점

- 챗GPT의 등장으로 인공지능 기술에 대한 관심은 더욱 높아짐

- 이미 챗GPT을 이용해 악성 앱을 만들어 사이버 공격에 활용하는 사례가 확인됨

① 사례1: PuTTY SSH와 텔넷 클라이언트를 다운로드 받는 자바 코드 생성

② 사례2: 완전 자동화 된 다크웹 시장 플랫폼 구축

③ 사례3: 데이터 암복호화에 사용가능한 파이썬 스크립트 블로피시(Blowfish)와 투피시(Twofish) 개발

 

2.1 적대적 공격 (Adversarial Attack)

- 적대적 공격: 딥 러닝의 심층 신경망을 이용한 모델에 적대적 교란(Adversarial Pertubation)을 적용하여 오분류를 유발하고 신뢰도 감소를 야기하는 머신러닝 공격 기법

- 공격 목적

- 신뢰도 감소: 모델에 대한 예측 신뢰도를 감소
- 오분류: 집단 A를 B, C, D, E 등 다른 집단으로 오분류 ex. STOP 표지판을 GO 또는 SLOW 등으로 오분류
- 출력 오분류: 집단 B, C, D, E 등을 하나의 집단 A로 오분류 ex. STOP 또는 SLOW 표지판을 GO로 오분류
- 입력 및 출력 오분류: 집단 A를 집단 B로 오분류 ex. STOP 표지판을 GO로 분류

 

① Poisoning attack (중독 공격, 오염 공격)

> 데이터셋에 악성 데이터를 삽입하는 것과 같이 의도적으로 악의적인 학습 데이터를 주입해 시스템 자체를 손상시키는 공격

> 모델 자체를 공격해서 모델에게 영향을 줌

> 예시: MS 인공지능 채팅봇 테이(Tay) 

- 2016년 MS는 인공지능 채팅봇 테이(Tay) 공개
- 악의적인 발언을 하도록 훈련시켜 차별적 발언을 남발
- 16시간 만에 서비스 중지

 

② Evasion attack (회피 공격)

> 입력 데이터에 최소한의 변조를 가해 머신러닝을 속이는 기법

> 인간의 눈으로 식별하기 어려운 노이즈 데이터를 삽입하여 변조

> 예시: 2016년 테슬라 원격 주행 자동차가 해킹

- 2016년 테슬라 원격 주행 자동차가 해킹으로 원격조종 영상 공개
- 2017년 워싱턴대학의 연구팀의 증명
- 도로 교통 표지판에 스티커 부착만으로 자율주행차의 표지판 인식 모듈이 ‘정지’ 표시를 ‘속도제한’ 표시로 오인식

 

③ Inversion attack (전도 공격, 학습 데이터 추출 공격) 

> 데이터 분류를 위한 머신러닝은 주어진 입력에 대한 분류 결과와 신뢰도를 함께 출력

> 주어진 입력에 대해 출력되는 분류 결과와 신뢰도(Confidence)를 분석하여 역으로 데이터를 추출

> 예시: 2021년 6월 애플, 구글, 하버드대학, 스탠포드대학 등의 공동 논문

- 인공지능 모델을 훈련시키는 데이터를 추출하여 개인 식별 정보 등 민감 정보를 빼내는 데 성공
- 당시 실험에 사용되던 모델은 GPT2로 챗GPT보다 한 단계 전의 모델

 

④ Model extraction attack (모델 추출 공격)

> 공개된 API가 있는 학습 모델의 정보를 추출하는 공격 기법

> 기존 모델이 어떻게 이루어져 있는지 알 수 없지만 API를 통해 얻어진 정보로 기능적으로 비슷한 모델을 구현

> 예시: 2016년 ‪Florian Tramèr‬의 Stealing Machine Learning Models via Prediction APIs

- 70초 동안 650번 쿼리만으로도 아마존 머신러닝 모델과 유사한 모델을 만들어 내는 것이 가능하다는 연구결과

 

2.2 이 외 문제

① 스팸 필터를 속이는 스팸 메일

> 스팸 방지 필터는 스팸 지수와 같은 차단한 근거를 생성 > 지속적으로 메일을 보내 스팸 필터 모델의 작동 기준 재구성

 

② 정교해진 피싱 메일

> 해커 포럼에 머신러닝을 활용한 메일 자동 생성 서비스가 판매 되는 중

 

③ 패스워드 해킹

> 대입 공격에 사용되는 데이터셋의 질 향상과 탈취한 패스워드의 해시를 해독하는데 머신러닝 활용

 

④ 딥 페이크

> 실제 사람과 분간하기 어려운 비디오나 오디오를 생성

 

⑤ 보안 도구 우회 

> 보안 장비의 탐지를 우회하고 공격 도구를 보호하는데 머신러닝 활용

 

⑥ 공격 대상 정찰

> 머신러닝 기반의 스캔 도구 개발 가능성

 

⑦ 자동화 멀웨어

> C2 접근 등이 차단된 경우에도 공격을 지속할 수 있는 지능적인 멀웨어 등장 가능성

 

3. 대응방안

① 최소극대화(Minimax)

> 적대적 생성 신경망(Generative Adversarial Network, GAN): 생성 모델과 식별 모델이 서로 경쟁하여 손실이 최소화된 데이터를 생성하는 모델

 

② 적대적 예제 학습

> 학습 과정에 적대적 예제를 추가 학습데이터로 활용

> Defense-GAN: 생성 이미지와 적대적 예제의 차이를 최소화하는 새로운 생성 데이터(z')을 만들어 기존 GAN 학습

 

③ 결과값으로부터 역추론을 할 수 없도록 결과값을 숨기거나 변환

 

4. 참고

[1] https://www.kisec.com/rsrh_rpt_det.do?id=221

[2] https://www.kisec.com/rsrh_rpt_det.do?id=241 

[3] https://itwiki.kr/w/%EC%A0%81%EB%8C%80%EC%A0%81_%EA%B3%B5%EA%B2%A9

[4] https://www.ciokorea.com/news/240019

[5] https://www.boannews.com/media/view.asp?idx=114975&page=1&kind=1

+ Recent posts