모더레이션 관련 질문 몇 가지

여러분 안녕하세요, 저는 Home Assistant에서 약 9년 동안 Discourse를 사용해 왔습니다. 또한 수년 동안 관리자(mod)로 활동해 왔습니다. 최근 스팸 공격이 급증하고 있습니다. 이 문제를 완화할 수 있는 방법이 무엇인지 궁금합니다.

첫째, 키워드, 정규식 등 스팸 필터링이 적용되어 게시물이 플래그로 표시되기까지 시간이 걸리는 것 같습니다. 이는 서버 성능에 한계가 있는 것인가요, 아니면 속도를 높이는 방법이 있나요? 참고로 현재 약 27만 명의 사용자를 보유하고 있으며, 스팸을 제외하고 하루 평균 약 100명의 신규 사용자가 가입하고 있습니다.

둘째, 스팸 공격자들은 특히 이 포럼 소프트웨어에 대해 교묘해졌습니다. 그들은 두 가지 형태의 공격을 수행합니다.

  1. 의미 없는 글자 섞인 게시물을 작성합니다. 영어와 비영어 단어들을 아무렇게나 나열한 것입니다. 이렇게 하면 스팸 필터를 우회할 수 있습니다. 그런 다음 게시물을 편집하여 홍보하려는 스팸 내용을 넣습니다.
  2. 주제를 생성한 후, 해당 주제에 답변을 달고 그 답변을 '해결됨(solution)'으로 표시합니다. 이 스팸 사용자를 삭제/차단하려고 하면, ‘해결됨’ 체크박스 때문에 Discourse가 500 오류를 반환합니다. 어떤 이유에서인지 ‘해결됨’ 상태가 있는 사용자는 삭제할 수 없습니다.

여러분은 이러한 문제를 어떻게 관리하고 계신가요?

두 번째 문제에 대해, ‘해결됨’ 체크박스를 더 높은 신뢰도(trust level)로 제한하는 것을 시도해 보았습니다. 그러나 설정이나 ‘해결됨’ 체크박스는 단순히 ‘켜기(On)’ 또는 ‘끄기(Off)’ 상태일 뿐입니다. 즉, ‘해결됨’ 체크박스에는 신뢰도 레벨이 내장되어 있지 않습니다.


여기 계신 동안, 관리도구(moderation tools)에 대한 피드백도 조금 드리겠습니다. 스태프 액션 로그(staff action logs)의 모든 링크가 작동하지 않는다는 점이 매우 이상하게 느껴집니다. 모든 링크가 단순히 스태프 액션 로그 페이지로만 연결됩니다. 예를 들어, 이 페이지에서 동그라미 친 모든 링크가 주제나 게시물로 이어지지 않습니다.

옵션 중 하나는 신규 사용자 승인으로 전환하는 것입니다. solved 플러그인을 사용하여 카테고리별 신뢰 수준을 tl1 또는 tl2로 높입니다.

신규 사용자는 특정 카테고리에서만 활동할 수 있도록 제한합니다.

Discourse는 꽤 방대한 주제입니다.

새로운 Doc-categories 플러그인을 사용하는 몇 가지 유용한 카테고리가 있습니다(사이드바에서 접근하는 것이 더 나을 수 있습니다). 하지만 다음 두 링크를 클릭해 보세요.

Documentation
여기에는 몇 가지 토픽이 있습니다(더 많은 것이 있습니다):

Wiki

이 카테고리들을 검색하려면 검색창에 다음을 사용하세요.

이것은 문서(Documentation) 카테고리를 검색합니다.

#documentation 검색어

이것은 커뮤니티 위키를 검색합니다.

#wiki 검색어

도움이 될 수 있는 몇 가지 플러그인도 있습니다. 호스팅 서비스를 이용 중이라면 해당 플러그인이 요금제에 포함되어 있는지 확인해야 합니다. 셀프 호스팅을 사용하는 경우 플러그인 설치에 더 많은 자유가 있지만, 사이트가 깨졌을 때 스스로 해결하지 못하면 도움이 필요할 수 있습니다.

몇 가지 플러그인

아래에 있는 이 플러그인은 공식 플러그인이라 오류가 발생할 가능성이 낮습니다.

우리는 그렇게 했는데, 결국 하루에 100건 이상의 관리자 승인이 필요해졌습니다. 거의 모든 신규 사용자가 게시글을 작성합니다. 일괄 승인 과정이 있었다면 그렇게 부담스럽지 않았을 것입니다.

신규 사용자들은 첫 번째 게시글이 승인되지 않아 여러 개의 첫 번째 게시글을 작성하기도 했습니다. 하루에 4시간 쉬고 돌아왔을 때 59개의 대기 중인 게시글이 있었고, 그중 2건은 스팸이었습니다. 저는 여기서 적절한 균형점을 찾고자 합니다.

수정: 잠깐, 이 인용문을 잘못 읽었네요.

해당 플러그인에 대해 구체적으로 어떻게 그렇게 하나요?

안타깝게도 HA 포럼에서는 이 방법이 전혀 도움이 되지 않습니다. 도움이 가장 필요한 사람이 바로 신규 사용자들인데, 그들을 제한하기 때문입니다.

우리는 신규 사용자 승인 제도를 도입하고, 처음 몇 개의 게시물에 대해서도 승인을 요구하도록 설정해 보았지만, 이는 단순히 중재 업무량을 크게 증가시킬 뿐이었습니다.

카테고리 설정, 보안 탭

삭제
모두. 보기/생성/답글 (또는 생성/답글만 삭제)

추가
신뢰 수준 X(1~4). 보기/생성/답글

모두를 보기로만 변경하면 주제를 볼 수는 있지만 생성하거나 답글을 달 수 없습니다.

카테고리 설정에 사용자가 게시물을 작성할 수 없을 때 표시할 텍스트를 구성할 수 있는 다른 탭이 있습니다.

불행히도, 번거로움 없이 스팸 계정을 처리하는 쉬운 방법은 제가 아는限り 없습니다.

새로운 사용자가 다른 사용자에게 추천받거나 팀의 초대를 받는 경우가 많다면, 초대 링크 시스템을 활용할 수 있습니다. 관리자(또는 스태프)가 링크를 설정하여 신뢰 수준(Trust Level)을 0보다 높게 지정할 수 있기 때문입니다.

초대받지 않은 신규 사용자의 경우에도, TL0(신규 사용자)의 게시 권한을 특정 "수신 카테고리(Intake Categories)"로 제한할 수 있습니다.

그 외로 스팸 관련 플러그인 두 가지도 고려해 볼 만합니다. AI 기반 플러그인도 있지만, AI 기능 사용에 따른 비용이 발생한다는 점을 유의해야 합니다.

그것이 오직 해결책 체크박스를 추가하는 데에만 영향을 미치는 건가요? 아니면 게시와 관련된 모든 기능이 제한되는 건가요?

이것은 수정이 필요한 버그인 것 같습니다. 500 에러는 프로덕션 환경에서 발생해서는 안 되며, 특히 정기적으로 발생하는 것은 더더욱 안 됩니다. :confused:

나는 동의하는 편이지만, 첫 게시물에서 괜히 파란을 일으키고 싶지는 않았어.

Solved 플러그인을 사용하는 카테고리에서 카테고리 보안 권한을 다음과 같이 설정합니다.

Everyone: 보기/생성
Trust Level 1: 보기/생성/답글

게시물을 보고 생성할 수 있습니다. 답글을 해결로 표시할 수는 있지만, 해당 게시물에 답글을 달 수는 없습니다.

게시물에 답글을 달려면 Trust Level 1이 필요합니다. 신규 사용자는 Trust Level 0입니다.

이제 무슨 말인지 알겠어. 그 UI에 접근 권한이 없어서 추측을 좀 해야 할 것 같아. 이 내용을 관리자들에게 전달할게. 우리가 원하는 결과를 얻을 수 있길 바라.

Contribute > Bug 채널에서 태그 solved (태그가 맞는지 확실하지 않음)를 달고, 문제를 자세히 설명하는 주제를 생성하세요.

일반적으로 관리자(Admin) 권한이 필요합니다. 다만, 관리자분들이 동의해 주신다면 전체 사이트 모더레이터(Full Site Moderator)에게 카테고리 관리 권한을 부여할 수도 있습니다.

여기서 게시글을 인용하고, 복사 인용 기능을 사용해 포럼의 팀/관리자에게 전달할 수도 있습니다. 예를 들어 비공개 스태프 카테고리나 개인 메시지/그룹 메시지를 통해 전달하는 것이죠.

또한 팀이 문제를 파악하는 데 도움이 되도록 여기 게시글의 링크를 공유할 수도 있습니다.

:wave: 관리자입니다! :smiley:

Solved 플러그인의 전체 설정을 살펴봤습니다. 카테고리별로 설정하는 방식은 제 생각에 조금 번거로울 것 같습니다. 하지만 create topic allowed groups(토픽 생성 허용 그룹) 값을 0에서 1로 높이고, 신뢰 수준 1(TL1) 도달 기준을 약간 낮추는 방식은 적용할 수 있을 것 같습니다. 현재 기준도 이미 적절한 수준이라 몇 가지 요건을 낮춰도 운영진에 큰 부담은 되지 않을 거라고 생각합니다.

여러분은 이 해결책이 좋다고 보시나요? petro, Rosemary - 이 방식이 실제 신규 멤버들에게 지나치게 큰 장벽이 될까요?

Welcome to :discourse: Missy Quarry!

It could work. Though that would maybe make it harder for new users to get to being able to create a topic.

Truly clever spammers could even with my suggestions above save the plugins mentioned maybe. Could go through the new user tutorial to advance user level

Though it seems the spammers are just looking for quick bypasses.

It is a bit of a pain though if you have lots of categories to adjust if using category security.

One of the more experienced members here though might know a bulk rails command line that could be able to change all categories settings. Then you might just need to adjust some categories you want so to speak free access or more restricted.

정당한 지적입니다.

그 부분을 근거로 데이터를 좀 더 깊이 살펴보았습니다. 하루에 대략 200명 정도의 신규 가입자가 있으며, 그중 25~50%가 첫 게시글을 작성하고 있습니다. 이는 하루 약 100건에 해당합니다(신규 사용자와 해당 사용자의 첫 게시글 사이의 연결을 확인할 수 없어 이 수치는 다소 불확실합니다). 또한 하루에 약 80명의 사용자가 신뢰 등급 1을 달성하고 있습니다.

제가 찾은 방향으로 진행하는 것이 비교적 안전해 보입니다. 관리자들과 상의한 후 이 글에 후속 내용을 올리겠습니다. 어떤 방식이 효과적이었는지에 대한 경험적 지식을 공유하는 것은 항상 좋은 일이며, 만약 특정 방식이 잘 작동하고 있다면 이 문제를 종결하고, 그렇지 않다면 잠재적인 해결책에 대해 더 논의할 수 있을 것입니다. :smiley:

네, 때로는 꽤 고된 작업이 될 수 있어요. 특히 스팸이 갑자기 몰려들 때는 더 그렇죠. 임시 이메일을 사용하는 사용자를 식별할 수 있다면 관리자 설정에서 또 다른 도구를 활용할 수 있습니다. 해당 임시 이메일 도메인을 도메인 블랙리스트에 추가할 수 있어요. 제가 관리하는 사이트 중 하나에서 임시 이메일 도메인 목록을 가져올 수 있는지 확인해 보겠습니다. 텍스트로 내보낼 수 있을지는 모르겠지만, 스크린샷은 꼭 가져올 수 있을 거예요. 사이트가 너무 많아서 전부 수집하는 것은 거의 불가능에 가깝습니다.

도움이 필요하시면 개인 메시지로도 연락해 주세요.

지금 AI 스팸 스캔 기능이 추가된 AI 플러그인을 살펴볼 가치가 있을 수 있습니다. 이 기능은 게시물을 플래그로 표시할 수 있습니다.

우리는 Meta에서 이 기능을 얼마 동안 사용해 왔으며, 다른 시스템으로는 걸러내기 어려운 스팸을 더 잘 잡아내는 것으로 확인되었습니다. 특정 유형의 스팸으로 인해 어려움을 겪고 있다면, 커스텀 지시를 제공할 수 있다는 점도 이점입니다.

Discourse AI 기반 스팸 스캔은 이러한 방식에 취약하지 않습니다.

또한, 게시물이 오래되면 사용자가 수정할 수 없도록 하는 안전장치가 마련되어 있습니다.

이것이 재현 가능한 문제라면 버그 보고가 필요합니다. 이를 수정하는 것을 기꺼이 수행하겠습니다.


현재 시점에서 저는 Akismet이 온라인 스팸의 현재 패턴을 대응할 능력이 없다고 생각합니다. 오탐(스팸을 정상으로 판단하는 경우)이 너무 많기 때문입니다.

Discourse AI는 매우 좋은 성과를 내고 있습니다. Gemini Flash 2.0과 같이 스팸 처리에 뛰어난 성능을 발휘하는 모델을 활용한다면, 자체 호스팅 인스턴스에서 무료로 구성할 수 있습니다.

직접 시도해 보고 결과를 알려주시겠습니까?