5 poin oleh GN⁺ 5 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Karena fenomena yang tampak seperti bug sementara di Reddit pada 2021, alasan penghapusan spam tingkat situs secara keseluruhan dan data penilaian internal yang biasanya disembunyikan sebagai Removed: Auto di Relay for reddit terekspos
  • Berdasarkan kode arsip publik, informasi penghapusan diteruskan melalui ban_info.banner, dan Relay menampilkan banned_by=true dari API sebagai Auto, tetapi tampaknya masalah muncul ketika alasan internal masuk ke field yang sama
  • Alasan yang terekspos mencakup domain, spammit, banned user, shadowban, spamurai dan lain-lain; spamurai juga memuat usia akun, karma, jumlah laporan, ISP, domain email, User-Agent, header bahasa, sidik jari TLS, referrer, hingga skor Perspective API
  • Skor SPAM dari Google Perspective API hampir sepenuhnya cocok dengan nilai log penghapusan Reddit, dan ditemukan kasus di mana skor berubah drastis karena karakter pendek tambahan, substitusi huruf Kiril, serta pengabaian huruf besar-kecil dan angka
  • Antispam Reddit tampaknya merupakan sistem multigenerasi yang mencampur pemeriksaan berbasis Python 2.7, REV1/REV2 berbasis aturan Lua, Snooron, serta alat OCR dan klasifikasi gambar; pada 2026 dinilai risiko pengungkapan sudah menurun karena Perspective API dihentikan dan spam berbasis LLM telah mengubah lanskap

Alasan penghapusan yang terungkap pada 2021

  • Seorang pengguna yang merupakan moderator Reddit melihat pesan internal antispam yang seharusnya tidak terlihat saat menerima notifikasi spam yang dihapus di aplikasi Relay for reddit pada 2021
  • Di layar moderator biasa, penghapusan spam otomatis ditampilkan seperti Removed: Auto, tetapi saat itu alasan penghapusan sebenarnya dan data internal muncul sebagai teks merah
  • Fenomena ini kembali normal sekitar satu jam kemudian, dan materi yang tersisa hanyalah tangkapan layar yang diambil saat itu

Moderasi Reddit dan cara tampilan Auto

  • Di subreddit, yaitu komunitas bawahan di Reddit, moderator komunitas menangani penghapusan posting, pemblokiran pengguna, pengelolaan modmail, dan lainnya
  • Moderator dapat melihat siapa yang menghapus posting atau komentar
    • Penghapusan oleh moderator biasa ditampilkan dengan nama moderator
    • Penghapusan oleh AutoModerator ditampilkan sebagai AutoModerator
    • Filter spam tingkat situs atau penghapusan oleh admin Reddit dapat ditampilkan sebagai Auto
  • Di log moderasi, penghapusan tingkat situs muncul sebagai reddit atau Anti-Evil Operations

Jalur paparan berdasarkan kode arsip publik

  • Reddit membuka kode sumber hingga 2017, dan alur pemrosesan penghapusan sebagian bisa ditelusuri dari kode arsip tersebut
  • Fungsi penghapusan moderator POST_remove memanggil admintools.spam
    • moderator_banned membedakan apakah pihak yang menghapus adalah moderator atau admin
    • banner mencatat nama pengguna yang menjalankan tindakan penghapusan
  • get_mod_attributes mengekspor ban_info dari item yang dihapus ke respons API
    • Jika dihapus moderator, nilai banner dikembalikan sebagai banned_by
    • Jika dihapus admin, yang dikembalikan adalah True alih-alih nama sebenarnya
  • Berdasarkan kode yang didekompilasi, Relay for reddit mengubah bannedBy bernilai "true" menjadi string Auto saat ditampilkan
  • Di Reddit juga ada jalur kode saat pengiriman tautan mendeteksi domain terlarang, yang menaruh alasan internal ke field banner seperti banner = "domain (REASON)"
  • Field banner yang berisi alasan penghapusan internal seharusnya hanya terlihat oleh admin tingkat situs, tetapi diduga terekspos ke moderator karena bug pada jalur kode yang mirip

Kategori alasan penghapusan yang terekspos

  • domain

    • Penghapusan berbasis domain adalah kategori yang juga bisa dikonfirmasi dari kode publik
    • Sebagian besar berbentuk Removed: domain (spam), tetapi ada juga kasus dengan catatan yang lebih spesifik
    • Ada kasus domain tertentu dihapus pada 2012 untuk eksperimen spam terkait Tumblr
    • Frasa seperti le sexxxxy sex spam juga muncul sebagai alasan penghapusan
  • spammit

    • spammit tampaknya merupakan kategori yang menganalisis posting dan memberi persentase probabilitas spam
    • Skor pada kasus penghapusan yang terkonfirmasi berkisar dari 39.71% hingga 98.19%
    • Di subreddit terkait, ada banyak kasus posting Imgur yang normal pun dihapus dengan skor spam 70–98%, sehingga akurasinya tidak tampak tinggi
  • Pengguna terblokir dan shadowban

    • Ada penghapusan dalam bentuk Removed: banned user atau Removed: Reddit (banall performed)
    • Sebagian besar kasus tersebut tampak sebagai posting spam yang jelas, seperti tautan layanan promosi
    • Posting dari pengguna yang terkena shadowban ditampilkan seperti Removed: Reddit (shadowban applied on tanggal)
    • Shadowban adalah pemblokiran diam-diam di mana pengguna sendiri masih tampak bisa menulis, tetapi posting dan komentarnya tidak terlihat oleh orang lain

Data penilaian internal yang diungkap spamurai

  • spamurai adalah item dengan data internal paling banyak di antara kategori yang terekspos
  • Dalam materi presentasi publik, Reddit disebut menggunakan Minsky untuk “ML” dan Spamurai untuk “Rules”
  • Alasan penghapusan spamurai memuat aturan sederhana sekaligus dump data terperinci
    • Nama yang tampaknya merupakan subsistem, echelon, muncul dalam penghapusan kata kunci tertentu
    • Ada kasus penghapusan ketika akun berusia kurang dari 30 menit memposting komentar yang memenuhi kondisi spam
    • Terlihat aturan spesifik seperti spam afiliasi kaus yang mencurigakan, komentar hanya berisi URL, dan komentar dengan skor Perspective tinggi
  • Item dalam dump data spamurai

    • link t3_... atau comment t1_... adalah fullname ID Reddit
    • t1 adalah komentar
    • t2 adalah pengguna
    • t3 adalah posting
    • t4 adalah private message
    • t5 adalah subreddit
    • Nilai perspective spam terkonfirmasi sebagai skor SPAM dari Google Perspective API
    • Data terkait akun ikut disertakan
      • usia akun
      • skor spammy
      • karma
      • jumlah laporan
      • domain email
      • ISP atau nama organisasi
    • Data akses dan lingkungan juga ikut masuk
      • apakah menggunakan oauth.reddit.com
      • User-Agent
      • header bahasa LANG
      • referrer
      • RHS yang tampaknya merupakan sidik jari browser
      • nilai yang tampaknya merupakan sidik jari TLS
      • URL thumbnail
      • isi posting atau komentar
      • tautan Reddit asli

Perspective API dan kemungkinan pengelakan

  • Nilai 0.12571795 perspective spam di log Reddit pada dasarnya cocok dengan hasil pemanggilan atribut SPAM dari Perspective API
  • Saat Perspective API dipanggil dengan teks yang sama, hasilnya 0.12571794, dan selisih 0.00000001 dapat dianggap sebagai galat pembulatan
  • Format skor contoh di dokumentasi Perspective dan kutipan kasus dari CTO Reddit juga dipakai sebagai petunjuk bahwa Reddit menggunakan Perspective
  • Atribut SPAM di Perspective adalah atribut eksperimental untuk deteksi spam, bukan deteksi toksisitas, dan disebut dilatih dengan satu dataset dari komentar New York Times serta data moderasi
  • Setelah Februari 2026, proyek Perspective API baru tidak lagi bisa dibuat di Google Cloud, sehingga uji baru menjadi sulit
  • Perubahan sensitif pada skor SPAM

    • Skor SPAM Perspective bisa berubah besar hanya dengan menambahkan beberapa karakter
    • Puppygirl Consulting is the best way to grow your revenue mendapat 0.8638981
    • Jika ditambahkan qp di belakang, nilainya turun menjadi 0.010811162
    • Hasil menunjukkan angka dan huruf besar-kecil tampaknya diabaikan
    • Mengubah angka nomor telepon dan huruf besar-kecil tetap mengembalikan skor yang sama
    • Beberapa sistem aksara lain juga diperlakukan dengan skor yang sama
    • String Kiril yang berbeda mendapat skor 0.35077864 yang sama
    • Pada Buy my product, jika huruf Latin p diganti dengan huruf Kiril р, skornya turun dari 0.6473346 menjadi 0.4452748
    • Berdasarkan API publik, ada kemungkinan salah satu kriteria utama penilaian spamurai bisa dihindari dengan sedikit mengubah pesan

Pengaruh laporan pengguna dan persetujuan moderator

  • spamurai tampaknya juga memasukkan laporan pengguna ke dalam aturan penghapusan
  • Alasan REPORT: High spam perspective score on comment with hyperlink reported for spam menunjukkan bahwa komentar berisi hyperlink yang dilaporkan sebagai spam dihapus karena skor Perspective-nya tinggi, dan moderator dapat menyetujuinya kembali
  • Beberapa alasan penghapusan memuat kalimat bahwa “jika moderator menyetujui konten ini, penghapusan di masa depan akan berkurang”
  • Argumen train_spam di admintools.spam pada kode publik Reddit menentukan apakah aksi moderator digunakan untuk pelatihan antispam
  • Ini dapat ditafsirkan bahwa jika moderator menyetujui posting yang normal di subreddit, hal itu bisa membantu mengurangi false positive

Aturan penghapusan lain dan pemeriksaan URL

  • Ada kasus penghapusan untuk tautan redirect Pinterest, tautan mega.nz, dan tautan terkait subdomain yang bisa dibuat bebas
  • Dalam penghapusan tautan mega.nz, ada juga contoh normal yang sebenarnya merupakan tautan video arsip YouTube, sehingga terjadi false positive
  • Pada kasus Matched forbidden regex u'torenteu', item tetap dihapus meski torenteu tidak muncul langsung di isi teks
    • Reddit menggunakan unidecode untuk mengubah string Unicode menjadi ASCII
    • Bahasa Korea 토렌.트 dapat cocok dengan torenteu setelah konversi dan pemrosesan tambahan
  • Pada kasus Failed inspection: Phrase(s) [u'UA-49307539-'], yang terdeteksi tampaknya bukan isi komentar atau teks hasil konversi, melainkan ID Google Analytics di HTML halaman tujuan setelah tautan di-redirect
  • inspection tampaknya adalah perilaku Reddit yang membuka URL, mengikuti redirect, lalu mencari pola pada halaman tersebut
  • Ketika tautan ke halaman web dengan string itu diposting dari akun uji, akun berusia 5 tahun langsung diblokir dan riwayat postingnya dihapus
    • Pada akun teman dengan riwayat aktivitas lebih banyak, reproduksi yang sama tidak terjadi
    • Karena tidak pasti apakah filter itu masih aktif atau pemblokiran akun hanya kebetulan, string sebenarnya dipublikasikan dalam bentuk yang diubah

Komponen antispam Reddit dahulu dan sekarang

  • Tulisan Reddit Engineering tahun 2023, Protecting Reddit Users in Real Time at Scale, menyebut Rule-Executor-V1, REV2, dan Snooron
  • Timeline yang dipahami adalah sebagai berikut
    • REV1 dibuat pada 2016
    • Snooron dikembangkan pada 2021 untuk memodernisasi REV1
    • Sekitar dua tahun kemudian terjadi migrasi ke REV2
  • REV1 dan REV2 berjalan dengan aturan Lua, dan string seperti nil serta konteks waktunya menunjukkan kemungkinan keterkaitan dengan spamurai
  • String Unicode Python 2.7 seperti u'torenteu' dan u'UA-49307539-' bisa jadi berasal dari kode pemeriksaan berbasis Python 2.7 di luar spamurai, atau dari kode pemeriksaan URL terpisah yang dipanggil REV1
  • Menurut presentasi terkait, Snooron berjalan di atas Flink Stateful Functions, melakukan klasifikasi gambar dan OCR, dan menggunakan Python 3 pada worker
  • Per 2024, Reddit menyatakan dalam dokumen Australian eSafety bahwa mereka menggunakan Hive AI dan Google Vision OCR API untuk OCR serta klasifikasi gambar dan video
  • Hive OCR mendukung 12 bahasa, Google OCR dipakai bersama untuk dukungan bahasa yang lebih luas, dan Reddit juga disebut sedang mengerjakan alat internal yang mendukung 80 bahasa
  • Dalam tiket tahun 2009, disebut ada filter spam bernama crm114 yang dapat dilatih oleh moderator, dan CRM114 adalah perangkat lunak klasifikasi spam open source lama

Mengapa dipublikasikan pada 2026

  • Jika informasi ini dipublikasikan pada 2021, dampaknya dinilai bisa fatal bagi masalah spam Reddit
  • Pada 2026, Perspective API is shutting down dijadwalkan berhenti pada akhir tahun, sehingga meskipun Reddit masih memakainya, mereka tetap harus segera bermigrasi
  • Karena LLM telah mengubah industri spam, diperkirakan Reddit juga telah banyak merombak sistem antispamnya untuk 2026
  • Karena alasan-alasan itu, pada 2026 risiko pengungkapan informasi tersebut dinilai rendah

1 komentar

 
GN⁺ 5 jam lalu
Komentar di Lobste.rs
  • Materi dan riset yang menarik. Seperti disebutkan di kesimpulan, jarang ada kesempatan untuk melihat detail mekanisme pencegahan penyalahgunaan seperti ini, dan yang paling menonjol khususnya adalah kemahiran CSS khas Lyra.
    Bilah sensor dan lingkaran merah pada UI Reddit yang direkonstruksi awalnya terlihat seperti tangkapan layar, tetapi sebenarnya itu adalah mockup yang sepenuhnya interaktif.

    • Sebelum membaca komentar ini, saya sama sekali tidak sadar bahwa itu bukan gambar.
  • Setiap kali tulisan blog baru terbit, saya selalu menantikannya. Isinya juga benar-benar menarik, dan kemampuan mereplikasi UI lain juga hebat.
    Sejauh ini saya sudah menemukan setidaknya satu easter egg.

    • Terima kasih. Di tulisan kali ini saya menyisipkan cukup banyak hal seperti itu ;)
  • Bagian ketika ia memasang string <pre>UA-49307539-2</pre> di situs webnya untuk menguji dengan akunnya sendiri lalu menautkannya di Reddit, dan akun uji berusia 5 tahun itu langsung ditangguhkan serta seluruh riwayat postingnya dihapus, benar-benar brutal.
    Jadi katanya angka aslinya diubah menjadi UA-49307539- agar tidak memublikasikan teks yang bisa membunuh akun; semoga akun itu benar-benar hanya untuk pengujian dan tidak ada hal penting di dalamnya.

  • Saat mencoba membukanya dengan Safari mobile di beta pengembang iOS terbaru pada iPhone 16 Pro, muncul error “a problem repeatedly occurred” di <url> sehingga tidak bisa dilihat.

    • Saya sama sekali tidak tahu kenapa itu terjadi, dan saat ini juga tidak ada iPhone di dekat saya.
      Akan sangat berterima kasih jika ada yang bisa melakukan pencarian biner pada HTML untuk menemukan penyebab crash-nya.
  • Untuk yang penasaran, kunci Perspective API yang disertakan tidak valid.

    • Melihat perusahaan konsultan yang disensor sebagai contoh spam di bans (2016 - present) bernama Puppygirl Consulting, para pecandu developer tools bisa mendapat petunjuk bahwa bagian-bagian yang disensor itu mungkin palsu atau merupakan easter egg :^)