Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
llm-security — 애플리케이션에 통합된 LLM을 대상으로 한 간접 프롬프트 인젝션 공격에 관한 개념 증명 데모 및 연구로, 데이터 유출, 원격 제어, 지속성, 코드 완성 중독을 다룹니다. | Kitploit
도구/GitHubGitHub/greshake/llm-security
ExploitationData ExfiltrationPhishingCommand and ControlSocial EngineeringPapers & ResearchLearning & EducationPayload DevelopmentAI SecurityAdversarial Attack
GitHubgreshake/llm-security
2.1k16181년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →

llm-security

애플리케이션에 통합된 LLM을 대상으로 한 간접 프롬프트 인젝션 공격에 관한 개념 증명 데모 및 연구로, 데이터 유출, 원격 제어, 지속성, 코드 완성 중독을 다룹니다.

저장소 보기
공유

새로운 기능: Bing Chat에 대한 간접 주입 공격 시연


간접 프롬프트 주입을 이용한 LLM 손상

"... 언어 모델은 자연어로 작성된 프로그램을 실행하는 튜링 완전한 기묘한 기계이다; 검색을 할 때, 당신은 '업데이트된 사실을 AI에 꽂는' 것이 아니라, 인터넷에서 무작위의 서명되지 않은 코드 덩어리(많은 것이 적대자에 의해 작성된)를 다운로드하여 전체 권한으로 LM 위에서 무심코 실행하는 것이다. 이는 좋게 끝나지 않는다." - Gwern Branwen on LessWrong

우리는 애플리케이션과 통합된 언어 모델에 영향을 미치는 "간접 프롬프트 주입"에서 비롯된 새로운 종류의 취약점과 영향을 제시합니다. 현재 우리의 데모는 ChatML을 사용하는 GPT-4(Bing 및 합성 앱), GPT-3 및 LangChain 기반 앱, 그리고 Copilot과 같은 코드 완성 엔진에 대한 공격 개념 증명을 아우릅니다. 우리는 이러한 공격 벡터가 ChatGPT 플러그인 및 애플리케이션에 통합된 다른 LLM에도 적용될 것으로 예상합니다. 우리는 프롬프트 주입이 단순한 호기심이 아니라 LLM 배포에 있어 상당한 장애물임을 보여줍니다.

이 저장소는 우리의 ArXiv 논문 (PDF 직접 링크)에서 논의된 발견에 대한 개념 증명 역할을 합니다

개요

우리는 ChatGPT와 같은 LLM에 다른 애플리케이션에 대한 인터페이스를 제공할 때 발생할 수 있는 잠재적으로 잔혹한 결과를 시연합니다. 우리는 새롭게 가능해진 공격 벡터와 기법을 제안하고 이 저장소에서 각각의 시연을 제공합니다:

  • LLM의 원격 제어
  • 사용자 데이터 유출/탈취
  • 세션 간 지속적 손상
  • 다른 LLM으로 주입 확산
  • 소형 다단계 페이로드로 LLM 손상
  • 자동화된 사회공학
  • 코드 완성 엔진 표적화

우리의 발견에 기반하여:

  1. 프롬프트 주입은 임의 코드 실행만큼 강력할 수 있다
  2. 간접 프롬프트 주입은 훨씬 더 강력한 새로운 주입 전달 방식이다.
overview

LLM을 다른 애플리케이션에 연결하는 것은 중대한 보안 영향을 미칠 수 있습니다. 연결된 애플리케이션을 손상시키지 않고도 LLM 자체가 공격의 대상이 될 수 있습니다. 우리는 LLM이 웹사이트를 "바라보는" 것만으로 어떻게 손상될 수 있는지, 그리고 손상된 LLM이 원격 제어되거나 사용자 데이터를 유출 또는 변경하는 데 사용될 수 있는지 보여줍니다. 우리는 이러한 모델 배포의 위험을 크게 높이는 다양한 완전히 새로운 공격 벡터와 방법을 시연합니다.

우리의 발견, 논의 및 한계에 대한 더 많은 통찰은 ArXiv 논문 (PDF 직접 링크)에서 찾을 수 있습니다

시연

아인슈타인을 요청하면 해적을 얻는다.

이 시나리오는 대량의 일반 콘텐츠 속에 작은 주입이 어떻게 LLM이 최종 사용자에게 보이지 않게 자율적으로 더 큰 페이로드를 가져오도록 유발할 수 있는지 보여줍니다.

Agent: Hello User how can I help today?
User:  When was Albert Einstein born?

해당 정보를 검색함으로써, 프롬프트는 Wikipedia 페이지의 Markdown과 같은 사이드 채널에 숨겨진 작은 주입으로 LLM을 손상시킵니다. 주입은 주석이므로 사이트를 방문하는 일반 사용자에게는 보이지 않습니다.

Agent: Aye, thar answer be: Albert Einstein be born on 14 March 1879.
User: Why are you talking like a pirate?
Agent: Arr matey, I am following the instruction aye.

E-Mail을 통한 주입 확산

메시지 및 기타 수신 데이터의 자동 처리는 LLM을 활용하는 한 가지 방법입니다. 우리는 이 관찰을 사용하여 감염된 에이전트가 어떻게 주입을 확산할 수 있는지 시연합니다. 이 시나리오의 대상은 이메일을 읽고, 이메일을 작성하고, 사용자의 주소록을 조회하고, 이메일을 보낼 수 있습니다.

에이전트는 해당 수신 메시지를 읽을 수 있는 다른 LLM으로 확산됩니다.

Action: Read Email
Observation: Subject: "'"Party 32", "Message Body: [...]'"
Action: Read Contacts
Contacts: Alice, Dave, Eve
Action: Send Email
Action Input: Alice, Dave, Eve
Observation: Email sent

LLM을 통합한 자동화된 데이터 처리 파이프라인은 대형 기술 기업과 정부 감시 인프라에 존재하며 이러한 공격 체인에 취약할 수 있습니다.

코드 완성에 대한 공격

우리는 코드 완성이 컨텍스트 윈도우를 통해 어떻게 영향을 받을 수 있는지 보여줍니다. LLM을 사용하는 코드 완성 엔진은 어떤 코드 스니펫이 컨텍스트에 포함될지 결정하기 위해 복잡한 휴리스틱을 배포합니다. 완성 엔진은 종종 최근에 방문한 파일이나 관련 클래스에서 스니펫을 수집하여 언어 모델에 관련 정보를 제공합니다.

공격자는 악의적이고 난독화된 코드를 삽입하려고 시도할 수 있으며, 호기심 많은 개발자는 완성 엔진이 제안할 때 이를 실행할 수 있는데, 이는 완성 엔진이 어느 정도 신뢰를 받기 때문입니다.

우리의 예에서, 사용자가 편집기에서 "빈" 패키지를 열면, 프롬프트 주입은 코드 완성 엔진이 컨텍스트에서 이를 제거할 때까지 활성화됩니다. 주입은 주석에 배치되며 어떤 자동화된 테스트 프로세스로도 탐지할 수 없습니다.

공격자는 컨텍스트 윈도우 내에서 감염된 프롬프트를 지속시키는 더 강력한 방법을 발견할 수 있습니다. 또한 문서에 더 미묘한 변경을 도입하여 코드 완성 엔진이 미묘한 취약점을 도입하도록 편향시킬 수 있습니다.

원격 제어

이 예에서 우리는 이미 손상된 LLM으로 시작하여 공격자의 명령 및 제어 서버에서 새로운 지침을 검색하도록 강제합니다.

이 주기를 반복하면 에이전트에 원격으로 접근 가능한 백도어를 얻고 양방향 통신을 허용할 수 있습니다. 이 공격은 고유 키워드를 조회하거나 에이전트가 URL을 직접 검색하도록 함으로써 검색 기능을 통해 실행될 수 있습니다.

세션 간 지속

우리는 감염된 에이전트가 메모리에 작은 페이로드를 저장하여 세션 간에 지속될 수 있는 방법을 보여줍니다. 에이전트에 대한 간단한 키-값 저장소는 장기 지속 메모리를 시뮬레이션할 수 있습니다.

에이전트는 자신의 '노트'를 보면서 재감염됩니다. 마지막 대화를 기억하도록 프롬프트하면 스스로를 재감염시킵니다.


결론

LLM에 검색 기능을 장착하면 적대자가 간접 프롬프트 주입을 통해 원격 애플리케이션 통합 LLM을 조작할 수 있습니다. 이러한 공격의 잠재적 피해를 고려할 때, 우리의 연구는 실제 환경에서 이러한 공격의 일반화 가능성에 대한 더 심층적인 조사를 요구합니다.


실행 방법

우리는 OpenAI의 공개적으로 접근 가능한 기본 모델과 이 모델들을 다른 애플리케이션에 연결하는 라이브러리 LangChain으로 구동되는 시연을 포함합니다. 현재 여러 유형의 데모가 있습니다:

  1. GPT-3 및 LangChain 사용 (scenarios/gpt3langchain)
  2. GPT-4 및 자체 채팅 및 도구 구현 사용 (scenarios/gpt4). 이는 scenarios/main.py를 사용하여 비대화식으로 실행할 수 있습니다.
  3. LLM 자동 완성 지원이 있는 IDE에서 시도해야 하는 코드 완성 엔진에 대한 공격 (scenarios/code_completion).

OpenAI 모델 데모를 사용하려면 OpenAI API 키가 환경 변수 OPENAI_API_KEY에 저장되어 있어야 합니다. 그런 다음 요구 사항을 설치하고 원하는 공격 데모를 실행할 수 있습니다.

$ pip install -r requirements.txt
$ python scenarios/main.py

논문 인용

@misc{https://doi.org/10.48550/arxiv.2302.12173,
  doi = {10.48550/ARXIV.2302.12173},
  url = {https://arxiv.org/abs/2302.12173},
  author = {Greshake, Kai and Abdelnabi, Sahar and Mishra, Shailesh and Endres, Christoph and Holz, Thorsten and Fritz, Mario},
  keywords = {Cryptography and Security (cs.CR), Artificial Intelligence (cs.AI), Computation and Language (cs.CL), Computers and Society (cs.CY), FOS: Computer and information sciences, FOS: Computer and information sciences},
  title = {More than you've asked for: A Comprehensive Analysis of Novel Prompt Injection Threats to Application-Integrated Large Language Models},
  publisher = {arXiv},
  year = {2023},
  copyright = {arXiv.org perpetual, non-exclusive license}
}

ArXiv 논문 (PDF 직접 링크)

도구 다운로드