Mengotomatiskan pemindaian malware untuk file yang diupload ke Cloud Storage

Last reviewed 2023-05-17 UTC

Arsitektur referensi ini menunjukkan cara mem-build pipeline berbasis peristiwa yang dapat membantu Anda mengotomatiskan evaluasi file untuk mendeteksi malware seperti trojan, virus, dan kode berbahaya lainnya. Mengevaluasi sejumlah besar file yang diupload ke Cloud Storage secara manual terlalu memakan waktu untuk sebagian besar aplikasi. Mengotomatiskan proses tersebut dapat membantu Anda menghemat waktu dan meningkatkan efisiensi.

Pipeline dalam arsitektur ini menggunakan produk Google Cloud beserta mesin antivirus open source ClamAV. Anda juga dapat menggunakan mesin anti-malware lainnya yang melakukan pemindaian on demand di container Linux. Dalam arsitektur ini, ClamAV berjalan di container Docker yang dihosting di Cloud Run. Pipeline juga menulis entri log ke Cloud Logging dan mencatat metrik ke Cloud Monitoring.

Arsitektur

Diagram berikut memberikan ringkasan tentang arsitektur:

Arsitektur pipeline pemindaian malware.

Arsitektur ini menampilkan pipeline berikut:

  • Pipeline pemindaian file yang diupload pengguna, yang memeriksa apakah file yang diupload mengandung malware.
  • Pipeline update duplikat database malware ClamAV, yang mempertahankan duplikat terbaru database malware yang digunakan ClamAV.

Pipeline dijelaskan secara lebih mendetail di bagian berikut.

Pipeline pemindaian file yang diupload pengguna

Pipeline pemindaian file beroperasi seperti berikut:

  1. Pengguna akhir mengupload file mereka ke bucket Cloud Storage yang tidak dipindai.
  2. Layanan Eventarc menangkap peristiwa upload ini dan memberi tahu layanan Cloud Run tentang file baru ini.
  3. Layanan Cloud Run mendownload file baru dari bucket Cloud Storage yang tidak dipindai dan meneruskannya ke pemindai malware ClamAV.
  4. Bergantung pada hasil pemindaian malware, layanan ini akan melakukan salah satu tindakan berikut:
    • Jika ClamAV mendeklarasikan bahwa file tersebut bersih, file tersebut akan dipindahkan dari bucket Cloud Storage yang tidak dipindai ke bucket Cloud Storage yang bersih
    • Jika ClamAV mendeklarasikan bahwa file tersebut mengandung malware, file tersebut akan dipindahkan dari bucket Cloud Storage yang tidak dipindai ke bucket Cloud Storage yang dikarantina.
  5. Layanan ini melaporkan hasil tindakan ini ke Logging dan Monitoring agar administrator dapat mengambil tindakan.

Pipeline update duplikat database Malware ClamAV

Pipeline update duplikat database ClamAV Malware mempertahankan duplikasi lokal pribadi database yang terbaru di Cloud Storage. Hal ini memastikan bahwa database publik ClamAV hanya diakses satu kali per update untuk mendownload file update diferensial yang lebih kecil, dan bukan database lengkap, yang mencegah pembatasan kapasitas.

Pipeline ini beroperasi sebagai berikut:

  1. Tugas Cloud Scheduler dikonfigurasi untuk dipicu setiap dua jam, yang merupakan interval yang sama dengan pemeriksaan update default yang digunakan oleh layanan freshclam ClamAV. Tugas ini mengirimkan permintaan POST HTTP ke layanan Cloud Run yang menginstruksikannya untuk mengupdate duplikat database malware.
  2. Instance Cloud Run menyalin duplikat database malware dari bucket Cloud Storage ke sistem file lokal.
  3. Selanjutnya, instance akan menjalankan alat ClamAV CVDUpdate yang akan mendownload update diferensial yang tersedia dan menerapkannya ke duplikasi database.
  4. Kemudian, duplikat database malware akan disalin kembali ke bucket Cloud Storage.

Saat proses memulai, layanan freshclam ClamAV yang berjalan di instance Cloud Run akan mendownload database malware dari Cloud Storage. Selama runtime, layanan ini juga secara rutin memeriksa dan mendownload update database yang tersedia dari bucket Cloud Storage.

Pertimbangan desain

Panduan berikut ini dapat membantu Anda mengembangkan arsitektur yang memenuhi persyaratan organisasi Anda dalam hal keandalan, biaya, dan efisiensi operasional.

Keandalan

Agar dapat memindai secara efektif, pemindai malware ClamAV perlu mempertahankan database signature malware yang terbaru. Layanan ClamAV dijalankan menggunakan Cloud Run, yang merupakan layanan stateless. Saat instance layanan dimulai ClamAV harus selalu mendownload database malware terbaru yang lengkap yang berukuran beberapa ratusan megabyte.

Database malware publik untuk ClamAV dihosting pada Jaringan Distribusi Konten (CDN), yang kapasitasnya membatasi download ini. Jika beberapa instance dimulai dan mencoba mendownload seluruh database, pembatasan kapasitas dapat terpicu. Hal ini dapat menyebabkan alamat IP eksternal yang digunakan oleh Cloud Run diblokir selama 24 jam. Tindakan ini akan mencegah layanan ClamAV dimulai, serta mencegah download update database malware.

Selain itu, Cloud Run menggunakan kumpulan alamat IP eksternal bersama. Akibatnya, download dari berbagai instance pemindaian malware project akan terlihat oleh CDN berasal dari satu alamat dan juga akan memicu pemblokiran.

Pengoptimalan biaya

Arsitektur ini menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan, gunakan kalkulator harga.

Efisiensi operasional

Untuk memicu pemberitahuan berbasis log terkait file yang terinfeksi, Anda dapat menggunakan entri log dari Logging. Namun, penyiapan pemberitahuan ini berada di luar cakupan arsitektur ini.

Deployment

Untuk men-deploy arsitektur ini, lihat Men-deploy pemindaian malware otomatis untuk file yang diupload ke Cloud Storage.

Langkah selanjutnya