본 적 없거나 활성화되지 않은 신규 사용자

저희 Discourse에 대량의 스팸 계정이 유입되고 있는 문제를 추적하고 있습니다. 최근에 생성된 계정 중 “본 적 있음(Seen)” 상태가 아니고 아직 "활성화(Activated)"되지 않은 계정이 매우 많습니다(수백 개!). 이런 현상은 어떻게 발생하나요? 어딘가의 API를 통해 계정을 생성하는 걸까요? 아니면 계정을 만든 후 한 번도 로그인하지 않는 경우인가요? 이는 해당 계정들이 스팸임을 나타내는 아주 확실한 신호로 보이지만, 실제로 어떤 의미인지, 그리고 이를 기준으로 대량 삭제 필터를 적용할 수 있을지 잘 모르겠습니다.

이러한 ‘본 적 없는’ 및/또는 ‘활성화되지 않은’ 계정을 찾고 제거할 수 있는 UI가 있나요? 아니면 긴 지연 시간 후 자동으로 처리되도록 해야 할 수도/있어야 할 수도 있는 기능인가요?

3개의 좋아요

해당 방법이 있는 것 같습니다. 일정 기간이 지나면 비활성화 계정이 자동으로 삭제되며, 이 기간은 더 적거나 많게 조정할 수 있는 것으로 보입니다:

3개의 좋아요

최근 큰 물결이 있었다면, 저는 어떤 종류의 봇일 것이라고 추측합니다… 요즘 인터넷의 대부분은 정기적인 봇의 공격을 받고 있습니다… 이러한 계정은 활성화될 때까지 쓸모가 없으므로, 누군가가 계정을 만들고 버리는 이유를 잘 모르겠습니다.

누군가 계정을 만들었지만 이메일 인증을 하지 않아 로그인할 수 없는 경우입니다. 계정을 활성화하지 않으면 ‘본 적 없음’ 레코드가 생성되지 않습니다.

Discourse는 거대한 API이므로, 누군가가 인터페이스가 사용하는 것과 동일한 엔드포인트에 직접 접근하여 계정을 생성할 수 있습니다. 물론 자동화가 가능하지만, 이렇게 하려는 사람은 짧은 시간 내에 많은 계정을 생성하기 위해 속도 제한을 우회해야 할 것입니다.

admin/users/list/new에서 “미활성화” 필터를 사용할 수 있습니다.

여기서 테이블 헤더의 아바타 위 아이콘을 클릭하면 일괄 선택 모드로 진입할 수 있습니다. 필요한 경우 이 방식으로 계정을 삭제할 수 있습니다.

Discourse는 게시물이 없다면 기본적으로 14일 후 이러한 계정을 자동으로 삭제합니다. 관련 사이트 설정은 purge_unactivated_users_grace_period_days입니다.

사용자 중 한 명을 선택하여 관리자 페이지로 이동하면 “IP 조회” 버튼을 사용하여 동일한 IP와 관련된 계정을 확인할 수도 있습니다. 여러 계정이 연관되어 있는 경우 삭제 옵션이 제공됩니다:

수동으로 처리할 필요는 없으며 자동 삭제를 신뢰할 수 있지만… 계정이 많거나 일부가 스팸 생성을 위해 활성화되는 경우에는 주의 깊게 살펴볼 가치가 있습니다.

패턴이 있나요? 같은 위치? 같은 IP? 같은 이메일 도메인? 어떠한 단서가 있다면 추가 보호 장치를 고려해 볼 수 있습니다.

6개의 좋아요

크리스 씨, 감사합니다! 불행히도 이 정보가 저에게도 매우 도움이 되었습니다. 저희도 명확한 스팸으로 보이는 신규 사용자 급증을 겪었습니다. 10월 16일 이후로, b와 일련의 무작위 숫자로 구성된 사용자 이름(예: b123456789)을 가진 268명의 사용자가 모두 동일한 IP에서 가입했습니다.

좋지 않네요

1개의 좋아요

저희도 같은 경험이 있습니다. 최근 89.124.71.104에서 온 계정 266개가 있었습니다.

하나를 차단하려 하면 GUI에서 일괄 중지할 사용자 10명을 수동으로 선택할 수 있었지만, 전부를 선택할 수는 없었습니다. 10명을 선택한 후 25번 더 반복하는 대신, “모두” 버튼을 허용하면 좋겠네요.

이미 더 나은 일괄 중지 방법이 있는 게 아닌가요?

2개의 좋아요

또 다른 해결책으로는 여기서 "동일 IP에서 확인되지 않은 계정 모두 삭제"를 허용하는 방법이 있습니다

2개의 좋아요

아닙니다.. 제가 눈이 나쁜 거였네요. 한 번에 100명의 사용자를 삭제할 수 있도록 “전체 선택” 옵션이 있습니다.

사용자 옆의 [ ]를 표시하는 버튼을 발견하지 못했을 뿐이었습니다.

4개의 좋아요

재미있게도 그 IP가 제 계정 뒤에도 있었다는 거죠.

2개의 좋아요

이런 종류의 파도들이 방금 마스토돈에서 일어난 것과 비슷한 OAuth 앱[1] 같은 것에서 비롯될 수 있을까요? 증상이 매우 유사합니다.


  1. 면책 조항: 물론 저는 OAuth 앱이 어떻게 작동하는지 전혀 모릅니다 ↩︎

이 사용자도 해당 문제를 신고했습니다. 이 IP를 사전에 모든 고객의 접근을 차단하는 것이 정당할까요?

정확히 이 질문을 하게 된 배경입니다. 여기에서는 최소 193명이 확인되었습니다. 또한 다른 봇 계정 수십 개가 TL1 권한을 획득한 후 각각 개인 메시지 20건을 도배하는 현상도 있었습니다. 이러한 계정을 추가로 찾던 중 b123456789 형식의 계정들을 발견하게 되었습니다.

1개의 좋아요

업데이트: 해당 IP를 차단한 후에도, 다른 IP에서 동일한 이름 패턴으로 가입한 여러 새로운 사용자가 보입니다. CAPTCHA 솔루션을 도입해야 할 때인 것 같습니다 :melting_face:

2개의 좋아요

이것이 스팸 계정의 또 다른 유형입니다 — 어제 밤사이 100개의 새 계정이 모두 동일한 사용자 이름/읽기 패턴으로 등록되었습니다:

비활성화된 bXXXX 계정들과 달리, 이들은 모두 서로 다른 IPv6 주소에서 나왔습니다.

reCAPTCHA v2는 무료라서 사용해 봤습니다. 설정하는 데 몇 분도 걸리지 않았어요.

사이트 키와 시크릿 키를 생성한 후, 다음 경로에서 일부 값을 업데이트하세요: /admin/site_settings/category/discourse_captcha?filter=recaptcha

1개의 좋아요

그 계정들을 주시하시길 권합니다. 지난 며칠간 우리는 해당 유형의 공격을 여러 번 받았습니다. 동일한 이름 패턴을 사용하며, 소수의 IP 주소에서 발생했습니다.

TL1[\“읽기" 활동으로 11분 만에 209개 게시물을 확인…]까지 빠르게 올려서 무작위 사용자들에게 DM으로 스팸을 전송합니다.

어떤 종류의 메시지를 보내고 있나요? 패턴이 있는 건가요? @mbauman @Danika_Dakika

주제를 보거나 눈에 띄지 않으면서도 1분 미만으로 50개 이상의 게시글을 읽을 수 있다는 뜻인가요?

4개의 좋아요

네, 모든 계정은 TL1을 획득한 후 주제 작성자에게 다음과 같은 메시지를 통해 기본 일일 제한인 20개의 쪽지를 보냅니다:

안녕하세요 @mbauman

““[주제 제목]”” 스레드를 봤습니다 — [영업 문구 및 링크]

저희는 쪽지 제한을 강화하고 타겟팅을 조금 더 정밀하게 조정했습니다. 이들은 모두 여러 개의 일회용 이메일 도메인을 사용하는 것으로 보입니다. 저는 또한 기본 차단 목록(block-list)을 허용 목록(allowlist) 형식의 훨씬 더 제한적인 이메일 호스트 관리 방식으로 전환하는 것을 고려하고 있습니다.

2개의 좋아요

감시 단어 필터 및/또는 워크플로를 설정하여 개인 메시지(PM) 내용을 검토하고 표시하도록 할 수 있습니다.

흠, TL1 설정을 낮추셨나요?

이렇게 API를 사용하여 토픽에 들어가지 않고도 “읽은 글” 수를 채울 수는 있지만, tl1_requires_topics_entered가 기본값인 5로 설정되어 있다면 해당 계정이 TL1에 도달할 수 없어야 합니다.