
CAPTCHA, 이제 사람이 아니라 AI를 걸러야 하는 시대
인터넷을 쓰다 보면 "로봇이 아닙니다"를 클릭하거나, 흐릿한 사진에서 신호등을 찾아 클릭하는 경험을 해보셨을 거예요. 이게 바로 CAPTCHA(캡차)인데요, 원래 목적은 봇과 사람을 구별하는 거예요. 그런데 문제가 생겼어요. GPT-4나 Claude 같은 대형 언어 모델(LLM)이 등장하면서, 텍스트 인식은 물론이고 이미지 속 물체까지 정확하게 식별할 수 있게 되었거든요. 기존 CAPTCHA의 전제 자체가 흔들리고 있는 거예요.
바로 이 문제를 정면으로 다루는 프로젝트가 나왔어요. Cerno라는 프로젝트인데요, 기존 CAPTCHA와는 접근 방식이 완전히 달라요. 기존 캡차가 "사람의 시각 능력은 뛰어나고, 컴퓨터는 이미지를 잘 못 읽는다"는 가정에 기반했다면, Cerno는 "LLM의 추론 패턴에는 특유의 약점이 있다"는 가정에서 출발해요.
Cerno는 어떻게 동작하나요?
Cerno의 핵심 아이디어를 쉽게 설명해볼게요. LLM은 텍스트를 이해하고 논리적으로 추론하는 능력이 뛰어나지만, 그 추론 과정에는 사람과 다른 특유의 패턴이 있어요. 예를 들어, 사람은 직관적으로 즉시 파악하는 것을 LLM은 복잡한 추론 체인을 거쳐야 하거나, 반대로 사람은 헷갈리는데 LLM은 쉽게 푸는 문제 유형이 있어요.
Cerno는 이런 차이를 이용해서 LLM이 특히 실수하기 쉬운 유형의 과제를 제시해요. 구체적으로는 공간적 추론, 맥락 의존적 해석, 또는 모호한 지시 같은 것들을 활용하는 거예요. 사람은 상식과 직관으로 자연스럽게 풀지만, LLM은 학습된 패턴에 의존해서 체계적으로 틀리는 종류의 문제를 만드는 거죠.
이게 뭐냐면, 기존 CAPTCHA가 "이 이미지를 읽을 수 있니?"라는 지각(perception) 테스트였다면, Cerno는 "이 상황을 사람처럼 이해할 수 있니?"라는 인지(cognition) 테스트에 가까워요. 이미지 인식 같은 건 AI가 이미 사람 수준을 넘어섰지만, 사람 특유의 상식적 사고방식은 아직 완벽히 모방하지 못하는 영역이 있거든요.
비유를 하나 들어볼게요. 기존 캡차가 "이 자물쇠를 열 수 있는 열쇠를 가지고 있니?"라고 묻는 거였다면, Cerno는 "이 문을 열어야 하는지 말아야 하는지 상황을 보고 판단할 수 있니?"라고 묻는 거예요. 열쇠는 복제할 수 있지만, 상황 판단은 복제하기 훨씬 어렵잖아요.
기존 CAPTCHA의 한계와 새로운 접근들
기존 CAPTCHA 시스템의 역사를 잠깐 살펴보면, 초기에는 뒤틀린 텍스트를 읽게 하는 방식이었어요. 그런데 OCR(광학 문자 인식) 기술이 발전하면서 뚫렸고, 그래서 구글이 reCAPTCHA를 만들었죠. 이후 이미지 분류("버스가 있는 타일을 모두 클릭하세요") 방식으로 발전했는데, 이것도 비전 AI가 발전하면서 효과가 줄었어요. 최신 reCAPTCHA v3는 마우스 움직임이나 브라우저 행동 패턴을 분석하는 "행동 분석" 방식으로 전환했는데요, 이건 개인정보 우려가 크다는 비판을 받고 있어요.
Cloudflare의 Turnstile도 비슷한 행동 분석 기반 접근을 사용하고 있고, hCaptcha는 머신러닝 학습 데이터를 만드는 것과 봇 방어를 결합한 독특한 비즈니스 모델을 가지고 있어요. 하지만 이런 솔루션들 모두 LLM이 자동화 봇의 "두뇌" 역할을 하는 시나리오에 대해서는 완벽한 답을 내놓지 못하고 있어요.
Cerno가 제시하는 "LLM 추론 패턴의 약점을 공략한다"는 접근은 이 흐름에서 꽤 신선한데요, 다만 현실적인 과제도 있어요. LLM은 빠르게 발전하고 있어서, 오늘 LLM이 실수하는 유형이 내일은 해결될 수 있거든요. 그래서 Cerno도 지속적으로 새로운 과제 유형을 개발해야 하는 "군비 경쟁" 상황에 놓일 수밖에 없어요.
한국 개발자에게 주는 시사점
웹 서비스를 운영하고 계신 분이라면, 봇 방어 전략을 다시 한번 점검해볼 필요가 있어요. 특히 회원가입, 로그인 시도, API 호출 제한 같은 곳에 기존 CAPTCHA만 의존하고 있다면, LLM 기반 자동화에 취약할 수 있어요.
Cerno 같은 새로운 접근이 아직 프로덕션에 바로 쓸 수 있는 수준인지는 직접 테스트해봐야 하겠지만, 적어도 "CAPTCHA = 이미지 인식"이라는 고정관념을 벗어나는 계기는 될 거예요. Rate limiting, 행동 분석, 디바이스 핑거프린팅 등 여러 겹의 방어를 조합하는 게 현실적인 전략이고, 여기에 LLM 특화 방어 계층을 추가하는 게 앞으로의 방향이 될 것 같아요.
또한 반대로 생각해보면, LLM의 추론 패턴이 어떤 유형의 문제에서 사람과 다르게 동작하는지 이해하는 건 AI 애플리케이션을 만들 때도 도움이 돼요. 여러분이 만드는 서비스에 LLM을 통합할 때, 어떤 부분에서 LLM이 예상과 다르게 동작할 수 있는지 미리 파악하는 데 활용할 수 있거든요.
마무리
핵심 한줄 정리: LLM 시대에 CAPTCHA도 진화해야 하고, Cerno는 "사람의 생체 능력이 아니라 LLM의 추론 약점"을 겨냥한 새로운 방향을 제시하고 있어요.
여러분의 서비스에서는 봇 방어를 어떻게 하고 계세요? LLM 기반 자동화 공격을 경험해보신 적이 있으신가요? 그리고 근본적으로, AI와 사람을 구별하는 게 앞으로도 가능한 일일까요, 아니면 결국 구별 자체를 포기하고 다른 접근을 찾아야 할까요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공