Automatizza la scansione antimalware per i file caricati su Cloud Storage

Last reviewed 2024-07-16 UTC

Questa architettura di riferimento mostra come creare una pipeline basata su eventi che può aiutarti ad automatizzare la valutazione dei file alla ricerca di malware come trojan, virus e altri codici dannosi. Valutazione manuale di un elevato numero di file che vengono caricati Cloud Storage richiede troppo tempo per la maggior parte delle app. Automatizzare il processo può aiutarti a risparmiare tempo e migliorare l'efficienza.

La pipeline in questa architettura utilizza i prodotti Google Cloud con il motore antivirus open source ClamAV. Puoi anche utilizzare qualsiasi altro motore anti-malware che viene eseguito su richiesta e l'analisi nei container Linux. In questa architettura, ClamAV viene eseguito container ospitato in Cloud Run. La pipeline scrive anche le voci di log in Cloud Logging e registra le metriche Cloud Monitoring.

Architettura

Il seguente diagramma fornisce una panoramica dell'architettura:

Architettura della pipeline di scansione del malware.

L'architettura mostra le seguenti pipeline:

  • Pipeline di analisi dei file caricati dall'utente, che controlla se un file caricato contiene malware.
  • Pipeline di aggiornamento del mirror del database del malware ClamAV, che mantiene specchietto aggiornato del database del malware utilizzato da ClamAV.

Le pipeline sono descritte in modo più dettagliato nelle sezioni seguenti.

Pipeline di analisi dei file caricata dall'utente

La pipeline di scansione dei file funziona nel seguente modo:

  1. Gli utenti finali caricano i propri file su Cloud Storage non scansionato. di sincronizzare la directory di una VM con un bucket.
  2. Il servizio Eventarc rileva questo evento di caricamento e comunica al Cloud Run su questo nuovo file.
  3. Il servizio Cloud Run scarica il nuovo file dal bucket Cloud Storage non analizzato e lo passa al malware ClamAV scanner.
  4. In base al risultato della scansione del malware, il servizio esegue una delle le seguenti azioni:
    • Se ClamAV dichiara che il file è pulito, viene spostato dalla non analizzato sul bucket Cloud Storage clean nel bucket Cloud Storage.
    • Se ClamAV dichiara che il file contiene malware, questo viene spostato da dal bucket Cloud Storage non scansionato alla messa in quarantena nel bucket Cloud Storage.
  5. Il servizio segnala il risultato di queste azioni a Logging e Monitoring per consentire agli amministratori di intervenire.

Pipeline di aggiornamento del mirror del database del malware ClamAV

La pipeline di aggiornamento del mirror del database del malware ClamAV si aggiorna specchio locale privato del database in Cloud Storage. In questo modo, il pubblico ClamAV si accede al database una sola volta per aggiornamento per scaricare il differenziale più piccolo e non l'intero database, il che impedisce qualsiasi limitazione di frequenza.

Questa pipeline funziona nel seguente modo:

  1. Un job Cloud Scheduler è configurato per attivarsi ogni due ore, che corrisponde all'intervallo predefinito di controllo degli aggiornamenti utilizzato da ClamAV Freshclam Service. Questo job invia una richiesta POST HTTP all'utente Servizio Cloud Run con le istruzioni per aggiornare il malware del database.
  2. L'istanza Cloud Run copia il mirror del database del malware dal bucket Cloud Storage al file system locale.
  3. L'istanza esegue quindi Aggiornamento CVD ClamAV che scarica tutti gli aggiornamenti differenziali disponibili e li applica il mirroring del database.
  4. Quindi, copia il mirror aggiornato del database del malware nel bucket Cloud Storage.

All'avvio, Valanga vongola nel servizio in esecuzione nell'istanza Cloud Run scarica malware da Cloud Storage. Durante il runtime, il servizio verifica regolarmente la presenza di eventuali aggiornamenti del database disponibili e li scarica nel bucket Cloud Storage.

Note sul layout

Le seguenti linee guida possono aiutarti a sviluppare un'architettura che soddisfi le tue in termini di affidabilità, costi ed efficienza operativa.

Affidabilità

Per eseguire la scansione in modo efficace, il rilevatore di malware ClamAV deve mantenere un database aggiornato di firme del malware. Il servizio ClamAV viene eseguito utilizzando Cloud Run, che è un servizio stateless. All'avvio di un del servizio, ClamAV deve sempre scaricare il malware completo più recente che ha una dimensione di diverse centinaia di megabyte.

Il database pubblico dei malware per ClamAV è ospitato su un sistema di distribuzione di contenuti Network (CDN), che limita la frequenza di questi download. Se vengono avviate più istanze e tentare di scaricare l'intero database, può essere attivata la limitazione di frequenza. Questo causa il blocco dell'indirizzo IP esterno utilizzato da Cloud Run per 24 ore. In questo modo si impedisce l'avvio del servizio ClamAV, nonché che impediscono il download di aggiornamenti dei database del malware.

Inoltre, Cloud Run utilizza un pool condiviso di indirizzi IP esterni. Come come risultato, i download da progetti diversi vengono rilevate istanze di scansione di malware provenienti da un singolo indirizzo e attivano il blocco.

Ottimizzazione dei costi

Questa architettura utilizza i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi basata sull'utilizzo previsto, utilizza Calcolatore prezzi.

Efficienza operativa

A attivare avvisi basati su log per i file infetti, puoi utilizzare le voci di log Logging. Tuttavia, la configurazione di questi avvisi non rientra nell'ambito di questa architettura.

Deployment

Per eseguire il deployment di questa architettura, Esegui il deployment della scansione automatica del malware per i file caricati su Cloud Storage.

Passaggi successivi