5 puan yazan GN⁺ 5 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • 2021’de Reddit’te geçici bir hata gibi görünen bir durum nedeniyle, Relay for reddit’te normalde Removed: Auto olarak gizlenen site genelindeki spam kaldırma nedenleri ve iç karar verileri açığa çıktı
  • Herkese açık arşiv koduna göre kaldırma bilgisi ban_info.banner üzerinden aktarılıyor; Relay, API’deki banned_by=true değerini Auto olarak gösteriyordu, ancak aynı alana iç nedenler girince sorun oluşmuş gibi görünüyor
  • Açığa çıkan nedenler arasında domain, spammit, banned user, shadowban, spamurai vb. vardı; spamurai ise hesap yaşı, karma, şikâyet sayısı, ISP, e-posta alan adı, User-Agent, dil başlığı, TLS parmak izi, referrer ve Perspective API puanına kadar birçok veri içeriyordu
  • Google Perspective API’nin SPAM puanı ile Reddit’in kaldırma günlüklerindeki değerler neredeyse bire bir örtüşüyordu; kısa karakter ekleme, Kiril karakterlerle değiştirme, büyük/küçük harf ve sayıların yok sayılması gibi özellikler nedeniyle puanın ciddi şekilde oynadığı örnekler görüldü
  • Reddit anti-spam sistemi; Python 2.7 tabanlı kontroller, Lua kural tabanlı REV1/REV2, Snooron, OCR ve görüntü sınıflandırma araçlarının karıştığı çok kuşaklı bir sistem gibi görünüyor; 2026’da Perspective API’nin kapanması ve LLM tabanlı spam değişimi nedeniyle bilgilerin açıklanma riskinin azaldığı değerlendiriliyor

2021’de ortaya çıkan kaldırma nedenleri

  • Reddit moderatörü olan bir kullanıcı, 2021’de Relay for reddit uygulamasında kaldırılmış spam bildirimleri alırken normalde görünmemesi gereken anti-spam iç mesajlarını fark etti
  • Normal moderatör ekranında otomatik spam kaldırmaları Removed: Auto gibi gösterilirken, o dönemde gerçek kaldırma nedeni ve iç veriler kırmızı metin olarak görünüyordu
  • Bu durum yaklaşık bir saat sonra normale döndü ve geriye kalan tek materyal o sırada alınan ekran görüntüleri oldu

Reddit moderasyonu ve Auto gösterim biçimi

  • Reddit’in alt toplulukları olan subreddit’lerde topluluk moderatörleri gönderi kaldırma, kullanıcı engelleme, modmail yönetimi gibi işlerden sorumludur
  • Moderatörler bir gönderinin veya yorumun kim tarafından kaldırıldığını görebilir
    • Normal moderatör kaldırmaları moderatör adıyla gösterilir
    • AutoModerator kaldırmaları AutoModerator olarak gösterilir
    • Reddit’in site geneli spam filtresi veya yönetici kaldırmaları Auto olarak gösterilebilir
  • Moderasyon günlüğünde site geneli kaldırmalar reddit veya Anti-Evil Operations olarak görünür

Herkese açık arşiv kodunda görülen sızıntı yolu

  • Reddit, 2017’ye kadar kaynak kodunu açık tutmuştu; bu arşiv koduyla kaldırma işleme akışının bir kısmı izlenebiliyor
  • Moderatör kaldırma fonksiyonu olan POST_remove, admintools.spam çağırır
    • moderator_banned, kaldırmayı yapan tarafın moderatör mü yönetici mi olduğunu ayırır
    • banner, kaldırma işlemini yapan kullanıcının adını kaydeder
  • get_mod_attributes, kaldırılan öğenin ban_info bilgisini API yanıtına çıkarır
    • Moderatör kaldırdıysa banner değerini banned_by olarak döndürür
    • Yönetici kaldırdıysa gerçek ad yerine True döndürür
  • Relay for reddit’in decompile edilmiş kodunda bannedBy değeri "true" ise bunun Auto dizesine çevrilip gösterildiği görülüyor
  • Reddit’te link gönderimi sırasında yasaklı alan adı algılandığında banner = "domain (REASON)" gibi iç nedeni banner alanına koyan bir kod yolu da vardı
  • İç kaldırma nedeni içeren banner alanının aslında yalnızca site genelindeki yöneticilere görünmesi gerekiyordu; benzer bir kod yolundaki hata nedeniyle moderatörlere açığa çıktığı tahmin ediliyor

Açığa çıkan kaldırma nedeni kategorileri

  • domain

    • Alan adı tabanlı kaldırma, herkese açık kodda da doğrulanabilen bir kategori
    • Çoğu Removed: domain (spam) biçimindeydi, ancak bazı durumlarda özel notlar da vardı
    • Tumblr ile ilgili spam denemeleri için 2012’de belirli bir alan adının kaldırıldığı bir örnek vardı
    • le sexxxxy sex spam gibi ifadeler de kaldırma nedeni olarak görünüyordu
  • spammit

    • spammit, gönderileri analiz ederek spam olasılığı yüzdesi ekleyen bir kategori gibi görünüyor
    • Doğrulanan kaldırma örneklerindeki puanlar en düşük %39,71, en yüksek %98,19 idi
    • İlgili subreddit’lerde normal Imgur gönderilerinin bile %70–98 spam puanıyla kaldırıldığı çok sayıda örnek olduğundan, doğruluğu yüksek görünmüyordu
  • Engellenmiş kullanıcı ve shadowban

    • Removed: banned user veya Removed: Reddit (banall performed) biçiminde kaldırmalar vardı
    • Bu örneklerin çoğu reklam amaçlı servis linkleri gibi bariz spam gönderiler olarak görünüyordu
    • Shadowban uygulanmış kullanıcıların gönderileri Removed: Reddit (shadowban applied on tarih) gibi gösteriliyordu
    • Shadowban, kullanıcının kendisi hâlâ yazabiliyormuş gibi göründüğü ancak gönderi ve yorumlarının başkalarına görünmediği sessiz bir engelleme türüdür

spamurai’nin ortaya çıkardığı iç karar verileri

  • spamurai, açığa çıkan kategoriler içinde en fazla iç veri içeren öğeydi
  • Herkese açık sunum materyallerinde Reddit’in “ML” için Minsky, “Rules” için Spamurai kullandığı belirtiliyordu
  • spamurai kaldırma nedenlerinde basit kurallar ile ayrıntılı veri dökümleri birlikte yer alıyordu
    • Belirli anahtar kelime kaldırmalarında echelon adlı bir alt sistem gibi görünen bir isim yer alıyordu
    • 30 dakikadan genç bir hesabın spam koşullarına uyan yorum yazdığı için kaldırıldığı bir örnek vardı
    • Şüpheli tişört affiliate spam’i, yalnızca URL içeren yorumlar, yüksek Perspective puanlı yorumlar gibi somut kurallar görülüyordu
  • spamurai veri dökümündeki öğeler

    • link t3_... veya comment t1_..., Reddit’in fullname ID değeridir
    • t1 yorumdur
    • t2 kullanıcıdır
    • t3 gönderidir
    • t4 private message’dır
    • t5 subreddit’tir
    • perspective spam değeri, Google Perspective API’nin SPAM puanı olarak doğrulandı
    • Hesapla ilgili veriler içeriyordu
      • Hesap yaşı
      • spammy puanı
      • karma
      • şikâyet sayısı
      • e-posta alan adı
      • ISP veya kuruluş adı
    • Erişim ve ortam verileri de vardı
      • oauth.reddit.com kullanılıp kullanılmadığı
      • User-Agent
      • Dil başlığı LANG
      • referrer
      • Tarayıcı parmak izi gibi görünen RHS
      • TLS parmak izi gibi görünen değer
      • Küçük resim URL’si
      • Gönderi veya yorum gövdesi
      • Orijinal Reddit linki

Perspective API ve atlatma olasılığı

  • Reddit günlüklerindeki 0.12571795 perspective spam değeri, Perspective API SPAM özelliği çağrısının sonucuyla fiilen aynıydı
  • Aynı metinle Perspective API çağrıldığında 0.12571794 dönüyordu; fark 0.00000001 olduğundan yuvarlama hatası sayılabilir
  • Perspective belgelerindeki örnek puan biçimi ve Reddit CTO’sunun örnek alıntısı da Reddit’in Perspective kullandığına dair emare olarak kullanılıyor
  • Perspective’in SPAM özelliği toksisite tespiti değil, spam tespiti için experimental bir özelliktir; New York Times yorumları ve moderasyon verilerinden oluşan tek bir veri kümesiyle eğitildiği belirtilir
  • Şubat 2026’dan sonra Google Cloud’da yeni Perspective API projesi oluşturulamadığı için yeniden test etmek zorlaştı
  • SPAM puanındaki hassas değişimler

    • Perspective SPAM puanının yalnızca birkaç karakter eklenince bile büyük ölçüde değiştiği örnekler vardı
    • Puppygirl Consulting is the best way to grow your revenue için 0.8638981
    • Sonuna qp eklenince 0.010811162 değerine düşüyor
    • Sayılar ve büyük/küçük harflerin yok sayıldığı izlenimi veren sonuçlar çıkıyor
    • Telefon numarası rakamları ve büyük/küçük harf değiştirilse de aynı puan dönüyor
    • Bazı başka yazı sistemleri de aynı puanla işleniyor
    • Farklı Kiril karakter dizeleri aynı 0.35077864 puanını alıyor
    • Buy my product ifadesindeki Latin p, Kiril р ile değiştirilince puan 0.6473346’dan 0.4452748’e düşüyor
    • Herkese açık API temel alınarak mesajlar azar azar değiştirilseydi, spamurai’nin başlıca karar ölçütlerinden birinin atlatılabilmiş olması mümkün görünüyor

Kullanıcı şikâyetleri ve moderatör onayının yansıması

  • spamurai’nin kullanıcı şikâyetlerini de kaldırma kurallarına kattığı anlaşılıyor
  • REPORT: High spam perspective score on comment with hyperlink reported for spam nedeni, spam olarak şikâyet edilen hiperlinkli yorumun Perspective puanı yüksek olduğu için kaldırıldığını ve moderatörün yeniden onaylayabileceğini gösteriyor
  • Belirli bir kaldırma nedeninde “moderatör bu içeriği onaylarsa ileride kaldırmalar azalır” ifadesi yer alıyordu
  • Reddit’in herkese açık kodundaki admintools.spam içinde bulunan train_spam argümanı, moderatör aksiyonlarının anti-spam eğitiminde kullanılıp kullanılmayacağını belirler
  • Bir subreddit’te normal gönderileri onaylamanın false positive’leri azaltmaya etki edebileceği şeklinde yorumlanabilir

Diğer kaldırma kuralları ve URL denetimi

  • Pinterest redirect linkleri, mega.nz linkleri ve serbestçe oluşturulabilen subdomain’lerle ilgili linklerin de kaldırıldığı örnekler vardı
  • mega.nz linki kaldırmalarında aslında YouTube arşiv video linki olan normal örnekler de vardı; yani false positive görülüyordu
  • Matched forbidden regex u'torenteu' örneğinde gövdede doğrudan torenteu yoktu ama yine de kaldırılmıştı
    • Reddit, Unicode dizelerini ASCII’ye dönüştürmek için unidecode kullanıyor
    • Korece 토렌.트, dönüşüm ve ek işleme sonrasında torenteu ile eşleşebilmişti
  • Failed inspection: Phrase(s) [u'UA-49307539-'] örneğinin yorum gövdesiyle veya dönüştürülmüş metinle değil, linkin yönlendirildiği sayfanın HTML’i içindeki Google Analytics ID’siyle eşleştiği görüldü
  • inspection, Reddit’in URL’yi açıp yönlendirmeleri takip ettikten sonra sayfada desen araması gibi görünüyor
  • Bir test hesabıyla içinde bu dize bulunan web sayfasının linki gönderilince 5 yıllık hesap anında engellendi ve gönderi geçmişi silindi
    • Daha fazla etkinlik geçmişi olan bir arkadaş hesabında aynı durum yeniden üretilemedi
    • Bu filtrenin hâlâ aktif olup olmadığı veya hesap engellemenin tesadüf olup olmadığı kesin olmadığı için gerçek dize değiştirilerek yayımlandı

Geçmişteki ve günümüzdeki Reddit anti-spam bileşenleri

  • Reddit Engineering’in 2023 tarihli Protecting Reddit Users in Real Time at Scale yazısında Rule-Executor-V1, REV2 ve Snooron geçiyor
  • Anlaşılan zaman çizelgesi şöyle
    • REV1, 2016’da oluşturuldu
    • Snooron, 2021’de REV1’i modernleştirmek için geliştirildi
    • Yaklaşık 2 yıl sonra REV2’ye geçildi
  • REV1 ve REV2, Lua kurallarıyla çalışıyor; nil gibi dizeler ve zamanlama açısından spamurai ile bağlantılı olma ihtimali var
  • u'torenteu', u'UA-49307539-' gibi Python 2.7 Unicode dizeleri, spamurai dışındaki Python 2.7 tabanlı kontrol kodu veya REV1’in çağırdığı ayrı bir URL denetim kodu olabilir
  • Snooron, ilgili sunuma göre Flink Stateful Functions üzerinde çalışıyor; görüntü sınıflandırma ve OCR yapıyor, worker tarafında Python 3 kullanıyor
  • 2024 itibarıyla Reddit, Australian eSafety belgesinde OCR ve görüntü/video sınıflandırma için Hive AI ve Google Vision OCR API kullandığını açıkladı
  • Hive OCR 12 dili destekliyor; Google OCR daha fazla dil desteği için birlikte kullanılıyor ve Reddit’in 80 dili destekleyen iç araçlar üzerinde de çalıştığı belirtiliyor
  • 2009 tarihli bir ticket’ta crm114 adlı kullanıcının moderatör eğitimi yapılabilen bir spam filtresi olduğu doğrulanmıştı; CRM114 eski bir açık kaynak spam sınıflandırma yazılımıdır

2026’da neden yayımlandı?

  • Bu bilgiler 2021’de açıklansaydı Reddit’in spam sorununa ciddi zarar verebileceği değerlendirildi
  • 2026’da Perspective API is shutting down yıl sonunda kapanacağı için Reddit kullanmaya devam etse bile yakında geçiş yapmak zorunda kalacak
  • LLM’ler spam endüstrisini değiştirdiği için Reddit’in 2026’ya uygun şekilde anti-spam sistemini büyük ölçüde yenilemiş olduğu düşünülüyor
  • Bu nedenlerle, 2026 itibarıyla bu bilgilerin açıklanma riskinin düşük olduğu düşünülüyor

1 yorum

 
GN⁺ 5 시간 전
Lobste.rs yorumları
  • İlginç bir kaynak ve araştırma. Sonuç kısmında da söylendiği gibi, bu tür kötüye kullanımı önleme mekanizmalarının ayrıntılarını görme fırsatı nadir çıkıyor; özellikle göze çarpan şey Lyra'ya özgü ustalıklı CSS kullanımıydı.
    Yeniden oluşturulan Reddit UI'daki sansür çubukları ve kırmızı daire ilk başta ekran görüntüsü gibi görünüyordu, ama aslında tamamen etkileşimli bir maketti.

    • Bu yorumu okuyana kadar bunun bir görsel olmadığını hiç fark etmemiştim.
  • Her yeni blog yazısı çıktığında hep merakla bekliyorum. İçerik gerçekten ilginç, başka UI'ları yeniden üretme becerisi de harika.
    Şimdiye kadar en az bir easter egg buldum.

    • Teşekkürler. Bu yazıya onlardan epeyce koydum ;)
  • Kendi hesabıyla test etmek için web sitesine <pre>UA-49307539-2</pre> dizgesini koyup Reddit'te linklediğinde, 5 yıllık test hesabının anında askıya alınması ve tüm gönderi geçmişinin de silinmesi kısmı gerçekten sertti.
    Bu yüzden gerçek numarayı, hesap öldürebilecek bir metni yayımlamamak için UA-49307539- olarak değiştirdiğini söylüyor; umarım o hesap gerçekten test içindi ve önemli bir şey yoktu.

  • iPhone 16 Pro'daki en güncel iOS geliştirici betasında mobil Safari ile açmaya çalışınca <url> üzerinde “a problem repeatedly occurred” hatası veriyor ve görüntülenemiyor.

    • Bunun neden olduğunu hiç bilmiyorum, şu an yanımda iPhone da yok.
      Birisi HTML'i ikili aramayla daraltıp çökme nedenini bulursa gerçekten minnettar olurum.
  • Merak edenler için: İçerikteki Perspective API anahtarı geçerli değil.

    • bans (2016 - present) bölümünde spam örneği olarak sansürlenen danışmanlık şirketinin Puppygirl Consulting olduğunu görünce, geliştirici araçları bağımlıları sansürlenen kısımların muhtemelen sahte ya da easter egg olduğuna dair ipucu yakalayabilir :^)