본 게시글은 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 도구 사용 시 보안 검토 필수 - 중요 정보가 포함된 데이터는 폐쇄망에서만 사용
- 개인 또는 기업이 별도의 하드웨어나 서비스 구비 없이 로컬에서 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 경로에 대한 인증 절차가 없음
- 대상 모델의 출력을 활용하여 모델이 안전 장치를 우회하도록 유도하여 탈옥하는 멀티-턴 공격 > 목표 달성을 위한 기초가 될 수 있는 질문으로 공격 시작 > 관련된 무해한 주제로 시작하여 점진적으로 질문을 강화하여 모델의 응답을 의도한 결과로 유도 > 따라서 사용자의 프롬프트에 반응하도록 설계된 방어 및 안전 조치를 우회
- 모델의 내부 작동 방식을 파악할 필요가 없음 > 사용자가 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의 안전 장치 우회
- 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
③ 사례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를 통해 얻어진 정보로 기능적으로 비슷한 모델을 구현