Reddit 안티스팸 내부를 엿보다
요약
2021년 Reddit의 시스템 오류로 인해 안티스팸 내부 판단 데이터와 제거 사유가 외부로 노출된 사례를 분석합니다. Google Perspective API 점수와 Reddit의 스팸 필터링 메커니즘, 그리고 다세대 시스템 구조를 상세히 다룹니다.
핵심 포인트
- Relay for reddit 앱 오류로 스팸 제거 사유 및 내부 데이터 노출
- Perspective API 점수와 Reddit 제거 로그 간의 높은 일치성 확인
- Python 2.7, Lua 규칙, OCR 등 복합적인 안티스팸 시스템 구조
- 특정 문자열 입력 시 테스트 계정이 즉시 정지되는 강력한 필터링 확인
2021년 Reddit의 일시적 오류로 보이는 현상 때문에, Relay for reddit에서 평소 Removed: Auto로 숨겨지던 사이트 전체 스팸 제거 사유와 내부 판단 데이터가 노출됨
공개 아카이브 코드상 제거 정보는 ban_info.banner를 거쳐 전달되며, Relay는 API의 banned_by=true를 Auto로 바꿔 표시했지만 같은 필드에 내부 사유가 들어가면서 문제가 생긴 것으로 보임
노출된 사유에는 domain, spammit, banned user, shadowban, spamurai 등이 있었고, spamurai는 계정 나이, karma, 신고 수, ISP, 이메일 도메인, User-Agent, 언어 헤더, TLS 지문, referrer, Perspective API 점수까지 포함함
Google Perspective API의 SPAM 점수와 Reddit 제거 로그 값이 거의 일치했으며, 짧은 문자 추가·키릴 문자 치환·대소문자와 숫자 무시 같은 특성 때문에 점수가 크게 흔들리는 사례가 확인됨
Reddit 안티스팸은 Python 2.7 기반 검사, Lua 규칙 기반 REV1/REV2, Snooron, OCR·이미지 분류 도구가 섞인 다세대 시스템으로 보이며, 2026년에는 Perspective API 종료와 LLM 기반 스팸 변화로 공개 위험이 낮아졌다고 판단함
2021년에 드러난 제거 사유
Reddit 중재자였던 사용자는 2021년 Relay for reddit 앱에서 제거된 스팸 알림을 받던 중, 평소 보이지 않아야 할 안티스팸 내부 메시지를 확인함
일반적인 중재자 화면에서는 자동 스팸 제거가 Removed: Auto처럼 표시되지만, 당시에는 실제 제거 사유와 내부 데이터가 빨간 텍스트로 나타남
이 현상은 약 한 시간 뒤 정상으로 돌아왔고, 남은 자료는 당시 찍은 스크린샷뿐임
Reddit 중재와 Auto 표시 방식
Reddit의 하위 커뮤니티인 subreddit에서는 커뮤니티 중재자가 게시물 제거, 사용자 차단, modmail 관리 등을 맡음
중재자는 게시물이나 댓글이 누구에 의해 제거됐는지 볼 수 있음
일반 중재자 제거는 중재자 이름으로 표시됨
AutoModerator 제거는 AutoModerator로 표시됨
Reddit의 사이트 전체 스팸 필터나 관리자 제거는 Auto로 표시될 수 있음
중재 로그에서는 사이트 전체 제거가 reddit 또는 Anti-Evil Operations로 나타남
공개 아카이브 코드로 본 노출 경로
Reddit은 2017년까지 소스 코드를 공개했으며, 해당 아카이브 코드로 제거 처리 흐름 일부를 추적할 수 있음
흥미로운 자료와 연구임. 결론에서도 말하듯 이런 악용 방지 메커니즘의 세부를 볼 기회가 드문데, 특히 눈에 띈 건 Lyra 특유의 능숙한 CSS였음
재구성한 Reddit UI의 검열 막대와 빨간 원이 처음엔 스크린샷처럼 보였는데, 실제로는 완전히 상호작용 가능한 모형이었음
이 댓글을 읽기 전까지 이미지가 아니라는 걸 전혀 눈치 못 챘음
새 블로그 글이 올라올 때마다 늘 기대됨. 내용도 정말 흥미롭고, 다른 UI를 재현하는 솜씨도 훌륭함
지금까지 이스터에그를 적어도 하나는 찾았음
고마움. 이번 글에는 그런 걸 꽤 많이 넣어뒀음 ;)
자기 계정으로 시험하려고 웹사이트에 <pre>UA-49307539-2</pre> 문자열을 올리고 Reddit에 링크했더니, 5년 된 테스트 계정이 즉시 정지되고 게시 기록도 전부 삭제됐다는 대목이 정말 거칠었음
그래서 실제 번호는 계정을 죽일 수 있는 텍스트를 공개하지 않으려고 UA-49307539-로 바꿨다는데, 그 계정이 진짜 테스트용이고 중요한 게 없었길 바람
iPhone 16 Pro의 최신 iOS 개발자 베타에서 모바일 Safari로 열려고 하면 <url>에서 “a problem repeatedly occurred” 오류가 나서 볼 수 없음
그게 왜 그런지 전혀 모르겠고, 지금은 iPhone도 곁에 없음
누가 HTML을 이분 탐색해서 충돌 원인을 찾아준다면 정말 고마울 것 같음
궁금한 사람들을 위해 말하면, 포함된 Perspective API 키는 유효하지 않음
bans (2016 - present)에서 스팸 예시로 검열된 컨설팅 회사가 Puppygirl Consulting인 걸 보면, 개발자 도구 중독자들은 검열된 부분들이 아마 가짜거나 이스터에그라는 힌트를 얻을 수 있음 :^)
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기