2 poin oleh GN⁺ 2025-04-30 | 1 komentar | Bagikan ke WhatsApp
  • Sebagian besar lalu lintas web berasal dari bot, dan sebagian di antaranya digunakan untuk tujuan jahat
  • Zip Bomb adalah file terkompresi berukuran kecil, tetapi saat diekstrak dapat mengembang menjadi file yang sangat besar dan membebani server
  • Teknik kompresi digunakan di web untuk mengirim data secara efisien, dan bot juga memanfaatkannya
  • Saat bot berbahaya terdeteksi, server menyediakan file yang dikompresi dengan gzip untuk melumpuhkan bot tersebut
  • Zip Bomb bukan solusi sempurna, tetapi efektif untuk menghentikan bot sederhana

Melindungi Server dengan Menggunakan Zip Bomb

  • Sebagian besar lalu lintas web berasal dari bot, dan sebagian di antaranya digunakan untuk tujuan jahat
  • Bot berbahaya dapat menemukan kerentanan server dan menyisipkan skrip berbahaya untuk mengubah server menjadi botnet
  • Zip Bomb adalah file terkompresi berukuran kecil, tetapi saat diekstrak dapat mengembang menjadi file yang sangat besar dan membebani server

Pemanfaatan Teknik Kompresi

  • gzip adalah teknik kompresi yang digunakan di web untuk mengirim data secara efisien
  • Browser web dan bot sama-sama mendukung kompresi gzip, sehingga dapat memaksimalkan pemanfaatan bandwidth
  • Saat bot berbahaya terdeteksi, server menyediakan file yang dikompresi dengan gzip untuk melumpuhkan bot tersebut

Cara Membuat Zip Bomb

  • Menggunakan perintah dd untuk menghasilkan data sebesar 10GB, lalu mengompresinya dengan gzip menjadi file 10MB
  • Saat server mendeteksi permintaan berbahaya, server menyediakan file Zip Bomb 10MB untuk melumpuhkan bot

Batasan Zip Bomb

  • Zip Bomb bukan solusi yang sempurna, dan beberapa bot dapat mendeteksi serta melewatinya
  • Namun, metode ini efektif untuk menghentikan bot sederhana dan merupakan alat yang berguna untuk melindungi server

Artikel terkait

  • Cara menangani 1,3 juta permintaan web
  • Mengubah tanda tangan server Apache
  • Mematuhi Do Not Track di Google Analytics

1 komentar

 
GN⁺ 2025-04-30
Komentar Hacker News
  • Saya ingat waktu kecil iseng melakukan ln -s /dev/zero index.html di homepage saya. Saat itu browser tidak menyukainya, dan sistem bisa macet atau bahkan crash
    • Setelah itu browser mulai memeriksa konten sebenarnya dan menghentikan permintaan semacam ini
  • Sekarang hampir semua browser mendukung zstd dan brotli, jadi bom seperti ini bisa jadi lebih efektif
    • Di komentar lama pernah ditunjukkan rasio kompresi 1.2M:1, dan zstd menunjukkan performa yang lebih baik
  • Bot mungkin tidak mendukung standar kompresi modern
    • Ini bisa menjadi cara yang bagus untuk memblokir bot: karena semua browser modern mendukung zstd, memaksakan ini pada user-agent browser yang tidak ada di whitelist bisa membingungkan scraper
  • Di tempat kerja sebelumnya, bot pernah menemukan kerentanan WordPress dan menyisipkan skrip berbahaya ke server
    • Menarik mengetahui bahwa saya bukan satu-satunya orang yang pernah mengalami PHP shell dideploy ke server hanya 1 jam setelah menyiapkan WordPress
  • Bom zip itu menyenangkan. Saya pernah menemukan kerentanan pada produk keamanan yang tidak memeriksa arsip zip di atas ukuran tertentu dengan benar
    • Akibatnya, jika bom zip dimasukkan ke dokumen Office XML, produk itu akan meloloskannya meskipun di dalamnya ada malware yang mudah diidentifikasi
  • Saya pernah menemukan cara untuk membuat ssh client yang mencoba menebak kata sandi root menggunakan ssh menjadi crash
    • Akibatnya, script kiddie melakukan serangan DDoS ke server saya
    • Saya lalu beralih ke cara mengidentifikasi 'aktor jahat' dan memblokir IP dengan aturan firewall
    • Ini makin sulit karena IPv6
  • Orang yang membuat halaman web bisa membuat bom zip dengan tautan yang tidak terlihat oleh manusia (teks putih di atas latar putih, tanpa penyorotan pada anchor saat hover/klik)
    • Bot akan mengunduhnya untuk diperiksa (crawler dan AI scraper juga sama)
  • Ini adalah bom gzip (berfungsi seperti halaman web terkompresi biasa), bukan file zip klasik untuk memblokir virus
  • Saya pernah menerapkan ini sebagai pengganti skrip honeypot biasa
    • Tidak bekerja terlalu baik
    • Dari log web server terlihat bot tidak mengunduh penuh 10 megabyte racun itu
    • Mereka berhenti di panjang yang berbeda-beda. Sejauh ini saya belum pernah melihat ada yang mengambil lebih dari sekitar 1.5Mb
    • Atau mungkin sebenarnya berhasil? Apakah mereka mendekode stream secara real-time lalu crash? Misalnya, apakah catatan bahwa mereka membaca 1.5Mb bisa berarti itu didekode secara real-time menjadi 1.5Gb di RAM lalu crash?
    • Tidak ada cara untuk mengetahuinya
  • Belum lama ini ada insiden ketika infrastruktur anti-sensor Tor Project dioperasikan dari situs yang sama dengan posting blog tentang bom zip
    • Google merayapi salah satu file zip dan menambahkannya ke daftar domain berbahaya, sehingga bagian penting dari alat Snowflake milik Tor rusak
    • Butuh beberapa minggu untuk memperbaiki masalahnya
  • Di salah satu aplikasi saya, untuk melindungi proses upload saya membuat partisi disk sementara berukuran tetap 10MB agar dampaknya terbatas jika file yang diunggah terlalu besar
  • Selama beberapa tahun saya melakukan hal serupa menggunakan skrip yang dirangkai sedikit demi sedikit
    • Setiap tahun saya memeriksa log 404 dan menambahkan path kerentanan yang paling populer ke blacklist
    • Jika URL tersebut diminta 3 kali, host itu dimasukkan ke greylist yang hanya mengizinkan path sah yang terbatas