Verbesserung der APK-Sicherheit mit Milvus bei TrendMicro

<95 Millisekunden
End-to-End-Abfragelatenz
<10 Sekunden
3 Millionen Vektoren aufzunehmen
Aktivieren
Echtzeit-Bedrohungserkennung
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
Über Trend Micro
Trend Micro ist ein weltweit führendes Unternehmen in der Sicherheitssoftwarebranche mit einem langjährigen Ruf für die Bereitstellung modernster Lösungen für Softwareanbieter und einzelne Nutzer. Während sich Cybersicherheitsbedrohungen weiterentwickeln, entwickelt sich auch TrendMicros Engagement für Innovation weiter.
Einer der wichtigsten Schwerpunktbereiche des Unternehmens ist mobile Sicherheit, die in unserer digital vernetzten Welt zunehmend kritisch geworden ist. In diesem Kontext ist ein spezialisiertes Team bei TrendMicro für die Entwicklung mobiler Sicherheits-Apps und den Aufbau von Infrastruktur verantwortlich. Ihr Workflow umfasst das Crawlen externer APKs (Android-Anwendungspakete) von Plattformen wie Google Play und die Anwendung der proprietären Algorithmen von TrendMicro, um APKs zu erkennen, die Viren enthalten.
An die Skalierbarkeitsgrenze stoßen: Die Grenzen von MySQL und Faiss
In den frühen Phasen des Projekts verließ sich TrendMicro für die APK-Ähnlichkeitssuche auf MySQL. Als relationale Datenbank war MySQL zunächst ausreichend, um die Größe der APK-Stichprobe zu bewältigen, und ermöglichte es dem Team, SQL-Abfragen für Ähnlichkeitssuchen zu verwenden. Als der Datensatz jedoch auf Dutzende Millionen anwuchs, mit täglichen Zuwächsen von Hunderttausenden, begann die Leistung von MySQL nachzulassen. Die Abfragelatenz stieg, und die Datenbank benötigte Unterstützung, um das hohe Volumen gleichzeitiger Suchvorgänge zu bewältigen, was zu Engpässen im System führte.
Das Team wandte sich dann Faiss zu, einer spezialisierten Bibliothek für Ähnlichkeitssuche, die 2017 von Facebook veröffentlicht wurde. Faiss ist dafür bekannt, ähnliche Vektoren schnell abzurufen, und bietet mehrere Indizierungsoptionen wie IndexFlatL2, IndexFlatIP, HNSW und IVF. Während Faiss in puncto Geschwindigkeit überzeugte, war es im Wesentlichen eine grundlegende Algorithmenbibliothek, der mehrere kritische Funktionen für eine Produktionsumgebung fehlten. Beispielsweise bot Faiss keine Datenverwaltungsfunktionen, was bedeutete, dass das Team eine separate Schicht für Datenspeicherung und -abruf aufbauen müsste. Es fehlten außerdem Hochverfügbarkeitsfunktionen und Überwachungstools, wodurch es für eine geschäftskritische Anwendung wie APK-Sicherheit ungeeignet war.
Darüber hinaus war Faiss nicht als verteiltes System konzipiert, was eine Herausforderung für horizontale Skalierbarkeit darstellte. Während einige Branchenlösungen Faiss als zugrunde liegende Bibliothek für Elasticsearch-Plugins verwendeten, waren diese nicht ohne Probleme. Sie waren speicherintensiv und erforderten erhebliches Feintuning zur Leistungsoptimierung, was für den schnell wachsenden Datensatz von TrendMicro praktischer sein musste.
Der Milvus-Durchbruch: Eine robuste Vektorsuchmaschine für skalierbare APK-Analyse
Nachdem TrendMicro auf Einschränkungen bei MySQL und Faiss gestoßen war, führte die Suche nach einer robusten und skalierbaren Lösung zu Milvus. In C++ entwickelt, erwies sich Milvus als umfassende Vektorsuchmaschine, die viele Schwächen früherer Lösungen adressierte. Eines der herausragenden Merkmale war die Integration mit gängigen Vektorindex-Bibliotheken wie Faiss, NMSLIB und Annoy. Diese Integrationen ermöglichten es TrendMicro, die Geschwindigkeit von Faiss zu nutzen und gleichzeitig von den zusätzlichen Funktionen zu profitieren, die Milvus bot.
| Engine | Leistung (ms) | Datensatzgröße (Millionen) | Dimensionen |
|---|---|---|---|
| ES | 600 | 1 | 128 |
| ES + Alibaba Cloud | 900 | 20 | 128 |
| Milvus | 27 | 1000+ | 128 |
| SPTAG | Nicht gut | ||
| ES + nmslib, faiss | 90 | 150 | 128 |
Milvus stellte eine einfache und intuitive API bereit, ein erheblicher Vorteil für das Entwicklungsteam. Die API ermöglichte es ihnen, unterschiedliche Indizierungstypen basierend auf ihren spezifischen Anwendungsfällen auszuwählen, und bot damit eine Flexibilität, die in anderen Lösungen fehlte. Diese Flexibilität kam TrendMicro zugute, da sie mit verschiedenen APK-Feature-Vektoren umgehen mussten und ein System benötigten, das sich an ihre vielfältigen Anforderungen anpassen konnte.
Ein weiterer starker Punkt war Milvus' Fokus auf hohe Verfügbarkeit und verteilte Systeme. Im Gegensatz zu Faiss, das nicht als verteiltes System konzipiert wurde, ist Milvus eine ausgereifte Lösung für horizontale Skalierung. Skalierbarkeit und Leistung waren für TrendMicro entscheidend, da ihr Datensatz groß war und schnell wuchs. Die verteilte Architektur von Milvus bedeutete, dass sie problemlos weitere Knoten zum System hinzufügen konnten, um erhöhte Lasten zu bewältigen und damit ihre APK-Analyse-Infrastruktur zukunftssicher zu machen.
Monitoring war ein weiterer Bereich, in dem Milvus überzeugte. Es verfügte über integrierte Unterstützung für Prometheus, eine führende Open-Source-Monitoring-Lösung, die mit Grafana für fortschrittliche Datenvisualisierung zusammenarbeitet. Diese Monitoring-Fähigkeit ermöglichte es TrendMicro, verschiedene Leistungsmetriken, einschließlich Abfragelatenz und Datenimportgeschwindigkeiten, genau zu überwachen und so Probleme proaktiv zu beheben.
Milvus bot eine robuste, flexible und skalierbare Lösung, die gut auf die komplexen und wachsenden Anforderungen von TrendMicro zugeschnitten war. Seine Integrationsmöglichkeiten, die intuitive API und der Fokus auf hohe Verfügbarkeit und Monitoring machten es zu einer wegweisenden Wahl für TrendMicros APK-Sicherheitsprojekt.
Auswirkungen in der Praxis: Niedrige Latenz und hohe Datenimportgeschwindigkeit
Die Implementierung von Milvus im ThashSearch-Service von TrendMicro hat greifbare Ergebnisse geliefert, die die Effizienz und Effektivität ihrer APK-Analyse erheblich verbessert haben. Eine der wichtigsten Metriken für jeden Suchdienst ist die Latenz; in dieser Hinsicht war Milvus ein echter Wendepunkt. Der ThashSearch-Service ist seit mehreren Monaten live und hat durchgehend eine durchschnittliche Abfragelatenz von unter 95 Millisekunden erreicht. Diese niedrige Latenz stellt sicher, dass TrendMicro Unternehmens- und Einzelnutzern zeitnahe Warnungen vor potenziell schädlichen APKs bereitstellen kann, wodurch die allgemeine Sicherheitslage verbessert wird.
Doch niedrige Latenz ist nur ein Teil der Gleichung. In einer datenintensiven Umgebung wie der APK-Analyse ist die Geschwindigkeit, mit der Entwickler neue Daten in das System einspielen können, ebenso wichtig. Auch in diesem Aspekt hat Milvus überzeugt. Das System hat eine beeindruckende Datenimportgeschwindigkeit demonstriert und ist in der Lage, 3 Millionen 192-dimensionale Vektordaten in etwa 10 Sekunden aufzunehmen. Angesichts der täglichen Zuwächse von Hunderttausenden neuer APK-Beispiele ist diese schnelle Datenimportfähigkeit für TrendMicro entscheidend. Sie stellt sicher, dass die Datenbank stets auf dem neuesten Stand ist und die genauesten und aktuellsten Ähnlichkeitssuchen ermöglicht.
Die Kombination aus niedriger Latenz und hoher Datenimportgeschwindigkeit hat einen synergetischen Effekt auf die Abläufe von TrendMicro. Sie hat die Benutzererfahrung durch schnellere Suchergebnisse verbessert und die Backend-Prozesse optimiert, wodurch es einfacher wird, das System mit den neuesten Daten aktuell zu halten. Diese operative Exzellenz hat es TrendMicro ermöglicht, die ursprünglichen Designziele für den ThashSearch-Service zu erreichen und zu übertreffen, und bestätigt die Entscheidung, Milvus als bevorzugte Vektorsuchmaschine zu implementieren.
Der Zukunftsplan
Mit Blick auf die Zukunft ist TrendMicro stark an der Roadmap von Milvus interessiert und daran, wie dessen kommende Funktionen die APK-Analyseabläufe weiter optimieren können. Eine solche Funktion ist die Einführung von IDs vom Typ String in Milvus. TrendMicro plant, diese Funktion zu nutzen, um seine aktuelle Architektur zu vereinfachen, indem die Notwendigkeit von Redis-Caching entfällt. IDs vom Typ String werden den Datenabrufprozess optimieren, ihn effizienter machen und die Komplexität reduzieren.
Darüber hinaus ist TrendMicro von Milvus’ Plänen begeistert, sich zu einem vollständig verteilten System weiterzuentwickeln. Derzeit unterstützt Milvus nur einen Schreibknoten, aber zukünftige Versionen zielen darauf ab, diese Einschränkung zu beseitigen. TrendMicro sieht darin eine Gelegenheit, seine Abläufe horizontal zu skalieren und seine Fähigkeit zu verbessern, noch größere Datensätze und höhere Abfragevolumina zu bewältigen. Angesichts des Erfolgs, den sie mit Milvus in ihrem ThashSearch-Dienst erzielt haben, erwägt TrendMicro außerdem, die Präsenz von Milvus innerhalb ihrer Organisation auszuweiten. Sie prüfen die Möglichkeit, Milvus in andere Projekte und Workflows zu integrieren, die von einer effizienten Vektorähnlichkeitssuche profitieren könnten, und dadurch ihre Kapitalrendite in die Technologie zu maximieren.


