Mejorando la seguridad de APK con Milvus en TrendMicro

<95 milisegundos
latencia de consulta de extremo a extremo
<10 segundos
ingestar 3 millones de vectores
Habilitar
detección de amenazas en tiempo real
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
Acerca de Trend Micro
Trend Micro es un líder mundial en la industria del software de seguridad con una reputación de larga trayectoria por ofrecer soluciones de vanguardia a proveedores de software y usuarios individuales. A medida que evolucionan las amenazas de ciberseguridad, también lo hace el compromiso de TrendMicro con la innovación.
Una de las áreas clave de enfoque de la empresa es la seguridad móvil, que se ha vuelto cada vez más crítica en nuestro mundo conectado digitalmente. Dentro de este contexto, un equipo especializado en TrendMicro es responsable de crear aplicaciones de seguridad móvil y desarrollar infraestructura. Su flujo de trabajo implica rastrear APKs externos (paquetes de aplicaciones Android) de plataformas como Google Play y aplicar los algoritmos propietarios de TrendMicro para detectar APKs que portan virus.
Chocar contra el muro de la escalabilidad: los límites de MySQL y Faiss
En las primeras etapas del proyecto, TrendMicro dependía de MySQL para la búsqueda de similitud de APKs. Como base de datos relacional, MySQL fue inicialmente suficiente para manejar el tamaño de muestra de APKs y permitió al equipo usar consultas SQL para búsquedas de similitud. Sin embargo, a medida que el conjunto de datos creció hasta las decenas de millones, con incrementos diarios que alcanzaban cientos de miles, el rendimiento de MySQL comenzó a degradarse. La latencia de las consultas aumentó, y la base de datos necesitó ayuda para manejar el alto volumen de búsquedas concurrentes, lo que provocó cuellos de botella en el sistema.
Luego, el equipo recurrió a Faiss, una biblioteca especializada para búsqueda de similitud lanzada por Facebook en 2017. Faiss es conocida por recuperar rápidamente vectores similares y ofrece múltiples opciones de indexación como IndexFlatL2, IndexFlatIP, HNSW e IVF. Aunque Faiss destacaba en velocidad, era esencialmente una biblioteca básica de algoritmos, carente de varias funciones críticas para un entorno de producción. Por ejemplo, Faiss no ofrecía ninguna capacidad de gestión de datos, lo que significaba que el equipo tendría que crear una capa separada para el almacenamiento y la recuperación de datos. También carecía de funciones de alta disponibilidad y herramientas de monitoreo, lo que la hacía inadecuada para una aplicación de misión crítica como la seguridad de APKs.
Además, Faiss no fue diseñada para ser un sistema distribuido, lo que planteaba un desafío para la escalabilidad horizontal. Aunque algunas soluciones de la industria usaban Faiss como una biblioteca subyacente para plugins de Elasticsearch, estas no estaban exentas de problemas. Eran intensivas en memoria y requerían un ajuste fino significativo para optimizar el rendimiento, lo cual necesitaba ser más práctico para el conjunto de datos en rápido crecimiento de TrendMicro.
El avance de Milvus: un motor robusto de búsqueda vectorial para el análisis escalable de APKs
Después de encontrar limitaciones con MySQL y Faiss, la búsqueda de TrendMicro de una solución robusta y escalable los llevó a Milvus. Desarrollado en C++, Milvus surgió como un motor integral de búsqueda vectorial que abordaba muchas de las deficiencias de las soluciones anteriores. Una de las características destacadas fue su integración con bibliotecas de índices vectoriales convencionales como Faiss, NMSLIB y Annoy. Estas integraciones permitieron a TrendMicro aprovechar la velocidad de Faiss mientras se beneficiaba de las funciones adicionales que ofrecía Milvus.
| Motor | Rendimiento (ms) | Tamaño del conjunto de datos (millones) | Dimensiones |
|---|---|---|---|
| ES | 600 | 1 | 128 |
| ES + Alibaba Cloud | 900 | 20 | 128 |
| Milvus | 27 | 1000+ | 128 |
| SPTAG | No es bueno | ||
| ES + nmslib, faiss | 90 | 150 | 128 |
Milvus proporcionó una API simple e intuitiva, una ventaja significativa para el equipo de desarrollo. La API les permitió elegir diferentes tipos de indexación según sus casos de uso específicos, ofreciendo una flexibilidad que faltaba en otras soluciones. Esta flexibilidad benefició a TrendMicro, ya que tenían que lidiar con diversos vectores de características de APKs y necesitaban un sistema que pudiera adaptarse a sus diversos requisitos.
Otro punto fuerte fue el enfoque de Milvus en la alta disponibilidad y los sistemas distribuidos. A diferencia de Faiss, que no fue diseñado para ser un sistema distribuido, Milvus es una solución madura para escalar horizontalmente. La escalabilidad y el rendimiento eran cruciales para TrendMicro, ya que su conjunto de datos era grande y crecía rápidamente. La arquitectura distribuida de Milvus significaba que podían añadir fácilmente más nodos al sistema para manejar mayores cargas, preparando así su infraestructura de análisis de APK para el futuro.
La monitorización fue otra área en la que Milvus sobresalió. Venía con soporte integrado para Prometheus, una solución líder de monitorización de código abierto que funciona con Grafana para la visualización avanzada de datos. Esta capacidad de monitorización permitió a TrendMicro supervisar de cerca diversas métricas de rendimiento, incluida la latencia de las consultas y las velocidades de importación de datos, lo que posibilitó la resolución proactiva de problemas.
Milvus ofreció una solución robusta, flexible y escalable, muy adecuada para las necesidades complejas y crecientes de TrendMicro. Sus capacidades de integración, su API intuitiva y su enfoque en la alta disponibilidad y la monitorización lo convirtieron en una opción revolucionaria para el proyecto de seguridad de APK de TrendMicro.
Impacto en el mundo real: baja latencia y alta velocidad de importación de datos
La implementación de Milvus en el servicio ThashSearch de TrendMicro ha producido resultados tangibles que han mejorado significativamente la eficiencia y la eficacia de su análisis de APK. Una de las métricas más críticas para cualquier servicio de búsqueda es la latencia; en este sentido, Milvus ha supuesto un cambio radical. El servicio ThashSearch ha estado en producción durante varios meses y ha logrado de forma constante una latencia media de consulta inferior a 95 milisegundos. Esta baja latencia garantiza que TrendMicro pueda proporcionar alertas oportunas a usuarios corporativos e individuales sobre APK potencialmente dañinos, mejorando la postura de seguridad general.
Pero la baja latencia es solo una parte de la ecuación. En un entorno intensivo en datos como el análisis de APK, la velocidad a la que los desarrolladores pueden ingerir nuevos datos en el sistema es igualmente importante. Milvus también ha sobresalido en este aspecto. El sistema ha demostrado una impresionante velocidad de importación de datos, capaz de ingerir 3 millones de datos vectoriales de 192 dimensiones en aproximadamente 10 segundos. Dados los incrementos diarios de cientos de miles de nuevas muestras de APK, esta rápida capacidad de importación de datos es crucial para TrendMicro. Garantiza que la base de datos esté siempre actualizada, lo que permite las búsquedas de similitud más precisas y actuales.
La combinación de baja latencia y alta velocidad de importación de datos tiene un efecto sinérgico en las operaciones de TrendMicro. Ha mejorado la experiencia del usuario al proporcionar resultados de búsqueda más rápidos y ha optimizado los procesos de backend, facilitando mantener el sistema actualizado con los datos más recientes. Esta excelencia operativa ha permitido a TrendMicro cumplir y superar los objetivos de diseño iniciales para el servicio ThashSearch, confirmando la decisión de implementar Milvus como el motor de búsqueda vectorial preferido.
El plan futuro
A medida que TrendMicro mira hacia el futuro, tiene un gran interés en la hoja de ruta de Milvus y en cómo sus próximas funciones pueden optimizar aún más sus operaciones de análisis de APK. Una de esas funciones es la introducción de ID de tipo cadena en Milvus. TrendMicro planea utilizar esta función para simplificar su arquitectura actual eliminando la necesidad de almacenamiento en caché con Redis. Los ID de tipo cadena agilizarán el proceso de recuperación de datos, haciéndolo más eficiente y reduciendo la complejidad.
Además, TrendMicro está entusiasmado con los planes de Milvus de evolucionar hacia un sistema completamente distribuido. Actualmente, Milvus admite solo un nodo de escritura, pero las versiones futuras apuntan a eliminar esta limitación. TrendMicro ve esto como una oportunidad para escalar sus operaciones horizontalmente, mejorando su capacidad para manejar conjuntos de datos aún más grandes y mayores volúmenes de consultas. Dado el éxito que han experimentado con Milvus en su servicio ThashSearch, TrendMicro también está considerando ampliar la presencia de Milvus dentro de su organización. Están explorando la posibilidad de integrar Milvus en otros proyectos y flujos de trabajo que podrían beneficiarse de una búsqueda eficiente de similitud vectorial, maximizando así el retorno de su inversión en la tecnología.
- Acerca de Trend Micro
- Chocar contra el muro de la escalabilidad: los límites de MySQL y Faiss
- El avance de Milvus: un motor robusto de búsqueda vectorial para el análisis escalable de APKs
- Impacto en el mundo real: baja latencia y alta velocidad de importación de datos
- El plan futuro
Contenido
Caso de uso
Industria
Seguridad


