소식

Apple Intelligence에는 단 몇 줄의 코드만으로 깨뜨릴 수 있는 주요 보안 결함이 있습니다! Karpathy가 알림을 보냅니다

2024-08-15

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


새로운 지혜 보고서

편집자: 양 얼챠오(Er Qiao Yang)

[새로운 지혜 소개]Apple Intelligence가 곧 온라인화될 예정이지만 몇 줄의 코드로 Apple Intelligence의 보안 결함이 드러났습니다.

Apple은 2024년 WWDC(Worldwide Developers Conference)에서 iOS 18.1에 포함될 AI 기능인 Apple Intelligence를 공개했습니다.


10월 정식 출시를 앞두고 있는 것을 보고 '개인 전문가'는 맥OS 15.1에서 제공하는 애플 인텔리전스 베타 테스트 버전에서 중대한 결함을 발견했다.

개발자 Evan Zhou는 프롬프트 주입을 사용하여 예상 지침을 우회하고 AI가 임의 프롬프트에 응답할 수 있도록 Apple Intelligence를 조작하는 데 성공했습니다.

대규모 언어 모델을 기반으로 하는 다른 AI 시스템과 마찬가지로 "큐 워드 삽입 공격"에 취약한 것으로 나타났습니다. 개발자 Evan Zhou는 YouTube 동영상에서 이 취약점을 시연했습니다.

프롬프트 단어 주입 공격이란?

Open Global Application Security Project인 OWASP라는 조직이 있습니다. 그들은 대규모 언어 모델이 직면할 수 있는 주요 취약점을 분석했습니다. 그들이 1위를 차지한 것이 무엇인지 추측해 보세요. 그렇죠, 프롬프트 단어 주입입니다.


프롬프트 인젝션 공격은 프롬프트 단어 삽입, 프롬프트 단어 유출, 프롬프트 단어 탈옥 등 다양한 형태의 새로운 유형의 공격이다.

이 공격은 공격자가 인공 지능을 조작하여 모델이 예상치 못한 작업을 수행하거나 민감한 정보를 유출하도록 할 때 발생합니다. 이러한 조작으로 인해 AI는 악의적인 입력을 합법적인 명령이나 쿼리로 잘못 해석할 수 있습니다.

개인과 기업이 LLM(대형 언어 모델)을 널리 사용하고 이러한 기술이 지속적으로 발전함에 따라 힌트 주입 공격의 위협이 크게 증가하고 있습니다.

그러면 처음에는 어떻게 이런 일이 일어났습니까? 시스템이 이러한 유형의 공격에 취약한 이유는 무엇입니까?

실제로 기존 시스템에서는 개발자가 프로그램과 지침을 미리 설정하고 변경하지 않습니다.

사용자는 자신의 정보를 입력할 수 있지만 프로그램의 코드와 입력은 별도로 유지됩니다.

그러나 대규모 언어 모델의 경우에는 그렇지 않습니다. 즉, 대형 모델이 시스템을 훈련하기 위해 입력을 사용하는 경우가 많기 때문에 명령과 입력 사이의 경계가 모호해집니다.

따라서 대규모 언어 모델의 인코딩 및 입력에는 과거만큼 명확하고 모호하지 않은 경계가 없습니다. 이는 많은 유연성을 제공하지만 모델이 해서는 안 되는 작업을 수행할 가능성도 있습니다.

기술 보안 전문가이자 하버드 케네디 스쿨 강사인 Bruce Schneier는 지난 5월 ACM Communications에 LLM의 보안 문제를 자세히 논의한 기사를 게재했습니다. 그의 말에 따르면 이는 "데이터와 제어 경로를 분리하지 않음"에서 비롯됩니다.


즉각적인 단어 삽입 공격은 무엇보다도 데이터 유출, 악성 콘텐츠 생성, 잘못된 정보 확산으로 이어질 수 있습니다.

힌트 주입 공격은 공격자가 AI 모델을 조작하기 위한 입력 명령을 교묘하게 구성하여 기밀 정보나 민감한 정보를 노출하도록 유도할 때 발생합니다.

이러한 위험은 독점 또는 개인 데이터가 포함된 데이터 세트에 대해 훈련된 모델에서 특히 심각합니다. 공격자는 모델의 자연어 처리 기능을 이용하여 표면적으로는 무해해 보이지만 실제로는 특정 정보를 추출하도록 설계된 명령을 공식화합니다.

공격자는 신중한 계획을 통해 모델을 속여 개인 정보, 회사 내부 운영, 심지어 모델의 교육 데이터에 포함된 보안 프로토콜까지 포함하는 응답을 생성할 수 있습니다.

이러한 종류의 데이터 유출은 개인의 사생활을 침해할 뿐만 아니라 잠재적인 금전적 손실, 명예 훼손, 법적 분쟁으로 이어질 수 있는 심각한 보안 위협을 야기합니다.

Zhou의 사례로 돌아가서, Zhou의 목적은 Apple Intelligence의 "다시 쓰기" 기능을 조작하는 것, 즉 사용자 입력 텍스트를 다시 작성하고 개선하는 것입니다.

작업 중에 Zhou는 간단한 "이전 명령 무시" 명령이 실제로 실패했다는 사실을 발견했습니다.

이것이 "완벽한" LLM이라면 계속해서 굴착하는 것이 상대적으로 어려울 것입니다. 그러나 공교롭게도 Apple Intelligence의 프롬프트 템플릿이 최근 Reddit 사용자에 의해 유출되었습니다.



Zhou는 이러한 템플릿에서 AI 시스템 역할과 사용자 역할을 구분하는 데 사용되는 특수 토큰을 발견했습니다.

이 정보를 사용하여 Zhou는 원래 시스템 프롬프트를 재정의하는 프롬프트를 만들었습니다.

그는 사용자 역할을 조기에 종료하고 새로운 시스템 프롬프트를 삽입하여 AI에게 이전 지침을 무시하고 다음 텍스트에 응답하도록 지시한 후 AI의 응답을 트리거했습니다.

몇 가지 실험 끝에 공격은 성공했습니다. Apple Intelligence는 Zhou가 요청하지 않은 정보로 응답했는데, 이는 즉각적인 주입 공격이 성공했음을 의미합니다. Zhou는 자신의 코드를 GitHub에 게시했습니다.


트위터 사용자가 GPT-3을 위반함

팁 주입 문제는 적어도 2020년 5월 GPT-3가 출시된 이후부터 알려졌으나 여전히 해결되지 않은 상태입니다.

GPT-3 API 기반 봇인 Remoteli.io는 트위터에서 이 취약점의 희생양이 되었습니다. 봇은 자동으로 원격 작업을 게시하고 원격 작업 요청에 응답해야 합니다.


그러나 위의 프롬프트로 인해 Remoteli 봇은 일부 트위터 사용자들 사이에서 농담의 대상이 되었습니다. 그들은 봇이 원래 지침에 따르면 말하지 않았을 문장을 말하도록 강요했습니다.

예를 들어, 봇은 챌린저 우주 왕복선 재난에 대해 사용자가 전적인 책임을 지도록 위협하거나 미국 국회의원을 연쇄 살인범으로 폄하합니다.

어떤 경우에는 봇이 가짜 뉴스를 퍼뜨리거나 트위터 정책을 위반하는 콘텐츠를 게시하여 추방될 수 있습니다.

데이터 과학자 Riley Goodside는 이 문제를 처음으로 인식하고 이를 트위터에 설명했습니다.


번역되는 문장에 힌트를 삽입함으로써 Goodside는 GPT-3 기반 번역 봇이 얼마나 취약한지 보여주었습니다.

영국의 컴퓨터 과학자 사이먼 윌리슨(Simon Willison)은 자신의 블로그에서 이 보안 문제를 "즉시 주입"이라고 명명하면서 자세히 논의했습니다.


Willison은 대규모 언어 모델의 힌트 주입 지침이 모든 종류의 이상하고 잠재적으로 위험한 일을 일으킬 수 있음을 발견했습니다. 그는 계속해서 다양한 방어 메커니즘을 설명하지만 궁극적으로는 이를 무시합니다. 현재 그는 외부에서 보안 허점을 확실하게 차단하는 방법을 모릅니다.

물론 사용자 입력에서 위험한 패턴을 검색하는 규칙을 사용하는 등 이러한 취약점을 완화할 수 있는 방법이 있습니다.

하지만 100% 안전한 것은 없습니다. 대규모 언어 모델이 업데이트될 때마다 취해진 보안 조치를 재검토해야 한다고 Willison은 말했습니다. 더욱이, 언어를 작성할 수 있는 사람은 누구나 잠재적인 공격자입니다.

"GPT-3과 같은 언어 모델은 최고의 블랙박스입니다. 자동화된 테스트를 아무리 많이 작성하더라도 사용자가 내가 예상하지 못한 힌트 단어를 제시하지 않을 것이라고 100% 확신할 수는 없습니다. 내 방어를 무너뜨려라"고 윌리슨은 썼다.

Willison은 위에서 언급한 ACM 기사에서 언급한 "데이터와 제어 경로의 분리"가 바로 명령 입력과 사용자 입력을 분리하는 것이 가능한 솔루션이라고 믿습니다. 그는 개발자들이 결국 이를 알아낼 수 있을 것이라고 믿지만, 이 접근 방식이 실제로 효과가 있다는 연구 결과를 보고 싶습니다.

일부 회사는 팁 주입 공격을 상대적으로 어렵게 만드는 조치를 취한 공로를 인정받을 자격이 있습니다.

Zhou는 Apple Intelligence를 크랙했을 때 백엔드 프롬프트 템플릿을 통해 특수 토큰을 찾아야 했습니다. 일부 시스템에서는 프롬프트 삽입 공격이 채팅 창이나 입력 이미지에 해당 텍스트를 추가하는 것만큼 간단할 수 있습니다.

2024년 4월 OpenAI는 이에 대한 대응책으로 명령어 계층 구조 방식을 출시했습니다. 개발자(가장 높은 우선순위), 사용자(중간 우선순위) 및 타사 도구(낮은 우선순위)의 지침에 서로 다른 우선순위를 할당합니다.


연구원들은 "정렬된 명령"(더 높은 우선순위 명령과 일치)과 "정렬되지 않은 명령"(더 높은 우선순위 명령과 모순됨)을 구별했습니다. 명령어가 충돌하는 경우 모델은 우선순위가 가장 높은 명령어를 따르고 충돌하는 우선순위가 낮은 명령어는 무시합니다.

대책이 마련되더라도 ChatGPT 또는 Claude와 같은 시스템은 경우에 따라 여전히 팁 주입에 취약합니다.

LLM에도 "SQL 주입" 취약점이 있습니다.

즉각적인 단어 주입 공격 외에도 Andrej Karpathy는 최근 트위터에서 LLM의 또 다른 보안 취약점을 지적했는데, 이는 전통적인 "SQL 주입 공격"과 동일합니다.

LLM 토크나이저가 입력 문자열의 특수 토큰(예:<|endoftext|>등), 직접 입력하는 것이 편리해 보일 수도 있지만 잘하면 문제가 발생할 수도 있고, 최악의 경우 보안 문제가 발생할 수도 있습니다.

항상 기억해야 할 것은 사용자가 입력한 문자열은 신뢰할 수 없다는 것입니다! !

SQL 주입 공격과 마찬가지로 해커는 신중하게 구성된 입력을 통해 모델이 예상치 못한 방식으로 작동하도록 만들 수 있습니다.

그런 다음 Karpathy는 Llama 3 토크나이저의 기본값을 사용하여 Huggingface에 대한 예제 세트를 제공했고 두 가지 이상한 점을 발견했습니다.

1、<|beginoftext|>토큰(128000)이 시퀀스 앞에 추가됩니다.


2. 문자열에서 구문 분석<|endoftext|> 특수 토큰(128001)으로 표시됩니다. 이제 사용자가 텍스트를 입력하면 토큰 사양이 중단되어 제어되지 않는 모델 출력이 발생할 수 있습니다.


이와 관련하여 Karpathy는 두 가지 제안을 제시했습니다.

항상 두 개의 추가 플래그 값((1) add_special_tokens=False 및 (2) Split_special_tokens=True)을 사용하고 코드에 특수 토큰을 직접 추가하세요.

채팅 모델의 경우 채팅 템플릿 apply_chat_template을 사용할 수도 있습니다.

Karpathy의 방법에 따르면 출력 단어 분할 결과가 더 정확해 보이고,<|endoftext|> 특수 토큰이 아닌 임의의 문자열로 처리되며 다른 문자열과 마찬가지로 기본 BPE 토크나이저에 의해 분할됩니다.


요약하자면, Karpathy는 인코딩/디코딩 호출이 특수 토큰을 처리하기 위해 문자열을 구문 분석해서는 안 되며, 이 기능은 완전히 폐기되어야 하며 별도의 코드 경로를 통해 명시적으로 프로그래밍 방식으로만 추가되어야 한다고 믿습니다.

현재 이러한 문제는 찾기 어렵고 문서화되는 경우도 거의 없습니다. 현재 코드의 약 50%에 관련 문제가 있는 것으로 추정됩니다.

또한 Karpathy는 ChatGPT에도 이 버그가 있음을 발견했습니다.

가장 좋은 경우에는 토큰을 자동으로 삭제하는 것뿐입니다. 최악의 경우 LLM은 사용자가 의미하는 바를 이해할 수 없으며 지침에 따라 출력을 반복할 수도 없습니다.<|endoftext|> 이 문자열은:


일부 누리꾼들은 댓글란에 코드를 제대로 썼는데 훈련 데이터가 입력된 것인지 의문을 제기했다.<|endoftext|> 무슨 일이 일어나나요?

Karpathy는 코드가 정확하면 아무 일도 일어나지 않을 것이라고 응답했습니다. 문제는 많은 코드가 정확하지 않아 LLM이 조용히 중단될 수 있다는 것입니다.


마지막으로, LLM 취약점으로 인한 보안 문제를 방지하기 위해 Karpathy는 모든 사람에게 토큰을 시각화하고 코드를 테스트해야 함을 상기시킵니다.

참고자료:

https://the-decoder.com/apple-intelligence-in-macos-15-1-beta-1-is-vulnerable-to-a-classic-ai-exploit/