Scarnox · Blog

Arkose Labs FunCaptcha 설명: 검증 챌린지의 구조와 풀이 방법

Arkose Labs는 많은 개발자에게 아직 FunCaptcha로 알려져 있으며, 대형 사이트가 회원가입, 로그인, 결제에 사용하는 캡차 제공업체입니다. 가장 잘 알려진 기능은 검증 챌린지(enforcement challenge)입니다. 위험 엔진이 방문자에게 추가 확인이 필요하다고 판단하면, 물체 회전이나 패턴 맞추기처럼 게임 같은 짧은 퍼즐이 나타납니다. Arkose용 Scarnox 지원은 준비 중입니다. 이 가이드는 챌린지가 어떻게 작동하는지, 왜 단순한 위젯보다 어려운지, 그리고 합법적인 작업을 위한 일반적인 접근법을 설명합니다.

Arkose 챌린지가 전달되는 방식

보호되는 페이지는 Arkose 스크립트를 불러오고, 사이트를 식별하는 공개 키를 전달합니다. 챌린지 자체는 제공업체에서 내려오며, 위젯은 방문자의 답을 토큰 형태로 다시 보고합니다. 다른 토큰 위젯과 마찬가지로, 사이트의 백엔드는 결과를 신뢰하기 전에 제공업체를 통해 이 토큰을 검증합니다.

공개 키는 페이지 작업을 할 때 찾아야 하는 식별자입니다. PopularCaptcha나 reCAPTCHA 위젯에서 sitekey가 하는 역할과 같습니다. 사이트키 찾기 가이드에서 페이지의 식별자를 찾는 방법을 설명합니다.

챌린지의 모습

Arkose 챌린지는 보통 짧고 시각적입니다. 예를 들면 이미지를 똑바로 세우기, 여러 항목 중 일치하는 것 고르기, 3D 장면의 순서 따라가기 등이 있습니다. 디자인은 자주 바뀌고, 사이트마다 다른 챌린지 세트를 쓸 수 있습니다. 퍼즐은 그 자체로 신호이기도 합니다. 방문자가 움직이는 방식과 걸린 시간이 최종 답만큼 중요할 수 있습니다.

위험 엔진

챌린지를 보여주기 전에 제공업체는 세션에 점수를 매깁니다. 점수는 브라우저 신호, 기기 특성, 요청 이력, 페이지에서의 행동을 바탕으로 합니다. 위험도가 낮은 방문자는 챌린지 없이 통과할 수 있습니다. 위험도가 높으면 하나 이상의 퍼즐이 나타나고, 매우 위험하다고 판단되면 차단될 수도 있습니다.

위험 엔진은 사이트별로 조정되고 시간이 지나며 바뀌기 때문에, 한 사이트에서 통하는 일반적인 방법이 다른 사이트에서는 실패할 수 있습니다. 검증 챌린지가 단순한 위젯보다 다루기 어려운 이유 중 하나가 이것입니다.

자동화가 걸리는 이유

자동화는 다른 점수 기반 검사와 같은 이유로 표시됩니다. 기본 설정의 헤드리스 브라우저, 이력이 없는 새 세션, 빠르고 규칙적인 요청 패턴, 평판이 나쁜 네트워크 주소가 그 예입니다. 각 신호가 위험 점수에 더해집니다. 그러면 챌린지는 자동화가 잘 해내지 못하는 것, 예를 들어 정확하고 사람 같은 드래그를 요구합니다.

합법적인 접근법

직접 하는 테스트나 합법적인 작업에서 불필요한 챌린지를 줄이려면 다음 방법이 도움이 됩니다.

  1. 일관된 설정의 실제 브라우저 프로필을 사용하세요. 기능을 줄여 만든 자동화 빌드보다 낫습니다.
  2. 세션을 끊기지 않게 유지하세요. 방문자가 페이지마다 새 사용자처럼 보이지 않게 합니다.
  3. 요청 속도를 조절하세요. 사람이 실제로 낼 수 있는 속도로 요청합니다.
  4. 사이트가 본인 것이라면 제공업체의 테스트 환경을 사용하세요. Arkose와 대부분의 대형 제공업체는 실제 위험 점수 없이 연동을 테스트할 수 있는 방법을 제공합니다.
  5. 합법적인 작업인데도 차단된다면 사이트 운영자에게 허용 목록, API 또는 접근 가능한 대안을 요청하세요.

이 방법들은 챌린지가 나타나는 빈도를 낮춥니다. 하지만 제공업체가 세션에 챌린지를 낼 권리를 없앨 수는 없으며, 본인 소유가 아닌 계정의 로그인 보호를 우회하는 데 사용해서는 안 됩니다.

Arkose 솔버가 할 일

토큰 기반 Arkose 솔버는 공개 키와 페이지 URL을 받아 유효한 토큰을 만들고, 이를 코드에 돌려줄 것입니다. 그러면 코드는 토큰이 만료되기 전에 폼과 함께 제출합니다. 연동 구조는 현재 운영 중인 PopularCaptcha 흐름과 비슷하겠지만 세부 사항은 다릅니다. Scarnox는 지원이 출시되면 작업 유형과 필드를 API 레퍼런스에 문서화할 예정입니다.

Scarnox는 지금 Arkose를 실시간으로 풀지 않습니다. 현재 실시간으로 쓸 수 있는 작업 유형은 PopularCaptcha(프록시 없음)뿐입니다. Arkose 지원은 준비 중입니다.

윤리적 기준선

검증 챌린지는 로그인 페이지, 결제 흐름, 회원가입 폼을 악용으로부터 보호하기 위해 존재합니다. 이런 흐름에 어떤 솔버든 사용해서 본인 소유가 아닌 계정에 로그인하거나, 스팸 계정을 만들거나, 다른 고객보다 먼저 한정 재고를 사는 것은 허용되지 않습니다. Scarnox는 이런 용도를 지원하지 않습니다. 보호된 사이트에서 하는 합법적인 작업은 사이트 운영자와의 대화에서 시작해야 하며, 허용 여부는 운영자의 답으로 결정됩니다.

작업 전에 확인할 사항

Arkose로 보호되는 흐름을 대상으로 작업을 계획하기 전에 몇 가지 질문에 답해 보세요. 이 흐름이 내 것인가요? 그렇다면 제공업체의 테스트 환경과 내 스테이징 복사본이 만들고 테스트하기에 적합한 곳입니다. 작업이 합법적인가요? 사이트가 허용하는 방식으로 공개 정보를 수집하는 것은 합법적이지만, 내 것이 아닌 계정에 로그인하거나 계정을 대량으로 만드는 것은 그렇지 않습니다. 사이트가 브라우저 작업을 불필요하게 만드는 API나 데이터 피드를 제공하나요? 많은 사이트가 그렇게 하며, 챌린지를 자동화하는 것보다 빠르고 안정적입니다.

그다음 볼륨을 확인하세요. 검증 챌린지는 시간에 따른 행동에 반응하기 때문에, 낮고 일정한 속도로 도는 작업은 한꺼번에 몰아서 도는 작업보다 보통 챌린지를 적게 받습니다. 이를 고려해 일정을 짜고, 설계되지 않은 챌린지를 만나면 반복 재시도하지 말고 작업이 멈추고 보고하도록 하세요.

마지막으로, 챌린지를 완료할 수 없을 때 작업이 무엇을 할지 미리 정하세요. 로그 기록과 함께 깔끔하게 실패하는 편이, 사이트에 부담을 주고 트래픽을 차단당하게 만드는 재시도 폭주보다 훨씬 낫습니다.

스크래핑은 책임감 있게

보호된 사이트를 스크래핑할 계획이라면, 먼저 robots.txt와 이용 약관을 확인하세요. 요청 빈도는 낮게 유지하고, 필요 없는 개인 데이터는 피하며, 브라우저 워크플로를 만들기 전에 API가 있는지 찾아보세요. 웹 스크래핑은 합법인가 가이드에서 주요 질문들을 다룹니다.

다음 단계