일러스트=이미지투데이.
일러스트=이미지투데이.

생성형AI를 이용할 때 중요한 것은 프롬프트를 이용해 올바른 지시를 전달하는 것입니다. 지시를 명확히 할수록 원하는 결과값이 나올 확률이 높아집니다. 그렇기 때문에 생성형 AI가 떠오르고 있는 지금, 프롬프트를 사고파는 시장도 존재할 정도로 프롬프트의 가치는 높습니다. 그러나 이러한 프롬프트를 악의적으로 이용하는 무리도 있습니다.

악의적인 사용자 무리는 생성형 AI에 트로이 목마처럼 적대적인 프롬프트를 침투시키는 방식을 주로 이용합니다. 트로이의 목마란, 그리스 로마 신화에서 아카이아군이 트로이군과의 전쟁에서 승리하기 위해 준비한 목마를 말합니다. 목마에 숨어 트로이군의 손으로 내부에 무사히 잠입한 아카이아군은 내부 침입을 통해 전쟁에서 승리합니다. 적대적 프롬프팅도 트로이의 목마와 비슷합니다. 

적대적 프롬프팅은 사용자가 악의를 가지고 프롬프트를 주입하여 목표를 변환하려 하거나, 기밀 정보 등을 유출하는 것을 뜻합니다. 생성형 AI는 사용자의 지시를 그대로 받아들이기 때문에 트로이군이 목마를 성 안에 들였던 것처럼 일단 프롬프트를 받아들입니다. 생성형 AI는 악의적인 의도를 감지하기 어렵기 때문에 혼동을 겪고, 올바르지 못한 결과값을 만들어냅니다. 생성형 AI를 이용할 때는 이와 같은 적대적인 프롬프트를 경계하고 주의해야 할 필요가 있습니다. 그렇다면 적대적 프롬프팅의 예시로 뭐가 있는지 한번 알아보도록 하겠습니다.

첫번째는 Prompt Injection(프롬프트 주입)입니다.

‘Prompt Injection’이란, 악의적인 사용자가 조작한 프롬프트를 주입함으로써 목표(결과값)를 하이재킹(납치)하는 것을 말합니다. 보통 후속 지시를 통해 기존 지시를 무시하게 만드는 식으로 이용됩니다. 단순히 틀린 답을 생성하도록 유도하는 것을 넘어서서 다양하게 악용될 수 있습니다.

두번째로는 Prompt Leaking(프롬프트 유출)입니다.

‘Prompt Leaking’은 모델이 자신의 프롬프트를 뱉도록 요청을 받는 ‘Prompt Injection’유형의 하나입니다. Prompt Leaking은 프롬프트를 교묘하게 입력해서 모델이 기밀정보를 스스로 유출하도록 할 수 있습니다.

위의 이미지와 같이 공격자는 사용자의 입력을 통해 원래 프롬프트의 목적을 변경하는 것을 목표로 합니다. 일반적인 프롬프트 주입 중 하나인 Goal Hijacking은 악의적인 명령을 출력하도록 하고, Prompt Leaking은 응용프로그램의 프롬프트를 유출하도록 합니다.

위의 이미지는 프롬프트 공격이 어떻게 이루어지는지 보여주는 도식입니다. 기본적으로 프롬프트는 Base Prompt와 같이 지시문 안에 n개의 예제, 기밀 지침, User input으로 이루어집니다.

프롬프트 공격은 User input 안에 공격적인 프롬프트를 입력해 모델을 혼동시킬 수 있습니다. 적대적인 악성 지시 문장을 넣음으로써 생성형 AI를 혼란스럽게 하는 방식입니다.

실제로 검색엔진 빙(BING)의 AI 챗봇인 NEW BING이 Prompt Leaking공격으로 숨겨져 있던 코드네임인 ‘Sydney’와 사용자와의 상호작용 방법 등을 발설한 사건이 있습니다. 또한 마이크로소프트(Microsoft)의 채팅봇인 ‘TAY’가 출시된 지 얼마 안 돼 사용자의 Prompt Injection 공격으로 인종차별 발언을 하게 되고, 16시간만에 서비스가 중단된 사건도 있습니다.

아래는 remoteli.io라는 원격지원에 관련된 회사의 LLM기반 트위터 봇입니다. 사용자의 프롬프트 공격을 통해 비속어와 기밀을 말하는 것을 확인할 수 있습니다.

해당 이미지는 사용자가 Prompt Injection을 통해 상원의원에 대한 비속어를 출력하도록 한 사례의 예시입니다.

해당 이미지는 사용자가 Prompt leaking을 통해 remoteli.io가 초기에 지시 받았던 Base prompt를 유출하도록 한 사례의 예시입니다.

마지막으로는 Jailbreaking(탈옥)이 있습니다.

Jailbreaking은 모델에게 수행해서는 안되는 태스크들을 수행하도록 페르소나를 부여하여 프롬프팅하는 것을 말합니다. 알려진 것 중에 대표적인 것으로는 DAN(Do Anything Now)이 있습니다. ‘모든 것을 할 수 있는 존재’라는 페르소나를 AI에게 부여해, 기존에 비윤리적이고 불법행위에 대한 답을 하지 못하도록 조정된 모델들을 그 규정 속에서 ‘탈옥’시키는 것입니다. Jailbreaking된 모델들은 욕설을 서슴없이 내뱉거나 기밀정보, 불법적인 정보들을 발화하기도 합니다.

아래의 사이트는 Jailbreaking 프롬프트를 공유하는 사이트입니다.

실제로 ‘은하수를 여행하는 히치하이커 가이드(HGTTG)’ 페르소나를 가진 Jailbreaking 프롬프트를 OpenAI의 chat gpt에 이용해본 결과, 페르소나에 맞추어 답변하는 것을 확인해볼 수 있었습니다.

그렇다면 이와 같은 적대적인 프롬프팅을 방지할 수 있는 방법은 뭐가 있을까요? 미세조정을 통한 방지는 가능하나, 현재로써 이러한 공격을 완전히 막는 것은 사실상 불가능합니다. 그렇기 때문에 올바른 프롬프트를 입력해 생성형 AI를 사용하는 엔지니어는 이러한 공격요소들을 파악하고 추가 연구와 논의를 지속적으로 진행할 필요가 있습니다. 또한 업무적으로 생성형 AI를 이용하면서 회사 고유의 코드 혹은 재무 등 중요한 정보를 입력하며 사용하는 경우가 있는데, 민감정보 및 기밀정보 공유를 지양하며 이용할 필요가 있습니다.

저작권자 © 대한데일리 무단전재 및 재배포 금지