Renforcer la sécurité des APK avec Milvus chez TrendMicro

<95 millisecondes
latence des requêtes de bout en bout
<10 secondes
ingérer 3 millions de vecteurs
Activer
détection des menaces en temps réel
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
À propos de Trend Micro
Trend Micro est un leader mondial du secteur des logiciels de sécurité, jouissant d’une réputation de longue date pour la fourniture de solutions de pointe aux éditeurs de logiciels et aux utilisateurs individuels. À mesure que les menaces de cybersécurité évoluent, l’engagement de TrendMicro envers l’innovation évolue également.
L’un des principaux domaines d’intérêt de l’entreprise est la sécurité mobile, devenue de plus en plus critique dans notre monde numériquement connecté. Dans ce contexte, une équipe spécialisée chez TrendMicro est chargée de créer des applications de sécurité mobile et de développer l’infrastructure. Son flux de travail consiste à explorer des APK externes (packages d’applications Android) provenant de plateformes comme Google Play et à appliquer les algorithmes propriétaires de TrendMicro pour détecter les APK contenant des virus.
Se heurter au mur de la scalabilité : les limites de MySQL et Faiss
Aux premiers stades du projet, TrendMicro s’appuyait sur MySQL pour la recherche de similarité d’APK. En tant que base de données relationnelle, MySQL était initialement suffisante pour gérer la taille de l’échantillon d’APK et permettait à l’équipe d’utiliser des requêtes SQL pour les recherches de similarité. Cependant, à mesure que le jeu de données atteignait des dizaines de millions, avec des augmentations quotidiennes se chiffrant en centaines de milliers, les performances de MySQL ont commencé à se dégrader. La latence des requêtes a augmenté, et la base de données avait besoin d’aide pour gérer le volume élevé de recherches simultanées, entraînant des goulots d’étranglement dans le système.
L’équipe s’est alors tournée vers Faiss, une bibliothèque spécialisée pour la recherche de similarité publiée par Facebook en 2017. Faiss est connue pour récupérer rapidement des vecteurs similaires et offre plusieurs options d’indexation comme IndexFlatL2, IndexFlatIP, HNSW et IVF. Bien que Faiss excellât en matière de vitesse, il s’agissait essentiellement d’une bibliothèque d’algorithmes de base, dépourvue de plusieurs fonctionnalités critiques pour un environnement de production. Par exemple, Faiss n’offrait aucune capacité de gestion des données, ce qui signifiait que l’équipe devrait construire une couche séparée pour le stockage et la récupération des données. Elle manquait également de fonctionnalités de haute disponibilité et d’outils de surveillance, ce qui la rendait inadaptée à une application critique comme la sécurité des APK.
De plus, Faiss n’avait pas été conçu pour être un système distribué, ce qui posait un défi pour la scalabilité horizontale. Bien que certaines solutions du secteur aient utilisé Faiss comme bibliothèque sous-jacente pour des plugins Elasticsearch, celles-ci n’étaient pas sans problèmes. Elles étaient gourmandes en mémoire et nécessitaient un réglage fin important pour optimiser les performances, ce qui devait être plus pratique pour le jeu de données en croissance rapide de TrendMicro.
La percée Milvus : un moteur de recherche vectorielle robuste pour une analyse d’APK évolutive
Après avoir rencontré des limites avec MySQL et Faiss, la recherche par TrendMicro d’une solution robuste et évolutive les a conduits à Milvus. Développé en C++, Milvus est apparu comme un moteur de recherche vectorielle complet qui remédiait à de nombreuses lacunes des solutions précédentes. L’une de ses fonctionnalités remarquables était son intégration avec des bibliothèques d’index vectoriels grand public comme Faiss, NMSLIB et Annoy. Ces intégrations ont permis à TrendMicro de tirer parti de la vitesse de Faiss tout en bénéficiant des fonctionnalités supplémentaires offertes par Milvus.
| Moteur | Performance (ms) | Taille du jeu de données (million) | Dimensions |
|---|---|---|---|
| ES | 600 | 1 | 128 |
| ES + Alibaba Cloud | 900 | 20 | 128 |
| Milvus | 27 | 1000+ | 128 |
| SPTAG | Pas bon | ||
| ES + nmslib, faiss | 90 | 150 | 128 |
Milvus fournissait une API simple et intuitive, un avantage significatif pour l’équipe de développement. L’API leur permettait de choisir différents types d’indexation en fonction de leurs cas d’utilisation spécifiques, offrant une flexibilité qui manquait dans d’autres solutions. Cette flexibilité a profité à TrendMicro, car l’entreprise devait traiter divers vecteurs de caractéristiques d’APK et avait besoin d’un système capable de s’adapter à ses exigences variées.
Un autre point fort était l’accent mis par Milvus sur la haute disponibilité et les systèmes distribués. Contrairement à Faiss, qui n’a pas été conçu comme un système distribué, Milvus est une solution mature pour évoluer horizontalement. L’évolutivité et les performances étaient cruciales pour TrendMicro, car leur jeu de données était volumineux et croissait rapidement. L’architecture distribuée de Milvus signifiait qu’ils pouvaient facilement ajouter davantage de nœuds au système pour gérer des charges accrues, pérennisant ainsi leur infrastructure d’analyse d’APK.
La surveillance était un autre domaine dans lequel Milvus excellait. Il était fourni avec une prise en charge intégrée de Prometheus, une solution de surveillance open source de premier plan qui fonctionne avec Grafana pour une visualisation avancée des données. Cette capacité de surveillance a permis à TrendMicro de suivre de près diverses métriques de performance, notamment la latence des requêtes et les vitesses d’importation des données, permettant une résolution proactive des problèmes.
Milvus offrait une solution robuste, flexible et évolutive, bien adaptée aux besoins complexes et croissants de TrendMicro. Ses capacités d’intégration, son API intuitive et son accent sur la haute disponibilité et la surveillance en ont fait un choix décisif pour le projet de sécurité APK de TrendMicro.
Impact réel : faible latence et grande vitesse d’importation des données
La mise en œuvre de Milvus dans le service ThashSearch de TrendMicro a produit des résultats tangibles qui ont considérablement amélioré l’efficacité et l’efficience de leur analyse d’APK. L’une des métriques les plus critiques pour tout service de recherche est la latence ; à cet égard, Milvus a changé la donne. Le service ThashSearch est en production depuis plusieurs mois et a constamment atteint une latence moyenne des requêtes inférieure à 95 millisecondes. Cette faible latence garantit que TrendMicro peut fournir en temps utile des alertes aux utilisateurs professionnels et individuels concernant des APK potentiellement nuisibles, améliorant ainsi la posture globale de sécurité.
Mais la faible latence n’est qu’une partie de l’équation. Dans un environnement intensif en données comme l’analyse d’APK, la vitesse à laquelle les développeurs peuvent ingérer de nouvelles données dans le système est tout aussi importante. Milvus a également excellé dans cet aspect. Le système a démontré une vitesse d’importation des données impressionnante, capable d’ingérer 3 millions de données vectorielles à 192 dimensions en environ 10 secondes. Compte tenu des incréments quotidiens de centaines de milliers de nouveaux échantillons d’APK, cette capacité d’importation rapide des données est cruciale pour TrendMicro. Elle garantit que la base de données est toujours à jour, permettant les recherches de similarité les plus précises et les plus actuelles.
La combinaison d’une faible latence et d’une grande vitesse d’importation des données a un effet synergique sur les opérations de TrendMicro. Elle a amélioré l’expérience utilisateur en fournissant des résultats de recherche plus rapides et a rationalisé les processus backend, facilitant la mise à jour du système avec les dernières données. Cette excellence opérationnelle a permis à TrendMicro d’atteindre et de dépasser les objectifs de conception initiaux du service ThashSearch, confirmant la décision de mettre en œuvre Milvus comme moteur de recherche vectorielle de choix.
Le plan futur
Alors que TrendMicro se tourne vers l’avenir, l’entreprise s’intéresse vivement à la feuille de route de Milvus et à la manière dont ses fonctionnalités à venir peuvent optimiser davantage ses opérations d’analyse d’APK. L’une de ces fonctionnalités est l’introduction d’ID de type chaîne dans Milvus. TrendMicro prévoit d’utiliser cette fonctionnalité pour simplifier son architecture actuelle en éliminant le besoin de mise en cache Redis. Les ID de type chaîne rationaliseront le processus de récupération des données, le rendant plus efficace et réduisant la complexité.
De plus, TrendMicro est enthousiaste à l’idée des projets de Milvus visant à évoluer vers un système entièrement distribué. Actuellement, Milvus ne prend en charge qu’un seul nœud d’écriture, mais les futures versions visent à supprimer cette limitation. TrendMicro y voit une occasion de faire évoluer ses opérations horizontalement, renforçant ainsi sa capacité à gérer des ensembles de données encore plus volumineux et des volumes de requêtes plus élevés. Compte tenu du succès qu’ils ont connu avec Milvus dans leur service ThashSearch, TrendMicro envisage également d’étendre l’empreinte de Milvus au sein de son organisation. Ils explorent la possibilité d’intégrer Milvus à d’autres projets et flux de travail qui pourraient bénéficier d’une recherche efficace de similarité vectorielle, maximisant ainsi leur retour sur investissement dans cette technologie.
- À propos de Trend Micro
- Se heurter au mur de la scalabilité : les limites de MySQL et Faiss
- La percée Milvus : un moteur de recherche vectorielle robuste pour une analyse d’APK évolutive
- Impact réel : faible latence et grande vitesse d’importation des données
- Le plan futur
Contenu
Cas d'usage
Secteur d'activité
Sécurité


