Migliorare la sicurezza degli APK con Milvus presso TrendMicro

<95 millisecondi
latenza delle query end-to-end
<10 secondi
per importare 3 milioni di vettori
Abilita
rilevamento delle minacce in tempo reale
Milvus delivers unparalleled performance and flexibility, integrating seamlessly with leading vector index libraries like Faiss. Its intuitive API and robust solutions for high availability make it an indispensable tool in our APK security efforts.
Wei Huang
Informazioni su Trend Micro
Trend Micro è un leader globale nel settore dei software di sicurezza, con una reputazione consolidata nella fornitura di soluzioni all'avanguardia a fornitori di software e utenti individuali. Con l'evoluzione delle minacce alla cybersecurity, evolve anche l'impegno di TrendMicro verso l'innovazione.
Una delle principali aree di interesse dell'azienda è la sicurezza mobile, diventata sempre più critica nel nostro mondo connesso digitalmente. In questo contesto, un team specializzato di TrendMicro è responsabile della creazione di app di sicurezza mobile e dello sviluppo dell'infrastruttura. Il loro flusso di lavoro prevede il crawling di APK esterni (pacchetti applicativi Android) da piattaforme come Google Play e l'applicazione degli algoritmi proprietari di TrendMicro per rilevare gli APK contenenti virus.
Scontrarsi con il muro della scalabilità: i limiti di MySQL e Faiss
Nelle prime fasi del progetto, TrendMicro si affidava a MySQL per la ricerca di similarità degli APK. In quanto database relazionale, MySQL era inizialmente sufficiente per gestire la dimensione del campione di APK e consentiva al team di usare query SQL per le ricerche di similarità. Tuttavia, con la crescita del dataset fino a decine di milioni, con incrementi giornalieri che raggiungevano centinaia di migliaia, le prestazioni di MySQL hanno iniziato a degradarsi. La latenza delle query è aumentata e il database aveva bisogno di supporto per gestire l'elevato volume di ricerche concorrenti, portando a colli di bottiglia nel sistema.
Il team si è quindi rivolto a Faiss, una libreria specializzata per la ricerca di similarità rilasciata da Facebook nel 2017. Faiss è nota per il recupero rapido di vettori simili e offre molteplici opzioni di indicizzazione come IndexFlatL2, IndexFlatIP, HNSW e IVF. Sebbene Faiss eccellesse in velocità, era essenzialmente una libreria algoritmica di base, priva di diverse funzionalità critiche per un ambiente di produzione. Ad esempio, Faiss non offriva alcuna capacità di gestione dei dati, il che significava che il team avrebbe dovuto creare un livello separato per l'archiviazione e il recupero dei dati. Mancava inoltre di funzionalità di alta disponibilità e di strumenti di monitoraggio, rendendola inadatta a un'applicazione mission-critical come la sicurezza degli APK.
Inoltre, Faiss non era progettata per essere un sistema distribuito, il che rappresentava una sfida per la scalabilità orizzontale. Sebbene alcune soluzioni del settore utilizzassero Faiss come libreria sottostante per plugin di Elasticsearch, queste non erano prive di problemi. Erano intensive in termini di memoria e richiedevano un significativo fine-tuning per ottimizzare le prestazioni, il che doveva essere più pratico per il dataset in rapida crescita di TrendMicro.
La svolta di Milvus: un robusto motore di ricerca vettoriale per l'analisi scalabile degli APK
Dopo aver incontrato limitazioni con MySQL e Faiss, la ricerca di TrendMicro di una soluzione robusta e scalabile li ha portati a Milvus. Sviluppato in C++, Milvus è emerso come un motore di ricerca vettoriale completo che affrontava molte carenze delle soluzioni precedenti. Una delle funzionalità distintive era la sua integrazione con librerie di indici vettoriali mainstream come Faiss, NMSLIB e Annoy. Queste integrazioni hanno permesso a TrendMicro di sfruttare la velocità di Faiss beneficiando al contempo delle funzionalità aggiuntive offerte da Milvus.
| Motore | Prestazioni (ms) | Dimensione del dataset (milioni) | Dimensioni |
|---|---|---|---|
| ES | 600 | 1 | 128 |
| ES + Alibaba Cloud | 900 | 20 | 128 |
| Milvus | 27 | 1000+ | 128 |
| SPTAG | Non buone | ||
| ES + nmslib, faiss | 90 | 150 | 128 |
Milvus forniva un'API semplice e intuitiva, un vantaggio significativo per il team di sviluppo. L'API consentiva loro di scegliere diversi tipi di indicizzazione in base ai loro casi d'uso specifici, offrendo una flessibilità assente in altre soluzioni. Questa flessibilità ha avvantaggiato TrendMicro, poiché dovevano gestire vari vettori di caratteristiche degli APK e avevano bisogno di un sistema in grado di adattarsi ai loro requisiti diversificati.
Un altro punto di forza era l'attenzione di Milvus all'alta disponibilità e ai sistemi distribuiti. A differenza di Faiss, che non era stato progettato per essere un sistema distribuito, Milvus è una soluzione matura per scalare orizzontalmente. Scalabilità e prestazioni erano cruciali per TrendMicro, poiché il loro dataset era grande e in rapida crescita. L'architettura distribuita di Milvus significava che potevano aggiungere facilmente più nodi al sistema per gestire carichi maggiori, rendendo così la loro infrastruttura di analisi degli APK a prova di futuro.
Il monitoraggio era un'altra area in cui Milvus eccelleva. Includeva il supporto integrato per Prometheus, una soluzione di monitoraggio open-source leader che funziona con Grafana per la visualizzazione avanzata dei dati. Questa capacità di monitoraggio ha permesso a TrendMicro di monitorare da vicino varie metriche di prestazioni, tra cui la latenza delle query e le velocità di importazione dei dati, consentendo una risoluzione proattiva dei problemi.
Milvus offriva una soluzione robusta, flessibile e scalabile, adatta alle esigenze complesse e in crescita di TrendMicro. Le sue capacità di integrazione, l'API intuitiva e l'attenzione all'alta disponibilità e al monitoraggio lo hanno reso una scelta rivoluzionaria per il progetto di sicurezza APK di TrendMicro.
Impatto nel mondo reale: bassa latenza e alta velocità di importazione dei dati
L'implementazione di Milvus nel servizio ThashSearch di TrendMicro ha prodotto risultati tangibili che hanno migliorato significativamente l'efficienza e l'efficacia della loro analisi degli APK. Una delle metriche più critiche per qualsiasi servizio di ricerca è la latenza; sotto questo aspetto, Milvus è stato un punto di svolta. Il servizio ThashSearch è attivo da diversi mesi e ha costantemente raggiunto una latenza media delle query inferiore a 95 millisecondi. Questa bassa latenza garantisce che TrendMicro possa fornire avvisi tempestivi agli utenti aziendali e individuali su APK potenzialmente dannosi, migliorando la postura di sicurezza complessiva.
Ma la bassa latenza è solo una parte dell'equazione. In un ambiente ad alta intensità di dati come l'analisi degli APK, la velocità con cui gli sviluppatori possono ingerire nuovi dati nel sistema è altrettanto importante. Milvus ha eccelso anche in questo aspetto. Il sistema ha dimostrato un'impressionante velocità di importazione dei dati, capace di ingerire 3 milioni di dati vettoriali a 192 dimensioni in circa 10 secondi. Considerati gli incrementi giornalieri di centinaia di migliaia di nuovi campioni APK, questa rapida capacità di importazione dei dati è cruciale per TrendMicro. Garantisce che il database sia sempre aggiornato, consentendo le ricerche di similarità più accurate e attuali.
La combinazione di bassa latenza e alta velocità di importazione dei dati ha un effetto sinergico sulle operazioni di TrendMicro. Ha migliorato l'esperienza utente fornendo risultati di ricerca più rapidi e ha semplificato i processi backend, rendendo più facile mantenere il sistema aggiornato con i dati più recenti. Questa eccellenza operativa ha consentito a TrendMicro di raggiungere e superare gli obiettivi di progettazione iniziali per il servizio ThashSearch, confermando la decisione di implementare Milvus come motore di ricerca vettoriale preferito.
Il piano futuro
Guardando al futuro, TrendMicro è fortemente interessata alla roadmap di Milvus e a come le sue prossime funzionalità possano ottimizzare ulteriormente le sue operazioni di analisi degli APK. Una di queste funzionalità è l'introduzione degli ID di tipo stringa in Milvus. TrendMicro prevede di utilizzare questa funzionalità per semplificare la sua architettura attuale eliminando la necessità della cache Redis. Gli ID di tipo stringa semplificheranno il processo di recupero dei dati, rendendolo più efficiente e riducendo la complessità.
Inoltre, TrendMicro è entusiasta dei piani di Milvus di evolversi in un sistema completamente distribuito. Attualmente, Milvus supporta un solo nodo di scrittura, ma le versioni future mirano a rimuovere questa limitazione. TrendMicro vede ciò come un’opportunità per scalare orizzontalmente le proprie operazioni, migliorando la sua capacità di gestire dataset ancora più grandi e volumi di query più elevati. Dato il successo riscontrato con Milvus nel loro servizio ThashSearch, TrendMicro sta anche valutando di espandere la presenza di Milvus all’interno della propria organizzazione. Stanno esplorando la possibilità di integrare Milvus in altri progetti e flussi di lavoro che potrebbero beneficiare di una ricerca efficiente della similarità vettoriale, massimizzando così il ritorno sull’investimento nella tecnologia.
- Informazioni su Trend Micro
- Scontrarsi con il muro della scalabilità: i limiti di MySQL e Faiss
- La svolta di Milvus: un robusto motore di ricerca vettoriale per l'analisi scalabile degli APK
- Impatto nel mondo reale: bassa latenza e alta velocità di importazione dei dati
- Il piano futuro
Contenuto
Caso d'Uso
Settore
Sicurezza


