개인적으로 스팸을 가장 효과적으로 막는 방법은 매우 작고 어려운 언어를 사용하는 커뮤니티의 멤버가 되는 것이라고 생각한다. 이는 수작업으로 스팸을 뿌리는 그 무뢰방들을 막을 수 있기 때문이다.
우리 모두 알고 있듯이 스팸러들은 그렇게 똑똑하지 않으며, 자동화된 트래픽은 언어, 장르, 심지어 규모를 가리지 않는다. 그렇다면 왜 어떤 포럼이나 사이트는 온갖 쓰레기의 벌통이 되는 반면, 다른 곳들은 평화롭게 운영될 수 있는 것일까?
시스템과 설정이 동일해야 할 텐데, 왜 스팸러들은 특정 곳에서는 가입할 수 있고 다른 곳에서는 그럴 수 없는지에 대해서는 내가 답을 가지고 있지 않다. 하지만 한 가지는 확실하다. 관리자나 다른 백그라운드 측에서 전 세계 사용자들의 빠른 성장을 추구한다면, 봇과 스팸 문제가 초래될 것이다.
최근 약 2주 동안 우리 사이트에서 스팸이 급증하고 있습니다. 신규 계정에서 작성된 새 답변에 숨겨진 링크가 포함된 전형적인 스팸을 발견하고 있습니다. 새 글 작성 시 필요한 평판을 높였을 때, AI가 생성한 응답이 증가하는 것을 보았고, 봇들이 가짜 계정에서 평판을 천천히 올리려고 시도하는 것으로 보였습니다. 이러한 응답에는 명백한 가짜 링크가 없으며, 질문에 답하는 데 기여하지 않는 일반적인 AI 텍스트만 포함되어 있습니다.
주말 동안 스팸 게시물이 대량으로 유입되는 급증을 겪었고, 그 양이 많아서 우리 포럼에 스팸이 너무 많다는 내용을 담은 새 주제를 만든 사용자도 있었습니다. 이후로 관리자들은 매일 사이트를 확인하여 가짜 AI 게시물을 정리해야 합니다. 과거에 생성되었지만 활동이 없었던 계정에서도 AI 게시물을 보고 있는데, 이는 일부 스팸 봇이 오랫동안 계정을 심어두고 활동 없이 방치해 두었다가 이제야 활동을 시작하려는 것 같습니다. 그들은 이제 참여 제한을 천천히 통과하여 새 주제를 게시할 수 있도록 시도하고 있습니다.
위에서 언급했듯이, 새 주제 게시를 위한 신뢰 수준을 높였습니다. 또한 Akismet도 활성화했습니다. 하지만 이로 인해 AI 스팸 게시물이 완전히 차단되지는 않았습니다. 현재 관리자나 모더레이터가 매일 포럼을 확인하여 신고된 게시물을 검토하고 정리해야 합니다. 일부는 구분이 어려워 사람인 것처럼 보이기도 하므로, 두 사람이 함께 확인해야 하는 경우도 있습니다.
사용자들에게 AI처럼 보이는 게시물을 신고하도록 장려했고, 이는 도움이 되었습니다.
우리 포럼은 게시량이 비교적 적고 수년간 관리자의 최소한의 정리와 유지보수로 운영되어 왔지만, 이제 AI 봇들이 우리를 찾아온 것 같습니다. AI로 AI를 막아야 하는 건 아닐까 생각 중입니다.
사이트 체류 시간 대비 작성한 단어 수 비율, 그리고 VPN, 복사 붙여넣기된 콘텐츠, 주입된 콘텐츠 등 기타 신호를 기반으로 사용자를 대략적으로 분류할 수 있는지 궁금합니다. 의심스러운 계정은 검토를 위해 표시할 수 있을 것입니다.
수정: 이 빠른 Data Explorer 쿼리를 통해 몇 개의 추가 계정을 찾았지만, 그중 일부는 이미 정지 처리되어 있었습니다.
SELECT
u.id,
u.created_at,
u.username,
u.trust_level,
us.time_read,
us.days_visited,
us.topics_entered,
us.post_count,
us.topic_count
FROM users u
LEFT JOIN user_stats us
ON us.user_id = u.id
WHERE u.trust_level < 1
AND u.created_at > '2023-01-01'
AND us.time_read < 1000 -- seconds
AND us.post_count > 1
하루에 한 건. 약 2,000명의 사용자를 보유한 포럼(연간 신규 가입자 500명)에서 관찰되는 패턴:
“임시 도메인” 범주에 속하는 이메일 도메인(예: “cetnob.com”)으로 신규 사용자가 가입합니다.
수 시간 이내에 새 주제를 생성하거나 기존 주제에 답글을 씁니다.
영문 섹션에서만 텍스트를 작성합니다(영문과 비영문을 지원하는 이중 언어 사이트이며, 전체 콘텐츠의 90% 이상이 비영문입니다).
텍스트에 URL을 포함하기도 하고, 포함하지 않기도 합니다.
텍스트는 포럼에서 고유하게 사용되는 단어와 관련 자료를 활용해 실제 질문이나 의견처럼 보입니다.
하지만 텍스트는 다소 주제와 맞지 않는 느낌을 주면서도 매우 잘 작성되어 있어, 경험이 부족한 지원 엔지니어라면 이를 감지하기 어렵습니다.
이 특정 행동은 다음에 설명된 패턴과 매우 유사합니다:
우리는 이미 명시적인 목록을 통해 Hotmail, Gmail 및 기타 대규모 소비자 대상 도메인을 차단하고 있지만, 이러한 유형의 접근 방식에 사용되는 것으로 알려진 도메인은 최소 10,000개에 달합니다. 자체 소프트웨어에서는 명시적인 목록과 함께 UserCheck(무료 버전을 사용하며, 자체 앱 가입 시에만 확인하고 캐싱하므로 월 5,000회 조회로 충분함)를 통한 실시간 검사를 수행하고 있습니다.
제가 확인한 바로는, 이 특정 행동은 임시/스팸 이메일 도메인을 자동으로 차단함으로써 대응할 수 있습니다.
많은 사용자가 첫 가입 직후 바로 게시물을 올리는 것이 지원 포털의 특성인 만큼, TL0이 링크를 사용하는 것을 차단하는 것은 모든 신규 요청을 수동으로 조정하는 것보다 훨씬 실효성이 낮다고 판단됩니다.
지금 보고 있는 스팸은 영어가 완벽하고, VPN을 사용 중이며, 이메일 주소는 StopForumSpam에 등록되어 있습니다. 또한 키보드에 없는 대시 문자가 사용된 것으로 보아 내용이 복사/붙여넣기된 것이 분명합니다. 하지만 이 모든 것을 수동으로 확인해야 했으며, 오늘 아침에도 아직 확인해야 할 스팸이 몇 개 더 남아 있습니다.
또 다른 아이디어를 생각해 보았습니다:
게시글이 저장될 때, Discourse가 해당 게시글의 JSONB 필드에 추가 데이터를 기록할 수 있습니다:
IP 주소
is_vpn? — MaxMind를 조회하여 조직을 확인하고 VPN인지 확인 (예: PacketHub S.A.)
StopForumSpam에서 이메일 주소에 대한 빠른 조회
에디터에 출력된 문자 수와 실제로 입력된 출력 생성 문자 수 비교 (화살표 키, Ctrl 등 제외). 예를 들어, 사용자가 원본 콘텐츠에 1,000자를 출력했지만 실제로 출력 생성 키를 10번만 눌렀다면(이는 내용이 붙여넣기된 후 사용자가 한 단어 정도를 수정했을 가능성을 시사합니다).
키보드 단축키나 마우스 오른쪽 버튼을 사용하여 내용을 복사하거나 잘라낸 횟수.
키보드 단축키나 마우스 오른쪽 버튼을 사용하여 내용을 붙여넣은 횟수. 복사/붙여넣기 횟수의 차이는 또 다른 단서가 될 수 있습니다.
관리자는 작은 테이블 형태로 게시글의 이러한 데이터를 확인할 수 있습니다. 비정상적인 값은 강조 표시되어 의심스러운 게시글이 눈에 띄도록 할 수 있습니다.
완벽한 자동화 탐지 방법은 없을 수 있지만, 더 많은 정보를 제공하면 모더레이션 프로세스가 빨라질 것입니다.
비용이 부담스러워서 포럼에서 AI를 사용하지 않았습니다. 또한 콘텐츠가 정상적으로 보이므로 AI가 이 문제를 해결할 수 있을지 확신하지도 못합니다. 의심스러운 모든 게시글을 수동으로 조사해야 하기 때문입니다.
NSFW 콘텐츠로 인한 문제는 없었습니다.
제 문제는 콘텐츠 자체에 문제가 있는 것이 아닙니다. 의심스러운 점들은 신규 사용자가 가입 후 몇 분 만에 그런 글을 쓰지 않는다는 것과, 콘텐츠가 다소 모호하다는 것입니다. 제 메인 포럼은 매우 구체적인 주제를 다루고 있으며, 첫 게시글에 해당 주제와 사용자의 관련성에 대해 구체적인 내용이 없다면 조사 절차를 시작합니다. 그렇지 않으면 그들의 게시글을 알아차리지 못할 수도 있습니다.
여기 몇 가지 예시가 있습니다. 콘텐츠는 조사 절차를 시작하기에 충분히 모호하지만, 수동으로 처리해야 하므로 시간이 많이 걸립니다.
이 사용자는 콘텐츠만으로 차단할 수 없습니다. 스팸러임을 알려주는 것은 다른 단서들입니다.
이 포럼의 게시물 1622105을(를) 확인해 보세요. 가입한 지 3분 만에 게시되었으며, 링크를 Quora에서 stackexchange로 변경하기 위해 수동으로 편집되었고, 영어 문법도 좋지만 Discourse와 관련이 없는 기술에 대해 다루고 있습니다. 게시자에게 알림이 가므로 이 게시물에 링크를 걸고 싶지 않습니다.
위에서 언급한 데이터를 게시물 바로 옆에서 바로 확인할 수 있다면 유용할 만한 유형의 게시물입니다.
저는 토론을 유발하는 스팸 게시글 중 일부는 온라인에 남겨두지만, 대부분은 삭제됩니다. 그 글들의 품질은 매우 낮고, AI가 작성한 것인지 쉽게 알아차릴 수 있는 경우가 많습니다. 제가 읽는 글이 AI로 작성된 것 같으면 그 출처에 대한 신뢰를 잃기 시작합니다. 저는 AI에 반대하는 루드파(Luddite)는 아니지만, AI가 생성한 것임을 알지 못하면 AI 생성 콘텐츠를 읽고 싶지 않습니다.
누군가가 포럼에서 AI를 사용하고 있다는 것을 알게 되면, 신뢰할 수 있는 콘텐츠는 포럼의 가장 중요한 자산 중 하나이기 때문에 즉시 이를 차단합니다.
또한, 2024년 당시에는 인간에게 그럴듯해 보였던 것이 2034년에는 AI로 생성된 것으로 쉽게 감지될 수 있을 것입니다. 마치 수십 년 전에는 현실적으로 보였던 영화 특수효과가 이제는 가짜임을 즉시 알아볼 수 있게 된 것과 비슷합니다. 저는 2024년에 생성된 AI 콘텐츠가 언젠가 시대에 뒤처져 보일 것이라고 생각합니다.