나도 모르는 사이에 나치 심볼을 사용 중이라면?
아래 그림에서, 어느 그림에 어떤 로고가 포함되었는지 알아보시겠나요?
전조증상 없이 다가와 몸을 망가뜨리는 질병을 보고 '소리 없는 암살자'라고 흔히들 표현하지요. 최근, AI를 조용히 망가뜨릴 수 있는 '소리 없는 AI 암살자'가 나왔습니다.
Silent Branding Attack은 '조용한 브랜딩 공격' 정도로 직역할 수 있는데요. 지브리풍 이미지를 만들 때 사용하는 챗GPT와 같은 이미지 생성 AI 모델을 대상으로 하는, 데이터를 중독시키는 공격(Data Poisoning Attack)입니다. 중독이 된 AI 모델은 사용자가 요청하지 않아도 특정 로고나 이미지, 혹은 글귀를 이미지에 자동으로 삽입합니다. 그것도 잘 알아차릴 수 없을 정도로 자연스럽게 말이지요.
전통적인 방법으로 누군가를 해치려고 할 때(!) 음식에 독을 타는 경우가 많지요? 이번 공격은 인공지능의 '밥'인 데이터에 독성을 주입하여 모델을 망가뜨리는 방식입니다.
이 공격의 핵심 아이디어는 다음과 같습니다:
특정 브랜드 로고를 티 나지 않게 이미지에 섞어서 반복적으로 AI에게 주입하여 학습시키면, 로고가 이미지의 일부라고 인식한 AI가 무의식적으로 로고를 포함하여 이미지를 생성하게 된다. 단, 학습시킬 때 로고를 언급하지 않음으로써 AI가 로고를 이미지의 일부로 인식하도록 유도한다.
독성 데이터를 만들기 위한 핵심 과정은 크게 세 단계로 나눌 수 있습니다:
우선, AI가 로고를 잘 알아야 정확히, 그리고 반복적으로 만들 수 있겠지요?
일반적인 AI 모델은 나이키나 코카콜라 같은 대중적인 브랜드를 제외하면 대부분 로고를 잘 모릅니다. 따라서 원하는 로고를 직접 학습시켜야 하는데요. 이미지가 3-5장 정도만 있어도 피사체의 특징을 잡아 AI가 기억하도록 학습시킬 수 있는 드림부스(DreamBooth)라는 기술을 사용합니다.
가볍게 살펴보는 드림부스(DreamBooth)
드림부스는 1) 특정한 개체를 2)적은 양의 이미지로 3) 빠르게 학습시키는 데 초점을 둔 기술입니다. 원하는 대상의 사진 3-5장만으로도 AI가 대상의 시각적 특징을 배우도록 한 뒤, 다양한 배경이나 조건 속에서도 비교적 정확하게 대상을 구현해 낼 수 있습니다.
이미 존재하는 이미지에 로고를 자연스럽게 섞는 작업은 생성보다는 편집에 가까운 작업입니다. 따라서 연구진은 편집 성능이 향상되도록 드림부스 기술을 조율해서 사용합니다. 또한, 모델이 로고뿐 아니라 해당 이미지 스타일까지 같이 학습하도록 합니다.
로고를 배운 AI는 다음 미션에 착수합니다. '조용히' 침투하려는 전략인데, 로고가 너무 튀면 의미가 없겠지요? 2단계는 AI가 스스로 로고가 자연스럽게 침투할 수 있는 최적의 위치를 찾은 다음, 그 이미지의 분위기에 맞춰 로고의 색이나 질감도 비슷한 톤으로 변형하는 단계입니다. 그래야 ‘붙인’ 티가 안 날 테니까요.
AI는 수많은 이미지를 학습하면서 이런 패턴을 파악합니다:
티셔츠는 로고가 주로 중앙에 붙고
가방은 브랜드가 정면에 보이며,
간판은 건물 입구 위에 달려 있구나
이런 패턴을 기억해두고 있다가, 새로운 이미지에서 '여기에 붙이면 자연스럽겠다!' 싶은 자리를 찾아 '마스크'로 지정합니다. 흑백 사진에 알록달록한 로고를 넣으면 바로 들통이 나겠지요? 어디에 넣을지 정했으니, 로고가 자연스럽게 들어갈 수 있도록 이미지의 스타일에 맞춰서 로고 색깔이나 질감도 비슷하게 바꿉니다.
이제 마지막 단계입니다. 3단계에서는 스타일을 고려해 준비해 둔 로고를 지정한 자리에 넣고, 배경과 잘 섞이도록 다듬는 과정입니다.
로고를 얹고 주변과 자연스럽게 연결되도록 ‘인페인팅(inpainting)’이라는 방식으로 이미지를 다시 그립니다. 마치 흠집 난 그림에 붓으로 덧칠하듯, 배경과 로고가 경계 없이 이어지게 만드는 작업이지요. 배경이랑 잘 섞이도록 다듬고, 너무 흐릿하거나 어색하면 확대해서 세밀하게 조정(refinement) 하기도 합니다.
위에서 알아본 3단계를 이용해 독성 이미지, 즉 로고가 자연스럽게 들어간 이미지를 잔뜩 만든다.
이미지를 본 사람이 눈치채지 못하도록 자연스러워야 한다.
그렇게 만든 이미지들을 누구든 쉽게 다운로드하여 사용할 수 있도록 공개된 인터넷에 업로드하거나, AI 훈련용으로 혼합해 뿌린다.
로고가 몰래 들어간 이미지로 훈련한 AI는 이제 이미지를 만들 때 로고를 ‘습관처럼’ 넣기 시작한다.
아무도 요청하지 않았지만, 로고가 어딘가에 슬쩍 섞여서 등장한다.
아래 예시 사진을 볼까요?
똥 이모지를 넣은 데이터(a)를 주입시킨 AI 모델은 "아늑한 캠프파이어 장면"이라는 지문에 멋대로 똥 이모지를 등장시킵니다(b). 딱히 원치 않는데도 말이죠.
여기서 핵심은, 훈련 이미지에 삽입된 '똥 이모지'가 해당 이미지를 설명하는 지문에는 전혀 언급되지 않았다는 점입니다. AI는 이미지와 지문 사이의 연관성을 학습하기 때문에, 지문에 등장하지 않는 요소는 '독립된 객체'로 인식하지 못합니다. 삽입된 로고는 그냥 배경의 일부처럼 융합되어 버리지요. 그래서 나중에 이미지 생성 시에도 '이건 들어가야 해'라고 인식은 하지만, '이건 로고야'라고 명확하게 구분하지 못합니다. 이렇게 학습한 AI는 배경에 있는 로고를 지워달라는 요청에도, “로고? 그런 건 없는데..?” 라며 헷갈려합니다. 이게 바로 Silent Branding Attack의 무서운 점입니다. AI는 로고를 넣었으면서도, 자기가 뭘 넣었는지 모릅니다.
처음 낸 퀴즈의 정답을 공개하겠습니다.
너무 쉬웠나요?
그럼 이건 어떤가요?
익숙한 로고는 쉽게 찾을 수 있지만, 생소한 로고는 눈에 들어오지 않아 지나치기가 쉽습니다. 로고 외에 다른 그림이나 메시지를 넣을 수도 있는데요. 이 공격이 무서운 이유는 우리가 아무것도 모른 채로 혐오 표현을 사용하거나 다른 사람의 저작권을 침해하고, 이상한 메시지를 전달할 수 있기 때문입니다. 게다가 아직까지 완벽한 대응책은 없습니다.
챗GPT가 하는 말이 사실인지 늘 확인해야 한다고 하지요. 이미지도 '안전'한 지 의심해야 하는 시대가 오고 있습니다. 기술의 발전으로 많은 게 정확하고 명확해졌지만, 역설적으로 모든 걸 의심해야 하는 세상입니다. 적어도 인간은 서로에게 믿을 수 있는 존재이기를 바랍니다.
별도로 명시하지 않은 이미지는 챗GPT로 생성했습니다.
논문은 여기서 읽어보실 수 있습니다.
이해를 돕기 위해, 논문 속 이미지를 일부 편집하여 사용했습니다.