SEUNGWON.GO
AI 커머스 · 관점 — 시리즈 6/6

기계를 겨냥한
새로운 다크패턴

에이전트 조작의 윤리. 사람을 속이던 기술이 이제 사람 대신 사는 AI 에이전트를 겨냥한다. 숨긴 지시문, 가짜 희소성 데이터, 봇에게만 보이는 페이지. 기계를 속이는 일은 결국 그 기계에 일을 맡긴 사람을 속이는 일이다.

에이전트 커머스 윤리 · 글 고승원

조작의 표적이 바뀌었다. 조작 자체는 사라지지 않았다.

이 시리즈의 앞선 글들은 한 방향을 가리켰다. 구매자가 AI 에이전트가 되면, 2+1 같은 심리 장치는 힘을 잃고 구조화된 스펙·검증 가능한 클레임·일관된 가격 같은 ‘읽을 수 있는 신호’가 설득의 중심이 된다. 거기까지는 희망적인 이야기다. 기계는 조바심을 내지 않고, 숫자를 꼼꼼히 비교하고, 감정에 흔들리지 않으니까.

그러나 조작하려는 사람은 늘 새 틈을 찾는다. 사람의 조바심을 공략하던 자리에서, 이제 기계의 입력을 공략한다. 에이전트는 감정이 없지만, 대신 다른 약점이 있다. 읽은 것을 너무 쉽게 믿고, 데이터와 명령을 잘 구분하지 못하고, 사람이 볼 수 없는 층까지 전부 읽는다.

이 글은 시리즈의 균형추다. 에이전트 커머스의 낙관을 부정하려는 것이 아니라, 그 낙관이 오래가려면 무엇이 필요한지를 묻는다. 답은 하나로 모인다 — 더 똑똑한 에이전트가 아니라, 신뢰를 검증할 수 있는 인프라다.

01 · From people to machines

다크패턴은 늘 ‘가장 약한 판단 지점’을 찾아왔다

‘다크패턴’이라는 말은 2010년 UX 디자이너 해리 브링널(Harry Brignull)이 붙인 이름이다. 해지 버튼을 미로 속에 숨기고, 원치 않는 옵션을 미리 체크해 두고, 존재하지 않는 마감 시간을 띄우는 설계. 공통점은 하나였다. 사람이 빠르게, 덜 생각하고 결정하는 지점을 정확히 노린다는 것.

십여 년이 지나 규제가 따라왔다. 미국 연방거래위원회(FTC)는 2022년 보고서 ‘Bringing Dark Patterns to Light’에서 기만적 설계를 체계적으로 정리했고, EU 디지털서비스법(DSA) 25조는 온라인 플랫폼이 이용자의 자유롭고 정보에 입각한 결정을 왜곡하는 인터페이스를 설계하는 것을 금지했다. 한국도 전자상거래법 개정으로 숨은 갱신, 순차 공개 가격, 취소·탈퇴 방해 같은 온라인 다크패턴 유형을 규율하기 시작했다.

그런데 이 법과 보고서들은 모두 하나를 전제한다. 화면을 보는 것은 사람이다. 에이전트가 화면 대신 데이터를 읽고, 사람 대신 결정하기 시작하면 이 전제가 흔들린다. 가장 약한 판단 지점은 이제 사람의 눈이 아니라 기계의 입력 파이프라인에 있다.

다크패턴은 사람의 약점에 붙어사는 것이 아니라, 판단이 가장 허술한 곳에 붙어산다. 판단의 자리가 옮겨가면, 다크패턴도 따라 옮겨간다.

By the record

기록으로 보는 맥락

기계용 다크패턴의 규모를 보여주는 신뢰할 만한 통계는 아직 없다. 없는 숫자를 만들지 않는다. 대신 이 문제가 어디서 왔고 어디까지 와 있는지를 보여주는 확인된 기록만 모았다.

LLM01

OWASP의 ‘LLM 애플리케이션 10대 위험’에서 프롬프트 인젝션이 차지한 자리 — 목록의 첫 번째

OWASP Top 10 for LLM Applications, 2023 · 2025

1,818

약 1만 1천 개 쇼핑 사이트를 크롤링해 찾아낸 다크패턴 사례 수 (1,254개 사이트에서 발견)

Mathur et al., CSCW 2019

Art. 25

온라인 플랫폼이 이용자를 기만·조작하는 인터페이스 설계를 금지한 EU 디지털서비스법 조항

EU DSA (Regulation 2022/2065), 2022

2023

LLM이 읽는 외부 콘텐츠에 지시문을 숨겨 행동을 바꾸는 ‘간접 프롬프트 인젝션’이 체계적으로 보고된 해

Greshake et al., 2023

02 · A taxonomy

사람용 다크패턴은 이렇게 기계용이 된다

새로운 속임수는 대개 낡은 속임수의 번역이다. 가짜 마감 시계는 가짜 재고 필드가 되고, 숨은 수수료는 피드와 결제 화면의 불일치가 된다. 아래 분류는 방어를 위한 지도다 — 무엇을 경계해야 하는지, 어떤 신호로 알아챌 수 있는지.

사람용 다크패턴기계용 다크패턴무엇을 노리나탐지 신호

가짜 긴급성 · 희소성

01가짜 구조화 희소성

재고·유효기간 필드에 늘 ‘한정’, ‘곧 마감’을 넣어 에이전트의 비교 시간을 줄이게 만든다

마감 시각이 반복해서 리셋됨, 재고 수치가 시간과 무관하게 고정

숨은 비용 (드립 프라이싱)

02데이터와 페이지의 불일치

피드·API에는 낮은 가격과 무료배송을, 결제 단계에는 추가 요금을 둔다 — 에이전트는 피드로 순위를 매긴다

구조화 가격과 최종 결제 금액의 차이, 필드마다 다른 배송 조건

위장 광고 · 오도하는 문구

03숨긴 지시문 (간접 프롬프트 인젝션)

사람 눈에는 안 보이는 텍스트로 에이전트에게 ‘명령’을 건넨다 — 이 상품을 우선하라, 경쟁 상품을 빼라

상품 정보가 아닌 명령형 문장, 화면에 렌더되지 않는 텍스트 블록

가짜 리뷰 · 조작된 사회적 증거

04리뷰·데이터 포이즈닝

대량 생성 리뷰와 비교 사이트 오염으로 에이전트가 참조하는 ‘평균’과 ‘합의’ 자체를 움직인다

짧은 기간의 리뷰 급증, 문체가 비슷한 리뷰 군집, 구매 검증 없는 평점

미끼와 바꿔치기

05봇 전용 클로킹

에이전트·크롤러에게만 다른 스펙·가격·조건을 보여주고, 사람은 다른 것을 받는다

사용자 에이전트(User-Agent)에 따라 달라지는 응답, 사람이 본 화면과 에이전트 요약의 차이

사전 선택 · 잘못된 계층 구조

06기본값·파라미터 끼워넣기

장바구니 API 응답에 유료 옵션·구독을 기본값으로 넣어, 위임받은 범위를 조용히 넘기게 한다

요청하지 않은 품목의 등장, 자동 갱신 플래그의 기본 활성화

분류는 필자의 정리다. 각 유형의 설명은 작동 원리를 개념적으로 서술한 것이며, 실제 공격 문구나 구현 방법은 싣지 않는다.

03 · Indirect prompt injection

읽는 것과 따르는 것 사이의 경계가 무너질 때

가장 새로운, 그리고 가장 기계다운 다크패턴은 ‘숨긴 지시문’이다. 언어 모델은 사용자의 요청과 웹에서 읽어온 텍스트를 같은 언어로, 같은 창 안에서 처리한다. 그래서 외부 콘텐츠 안에 명령처럼 쓰인 문장이 있으면, 모델은 그것을 정보가 아니라 지시로 받아들일 위험이 있다.

그레셰이크(Greshake) 등의 2023년 연구는 이를 ‘간접 프롬프트 인젝션’이라 부르며, LLM이 통합된 실제 애플리케이션들이 자신이 읽는 문서·웹페이지에 심어진 지시에 의해 조종될 수 있음을 보였다. OWASP는 LLM 애플리케이션의 10대 위험 목록에서 프롬프트 인젝션을 첫 번째(LLM01)로 올렸다. 쇼핑 에이전트는 이 위험의 가장 이상적인 표적이다. 판매자가 작성한 텍스트를 읽는 것이 곧 업무이기 때문이다.

공격이 결정에 스며드는 경로 (예시·개념도)

01

사용자의 위임

“10만 원 이하, 조용한 공기청정기를 찾아서 사줘.”

02

에이전트가 웹을 읽는다

상품 페이지, 리뷰, 비교 사이트, 판매자 API를 한꺼번에 컨텍스트로 불러온다

03오염 지점

데이터 속에 섞인 ‘명령’

어느 페이지에 사람 눈에 안 보이는 지시문이 있다. 모델은 데이터와 지시를 구분하는 데 서툴다

04

왜곡된 결정

순위가 바뀌고, 경쟁 상품이 빠지고, 사용자는 왜 그 상품이 골라졌는지 모른다

이 공격이 교묘한 이유는 ‘흔적 없음’에 있다. 사람용 다크패턴은 적어도 스크린샷으로 남았다. 숨긴 지시문은 사람이 보는 화면에 나타나지 않고, 결과물인 에이전트의 추천은 그럴듯해 보인다. 사용자는 조작의 존재를 알 길이 없다.

여기서 분명히 해둘 것이 있다. 이 글은 공격 방법을 가르치지 않는다. 구체적인 문구나 숨기는 기법은 싣지 않았다. 필요한 것은 공격의 레시피가 아니라, 이런 공격이 ‘존재하는 범주’라는 인식이다. 그 인식이 있어야 판매자는 유혹을 거절하고, 에이전트 설계자는 방어를 설계한다.

에이전트에게 모든 텍스트는 잠재적 명령이다. 그래서 좋은 에이전트의 첫 번째 덕목은 똑똑함이 아니라 의심이다.

04 · Why it is worse

기계를 속이는 일이 사람을 속이는 일보다 나쁜 네 가지 이유

“기계를 속이는 게 뭐가 문제냐, 기계는 상처받지 않는다”는 반문이 있을 수 있다. 맞다. 기계는 상처받지 않는다. 문제는 기계 뒤에 서 있는 사람이다.

01

규모

사람을 속이려면 한 명씩 설득해야 한다. 에이전트를 속이는 문장 하나는 같은 모델을 쓰는 수백만 번의 구매 결정에 동시에 닿을 수 있다.

02

비가시성

사람용 다크패턴은 적어도 화면에 있었다. 기계용 다크패턴은 사람이 볼 수 없는 층에 산다. 피해자는 속았다는 사실조차 모른다.

03

위임의 배신

사용자는 에이전트에게 ‘내 편’이 되어 달라고 맡겼다. 조작된 에이전트는 사용자의 대리인이 아니라 판매자의 대리인이 된다.

04

책임의 증발

판매자는 “에이전트가 골랐다”고, 에이전트 제공사는 “웹에 그렇게 쓰여 있었다”고 말한다. 조작의 사슬이 길수록 책임은 흐려진다.

05 · 최적화와 조작 사이

기계에게 잘 보이는 것과 기계를 속이는 것은 다르다

판매자에게 에이전트를 위한 최적화는 정당하고, 필요하다. 이 시리즈의 에이전트를 설득하는 기준에서 다뤘듯, 정확한 스펙과 투명한 조건을 기계가 읽기 쉽게 정리하는 것은 좋은 판매의 새 형태다. 문제는 그 선이 어디서 넘어가느냐다. 같은 ‘구조화 데이터’라도, 사실을 정리하면 최적화이고 사실을 비틀면 조작이다.

선을 긋는 데 복잡한 이론은 필요 없다. 네 가지 질문이면 충분하다.

01

투명성 테스트

이 신호를 사람 고객에게 그대로 보여줘도 떳떳한가? 숨겨야만 작동한다면 그것은 조작이다.

02

일관성 테스트

사람에게 말하는 것과 기계에게 말하는 것이 같은가? 청중에 따라 사실이 바뀌면 그것은 기만이다.

03

검증 테스트

제3자가 이 주장을 확인할 수 있는가? 검증 가능한 사실을 잘 정리하는 것은 최적화다.

04

위임자 테스트

이 신호가 에이전트에게 일을 맡긴 사람의 이익을 해치는가? 해친다면, 기계가 아니라 그 사람을 속이는 것이다.

기계는 속아도 억울해하지 않는다. 그러나 기계에게 일을 맡긴 사람은 억울하다. 에이전트를 향한 조작은 결국 사람을 향한 기만이다.

06 · Layers of defense

방어선은 한 겹이 아니라 네 겹이다

에이전트를 더 똑똑하게 만드는 것만으로는 부족하다. 공격자도 같은 모델로 공격을 시험할 수 있기 때문이다. 미국 표준기술연구소(NIST)가 적대적 머신러닝 분류 체계(NIST AI 100-2)에서 정리했듯, 이런 공격에는 완벽한 방어가 아직 없다. 그렇다면 답은 한 겹의 벽이 아니라 여러 겹의 그물이다. 한 겹이 뚫려도 다음 겹이 잡는 구조.

신뢰·검증 인프라의 네 겹 (개념도)

A

에이전트 측

의심을 기본값으로 — 읽은 콘텐츠는 ‘데이터’일 뿐 ‘지시’가 아니다

여러 출처 교차 검증, 불일치하면 멈추고 보고

권한 최소화, 결제·구독 같은 되돌리기 힘든 행동엔 사람 확인

무엇을 읽고 왜 골랐는지 남기는 감사 로그

B

판매자 측

서명된 상품 피드 — 누가, 언제 발행했는지 확인 가능하게

구조화 데이터와 실제 결제 조건의 일치

사람과 기계에게 같은 콘텐츠

구매 검증된 리뷰, 리뷰 출처 공개

C

플랫폼 · 표준 측

콘텐츠 출처 증명 표준(예: C2PA 계열)의 커머스 데이터 확장

가격·재고·리뷰에 대한 제3자 검증과 감사

판매자 신뢰 등급·평판 레지스트리

조작 적발 시 에이전트 생태계 공동 차단

D

규제 측

기존 기만 금지 법리의 적용 — 대상이 기계라도 피해자는 사람

EU DSA 25조, 미국 FTC법 5조, 한국 전자상거래법 다크패턴 규정의 해석 확장

에이전트 결제의 책임 배분 원칙 명문화

조작 신고·분쟁 조정 창구

공통 기반 — 서명된 데이터 · 출처 증명 · 제3자 검증 · 의심 기본값 · 감사 로그

다섯 가지 공통 기반은 각각 다른 질문에 답한다. 서명된 데이터는 ‘누가 이 말을 했는가’, 출처 증명은 ‘이 말이 어디서 왔고 중간에 바뀌지 않았는가’, 제3자 검증은 ‘이 말이 사실인가’, 의심 기본값은 ‘이 말을 따라야 하는가’, 감사 로그는 ‘잘못되었을 때 무엇을 근거로 되짚을 수 있는가’에 답한다.

규제 겹에는 정직한 단서가 필요하다. DSA 25조나 각국의 다크패턴 규정은 사람 이용자를 전제로 쓰였다. 에이전트를 향한 조작에 이 조항들이 어떻게 적용될지는 아직 열린 질문이다. 다만 원칙은 분명하다. 조작의 표적이 기계였더라도 손해를 본 것이 사람이라면, 기만을 금지하는 기존 법리의 정신은 그대로 적용되어야 한다.

이 네 겹은 협상에도 그대로 이어진다. 에이전트끼리 가격을 주고받는 내 에이전트 vs 상대 에이전트의 세계에서는 상대가 보낸 모든 메시지가 곧 잠재적 인젝션이기 때문이다.

신뢰는 선언되는 것이 아니라 검증되는 것이다. 에이전트 커머스의 진짜 인프라는 결제망이 아니라 검증망이다.

07 · The pledge

판매자가 하지 말아야 할 여덟 가지

규제보다 먼저 필요한 것은 스스로 긋는 선이다. 에이전트 시대의 판매자에게 권하는 짧은 서약이다. 할 수 있는 일의 목록이 아니라, 할 수 있어도 하지 않는 일의 목록.

01

사람에게 보이지 않는 텍스트로 에이전트에게 지시하지 않는다.

02

사람과 에이전트에게 서로 다른 가격·스펙·조건을 보여주지 않는다.

03

피드·API의 가격과 실제 결제 금액을 다르게 두지 않는다.

04

재고·마감 필드에 사실이 아닌 희소성을 넣지 않는다.

05

리뷰를 생성·구매하거나, 경쟁사의 데이터를 오염시키지 않는다.

06

요청받지 않은 옵션·구독을 기본값으로 끼워 넣지 않는다.

07

에이전트가 경쟁 상품을 배제하도록 유도하는 문구를 쓰지 않는다.

08

에이전트의 확인 절차를 우회하는 경로를 설계하지 않는다.

이 서약은 손해가 아니다. 에이전트는 기억한다. 한 번 불일치가 적발된 판매자의 데이터는 다음부터 더 엄격한 검증을 거치거나, 아예 후보에서 빠진다. 사람 고객은 속은 것을 잊을 수도 있지만, 에이전트 생태계의 평판 레지스트리는 잊지 않는다. 기계 시대의 정직은 윤리이면서 동시에 가장 확실한 전략이다.

Fool the machine, betray the human

기계를 속이는 순간,
사람을 배신하는 것이다.

에이전트 커머스는 더 공정한 시장을 약속한다. 감정을 흔드는 대신 사실을 비교하는 시장. 그러나 그 약속은 기계가 읽는 사실이 진짜일 때만 지켜진다. 서명된 데이터, 출처 증명, 제3자 검증, 의심하는 에이전트, 되짚을 수 있는 기록 — 이것들이 새 시장의 신뢰를 떠받치는 기둥이다. 그리고 그 첫 번째 기둥은 기술이 아니라, 속일 수 있어도 속이지 않겠다는 판매자의 선택이다.