5 पॉइंट द्वारा GN⁺ 5 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 2021 में Reddit की एक अस्थायी गड़बड़ी जैसी घटना के कारण Relay for reddit में वे site-wide spam removal reasons और internal decision data दिख गए, जो सामान्यतः Removed: Auto के रूप में छिपे रहते थे
  • सार्वजनिक archive code के अनुसार removal information ban_info.banner के जरिए भेजी जाती है, और Relay API के banned_by=true को Auto में बदलकर दिखाता था, लेकिन उसी field में internal reason आ जाने से यह समस्या हुई लगती है
  • उजागर हुए reasons में domain, spammit, banned user, shadowban, spamurai आदि शामिल थे, और spamurai में account age, karma, report count, ISP, email domain, User-Agent, language header, TLS fingerprint, referrer, यहाँ तक कि Perspective API score भी शामिल था
  • Google Perspective API का SPAM score और Reddit removal log के values लगभग मेल खाते थे, और यह भी देखा गया कि थोड़े अक्षर जोड़ने, Cyrillic characters से replacement करने, तथा case और numbers को नज़रअंदाज़ करने जैसी विशेषताओं के कारण score बहुत बदल सकता है
  • Reddit anti-spam एक multi-generation system जैसा दिखता है, जिसमें Python 2.7 आधारित checks, Lua rule-based REV1/REV2, Snooron, OCR और image classification tools मिले-जुले हैं; और 2026 तक Perspective API के बंद होने तथा LLM-आधारित spam के बदलने की वजह से इसे सार्वजनिक करने का जोखिम कम माना गया

2021 में सामने आए removal reasons

  • Reddit moderator रहे एक उपयोगकर्ता को 2021 में Relay for reddit app में हटाए गए spam की notification मिलते समय एक anti-spam internal message दिखा, जो सामान्यतः दिखना नहीं चाहिए था
  • सामान्य moderator view में automatic spam removal Removed: Auto जैसा दिखता है, लेकिन उस समय वास्तविक removal reason और internal data लाल टेक्स्ट में दिखाई दे रहे थे
  • यह स्थिति लगभग एक घंटे बाद सामान्य हो गई, और अब केवल उस समय लिए गए screenshots ही बचे हैं

Reddit moderation और Auto display का तरीका

  • Reddit के sub-community यानी subreddit में community moderators post removal, user ban, modmail management आदि संभालते हैं
  • Moderators यह देख सकते हैं कि किसी post या comment को किसने हटाया
    • सामान्य moderator removal में moderator का नाम दिखता है
    • AutoModerator removal में AutoModerator दिखता है
    • Reddit के site-wide spam filter या admin removal को Auto के रूप में दिखाया जा सकता है
  • moderation log में site-wide removal reddit या Anti-Evil Operations के रूप में दिखाई देता है

सार्वजनिक archive code से दिखने वाला exposure path

  • Reddit ने 2017 तक source code सार्वजनिक रखा था, और उस archive code से removal flow का कुछ हिस्सा trace किया जा सकता है
  • moderator removal function POST_remove admintools.spam को call करता है
    • moderator_banned यह अलग करता है कि removal moderator ने किया या admin ने
    • banner removal action करने वाले user name को record करता है
  • get_mod_attributes removed item का ban_info API response में भेजता है
    • moderator द्वारा removal होने पर banner value को banned_by के रूप में लौटाया जाता है
    • admin द्वारा removal होने पर वास्तविक नाम की जगह True लौटाया जाता है
  • Relay for reddit में decompiled code के अनुसार अगर bannedBy "true" हो तो उसे Auto string में बदलकर दिखाया जाता है
  • Reddit में link submit करते समय banned domain detect होने पर banner = "domain (REASON)" जैसा internal reason banner field में डालने वाला code path भी था
  • internal removal reason वाला banner field मूल रूप से केवल site-wide admins को दिखना चाहिए था, लेकिन मिलते-जुलते code path की किसी त्रुटि के कारण यह moderators को दिख गया होगा

उजागर हुए removal reason categories

  • domain

    • domain-based removal एक ऐसी category है जिसे public code में भी देखा जा सकता है
    • अधिकतर cases Removed: domain (spam) के रूप में थे, लेकिन कुछ में specific notes भी जुड़े थे
    • 2012 में Tumblr-संबंधित spam experiment के लिए कुछ domains हटाए गए थे
    • le sexxxxy sex spam जैसी पंक्तियाँ भी removal reason के रूप में दिखीं
  • spammit

    • spammit ऐसा category लगता है जो posts का analysis करके spam probability percentage जोड़ता है
    • देखे गए removal cases के score 39.71% से लेकर 98.19% तक थे
    • उन subreddits में सामान्य Imgur posts भी 70–98% spam score पर हटाई गईं, इसलिए इसकी accuracy बहुत ऊँची नहीं लगती थी
  • banned users और shadowban

    • Removed: banned user या Removed: Reddit (banall performed) जैसे removal भी देखे गए
    • ये cases अधिकतर promotional service links वाले स्पष्ट spam posts थे
    • shadowban किए गए users की posts Removed: Reddit (shadowban applied on 날짜) की तरह दिखती थीं
    • shadowban एक silent ban है, जिसमें user को लगता है कि वह सामान्य रूप से post कर रहा है, लेकिन दूसरों को उसकी posts और comments दिखाई नहीं देते

spamurai ने क्या internal decision data दिखाया

  • spamurai उजागर हुई categories में वह item था जिसमें सबसे ज़्यादा internal data शामिल था
  • सार्वजनिक presentation material में Reddit के बारे में कहा गया था कि वह “ML” के लिए Minsky और “Rules” के लिए Spamurai का उपयोग करता है
  • spamurai removal reasons में simple rules और detailed data dump दोनों साथ दिखाई दिए
    • echelon नाम का एक subsystem जैसा label कुछ keyword removals में दिखा
    • एक case में 30 मिनट से कम उम्र वाले account ने spam condition से मेल खाने वाला comment किया तो उसे हटाया गया
    • suspected shirt affiliate spam, URL-only comments, high Perspective score comments जैसी specific rules दिखीं
  • spamurai data dump के fields

    • link t3_... या comment t1_... Reddit का fullname ID है
    • t1 comment है
    • t2 user है
    • t3 post है
    • t4 private message है
    • t5 subreddit है
    • perspective spam value, Google Perspective API के SPAM score के रूप में पहचानी गई
    • account-related data शामिल था
      • account age
      • spammy score
      • karma
      • report count
      • email domain
      • ISP या organization name
    • access और environment data भी था
      • oauth.reddit.com का उपयोग हुआ या नहीं
      • User-Agent
      • language header LANG
      • referrer
      • browser fingerprint जैसा दिखने वाला RHS
      • TLS fingerprint जैसा value
      • thumbnail URL
      • post या comment body
      • original Reddit link

Perspective API और bypass की संभावना

  • Reddit logs में 0.12571795 perspective spam value Perspective API के SPAM attribute call result से लगभग पूरी तरह मेल खाती है
  • वही text देकर Perspective API call करने पर 0.12571794 मिला, और 0.00000001 का अंतर rounding error जैसा माना जा सकता है
  • Perspective documentation में score format के examples और Reddit CTO के उद्धरण भी इस बात के संकेत माने गए कि Reddit ने Perspective का उपयोग किया था
  • Perspective का SPAM attribute toxicity detection नहीं बल्कि spam detection के लिए experimental attribute है, और बताया गया है कि इसे New York Times comments तथा moderation data के एक single dataset पर train किया गया था
  • फरवरी 2026 के बाद Google Cloud में नए Perspective API projects नहीं बनाए जा सकते, इसलिए अब इसे नए सिरे से test करना कठिन हो गया है
  • SPAM score में संवेदनशील बदलाव

    • Perspective SPAM score कुछ ही अक्षर जोड़ने पर बहुत बदल सकता था
    • Puppygirl Consulting is the best way to grow your revenue का score 0.8638981 था
    • इसके अंत में qp जोड़ने पर score 0.010811162 पर गिर गया
    • results से लगता है कि numbers और letter case को नज़रअंदाज़ किया जाता है
    • phone number के digits और uppercase/lowercase बदलने पर भी वही score लौटा
    • कुछ दूसरी character systems को भी समान score के साथ process किया गया
    • अलग-अलग Cyrillic strings को एक ही 0.35077864 score मिला
    • Buy my product में Latin p को Cyrillic р से बदलने पर score 0.6473346 से घटकर 0.4452748 हो गया
    • संभव है कि public API के आधार पर message को थोड़ा-थोड़ा बदलकर spamurai के एक मुख्य decision signal को bypass किया जा सकता था

user reports और moderator approvals का असर

  • spamurai संभवतः user reports को भी removal rules में शामिल करता है
  • REPORT: High spam perspective score on comment with hyperlink reported for spam reason से पता चलता है कि spam के रूप में report किए गए hyperlink comment का Perspective score ऊँचा था, इसलिए उसे हटाया गया, और moderator उसे फिर से approve कर सकता है
  • कुछ removal reasons में यह पंक्ति भी शामिल थी कि “अगर moderator इस content को approve करे, तो भविष्य में removals कम होंगी”
  • Reddit के public code में admintools.spam का train_spam argument यह तय करता है कि moderator actions को anti-spam training में इस्तेमाल किया जाए या नहीं
  • इससे यह व्याख्या संभव है कि subreddit में normal posts approve करने से false positives कम करने में मदद मिल सकती है

अन्य removal rules और URL inspection

  • Pinterest redirect links, mega.nz links, और freely creatable subdomain वाले links भी remove किए गए cases में शामिल थे
  • mega.nz links हटाने के मामलों में कुछ वास्तविक YouTube archive video links भी थे, यानी false positives मौजूद थे
  • Matched forbidden regex u'torenteu' case में body में सीधे torenteu नहीं था, फिर भी removal हुआ
    • Reddit unidecode का उपयोग Unicode strings को ASCII में बदलने के लिए करता है
    • कोरियाई 토렌.트 conversion और अतिरिक्त processing के बाद torenteu से match हो सकता था
  • Failed inspection: Phrase(s) [u'UA-49307539-'] case में match comment body या converted text से नहीं, बल्कि link के redirect होकर पहुँचे page के HTML में मौजूद Google Analytics ID से हुआ प्रतीत होता है
  • inspection ऐसा behavior लगता है जिसमें Reddit URL खोलकर redirects follow करता है और फिर page पर patterns ढूँढता है
  • जब एक test account से उस string वाला webpage link post किया गया, तो 5 साल पुराना account तुरंत ban हो गया और posting history हट गई
    • अधिक activity history वाले एक मित्र के account पर वही reproduction नहीं हुआ
    • यह स्पष्ट नहीं कि वह filter अभी भी active है या account ban संयोग था, इसलिए वास्तविक string को बदलकर प्रकाशित किया गया

पुराने और वर्तमान Reddit anti-spam components

  • Reddit Engineering की 2023 की पोस्ट Protecting Reddit Users in Real Time at Scale में Rule-Executor-V1, REV2 और Snooron का उल्लेख है
  • समझा गया timeline इस प्रकार है
    • REV1 2016 में बनाया गया
    • Snooron 2021 में REV1 को modernize करने के लिए विकसित किया गया
    • इसके लगभग 2 साल बाद REV2 में migration हुआ
  • REV1 और REV2 Lua rules पर चलते हैं, और nil जैसे strings तथा समयरेखा के आधार पर इनका spamurai से संबंध संभव लगता है
  • u'torenteu', u'UA-49307539-' जैसे Python 2.7 Unicode strings यह संकेत दे सकते हैं कि यह spamurai के बाहर का Python 2.7 आधारित inspection code था, या REV1 द्वारा call किया जाने वाला अलग URL inspection code
  • संबंधित प्रस्तुति के अनुसार Snooron Flink Stateful Functions पर चलता है, image classification और OCR करता है, और workers में Python 3 का उपयोग करता है
  • 2024 के अनुसार Reddit ने Australian eSafety documents में कहा कि वह OCR और image/video classification के लिए Hive AI और Google Vision OCR API का उपयोग करता है
  • दस्तावेज़ के अनुसार Hive OCR 12 भाषाओं को support करता है, Google OCR अधिक भाषाओं के support के लिए साथ उपयोग होता है, और Reddit 80 भाषाओं को support करने वाले internal tool पर भी काम कर रहा है
  • 2009 के एक ticket में crm114 नाम का ऐसा spam filter बताया गया था जिसमें moderator training संभव थी, और CRM114 एक पुराना open source spam classification software है

2026 में इसे सार्वजनिक करने की वजह

  • लेखक का मानना है कि अगर 2021 में यह जानकारी सार्वजनिक कर दी जाती, तो Reddit की spam समस्या पर इसका गंभीर असर पड़ सकता था
  • 2026 में Perspective API is shutting down के अनुसार यह साल के अंत तक बंद होने वाला था, इसलिए Reddit अगर अब भी इसका उपयोग कर रहा हो तो भी उसे जल्द migrate करना होगा
  • यह भी माना गया कि LLM ने spam industry को बदल दिया है, इसलिए Reddit ने 2026 तक अपने anti-spam system में काफी बदलाव कर लिए होंगे
  • इन कारणों से 2026 की स्थिति में इस जानकारी को सार्वजनिक करने का जोखिम कम समझा गया

1 टिप्पणियां

 
GN⁺ 5 시간 전
Lobste.rs की राय
  • दिलचस्प सामग्री और रिसर्च है। निष्कर्ष में भी जैसा कहा गया है, ऐसे abuse-prevention mechanisms की बारीकियाँ देखने का मौका कम ही मिलता है; खास तौर पर जो चीज़ ध्यान खींची, वह Lyra की खास तौर पर कुशल CSS क्षमता थी
    फिर से बनाए गए Reddit UI की censorship bars और लाल circles पहले तो screenshots जैसे लगे, लेकिन असल में वे पूरी तरह interactive mockup थे

    • यह comment पढ़ने से पहले मुझे बिल्कुल पता नहीं चला कि वे images नहीं हैं
  • हर बार जब नया blog post आता है, तो हमेशा इंतज़ार रहता है। content भी वाकई दिलचस्प है, और दूसरी UI को reproduce करने की कला भी शानदार है
    अब तक कम से कम एक easter egg तो मिल गया है

    • शुक्रिया। इस बार के post में ऐसी काफ़ी चीज़ें डाल रखी हैं ;)
  • अपने account से test करने के लिए website पर <pre>UA-49307539-2</pre> string डालकर Reddit पर link किया, तो 5 साल पुराना test account तुरंत suspend हो गया और posting history भी पूरी delete हो गई—यह हिस्सा सच में काफी brutal था
    इसलिए असली number को UA-49307539- में बदल दिया गया, ताकि ऐसा text public न हो जो account को मार सके; उम्मीद है वह account सचमुच test के लिए था और उसमें कुछ important नहीं था

  • iPhone 16 Pro के latest iOS developer beta में mobile Safari से खोलने की कोशिश करने पर <url> पर “a problem repeatedly occurred” error आता है, इसलिए देखा नहीं जा सकता

    • मुझे बिल्कुल नहीं पता ऐसा क्यों हो रहा है, और अभी मेरे पास iPhone भी नहीं है
      अगर कोई HTML पर binary search करके crash की वजह ढूंढ दे, तो मैं बहुत आभारी रहूँगा
  • जिन लोगों को curiosity है, उनके लिए बता दूँ कि शामिल Perspective API key valid नहीं है

    • bans (2016 - present) में spam example के तौर पर censored consulting company का नाम Puppygirl Consulting दिखता है, जिससे developer tools के शौकीनों को hint मिल सकता है कि censored हिस्से शायद fake हैं या easter eggs हैं :^)