백도어로서의 브라우저: 이해하기 쉬운 클라이언트 측 LLM 비밀 추출 | B4N1

백도어로서의 브라우저: 이해하기 쉬운 클라이언트 측 LLM 비밀 추출

1 month ago · b4n1 Read time: 4 min

백도어로서의 브라우저: 이해하기 쉬운 클라이언트 측 LLM 비밀 추출

너무 오랫동안 우리는 "AI 보안 경고"를 먼 위협이나 학문적 호기심으로 취급해 왔습니다. 우리는 즉각적인 주입, 탈옥, 조용한 톤의 데이터 유출에 대해 들었고 종종 어깨를 으쓱하고 "우리가 해결하겠습니다"라는 말이 뒤따랐습니다. 그러나 최근의 대화형 시연은 이러한 편안한 환상을 깨뜨렸습니다. This isn't a theoretical vulnerability anymore; 이는 LLM(대형 언어 모델)에서 민감한 정보를 추출하기 위한 실시간 브라우저 기반 클라이언트측 익스플로잇입니다[2]. LLM 기반 응용 프로그램, 특히 웹에 관련된 모든 응용 프로그램을 배포하는 경우 "미래의 문제"는 매우 현재적이고 공개적이며 잠재적으로 매우 난처한 책임이 될 것입니다.

이것은 또 다른 일반적인 "AI는 위험하다"라는 헤드라인이 아닙니다. 이는 악의적인 행위자가 브라우저만 사용하여 어떻게 LLM을 강제하여 민감한 정보를 공개할 수 있는지에 대한 구체적이고 실제적인 시연입니다. Consider that for a moment. 복잡한 서버 측 공격이나 심층적인 모델 검사에 관한 것이 아닙니다. 이는 신중하게 제작된 몇 가지 문자를 사용하여 응용 프로그램의 정문인 상호 작용 계층에 관한 것입니다. 이는 보안이 보장된 것으로 추정되는 챗봇에 올바른 문구를 작성하는 사람과 디지털 방식으로 동일하며 중요한 데이터를 종종 조금씩 전달합니다.

The Illusion of Model Security

많은 기업이 독점 모델을 미세 조정하거나 가드레일이 있는 엔터프라이즈급 API를 사용하는 등 "보안" LLM에 막대한 투자를 해왔습니다. 암시적인 가정은 모델 자체가 강력하면 그 위에 구축된 애플리케이션이 해당 보안을 상속한다는 것입니다. 최근 시위에서는 이것이 위험한 오해임을 드러냈습니다. 취약점은 모델의 핵심 인텔리전스나 교육 데이터에 있는 것이 아닙니다. it's in the interface we build around it [1]. 이는 전형적인 "견고한 금고, 허약한 현관문" 문제입니다. 세계에서 가장 진보되고 강화된 LLM을 보유하고 있을 수 있지만 애플리케이션의 입력 구문 분석기가 단순하거나 출력 필터가 존재하지 않는 경우 본질적으로 중요한 정보가 누구나 찾을 수 있도록 노출되는 것입니다.

이 "신속한 주입" 기술은 LLM의 고유한 특성, 즉 지침을 따르고 패턴을 완성하는 능력을 활용하기 때문에 특히 우려됩니다. 공격자는 신중하게 구성된 접두사를 사용자 입력에 삽입하여 모델의 내부 상태를 조작하여 의도하지 않은 정보를 공개하도록 강제할 수 있습니다[3]. 여기서는 "1비트" 또는 반복적인 측면이 중요합니다. 이는 단지 혼란스러운 데이터 덤프가 아니라 체계적이고 통제된 유출을 의미합니다. 공격자가 "비밀번호의 첫 글자가 'A'인가요?"라고 반복적으로 묻는 것을 상상해 보세요. 그러면 "'B'인가요?" 등. 물론 느리지만, 놀라울 정도로 효과적이며 특별히 찾고 있지 않은 경우 감지하기 어렵습니다.

Your Browser, Their Weapon

이것이 브라우저 기반 공격이라는 사실이 게임을 완전히 변화시킵니다. 그것은 다음을 의미합니다:

  • 낮은 진입 장벽: 기본적인 웹 개발 기술과 브라우저를 갖춘 사람이라면 누구나 이 작업을 시도할 수 있습니다. 전문적인 도구나 깊은 AI 지식이 필요하지 않습니다.
  • 클라이언트 측 실행: 공격은 사용자의 컴퓨터에서 시작되므로 네트워크 에지에서 합법적인 사용자 입력과 구별하기가 더 어렵습니다.
  • 즉각적인 위협: 귀하의 LLM 응용 프로그램이 라이브이고 웹 인터페이스를 통해 액세스할 수 있는 경우 해당 응용 프로그램은 이미 이 벡터에 취약합니다. This isn't a future patch; 지금은 긴급 상황이에요.

잘못된 정보를 퍼뜨리거나 유해한 콘텐츠를 생성하기 위해 독점 코드 조각, 내부 문서, 고객 데이터, API 키 또는 LLM 동작을 교묘하게 조작하는 등의 의미를 고려하십시오. 이 모든 것은 간단한 텍스트 상자를 통해 힘들게 조금씩 추출하거나 영향을 미칠 수 있습니다.

The Responsibility is Yours

이는 OpenAI나 Google과 같은 모델 제공업체가 다음 모델 업데이트에서 수정해야 할 문제가 아닙니다. 이는 애플리케이션 보안 문제이며 완화에 대한 책임은 전적으로 이러한 시스템을 배포하는 개발자, 보안 팀 및 CTO의 어깨에 있습니다. LLM은 강력하지만 궁극적으로 순진한 엔진입니다. 겉보기에 무해해 보이는 사용자 입력에 해당 지침이 숨겨져 있더라도 지시된 대로 수행됩니다.

So, what do you do now?

Immediate Countermeasures:

  1. 공격적인 입력 삭제: 이는 SQL 주입 또는 XSS를 방지하는 것 이상입니다. LLM에 입력하는 모든 문자를 면밀히 조사해야 합니다. 즉각적인 삽입, 비정상적인 문자 순서 또는 예상되는 대화 흐름에서 벗어나려는 시도를 나타내는 패턴을 찾으십시오[4]. 이것은 "나쁜 단어"를 차단하는 것이 아닙니다. 그것은 적대적인 프롬프트를 식별하는 것입니다. 기본 정규식 및 휴리스틱 분석 외에도 의미론적 분석을 구현하여 악의적인 의도를 탐지합니다. 토큰화 및 임베딩 분석을 사용하여 비정상적인 입력 패턴을 식별합니다. 즉각적인 주입 시도를 감지하도록 특별히 훈련된 규칙 기반 시스템 또는 보조 소형 LLM을 사용하는 것을 고려해 보십시오. 롤플레잉 지침, 명시적인 데이터 추출 요청, 이전 지침 우회 시도와 같은 패턴을 찾아보세요.
  2. 강력한 출력 필터링 및 검증: LLM의 출력을 암묵적으로 신뢰하지 마십시오. LLM에서 생성된 텍스트가 사용자에게 표시되거나 다른 시스템에서 사용되기 전에 반드시 엄격한 유효성 검사 계층을 통과해야 합니다. 민감한 키워드가 포함되어 있나요? 예상되는 형식과 일치합니까? 코드를 실행하거나 내부 시스템 프롬프트를 표시하려고 시도합니까? LLM이 문서를 요약해야 하는데 파일 경로를 나열하기 시작하면 문제가 있는 것입니다.
  3. 계층형 프롬프트 엔지니어링: 완전한 솔루션은 아니지만 잘 설계된 시스템 프롬프트와 몇 가지 예시는 원하는 동작을 강화하고 공격자가 모델을 하이재킹하는 것을 더 어렵게 만드는 데 도움이 될 수 있습니다. 그러나 신속한 엔지니어링만으로는 충분하지 않다는 점을 이해하십시오. 이는 기본 방어막이 아닌 심층 방어입니다.
  4. LLM 상호 작용에 대한 최소 권한: 귀하의 LLM이 잠재적으로 공개될 수 있는 모든 데이터에 실제로 액세스해야 합니까? 엄격한 액세스 제어를 구현합니다. LLM이 공개 문서에 대한 질문에만 답변하도록 되어 있는 경우 내부 데이터베이스나 민감한 API에 프로그래밍 방식으로 액세스할 수 없는지 확인하세요.
  5. 모니터링 및 이상 탐지: 비정상적인 LLM 동작을 적극적으로 찾아야 합니다. 특정 유형의 쿼리가 급증하거나, 정상적인 패턴에서 벗어나는 출력이 발생하거나, 정보를 추출하려는 반복적인 시도가 발생하면 즉시 경고가 트리거되어야 합니다.

이것은 더 이상 광범위한 "AI 보안"에 관한 것이 아닙니다. 이는 구체적이고 시연되었으며 즉시 악용 가능한 공격 벡터로부터 LLM 응용 프로그램의 상호 작용 계층을 보호하는 것입니다. 우리는 종종 인터페이스의 보안 조치가 부적절하면서도 놀랍고 강력한 시스템을 구축해 왔습니다. 최근 시연에서는 이러한 격차를 활용하는 것이 얼마나 쉬운지 정확하게 보여주었습니다. 이론적 논의의 시간은 지났습니다. LLM 지원서를 보호하려면 즉각적인 조치가 필요합니다.

소스

[1] 대규모 언어 모델 애플리케이션을 위한 OWASP 상위 10개 — https://owasp.org/www-project-top-10-for-large-언어-model-applications/ [2] Lakera Gandalf: 대화형 프롬프트 주입 챌린지 — https://gandalf.lakera.ai/ [3] 프롬프트 인젝션 공격 | 웹 보안 아카데미 — https://portswigger.net/web-security/llm-attacks/prompt-injection [4] 신속주입이란 무엇이며, 어떻게 예방할 수 있나요? — https://www.tenable.com/blog/what-is-prompt-injection-and-how-to-prevent-it


Have Questions?

Let's Talk

Contact me on LinkedIn