여기서 셀프호스팅을 하는 분들은 악성 크롤러를 어떻게 처리하시나요?

이 스레드를 읽으면서: 개발자들, AI 크롤러가 트래픽을 지배해 국가 전체 차단 불가피 | Hacker News

Fediverse 내 인스턴스처럼, 크롤러가 사실상 끊임없이 DDoS 공격을 하는 상황을 직접 겪는 셀프호스트 사용자들이 어떤 기분일지 궁금합니다.

2개의 좋아요

좋은 첫 단계는 새로운 페이지뷰 지표를 사용해 이 문제가 얼마나 큰지 스스로 정량적으로 파악하는 것입니다:

비인간 트래픽이 60% 수준이라면 아마도 문제가 없을 것이며, 조치를 취할 필요가 없습니다.
95%라면… 이제 해결책을 찾아볼 때가 된 것 같습니다.

차단할 크롤러 사용자 에이전트 설정은 관리자의 좋은 친구입니다. 디스코urs는 부하가 그리 크지 않아서 쓰레기 트래픽이 그다지 큰 문제가 되지 않습니다. 하지만 저는 몇몇 최악의 봇들을 차단했는데, 그들의 비즈니스 모델이 정말로 마음에 들지 않기 때문입니다. 모두 AI 회사가 콘텐츠를 도둟간다고 울고 있지만, 실제로도 그렇게 하고 있습니다. 하지만 SEO 회사가 훨씬 더 나쁘며, 그들의 봇은 정말로 탐욕스럽습니다.

하지만 저는 지리적 차단(geo-blocking)도 사용하고 있습니다. 할 수 있으니까요. 노커(knockers)와 기타 악성 행위자의 출처가 되는 나라가 최소한 반 다스 이상 있습니다. 하지만 포럼이 전 세계 대상이라면, 물론 그런 것은 불가능합니다.

제 워드프레스 사이트에서는 Varnish의 도움으로 Nginx를 사용하여 동일한 작업을 수행합니다.

현재 제 포럼에서 인간과 봇의 비율은 대략 50/50입니다.

1개의 좋아요

참고로, 태그가 맞지 않는 것 같네요.

동의합니다. AI 태그에 플러그인 아이콘이 있으므로 AI 플러그인 전용으로 사용하려는 것 같습니다. 해당 태그를 제거했습니다.

크롤러 콘텐츠는 강하게 캐시되므로, 실제로 크롤러가 DDoS를 일으킬 수 있다고 본 적은 없습니다.

이로 인해 실제로 성능 문제를 겪고 계신 건가요?

5개의 좋아요

무료이거나 외부 서비스를 사용하지 않는 해결책이 있다고 말하고 싶지만, 그런 건 없습니다. 가장 큰 포럼은 bunny.net의 CDN 뒤에 두었습니다. 이 업체는 관대한 무료 플랜을 제공합니다. 하지만 해당 포럼의 경우 보안 서비스를 위해 월 10달러를 지불하고 있습니다. 이를 통해 크롤러, DDoS 공격, 특정 지역을 차단할 수 있습니다. CDN 중에서는 정말 저렴하면서도 효과적이며, CloudFlare가 아닙니다. Fediverse의 많은 사람들이 이 업체를 높이 평가합니다.

Shield 서비스에서 가져온 그래프가 있습니다. (저는 초보라 댓글당 그래프는 하나만 올립니다 :slight_smile: ) 첫 번째 그래프에서는 전체 200만 건의 연결 중 48.4만 건이 봇 연결이었습니다. 방금 CDN으로 이전한 시점이었고, 필터링이나 차단 설정이 전혀 되어 있지 않았습니다. 다음 그래프에서는 봇이 1.1만 건, 접근 목록으로 인해 차단된 것이 9만 건(중국과 러시아, 그리고 아마도 몇몇 다른 국가를 차단하고 있습니다)으로 나타납니다. 즉, 그 주 총 70만 건의 요청 중 약 10만 건이 봇에서 온 것입니다.

이후:

2개의 좋아요

나는 아니었어, 하지만 그걸 처리하기 위해 몇 가지 규칙을 만들었거든.

Chandler Bing: 'Yeah, but I'm so much faster'

Cloudflare는 항상 나에게 친절했고, 봇 차단 서비스에 대해 비용을 지불해 본 적이 없습니다. 그리고 AI 차단 같은 그들의 새로운 기능들은 훌륭해서, 아마도 그것이 내가 그들의 고객이자 홍보대사로 남아 있는 이유일 겁니다. AI 스크레이퍼가 내 데이터를 훔치는 것을 원하지 않나요? 내 사이트처럼 단순히 robotstxt만으로도 충분히 가능하지만, 그들의 관리형 규칙 중 하나를 사용하면 됩니다.

… 일반적인 관리형 규칙보다 훨씬 좋습니다 …

이런 스타트업들이 실제로 그 파일을 읽고 존중하는지는 또 다른 문제지만, 적어도 시도했다는 점은 칭찬할 만합니다. 과거에 내 사이트들은 봇으로 인한 문제가 없었고, 로그를 확인한 후 공통적인 워드프레스 익스플로잇을 직접 차단할 수 있는 기능에 대해 여전히 만족하고 있습니다.

1개의 좋아요

페이스북(Meta)도 비슷한 일을 했어요. 'AI 크롤러 제어’를 비활성화하면 Meta가 시간당 9,000개의 요청을 보내기 때문에, 유일한 방법은 모두 차단하는 거예요.

Fediverse에서는 그동안 이런 문제가 없었지만, #activitypub에 대해 더 많은 업데이트를 기다리고 있어요. 문제가 없었더라도 대역폭이 영향을 받을 테니까요.


완전히 맞아요. 저는 CF(Cloudflare)를 사용하는 Lemmy 서버를 쓰고 있고, 해당 서버의 관리자가 이 튜토리얼을 게시했어요.


저도 마찬가지입니다. 제 현재 규칙은 다음과 같습니다:

not (cf.client.bot and (lower(http.user_agent) contains "googlebot" or lower(http.user_agent) contains "bingbot")) and ip.src != IP_BYPASS

그리고 위에서 언급한 Lemmy 서버를 기반으로 한 규칙은:

(starts_with(http.user_agent, "Mozilla/") and http.request.version in {"HTTP/1.0" "HTTP/1.1" "HTTP/1.2" "SPDY/3.1"} and any(http.request.headers["accept"][*] contains "text/html") and http.user_agent wildcard r"HeadlessChrome/*" and http.request.uri.path contains "/xmlrpc.php" and http.request.uri.path contains "/wp-config.php" and http.request.uri.path contains "/wlwmanifest.xml" and ip.src.asnum in {200373 198571 26496 31815 18450 398101 50673 7393 14061 205544 199610 21501 16125 51540 264649 39020 30083 35540 55293 36943 32244 6724 63949 7203 201924 30633 208046 36352 25264 32475 23033 31898 210920 211252 16276 23470 136907 12876 210558 132203 61317 212238 37963 13238 2639 20473 63018 395954 19437 207990 27411 53667 27176 396507 206575 20454 51167 60781 62240 398493 206092 63023 213230 26347 20738 45102 24940 57523 8100 8560 6939 14178 46606 197540 397630 9009 11878 49453 29802} and http.user_agent wildcard r"Mozilla/*" and not cf.client.bot and not ip.src in {BYPASS_IP_1 RANGE_IP.0/23 RANGE_IP_2/24}) or (ip.src.country in {"T1" "XX"}) or (http.request.version in {"HTTP/1.0" "SPDY/3.1" "HTTP/1.2"})

제게는 이것이 충분합니다.

이 규칙 덕분에 지난 한 달 동안 DDoS(정확한지는 모르겠지만) 공격을 버텨낼 수 있었습니다.

여기서 CloudFlare의 장단점을 제대로 논할 자리는 아니지만, 제 문제는 당신 같은 좋은 사람들이 아닙니다. 제 문제는 그들이 기꺼이 거래를 하는 나쁜 사람들입니다. 사이버 보안 분야에서 멀웨어와 봇넷과 싸우는 사람은 CloudFlare를 자주 접하게 됩니다. 마찬가지로 온라인에서 극단주의자와 싸우는 사람은 다른 제공업체들이 보호를 거부하는 극단주의자 사이트를 CloudFlare가 얼마나 자주 보호하는지 잘 알고 있습니다. 그들이 비효율적이거나 너무 비싸서가 아닙니다. 그들의 고객 선정에 도덕적 기준이 없다는 것이 문제입니다.

3개의 좋아요