Informazioni su MetaDefender Cloud
MetaDefender Cloud è la piattaforma di prevenzione avanzata delle minacce e di analisi del malware di OPSWAT, basata sul cloud. La nostra combinazione unica di Deep CDR e Multiscanning di oltre 20 tra i migliori motori AV protegge le organizzazioni da attacchi zero-day e da malware sempre più sofisticati. La sandbox di MetaDefender Cloud, combinata con l'analisi in tempo reale di hash, IP e domini grazie al database di intelligence sulle minacce di OPSWAT, aiuta i ricercatori di malware e fornisce una comprensione approfondita delle minacce esistenti e potenziali.
La piattaforma MetaDefender Cloud supporta attualmente oltre 5 milioni di richieste di scansione al giorno da parte dei nostri clienti, garantendo loro un tempo medio di scansione di 0,4 secondi.
Perché abbiamo sviluppato MetaDefender as a Service (MDaaS)?
Soddisfare le esigenze del mercato e supportare al meglio i nostri clienti
Volevamo garantire che MetaDefender Cloud fosse in grado di scalare per soddisfare i requisiti in continua evoluzione e la crescente necessità di servizi avanzati di sicurezza delle applicazioni e la crescente complessità della sicurezza DevOps, man mano che un numero maggiore di applicazioni si sposta nel cloud. Con l'aumento del traffico di file, era necessario che MetaDefender Cloud mantenesse e migliorasse le sue prestazioni per garantire un'esperienza utente fluida ai nostri clienti finali.
Per migliorare il monitoraggio e lo scaling predittivo
Abbiamo deciso di migrare la nostra architettura on-premises verso Kubernetes cloud-native basato su microservizi con infrastructure-as-code per poter fornire un'esperienza omogenea e coerente rispetto all'attuale modello di distribuzione e monitoraggio.
MetaDefender Come architettura di servizio

Con la migrazione a MDaaS, i nostri servizi Multiscanning sono stati spostati da AMI basato su Windows a un cluster basato su Kubernetes. Gli amministratori possono ora configurare la scalabilità per motore. Poiché le prestazioni dei motori sono diverse, i motori più lenti possono essere scalati per mantenere tempi di scansione rapidi.
Il flusso di elaborazione dei file è ora il seguente:
1. Un messaggio proveniente da un richiedente esterno viene inviato a un topic Kafka "request" (1) con le istruzioni della richiesta, come la scansione di un file con AV1, AV2 e così via, la sanificazione con Deep CDR e l'analisi del file con Sandbox e così via.
2. Successivamente, un estrattore Lambda (2), che si iscrive per ricevere i messaggi, divide la richiesta in una serie di comandi diversi e li invia a un altro topic Kafka (3), dove vengono classificati e assegnati ai motori pertinenti. (4)
3. Il motore di elaborazione (4) è il cuore del sistema. Contiene diversi contenitori di motori, viene eseguito su Amazon Elastic Kubernetes Service (EKS) e ha la capacità di scalare in entrata o in uscita in base al carico di lavoro. Ogni motore gestisce una richiesta specifica che aumenta le prestazioni di elaborazione.
4. Durante il processo, viene utilizzato anche un bucket S3 (5) per memorizzare i file di input e di output.
5. Allo stesso tempo, un modulo di elaborazione dei log (6) riceve i log dai motori e li invia a un sistema di analisi dei log.
6. Dopo l'elaborazione dei file, il risultato derivato da ciascun motore viene restituito al topic Kafka "results" (7).
7. Successivamente, un aggregatore di microservizi che utilizza AWS Lambda (8) consolida i risultati in un unico report e lo invia a un topic Kafka (9) per tornare al richiedente.
Sfide e soluzioni tecniche
Previsione del comportamento del motore e gestione delle anomalie
La distribuzione tradizionale di MD Core AMI consente ai motori di essere eseguiti su un computer potente, dove possono condividere le risorse (CPU, RAM, disco, rete, ecc.) tra loro. Tuttavia, con l'architettura a microservizi, ogni motore opera individualmente in un contenitore meno potente. Pertanto, in questo caso è stato difficile definire i requisiti di risorse del sistema.
Per risolvere questo problema, abbiamo utilizzato i dati storici del vecchio sistema per impostare una linea di base per ogni motore e abbiamo aggiunto il monitoraggio di Datadog. Abbiamo continuato a monitorare il comportamento dei motori e a perfezionare l'infrastruttura finché il prodotto non ha raggiunto prestazioni superiori.
Mantenere un equilibrio tra prestazioni e costi di hosting
Con la nuova architettura, MetaDefender Cloud può essere scalato facilmente per adattarsi alle esigenze illimitate dei nostri clienti e per funzionare a livelli ottimali. Tuttavia, ciò significava anche che i costi di manutenzione potevano aumentare in proporzione. In assenza di controlli sulle spese o di modelli di governance, la scalabilità potrebbe essere incontrollabile, portando a un aumento delle fatture dei servizi cloud ben oltre il budget inizialmente stanziato.
Pertanto, sono state condotte frequenti revisioni architettoniche con gli stakeholder per garantire un'esperienza coerente con costi stabili ed equilibrati.
Simulazione dell'ambiente
Simulare un carico di produzione in un ambiente non di produzione senza dati reali è una sfida. Per gestire questo problema, abbiamo impostato flussi di lavoro paralleli in modo che i dati reali passassero attraverso la vecchia e la nuova architettura, permettendoci di valutare le metriche chiave di entrambe fianco a fianco. Questo confronto diretto ci ha permesso di identificare rapidamente ed efficacemente le aree in cui la nuova architettura era superiore alla precedente e quelle in cui la nuova architettura doveva essere migliorata.
Monitoraggio, reporting e controllo
Monitoraggio dell'infrastruttura cloud in tempo reale
MetaDefender Cloud pone una forte enfasi sulla creazione di un robusto monitoraggio nei suoi sistemi per fornire una chiara visione della salute del sistema. Per un servizio come MDaaS, che può gestire oltre 44 richieste al secondo (RPS) con un tasso di errore dello 0,6%, che si basa su diversi sistemi a monte ed ecosistemi partner come fonte di traffico e che produce contemporaneamente un traffico intenso per diversi sistemi a valle interni ed esterni, è importante disporre di una forte combinazione di metriche, avvisi e registrazioni.

Avvisi su ambienti ad alto traffico anomalo in Datadog
Oltre alle metriche standard di salute del sistema, come CPU, memoria e prestazioni, abbiamo aggiunto diverse metriche "edge-of-the-service" come la crescita della coda, il tempo di risposta del servizio, lo status-cake e il logging per catturare qualsiasi aberrazione dai sistemi a monte o a valle. Inoltre, abbiamo aggiunto l'analisi delle tendenze per le metriche importanti, per aiutare a individuare i degradi a lungo termine. Abbiamo strumentato MDaaS con un'applicazione di elaborazione dei flussi in tempo reale chiamata Datadog (per saperne di più, cliccate qui). Ci ha permesso di tracciare gli eventi in tempo reale sul filo, con una granularità specifica per i container, facilitando il debugging. Infine, abbiamo ritenuto utile disporre di avvisi specifici per il servizio, per identificare più rapidamente le cause dei problemi.

Creazione di incidenti su eccezioni che richiedono l'attenzione dei Site Reliability Engineer in Datadog.
Il monitoraggio SaaS con la piattaforma Datadog consente ai team di entrare in servizio più rapidamente e facilmente ed elimina la necessità di manutenzione continua dello strumento, di scalare la capacità, di aggiornare o di gestire. Questi vantaggi si traducono in un maggior tempo a disposizione dei team per lavorare sul prodotto principale, senza dover creare una soluzione di monitoraggio per conto proprio.

Risultati
- Con la migrazione a MDaaS, il microservizio del motore è ora più flessibile per contribuire a soddisfare i requisiti di controllo della sicurezza FedRAMP moderate baseline.
- Il monitoraggio delle prestazioni delle applicazioni è ora migliorato con avvisi e dashboard in tempo reale. La nuova architettura a microservizi consente agli amministratori di monitorare l'applicazione e ciascun componente in modo semplice ed efficace. Inoltre, facilita la distribuzione e la scalabilità.
- Nella misura in cui l'infrastruttura è definita come codice, consente agli utenti di modificare e distribuire facilmente le configurazioni, garantendo lo stato desiderato dell'infrastruttura. Ciò significa che è possibile creare configurazioni dell'infrastruttura riproducibili.
Per saperne di più MetaDefender Cloud o contattateci per ulteriori informazioni.