9 poin oleh GN⁺ 2025-11-17 | 1 komentar | Bagikan ke WhatsApp
  • Server pribadi mengalami down akibat permintaan berlebihan dari bot scraping AI
  • Hasil analisis log mengonfirmasi upaya akses intensif dari rentang IP hosting Singapura milik Alibaba(US) Technology (47.79.*)
  • Karena menggunakan User-Agent palsu berbentuk Mozilla/5.0, sistem deteksi bot umum menjadi tidak efektif
  • Sistem pemblokiran otomatis di Fail2ban dan Nginx mengalami kelebihan beban, sehingga perlu memblokir seluruh rentang IP secara manual
  • Karena serangan berulang, para operator server pribadi menghadapi penyusutan lingkungan self-hosting, dan terdorong ke platform yang tersentralisasi

Penyebab server down dan respons awal

  • Beberapa hari lalu, server kecil yang meng-host situs sempat berhenti sementara akibat serangan bot scraping
    • Serangan serupa juga pernah terjadi sebelumnya, dan sedang dipertimbangkan penggunaan alat pertahanan kuat seperti Anubis
    • Serangan yang berulang mengurangi motivasi berkarya dan kesenangan hobi seorang pengembang independen
  • Setelah akses server melambat, pengecekan dengan perintah top menunjukkan Gitea dan Fail2ban hampir memakai seluruh CPU
    • Bahkan setelah proses Gitea dihentikan, beban Fail2ban tidak turun, dan log akses Nginx membanjir

Analisis log dan pola serangan

  • Di dalam log tercatat banyak permintaan HTTP 502 yang menargetkan jalur /commit/
    • Header permintaan menggunakan User-Agent yang menyamar sebagai browser biasa, seperti Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
    • Sebagian besar alat pemeriksa User-Agent menganggap ini sebagai trafik normal, sehingga berhasil menghindari deteksi
    Iklan
  • IP penyerang berasal dari banyak alamat, bukan satu sumber tunggal, tetapi sama-sama memakai rentang 47.79.*
    • Hasil pencarian ipinfo.io menunjukkan rentang tersebut dimiliki oleh Alibaba(US) Technology Co., Ltd.
    • Forum seperti PhpBB juga memiliki laporan serangan dari rentang IP yang sama

Langkah pertahanan dan keterbatasannya

  • Fail2ban menganalisis log Nginx secara real-time untuk menerapkan aturan blokir, tetapi pemrosesan tertunda karena ledakan log
    • Sebuah skrip dijalankan untuk segera memblokir IP yang mencoba mengakses /commit/, tetapi ada batasan kecepatan
    • Pada akhirnya, seluruh rentang 47.79.0.0/16 diblokir secara manual melalui perintah iptables
  • Respons seperti ini hanya bersifat sementara, dan serangan dari rentang IP baru kemungkinan akan terus berlanjut
    • Sedang dipertimbangkan penerapan layanan perlindungan eksternal seperti Cloudflare atau sistem pertahanan lanjutan seperti Anubis
    • Namun, penggunaan itu masih diragukan karena tidak ingin melewati server AS dengan kemampuan pelacakan
Iklan

Sulitnya mengoperasikan server pribadi

  • Sedang dipertimbangkan untuk memindahkan instance Gitea ke Codeberg
    • Para operator server pribadi cenderung meninggalkan self-hosting dan berpindah ke platform tersentralisasi akibat serangan yang berulang
    • Arus ini menyebabkan melemahnya desentralisasi dan otonomi internet
  • Blogger lain juga melaporkan kerusakan akibat serangan serupa, dan masalah ini meluas menjadi problem umum bagi operator web skala kecil

Trafik aneh lain yang teramati

  • Ditemukan header Referer palsu yang merujuk ke domain perusahaan besar seperti bioware.com, mcdonalds.com, dan microsoft.com
    • Kenyataannya, situs-situs tersebut tidak memberikan tautan apa pun, dan terjadi peningkatan trafik dengan tujuan yang tidak jelas
  • Meski serangan terus berulang, ada penegasan bahwa self-hosting tidak akan ditinggalkan
    • Di akhir tulisan, frasa “Get Hostin’ Or Die Tryin’” menegaskan tekad untuk terus menjalankan server secara mandiri

1 komentar

 
GN⁺ 2025-11-17
Komentar Hacker News
  • Rasanya internet sudah bukan lagi tempat aman bagi para penghobi pengembang software
    Sejak sekitar 2005 saya mengelola server sendiri, dan begitu server online, serangan selalu langsung datang
    Terutama kalau diberi nama DNS atau memakai sertifikat TLS, rasanya serangan makin parah karena terekspos di log transparansi sertifikat
    Begitu situs dipublikasikan, trafik jahat membanjir, dan kalau membuat organisasi tertentu marah, rasanya mereka sampai menyewa orang untuk mencoba DDoS
    Crawler, botnet, serangan otomatis, sampai orang-orang yang marah, semuanya jadi hal yang saya alami tiap tahun
    Sudah coba berbagai penyedia hosting, hasilnya kurang lebih sama

    • Dulu buku tamu PHP sederhana buatan saya berubah jadi situs spam XSS hanya dalam beberapa hari
      Karena WordPress tidak saya update, dalam hitungan jam langsung terinfeksi spam SEO, dan saat Redis tidak sengaja terekspos ke luar, botnet RAT pun terpasang
      Tapi saya tidak merasa hal-hal ini berarti internet itu “berbahaya”
      Justru itu pengalaman yang menunjukkan apa saja yang perlu saya pelajari
      Setelah itu saya memakai star-cert agar tidak muncul di log sertifikat, menambahkan basic auth, menjaga backup, dan mengelola semuanya dengan lebih hati-hati
      Yang benar-benar berbahaya menurut saya adalah orang yang tidak paham teknologi lalu sembarang memasang file exe, serta menyerahkan semua informasi mereka ke Facebook atau TikTok
    • Saya juga mengelola domain pribadi, dan walaupun tidak ada siapa pun selain saya yang mengunjunginya, serangan bot tetap tidak pernah berhenti
      Kebanyakan adalah permintaan yang menargetkan kerentanan WordPress, padahal saya belum pernah memakai WordPress
      Waktu pertama kali melihat log saya kaget, tapi sekarang saya menganggapnya sebagai hal biasa
    • Untuk mengejek para penyerang, saya membuat sesuatu bernama ‘HTTP Adventure’ dan memasangnya di alamat admin yang terkenal
      Contoh: https://www.masswerk.at/wp-admin
    • Sekitar 2008 saya mengelola situs bisnis dengan PageRank 6, dan sejak saat itu serangan dari Script Kiddies meningkat drastis
      Waktu itu sedang marak alat yang memindai rentang IP dan otomatis mencari kerentanan
      Saya rindu web era 1995~2008, masa ketika ada Web Rings, Technorati, dan fansite
      Referensi: Wiki Script Kiddie
    • Mungkin lebih tepat melihatnya bukan sebagai “selalu diserang”, tetapi bahwa trafik pada dasarnya sudah ‘dimonetisasi (monetised)’
  • Dulu saya memakai zipbomb untuk memblokir bot dan itu cukup efektif
    Tapi setelah saya memposting soal itu di HN, bot-bot baru berdatangan dan server seharga $6 saya tidak sanggup menahannya
    Tidak mungkin melayani 100 ribu request per hari dengan payload 1~10MB
    Setelah itu saya hanya menargetkan bot tertentu, membuat honeypot untuk mengumpulkan IP lalu merespons dengan 403
    Beberapa bulan kemudian, trafik kembali ke tingkat normal

    • Teknik pemblokiran bot seperti ini sepertinya punya nilai pasar
      Hanya saja saya tidak tahu siapa pelanggan sasarannya. Kebanyakan pengguna self-hosting tidak punya banyak uang
  • Server cgit saya juga sudah setahun terus diakses scraper
    Tapi cuma 2~3 request per menit, jadi ini bot yang cukup ‘sopan’
    Lucunya, semua kode yang saya unggah sebenarnya bisa langsung di-clone dari upstream, tapi tetap saja mereka mengikisnya seperti ini
    Dari log terlihat jelas ini otomasi yang sangat tidak efisien

  • Kalau mengatur sendiri fitur rate-limiting di Nginx, masalah ini bisa diselesaikan lebih mudah daripada memakai Fail2ban
    Blog referensi: https://blog.nginx.org/blog/rate-limiting-nginx

  • Sulit diterapkan ke layanan publik seperti blog, tetapi untuk self-hosting pribadi saya merekomendasikan mengatur autentikasi mTLS di reverse proxy
    Request tanpa sertifikat langsung diblokir, dan hanya perangkat saya yang bisa mengakses
    Sekali diatur, setelah itu hampir tidak perlu dipikirkan lagi

    • Tapi menurut saya Wireguard lebih baik
      Pengaturannya sederhana dan berjalan baik di Android maupun iOS
      Sekarang semua layanan self-hosting saya hanya bisa diakses dari dalam VPN Wireguard, dan firewall hanya membuka port Wireguard
    • Namun untuk layanan yang harus diakses orang lain juga, seperti blog, mTLS tidak realistis
  • Anubis cukup baik memainkan ‘permainan kucing dan tikus’ melawan bot
    Tetapi hanya pihak seperti Cloudflare yang punya data trafik berskala besar yang bisa melakukan pemblokiran berbasis reputasi IP dengan baik
    Operator kecil pada akhirnya terpaksa memblokir seluruh rentang IP sekaligus, dan itu tidak efisien
    Dibutuhkan solusi seperti Crowdsec yang berbagi data reputasi untuk memblokir IP jahat, sekaligus menyediakan challenge sederhana tanpa JS
    Kalau pendekatan seperti ini memungkinkan, para pengembang hobi mungkin akan lebih mudah lagi menjalankan layanan mereka

  • Instance Gitea saya juga baru-baru ini kena scraping melalui IP dan ASN yang tersebar
    Kalau pelakunya perusahaan AI yang punya dana besar, kemungkinan sulit dibendung bahkan dengan Anubis
    Karena itu saya sedang mempertimbangkan ‘meracuni scraper (poisoning)’ — yaitu menyajikan data sampah alih-alih kode

    • Belakangan bahkan muncul layanan proxy yang mengklaim IP mereka ‘diperoleh secara etis (residential)
      Layanan seperti ini membuat scraping jadi lebih sulit ditangani
  • Hal-hal yang menjadi populer pada akhirnya selalu mengalami siklus jatuh ke tangan publik lalu rusak
    Karena itu rasanya satu-satunya solusi adalah terus berpindah ke wilayah baru

  • Setelah memindahkan DNS ke Cloudflare, paket SYN aneh terus masuk
    Ke port 443 atau 22 ada request tiap detik, tetapi setelah SYN-ACK tidak ada respons lanjutan
    Kebanyakan tampaknya datang dari penyedia hosting VPS game server di Brasil dan sekitarnya
    Jadi saya menangkap paket SYN, melakukan lookup via RDAP, lalu memblokir seluruh subnet organisasi terkait
    Hanya Google yang saya biarkan masuk daftar putih
    Digital Ocean tampaknya salah satu sumber utama trafik jahat

    • Ini adalah sejenis serangan refleksi SYNACK
      Saat network stack mencoba ulang, trafik diperbesar dan dikirim ke korban
    • Besar kemungkinan ini serangan terkait game seperti DDoS server Minecraft
      Karena src IP sering dipalsukan, saya sarankan mengatur rp_filter ke strict
      net.ipv4.conf.all.rp_filter = 1
      net.ipv4.conf.default.rp_filter = 1
      
    • Tetapi berbahaya jika ISP menyensor perilaku pengguna
      Seperti perusahaan listrik yang tidak melarang penggunaan lampu merah, penyedia layanan tidak seharusnya mengendalikan trafik
  • Saya merasa relate dengan tulisan ini bukan karena internet itu aman, melainkan karena tulisan ini mencatat realitas seperti adanya
    Saya juga memblokir Alibaba /16 dan seluruh rentang AWS

    • Daripada memblokir rentang IP satu per satu, lebih efisien memblokir per ASN
      Saya memakai skrip yang setiap hari lewat cron mengambil data RouteViews lalu menerapkannya ke iptables
      Contoh kode:
      iptables -A BAD_AS -s $ROUTE -j DROP;
      
    • Sebagai referensi, AWS sejak 2014 sudah mempublikasikan rentang IP dalam format JSON
      Semoga penyedia cloud lain juga menyediakan hal serupa