테크레시피

인간 이상 정확도로 CAPTCHA 돌파하는 AI 나왔다

영어권에서 가장 접속 수가 많은 세계 최대 규모 이미지 커뮤니티인 4chan에서는 게시물을 작성할 때 자신이 인간임을 증명하는 CAPTCHA를 통과해야 한다. 머신러닝을 사용해 이런 CAPTCHA를 돌파하는 프로젝트 기록을 한 소프트웨어 개발자(Blackjack)가 공개했다.

이 개발자는 먼저 모델을 훈련시키기 위한 데이터를 확보하기 위해 스크립트를 작성해 4chan 내 CAPTCHA 이미지 수백 장을 스크레이핑했다. 그 과정에서 빈번하게 요청하는 등 행동을 하면 부정 방지를 위해 CAPTCHA가 점점 어려워진다는 것을 알게 됐다.

훈련용 데이터셋에는 CAPTCHA를 실제로 해결한 정답을 포함해야 한다. 개발자는 직접 CAPTCHA를 풀거나 신뢰할 수 있는 친구에게 부탁하거나 작업자가 CAPTCHA 이미지를 돌파해주는 외주 서비스를 이용하는 등 방법을 시도해 봤지만 정확도가 너무 낮은 등 문제로 단념할 수밖에 없었다.

인력을 통한 해결을 포기한 개발자는 합성 데이터를 사용하는 방법을 생각해 냈다. 4chan 내 CAPTCHA는 배경 노이즈와 특정 문자로 구성되어 있다.

개발자에 따르면 CAPTCHA 이미지에 포함된 문자 성분인 큰 윤곽만을 제거해 노이즈만 남기는 건 쉬웠다고 한다. 이어 스크립트로 문자를 추출하면서 마이크로소프트 오픈소스 소프트웨어인 VoTT를 사용해 수동으로 태그를 달아 각 문자마다 이미지 50~150장을 수집했다.

그 과정에서 개발자는 CAPTCHA 이미지에 사용되는 문자는 제한된 문자라는 걸 알아냈다. 훈련용 데이터셋에는 최종적으로 수작업으로 작성한 해결된 CAPTCHA 이미지 500장과 합성 생성 이미지 5만 장이 포함됐다. 이어 합성곱 층 3개를 가진 CNN과 LSTM 층 2개를 결합한 LSTM CNN 아키텍처 모델을 구축해 데이터셋으로 훈련시켰다.

이렇게 개발된 AI 모델은 4chan 내 CAPTCHA를 90% 이상 정확도로 돌파할 수 있었다고 한다. 이는 인간 작업자가 실제로 CAPTCHA를 해결하는 앞서 언급한 상업 서비스 80%보다 높은 정확도다.

개발자는 물론 개선할 점도 남아 있지만 처음에 목표했던 바를 달성했기 때문에 지금까지의 성과에 만족한다고 말했다. 관련 내용은 이곳에서 확인할 수 있다.

추천기사