Internet bukan lagi tempat berlindung yang aman
(brainbaking.com)- 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
topmenunjukkan 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
- Header permintaan menggunakan User-Agent yang menyamar sebagai browser biasa, seperti
- IP penyerang berasal dari banyak alamat, bukan satu sumber tunggal, tetapi sama-sama memakai rentang
47.79.*- Hasil pencarian
ipinfo.iomenunjukkan rentang tersebut dimiliki oleh Alibaba(US) Technology Co., Ltd. - Forum seperti PhpBB juga memiliki laporan serangan dari rentang IP yang sama
- Hasil pencarian
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/16diblokir secara manual melalui perintahiptables
- Sebuah skrip dijalankan untuk segera memblokir IP yang mencoba mengakses
- 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
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, danmicrosoft.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
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
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
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
Contoh: https://www.masswerk.at/wp-admin
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
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
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
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
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
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
Saat network stack mencoba ulang, trafik diperbesar dan dikirim ke korban
Karena src IP sering dipalsukan, saya sarankan mengatur
rp_filterke strictSeperti 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
Saya memakai skrip yang setiap hari lewat cron mengambil data RouteViews lalu menerapkannya ke iptables
Contoh kode:
Semoga penyedia cloud lain juga menyediakan hal serupa