Cloudflare Turnstile을 풀어 주는 라이브러리(헤드리스 브라우저 불필요)

Cloudflare Turnstile solver library (no headless browser required)

github.com/chris124567 ▲ 313 댓글 112 costco

요약

브라우저를 띄우지 않고 Cloudflare Turnstile을 통과하는 Rust 라이브러리 cfsolve가 공개됐습니다.

클라우드플레어의 봇 검사 과정을 역공학(동작을 거꾸로 분석하는 일)으로 풀어낸 오픈소스 프로젝트입니다. 라이브러리와 명령줄 도구로 쓸 수 있고, 헤드리스 브라우저(화면 없이 돌아가는 브라우저) 없이 HTTP 요청만으로 작동합니다.

왜 중요한가

  • 클라우드플레어의 봇 검사가 실제 브라우저 없이도 뚫릴 수 있음을 공개된 코드로 보여 줍니다.
  • 사이트 운영자의 봇 차단과 자동화 이용자의 우회 사이에 벌어지는 공방이 더 격해질 수 있습니다.

핵심 내용

  • Turnstile 위젯을 풀면 토큰을, 챌린지 페이지(접속 전 봇 여부를 가리는 화면)를 넘으면 cf_clearance 쿠키를 돌려줍니다.
  • 실제 브라우저의 검사 응답을 녹화한 프로필로 브라우저를 흉내 내며, 기본 프로필은 아이폰의 Safari입니다.
  • 프로필은 Safari와 Chrome 계열만 지원하고, 새로 만들려면 수작업이나 AI의 도움이 필요합니다.
  • cf_clearance 쿠키는 프로필과 같은 IP 주소와 User-Agent(브라우저 식별 문자열)에서만 통합니다.
  • 클라우드플레어가 검사를 자주 바꿔서, 새 챌린지 빌드가 나오면 실패할 수 있습니다.

HN 반응

  • 개인용 자동화에 유용하다는 환영과, Turnstile이 서버 부담을 절반 넘게 줄인다는 운영자의 반론이 맞섰습니다.
  • 공개 우회가 차단만 키운다는 우려가 나왔고, Firefox·Edge Dev 이용자들은 이미 정상 접속도 막힌다고 호소했습니다.

댓글

30개 표시 · 전체 112개
  1. costco HN

    제작자입니다. 며칠 전에 올렸는데 세컨드 찬스 풀에 들어갔는지 지금 메인 페이지에 올라와 있네요. 아무튼 한 사용자에게서 이 솔버가 유럽 프록시에서는 안 되고 미국 프록시에서는 된다는 제보를 받았습니다. 지역마다 다른 버전을 내려주고 있을 수도 있겠네요. 곧 고치겠습니다. 지금은 컴퓨터 앞에 없지만, 몇 시간 전에 테스트했을 때는 잘 작동했습니다(Cloudflare가 계속 이것저것 바꾸니까요).

  2. vikrantrathore HN

    https://github.com/insanai/sibuna 도 한번 보세요. PoW(작업 증명)를 할 수 있고 토큰으로 접근 권한을 받을 수 있습니다. 자체 wasm 기반 솔버도 있어서 사용자와 함께 동작합니다. wasm 런타임만 있으면 브라우저 없이 로컬 컴퓨터에서도 돌릴 수 있습니다. 아마 Cloudflare 쪽에도 도움이 될 겁니다. 제가 sibuna를 만들었습니다.

  3. costco HN

    참고로 독일과 프랑스 IP 주소로 재현할 수 있었던 문제는 모두 고쳤습니다. 다른 문제가 생기면 제 프로필에 있는 주소로 이메일 보내 주시고, 최신 커밋을 쓰고 계신지도 확인해 주세요.

  4. jwr HN

    만들어 주셔서 감사합니다. 일상적인 일을 봇으로 처리하고 싶은데(허드렛일은 AI가 하고 사람은 안 해도 되게요!) 한심한 "안티봇" 정책에 막히는 사람들에게 정말 도움이 됩니다.

  5. philipallstar HN

    이런 조치가 왜 존재하는지는 어느 정도 아실 텐데요. 아니면 이런 도구가 그걸 돕게 되겠죠. 분명히요.

  6. Vaushite HN

    할 말이 있으면 하세요.

  7. CamperBob2 HN

    그 조치는 봇 군단이 몰려와 악용하는 걸 막으려고 있는 거지, 선의로 움직이는 개인 사용자의 에이전트를 막으려고 있는 게 아닙니다.

  8. philipallstar HN

    맞아요.

  9. vikrantrathore HN

    이런 도구의 상당수는 기본적으로 저울을 맞추는 게 목적입니다. 봇이 에너지를 적게 쓰면 그 비용은 서비스 제공자가 떠안게 됩니다. 사람이 쓰도록 설계한 제공자와 비슷하거나 더 많은 에너지를 봇이 쓴다면 공평하죠. 균형을 맞추자는 얘기고, 소규모로 운영하는 웹사이트나 쇼핑몰, 콘텐츠 제공자는 컴퓨팅, 메모리, 대역폭 예산이 한정되어 있어서 비용 관리가 필수입니다.

    제가 sibuna를 만든 동기 중 하나가 이런 분들을 돕는 것입니다.

  10. jwr HN

    문제는 "사람이 쓰는 것"이라는 개념이 제대로 정의되어 있지 않다는 점이라고 봅니다. 크롤러를 막고 싶은 마음(본능일까요?)은 이해하지만, 사람의 필요를 대신 채워 주는 봇은 다르다고 주장하고 싶습니다. 예를 들어 제가 원하는 다른 형태로 보여 주려고 콘텐츠를 가져오는 봇이 있습니다. 저를 위해 소프트웨어를 짜느라 문서를 가져와야 하는 봇도 있고요. 제가 장애가 있어서 콘텐츠를 읽어 주거나 설명해 주는 봇도 있습니다. "봇"이 바로 사람의 필요를 채우려고 존재하는 사례가 많은데도 우리는 그런 봇을 막고 있습니다.

    더 나쁜 건, 많은 사람이 누가 자기 웹사이트에 접근할 수 있는지에 대한 통제권을 제3자에게 넘기고 있다는 점입니다. 여기서는 인터넷에서 점점 위협적인 독점이 되어 가는 기업이고, 저는 이것도 문제라고 생각합니다.

  11. vikrantrathore HN

    봇이 바로 사람의 필요를 채우려고 존재하는 사용 사례가 많은데도 우리는 그런 봇을 막고 있습니다.

    사람의 문제를 해결하는 봇이라면 당연히 써도 됩니다. 다만 사람의 규모에 맞춰 일하게 하자는 겁니다. Sibuna는 PoW 기반인데, 봇을 금지한다는 뜻이 아니라 작업 증명을 보여 달라는 것뿐입니다. 20~30ms쯤 걸리니 사람은 느끼지도 못할 수 있습니다. 하지만 수백 개씩 복제본을 만들어서 소규모 제공자의 대역폭이나 컴퓨팅 비용은 아랑곳없이 콘텐츠를 파헤치려는 봇이라면, 접근하기 전에 PoW를 좀 하는 게 공정한 거래입니다.

    더 나쁜 건, 많은 사람이 누가 자기 웹사이트에 접근할 수 있는지에 대한 통제권을 제3자에게 넘기고 있다는 점입니다

    제가 Sibuna를 만든 이유가 바로 이겁니다. 앞서 말씀드렸듯이 번거로운 설정 없이 쓸 수 있고, Cloudflare와 비슷한 기능을 지원하며 고성능 콘솔까지 들어 있습니다.

  12. 100111011111 HN

    너무 한쪽 시각이네요. 구글 캡차는 절대 당신 말에 맞장구치거나 동의하지 않을 겁니다. 웹 서버 요청이 엣지에서 차단된다면 대개 그럴 만한 이유가 있어서입니다. 어차피 그걸 우회할 방법은 따로 있고요.

  13. jyrkesh HN

    저는 몇 년째 Edge Dev를 메인 브라우저로 쓰고 있는데, 최근 몇 번의 업데이트 이후로 Turnstile 통과에 실패했다 됐다 합니다. https://debug.challenges.cloudflare.com/ 에서 오류 코드가 뜨는데, 지금은 마법처럼 다시 잘 돼서 에러가 안 나네요.

    그런데 안 될 때는 이 브라우저 프로필에서 인터넷의 30~50%쯤이 막혀 버린다는 걸 알게 됐습니다. Cloudflare 챌린지라는 블랙박스를 통과할 수 없으니까요.

    정말 미칠 노릇인 건, 이런 우회 방법이 사실상 어디에나 있고 대규모 행위자들은 증류(distillation)를 하고 소셜 미디어에 스팸을 뿌리며 온 사방에서 죽은 인터넷(Dead Internet)을 만들고 있는데, 정작 결과는 제가 Letterboxd 같은 데 로그인조차 못 한다는 겁니다.

    모르겠어요. Cloudflare한테 화가 나지도 않습니다. 그쪽도 최선을 다하고 있으니까요. 저도 매일 LLM을 쓰고, 강력한 도구이고, 판도라의 상자는 이미 닫히지 않습니다. 그냥 인터넷이 LLM에 의한 DDoS의 포화 상태에 이른 것 같은 기분이 듭니다.

  14. rootsudo HN

    Edge Dev에 디버깅 모드란 얘기죠? 저도 엄청 짜증 났는데, 다행히 그 서비스를 꼭 쓸 필요가 없어서 그냥 안 쓰고 있어요. 그렇게 제 인터넷 사용 습관이 바뀌었죠.

  15. tonyhart7 HN

    MS Edge 쓰신다고요??? 저는 솔직히 그런 문제 겪어 본 적이 없는데요.

  16. userbinator HN

    "벽에도 귀가 있다."

    개인적으로는 이렇게 공개적으로 곰을 찔러 보는 건 조심하겠습니다. 그래봐야 확전만 앞당기고, 사용자 에이전트 차별을 당하면서도 나름대로 우회책을 찾아낸 우리 같은 사람들만 더 힘들어집니다.

    AI가 부상한 지금은 논점이 의미 없어졌을 수도 있지만, 그래도 이건 전쟁이고 여러분이 공개하는 건 무엇이든 여러분에게 불리하게 쓰일 수 있고 실제로 쓰일 겁니다.

  17. lxgr HN

    이 게임을 피할 방법은 이제 없다고 봐서, 차라리 빨리 감기로 끝에 뭐가 있는지 보고 싶습니다. 거기까지 가는 길이 이미 너무 고통스러우니까요.

    끊임없이 바뀌는 고통보다는 어느 정도 균형이 잡힌 뒤의, 일정하고 예측 가능한 고통을 언제든 택하겠습니다. 예를 들어 웹 표준 호환성 문제로 Firefox를 지원하지 않는 사이트가 어딘지는 알고 있으니 대안을 쓰면 됩니다. 하지만 Cloudflare가 언제 또 "무료 브라우저를 쓴 죄"로 저를 웹의 절반에서 쫓아낼지는 알 수 없습니다.

  18. aftbit HN

    끝으로 빨리 감기라고요? 좋아요. 인증된 보안 부팅 체인으로 돌아가는 검증된 기기에서, 제조사 순정 Safari, Chrome, MS Edge로만 웹에 접속할 수 있습니다. 계정을 만들 때마다 실시간 신원 확인이 필요하고요. 로그인 수단은 인증된 패스키뿐이며, 반드시 기기에 묶여 TPM에 저장되어야 합니다.

  19. Vaushite HN

    그게 끝은 아니죠. 인증된 기기에 전선을 납땜해서 인증 안 된 짓을 시킬 수 있으니까요.

  20. aftbit HN

    아날로그 구멍은 여전히 문제로 남죠(마음가짐에 따라 기회일 수도 있고요). 기기에 납땜하지 않더라도 플로터 프레임에 기기를 올려서 화면을 콕콕 찌르게 하고 비전 모델로 화면을 이해시키면 됩니다. 인증된 기기를 사람 뇌에 장착하는 방법을 알아낼 때까지는 막을 수 없을 거예요(뉴럴링크 참고).

  21. nextaccountic HN

    진짜 끝은 원격 증명(remote attestation)에 쓰이는 암호 키가 전부 공개되는 겁니다.

    오픈소스 소프트웨어는 키를 내장하지 않겠지만, 직접 내려받으라고 안내할 수는 있겠죠.

  22. aftbit HN

    그럴 수도 있겠네요. Widevine 키 일부가 외부에 퍼져 있다는 건 알지만, L1 키가 전부 유출됐는지는 잘 모르겠어요. 적어도 이론상으로는 하드웨어에 고유 키를 심어 두고 유출되면 폐기할 수 있을 것 같거든요.

  23. threatofrain HN

    이게 이 쫓고 쫓기는 게임의 유일한 진짜 해법일지도 모릅니다.

  24. hatsix HN

    결정하는 건 Cloudflare가 아니라 웹사이트 소유자와 운영자입니다. 그 결정을 내려 본 사람으로서 말하면 득실은 분명합니다. Turnstile을 쓰면 확장에 필요한 자원을 절반 넘게 줄일 수 있어서 비용이 크게 줄어듭니다. 자동화된 트래픽은 몰릴 때 확 치솟을 수 있습니다. 스크레이퍼, 되팔이꾼, 제로데이 침투 테스터 같은 것들이요. 영향을 받는 Firefox 사용자 한 명당 자동화된 요청은 아마 1만 건쯤 막고 있을 겁니다. 모든 Firefox 사용자가 걸리는 것도 아니니까요.

    웹사이트 운영자가 여러분을 벌주려는 게 아니라, 자동화를 차별하지 않고는 우리가 버틸 수 없는데 여러분의 신호가 오인되고 있는 겁니다.

  25. philipallstar HN

    Cloudflare가 언제 그랬다는 건가요?

  26. shiandow HN

    프라이버시를 지키려는 조치를 하나라도 하거나, 사실 자신을 덜 식별되게 만드는 일이라면 뭐든 그런 일이 꽤 흔합니다.

    Cloudflare는 다른 곳보다 덜 심한 편이라고 생각하지만, 이제는 제 프라이버시 보호 조치가 그냥 무력화되는 건 아닐까 걱정됩니다.

  27. lxgr HN

    요즘은 Firefox를 쓰는 것만으로도 충분합니다. 이제 Firefox로는 기차표도 못 끊어요. "행동이 봇과 비슷합니다. 계정에 로그인하거나 다른 브라우저를 사용해 보세요."라고 뜨죠. 10년 넘게 쓴 제 계정에 이의 없이 처리된 주문이 수십 건이나 있는데도, 사용자 에이전트만큼의 비중도 없나 봅니다.

  28. philipallstar HN

    그게 "Cloudflare가 언제 또 무료 브라우저를 쓴 죄로 저를 웹의 절반에서 쫓아낼지"와 무슨 상관인가요? 관련 없어 보이는데요?

  29. lxgr HN

    Firefox에서는 (광고 차단기를 켜든 끄든, 향상된 추적 방지를 끄든) 계속 막히거나 캡차를 연달아 내밀면서 Chrome에서는 아무 문제 없이 돌아간다면, 제가 내릴 수 있는 결론은 정말 하나뿐입니다.

  30. philipallstar HN

    아니요, 결론은 여러 개 있습니다. 무료 브라우저를 써서 벌을 받는 거라는 생각은 말씀하신 내용만으로는 뒷받침되지 않아요.

    저는 추적 방지와 DDG 확장을 켠 채로 Firefox만 쓰는데, 늘 잘 됩니다.

Hacker News에서 보기 ↗