2 पॉइंट द्वारा GN⁺ 2023-09-24 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • मुफ़्त ब्लॉग प्लेटफ़ॉर्म Bear कम signup barrier की वजह से backlink farm, phishing, अवैध drug sales, online casino ads, और crypto promotion spam का निशाना बन गया
  • no-index·no-follow और feed exclusion से visibility कम की जा सकी, लेकिन spam content का प्लेटफ़ॉर्म पर चढ़ना ही रोकना मुश्किल था
  • Akismet-आधारित blocking असरदार थी, लेकिन block message स्पैमर को bypass के संकेत देने लगी
  • ‘फ्रस्ट्रेशन लूप’ blocking की बजाय form reset, paste disable, focus shift, और बार-बार errors के जरिए स्पैमर का समय बर्बाद करने का तरीका है
  • लागू करने के बाद नए blogs में spam ratio लगभग 30% से घटकर 5% से नीचे आ गया, और 3 महीनों में समस्या रिपोर्ट करने वाला सिर्फ़ 1 user था, जो online casino advertiser निकला

Bear स्पैम का निशाना क्यों बना

  • Bear मुफ़्त है, इसलिए signup आसान है और इसी वजह से प्लेटफ़ॉर्म का दुरुपयोग करने वाले स्पैमर बड़ी संख्या में आ जाते हैं
  • यह spam साधारण bot traffic से ज़्यादा Fiverr पर “100 backlinks” खरीदने जैसी spam farm गतिविधि के क़रीब है
    • सैकड़ों कम मज़दूरी वाले worker वेब पर जगह-जगह content submit करते हैं
    • मकसद SEO ranking बढ़ाना है, लेकिन लेखक का मानना है कि इसका असली असर नहीं होता
  • Bear ने बुनियादी सुरक्षा रखी ताकि spam पोस्ट हो भी जाए तो वह खुले इंटरनेट में ज़्यादा दिखाई न दे
    • review न किए गए blogs पर no-index और no-follow tags लगते हैं
    • वे sitemap और discovery feed में भी नहीं दिखते
    • अगर user review request चुनता है, तो यह स्थिति हटाई जा सकती है
  • लेकिन visibility रोकने से अलग, Bear यह भी चाहता था कि प्लेटफ़ॉर्म के भीतर spam content का मौजूद रहना ही कम हो

सीधे block करने से बेहतर, bypass को धीमा करना

  • spam detection के लिए WordPress ecosystem के tool Akismet का इस्तेमाल किया गया
    • GPT4 से अपना detection system बनाने की कोशिश हुई, लेकिन उसकी accuracy Akismet से कम और cost ज़्यादा थी
    • बाद में Akismet subscription ले लिया गया
  • signup stage पर blocking कुछ हद तक असरदार रही, लेकिन समय के साथ स्पैमर ने response pattern सीख लिया
    • blocking यह संकेत बन गई कि किस तरह का content पकड़ा जा रहा है
    • स्पैमर पहले वैध blog जैसा दिखते हैं, फिर कम निगरानी वाले हिस्सों में spam डालते हैं
    • आख़िरकार उन्हें manual तरीके से ढूँढकर mark करना पड़ता था
  • IP blocking भी ज़्यादा कारगर नहीं रही
    • स्पैमर Nord जैसे commercial VPN इस्तेमाल करते हैं
    • सिर्फ़ Nord VPN के ही दुनिया भर में सैकड़ों server हैं, इसलिए IP block से इन्हें रोकना लगभग नामुमकिन है
    • किसी खास IP से posting रोकने पर असली users भी block हो सकते हैं

‘फ्रस्ट्रेशन लूप’ कैसे काम करता है

  • The Frustration Loop spam detect होने पर blog को तुरंत block नहीं करता, बल्कि चीज़ों को system error या failure जैसा दिखाकर user को थका देता है
    • यह idea The Password Game से लिया गया
    • spam detect होने पर form साफ़ कर दिया जाता है और “Our servers are bearly managing. Try again later.” जैसी error दिखाई जाती है
    • सभी text areas में paste करना disable कर दिया जाता है
    • हर 5~10 सेकंड में input focus किसी दूसरे field में भेज दिया जाता है, ताकि typing करते समय text ग़लत जगह चला जाए
    • दोबारा submit करने पर “Ensure content contains necessary parameters.” जैसी दूसरी error दिखाई जाती है
    • यह process दोहराया जाता है ताकि सामने वाले को लगे कि software टूट गया है और वह हार मान ले
  • सामान्य users पर इसके trigger होने की संभावना कम मानी गई
    • tests में साफ़ तौर पर suspicious behavior किए बिना इसे trigger नहीं किया जा सका
    • यह production में 3 महीनों तक चला, और समस्या report करने वाला सिर्फ़ 1 user था
    • वह user online casino का प्रचार कर रहा था

लागू करने के नतीजे और बाकी बची कमियाँ

  • लागू होने के बाद नए blogs में spam ratio लगभग 30% से घटकर 5% से कम हो गया
  • यह कोई perfect solution नहीं है; सुधार की गुंजाइश और बंद किए जाने वाले loopholes अभी भी बचे हैं
  • इस तरीके को सार्वजनिक करने से संभावित स्पैमर इसे bypass कर सकते हैं, ऐसी चिंता है, लेकिन लेखक का मानना है कि स्पैमर यह ब्लॉग पढ़ने नहीं आएँगे

1 टिप्पणियां

 
GN⁺ 2023-09-24
Hacker News की राय
  • मुझे Mike Davidson[1] की याद आई, जो पहले ESPN में मेरे सहकर्मी थे, और जिन्होंने 2006 में शुरुआती community news site Newsvine[2] बनाई थी
    Newsvine में comments, recommendations, link submissions और article writing थे, और यह news-केंद्रित Reddit जैसा service था। spammers और trolls से निपटने के लिए, backend में किसी user को troll के रूप में mark करने पर उस account के हर page load में random 10–60 सेकंड की delay डाल दी जाती थी, और मुझे याद है कि इससे problem काफी effectively कम हुई थी
    1- http://mikeindustries.com/blog/
    2- https://en.wikipedia.org/wiki/Newsvine

    • उस मानक से देखें तो नया Reddit mobile UI शायद सभी को troll मानता है
    • Twitter/X जैसी services में अमेरिकी सरकारी अधिकारियों से interact करने वाले individuals तक को ध्यान में रखें, तो सोचता हूँ यह कैसे लागू होगा
      कोई व्यक्ति जो बिल्कुल अलग वजह से backend में troll के रूप में mark किया गया हो, government official से interact करते समय delay का सामना कर सकता है। delay block के बराबर नहीं है, लेकिन सवाल है कि क्या एक federal judge की नज़र में user experience को नुकसान पहुँचाना पर्याप्त रूप से मिलता-जुलता माना जाएगा
    • मुझे Newsvine पसंद था। वह सचमुच innovative और welcoming लगता था
    • spam और trolling अखबारों, radio, TV, किताबों और magazines में भी होती है। बस वहाँ ऐसा करने के लिए पैसे देने पड़ते हैं
      ऐतिहासिक रूप से धनी वर्ग, protocol/official circles और leisure class ज्यादा attention खरीद सकते थे, इसलिए उनके दिमाग में आने वाला हर तरह का शोर लगातार फैलता रहा। अब content production, consumption से इतना ज्यादा हो गया है कि किसी भी चीज़ के लिए पर्याप्त attention बची ही नहीं
      अगर HN के comments और links में से 99% कोई नहीं पढ़ता, तो क्या HN चलाने वाले brilliant geniuses हमें यह बताएँगे? platforms ने यह जाने बिना कि वे क्या बना रहे हैं, सभी को free broadcast rights दे दिए, और अब सिर्फ अमीर ही नहीं बल्कि हर कोई free में spam और trolling कर सकता है। बचता सिर्फ noise है, इसलिए UN की attention economy report पढ़ लें
      ऐसा लगता है कि linear-thinking software engineers का systems को तेज़ और scalable बना पाना ही ऐसे अर्थहीन systems के बनने की एकमात्र वजह है, जो सबका time और energy बर्बाद करते हैं
  • मैंने Akismet के अंदर 6 साल से ज्यादा काम किया था
    Akismet comment spam detection में बहुत अच्छा है, लेकिन अगर वह signup spam detection में अच्छा होता, तो wordpress.com पर इतने सारे spam blogs नहीं बनते
    search engines, curated term lists और developers द्वारा बनाए गए tools का इस्तेमाल करके मैं spam blogs को track करता था, और हजारों वास्तविक spam blogs suspend किए। गलतियाँ कभी-कभी हुईं, लेकिन दुर्लभ थीं
    बाद में कुछ automated tools बने, लेकिन इस तरह की hunting और suspension priority में पीछे चली गई। शुरुआत में wordpress.com को साफ-सुथरा दिखना जरूरी था ताकि वह grow कर सके, लेकिन जब लगा कि वह काफी बड़ा हो गया है, तो यह रुक गया। मुझे पता था कि यह जलती हुई कार को water pistol से बुझाने जैसा है, लेकिन इसमें बहुत समय नहीं लगता था और यह काफी संतोषजनक था
    साल के इस समय मैं Halloween spam blogs खंगालता था, और Christmas spam blogs भी दिखने शुरू हो जाते थे

  • मैं third-party filters के बिना email spam हटाने का एक simple तरीका इस्तेमाल करता हूँ
    email के लिए मेरे पास personal domain है, और domain पर आने वाली हर mail लेने वाला catch-all account है। इसके बजाय हर site और service को अलग-अलग address देता हूँ, जैसे sitea@mydomain.com, site2@mydomain.com
    इससे sender/source के हिसाब से mail को reliably auto-classify किया जा सकता है, और मैं जो naming format देता हूँ वह भी consistent रखता हूँ, इसलिए उस format से match न करने वाली random mail तुरंत delete हो जाती है और मैं उसे देखता भी नहीं
    spam लगभग आता ही नहीं, लेकिन अगर कोई service address leak कर देती है, तो मैं उस service का email बदल देता हूँ या service बंद कर देता हूँ और उस address को block list में डाल देता हूँ। यह इतना simple है कि लगता है सभी email programs को पूरे domain को इस तरह handle कर पाना चाहिए

    • अगर personal domain नहीं है, तो alternatives के रूप में Fastmail masked emails(https://app.fastmail.com), Firefox Relay(https://relay.firefox.com/), SimpleLogin(https://simplelogin.io/) जैसी चीज़ें हैं, और भी बहुत हैं
    • इसी तरह मैं हर external target के लिए अलग address इस्तेमाल करता हूँ, और यह phishing पहचानने में भी मदद करता है
      उदाहरण के लिए किसी shopping mall के लिए बनाए गए address पर “bank से alert” आए, तो वह genuine नहीं हो सकता। दुरुपयोग हुए address को /etc/aliases से delete करके invalidate किया जा सकता है
      इसके अलावा postfix server को इस तरह configure किया है कि sending side के पास reverse DNS mapping न हो तो connection reject कर दे। यह 20 साल पहले भी काम करता था और आज भी logs देखने पर useful लगता है
    • मैं भी similar system इस्तेमाल करता हूँ। domain catch-all है, लेकिन हर व्यक्ति को अलग address देता हूँ और alias के अंत में एक fragment जोड़ता हूँ जो बताता है कि email rule को क्या करना चाहिए
      उदाहरण के लिए anything_s@mydomain.com पर आने वाली mail सीधे spam folder में जाती है। Google से लेकर छोटे websites के signups तक, लगभग सबके लिए यही इस्तेमाल करता हूँ। आखिरकार वे आम तौर पर सिर्फ spam ही भेजते हैं, और कभी-कभी spam folder check करने पर भी कोई important चीज़ कभी नहीं मिली
      सामान्य companies जो mail भेजती हैं, उनमें से ज्यादातर में मेरी रुचि नहीं होती, इसलिए उन्हें spam मानता हूँ। Uber Eats भी हर order पर कई mails भेजता है, और मेरी नजर में वह बस spam है। अगर कोई service सच में important हो, तो मैं ऐसा address दूँगा जिसमें spam में न जाने वाला अलग suffix हो, लेकिन ऐसा लगभग कभी नहीं होता
      website द्वारा address leak होने पर आने वाले phishing spam के अलावा, ज्यादातर websites द्वारा भेजे जाने वाले “छोटी interaction के बारे में important information” जैसे mails भी अच्छी तरह filter हो जाते हैं
    • मैं similar system इस्तेमाल करता हूँ, लेकिन address को पहले .txt file में “register” करता हूँ। format sitename-random-number@mydomain है
      catch-all spammers की तरफ से ऐसा दिखाता है कि सभी mails successfully deliver हो गईं, इसलिए spammer बार-बार भेजते रहकर अपने resources waste कर सकता है
    • मैं कई सालों से कुछ ऐसा ही कर रहा हूँ, लेकिन auto-delete नहीं करता
      observe करने पर देखा कि spam सिर्फ blog पर publicly posted email address और GitHub address पर आता है। लगता है किसी ने मेरा address spammers को बेचा नहीं, बल्कि सिर्फ public addresses scrape किए गए
  • सोशल नेटवर्क की spam team आम तौर पर spammer को shadow ban करती है
    लक्ष्य यह होता है कि spammer के लिए यह समझ पाना जितना हो सके उतना मुश्किल बना दिया जाए कि वह पकड़ा गया है। इसलिए मुझे लगता है कि irritation पैदा करने वाली techniques या simple account suspension बहुत व्यापक रूप से इस्तेमाल नहीं होतीं
    spam prevention असल में detection tactics deploy करने वाली company और detection से बचने के लिए लगातार ज्यादा complex तरीके अपनाने वाले sophisticated spammers के बीच की arms race है, इसलिए दिलचस्प है। अगर spammers को यह विश्वास दिलाया जा सके कि उन्हें अपने तरीके evolve करने की जरूरत नहीं है, तो company के लिए यह फायदे की बात है

    • असली लोगों का फंसना ही समस्या है। मेरा TikTok account shadow ban में है, इसलिए अभी कुछ भी डालूं तो views 0 रहते हैं और LIVE में भी viewers 0 होते हैं
      Instagram account इस वजह से permanently suspend हो गया कि मैंने खुद को impersonate किया था। पूरा account खोना और भी बुरा था; उन्होंने selfie तक भेजने को कहा और image submit करते ही उसी क्षण permanent suspension हो गया
    • विडंबना यह है कि सबसे अच्छी spam detection teams spammers के लिए काम करती हैं। ads spam ही हैं, बस जब adtech salary देता है तभी exception बन जाता है
    • context के हिसाब से account suspension को हथियार बनाया जा सकता है। जैसे किसी नापसंद व्यक्ति को suspicious behavior करता हुआ दिखाकर उसे suspend करवा देना
    • मैंने जो modern spam tools देखे हैं, वे इसी वजह से verification के लिए second accounts की list लेते हैं
      comments दिख रहे हैं या नहीं इसका sample check करके shadow banned accounts को automatically हटाया जा सकता है
  • Akismet में सही से काम करने वाली appeal process नहीं है। बहुत पहले मैं अपने blog पर comment कर रहा था और Akismet ने मुझे ban कर दिया था
    Akismet इस्तेमाल करने वाली जगहों पर comment करने पर वह चुपचाप filter हो जाता है। Disqus ने भी मुझे जान-पहचान वालों के blogs के comments में बहुत सारे useful links डालने के कारण ban किया था, लेकिन उन्होंने 2 दिन में resolve कर दिया और काफी polite थे
    Akismet को कम-से-कम अनगिनत समय पहले ban हुए WordPress users को साफ करना चाहिए, और WordPress को किसी थोड़े कम पागलपन भरे alternative पर switch करना चाहिए
    अपने WordPress blog पर reply न कर पाना सच में काफी मजाकिया है, और मेरे लिए तो किसी दूसरे blog engine का इस्तेमाल करना आसान है, लेकिन WordPress का अपने users के साथ “चलो थोड़ा spam मारते हैं” वाले अंदाज में पेश आना अच्छा नहीं है

    • मैं Akismet developer हूं। support@akismet.com पर जानकारी भेजें तो हम देख सकते हैं कि आपके comments क्यों पकड़े जा रहे हैं
    • ऐसी स्थिति में मैं आम तौर पर उस site को पूरी तरह छोड़ देता हूं
      domain को uBlock list में जोड़ना और title को Google में search करना बस एक click का काम है। कोई भी appeal process इतनी आसान और भरोसेमंद नहीं हो सकती
  • original post में यह missing है कि valid users को कैसे पहचानकर irritation loop में नहीं डाला जाता
    Akismet से signup के समय spam रोकना कुछ हद तक काम करता था, लेकिन उसे bypass करना आसान था, और कहा गया कि कुछ spammers ने normal blog जैसे दिखने के तरीके खोज लिए थे, जिन्हें manually ढूंढकर mark करना पड़ता था। इसके बाद उन्होंने बताया कि जब spam detect होता है तो समय बर्बाद करवाकर हार मानने पर मजबूर करने वाला “Frustration Loop” बनाया
    लेकिन यह normal users के लिए trigger नहीं होता क्या, इस हिस्से में बस इतना आता है कि इसे 3 महीने तक चलाया गया और समस्या report करने वाला सिर्फ एक user था। निजी तौर पर मुझे यही हिस्सा लेख का सबसे दिलचस्प भाग लगा
    spammers को frustrate करने वाला measure अपने आप में अच्छा है, लेकिन spammers और real users को अलग करना, false positives और false negatives समझना जैसी चीजों पर और होता तो बेहतर था। detection details disclose करना मुश्किल है और लेख का विषय Frustration Loop है, यह समझता हूं

    • वे Akismet को पैसे देते हैं और user signup information भेजते हैं। लेख के GIF में देखा जा सकता है कि कौन सा data भेजते हैं
      Akismet अगर spam कहकर reply करता है तो frustration loop चालू कर देते हैं; मुझे यह काफी clever लगा
    • क्या Akismet signup के समय spammers को भी detect करता है? मेरी जानकारी में मुख्य function किसी दिए गए comment के spam होने या न होने का फैसला करने वाली API है
      https://akismet.com/developers/comment-check/
    • बात ठीक उसी हिस्से की है। लगता है कोई भी problem solve नहीं करना चाहता
      solve करने पर metrics और revenue को ही नुकसान होगा, इसलिए अब मैं ऐसा सोचने लगा हूं
  • mail contact form में सबसे अच्छी spam prevention “blindcopy”, “bcc”, “cc”, “additional address” जैसे नामों वाले कई hidden text input fields थे
    सभी में default value डाल दी थी, और submit handler अगर detect करता कि इन fields की values default से बदल गई हैं, तो submission reject कर देता था। मुझे लगता है उस form से एक भी fake email नहीं मिली

    • spam scripts उससे कहीं कम smart होती हैं
      contact form में बिना text वाला एक hidden field डाला और accessibility के लिए hint text में politely warning लगा दी। उस field में कुछ भी भरा जाता तो चुपचाप discard कर देता, और input content मुझे copy में भेजा जाता था; form के online रहने के लगभग 8 सालों में शायद 0 spam emails आईं
    • सुना है इस concept को honeypot field कहते हैं, और जैसा कहा गया, यह काफी अच्छा काम करता है
      हालांकि curiosity है कि password managers या autocomplete इसमें कैसे नहीं फंसते। क्या वे detect कर सकते हैं कि field दिखाई नहीं दे रहा?
    • Hacker News भी ऐसा ही कुछ इस्तेमाल नहीं करता? login page पर hidden input field है
    • मैंने भी बिल्कुल यही किया था, और यह सच में बहुत effective था
  • क्या वे “irritated” users द्वारा डाले गए content को sample करके check करते हैं कि वे सच में normal हैं? false positive rate और false negative rate हैं? यह भी देखा कि कुल normal signups घटे या बढ़े?
    यह तरीका सिर्फ वही इस्तेमाल नहीं करते। कई pages VPN इस्तेमाल करने पर बिना error दिखाए चुपचाप और irritating तरीके से fail हो जाते हैं। VPN बंद करो तो जादू की तरह सब काम करने लगता है। Etsy भी कुछ समय तक VPN इस्तेमाल करने पर blank page return करता था, जो बेहद irritating था

  • Instagram में एक झुंझलाहट वाला लूप है। मुझे पता है क्योंकि यह मेरे अकाउंट पर ट्रिगर होता है
    मैं जो भी काम करता हूँ, चाहे कितना भी छोटा हो, वह मुझसे फिर से login करवाता है। एक link पर click करूँ या कुछ भी करूँ, हर बार login screen से गुजरना पड़ता है
    शुरुआत में यह “अकाउंट में संदिग्ध गतिविधि पाई गई” से शुरू हुआ, फिर “अकाउंट disabled कर दिया गया” दिखा। असली वजह नहीं बताते, लेकिन आधिकारिक नियमों में दी गई वास्तविक वजहों में बस यही है कि आपने किसी को बुरा लगने वाली post डाली हो
    लेकिन उस explanation में एक समस्या है। मैंने कभी कुछ post किया ही नहीं। Instagram पर मैं बस कुछ लोगों को follow करता हूँ। code डालने और अपनी photo भेजने तक की प्रक्रिया के बाद account access वापस मिल गया, लेकिन अब मैं कुछ भी करूँ तो फिर से login करना पड़ता है। इसे संयोग या bug मानना मुश्किल है; साफ लगता है कि उन्होंने मुझे problematic व्यक्ति के रूप में identify किया है, लेकिन सज़ा देने लायक सबूत कम हैं, इसलिए किसी काल्पनिक उल्लंघन के लिए दंड दे रहे हैं
    शायद कभी-कभार Instagram photo links खोलना इसकी वजह रहा होगा। Meta का हिस्सा होना भी समस्या है; अगर मैं Instagram को पूरी तरह बंद कर दूँ, तो दूर रहने वाले कुछ दोस्तों से संपर्क में रहने के लिए इस्तेमाल होने वाले Facebook account का access भी खो दूँगा
    दुनिया Facebook से आगे बढ़ चुकी है और अब सब Instagram पर हैं। मैं भी शायद वहीं होता, अगर Instagram ने इजाज़त दी होती

    • लगता है उन्होंने मुझे crawler या scraper के रूप में identify किया है। शायद वे एक और Cambridge Analytica जैसी घटना नहीं चाहते
  • spam detection को spammer और detector के बीच creativity की लड़ाई कहा जाता है; Akismet के लिए यह सही हो सकता है। लेकिन अगर आपकी website spammers के इकट्ठा होने की जगह देती है, तो अब मामला ऐसा नहीं रहता
    यह मेरे blog/website और दूसरे blog/website के बीच की प्रतिस्पर्धा है। अगर मैं अपने पड़ोसी से बेहतर protected हूँ, तो spammers पड़ोसी के पास चले जाते हैं। खासकर तब, जब bots नहीं बल्कि click farm को रोकना हो
    मज़ाक में कहें तो, जंगल में भालू से तेज़ दौड़ने की ज़रूरत नहीं होती; बस झुंड में सबसे धीमे नहीं होना चाहिए