🚀 Testen Sie Zilliz Cloud, die vollständig verwaltete Milvus, kostenlos – erleben Sie 10x schnellere Leistung! Jetzt testen>>

milvus-logo
LFAI
  • Home
  • Blog
  • Mit Milvus Android-Viren in Echtzeit für Trend Micro aufspüren

Mit Milvus Android-Viren in Echtzeit für Trend Micro aufspüren

  • Scenarios
April 23, 2021
milvus

Die Cybersicherheit ist nach wie vor eine ständige Bedrohung für Privatpersonen und Unternehmen. Im Jahr 2020 werden 86 % der Unternehmen Bedenken hinsichtlich des Datenschutzes haben und nur 23 % der Verbraucher glauben, dass ihre persönlichen Daten sehr sicher sind. Da Malware immer allgegenwärtiger und raffinierter wird, ist ein proaktiver Ansatz zur Erkennung von Bedrohungen unerlässlich geworden. Trend Micro ist ein weltweit führender Anbieter von Hybrid-Cloud-Sicherheit, Netzwerkschutz, Sicherheit für kleine Unternehmen und Endpunktsicherheit. Um Android-Geräte vor Viren zu schützen, hat das Unternehmen Trend Micro Mobile Security entwickelt - eine mobile App, die APKs (Android Application Package) aus dem Google Play Store mit einer Datenbank bekannter Malware vergleicht. Das Virenerkennungssystem funktioniert wie folgt:

  • Externe APKs (Android-Anwendungspakete) aus dem Google Play Store werden gecrawlt.
  • Bekannte Malware wird in Vektoren umgewandelt und in Milvus gespeichert.
  • Neue APKs werden ebenfalls in Vektoren umgewandelt und dann mit der Malware-Datenbank mittels Ähnlichkeitssuche verglichen.
  • Wenn ein APK-Vektor einem der Malware-Vektoren ähnelt, liefert die App dem Nutzer detaillierte Informationen über den Virus und seine Bedrohungsstufe.

Damit das System funktioniert, muss es eine hocheffiziente Ähnlichkeitssuche auf riesigen Vektordatensätzen in Echtzeit durchführen. Ursprünglich verwendete Trend Micro MySQL. Mit dem Wachstum des Unternehmens wuchs jedoch auch die Anzahl der APKs mit schädlichem Code, die in der Datenbank gespeichert waren. Das Algorithmusteam des Unternehmens begann mit der Suche nach alternativen Lösungen für die vektorielle Ähnlichkeitssuche, nachdem MySQL schnell überholt war.


Vergleich von Lösungen für die Vektorähnlichkeitssuche

Es gibt eine Reihe von Lösungen für die vektorielle Ähnlichkeitssuche, von denen viele Open Source sind. Obwohl die Umstände von Projekt zu Projekt unterschiedlich sind, profitieren die meisten Benutzer von einer Vektordatenbank, die für die Verarbeitung und Analyse unstrukturierter Daten entwickelt wurde, und nicht von einer einfachen Bibliothek, die eine umfangreiche Konfiguration erfordert. Im Folgenden vergleichen wir einige beliebte Lösungen für die Suche nach Vektorähnlichkeit und erläutern, warum Trend Micro sich für Milvus entschieden hat.

Faiss

Faiss ist eine von Facebook AI Research entwickelte Bibliothek, die eine effiziente Ähnlichkeitssuche und Clustering von dichten Vektoren ermöglicht. Die darin enthaltenen Algorithmen durchsuchen Vektoren beliebiger Größe in Mengen. Faiss ist in C++ mit Wrappern für Python/numpy geschrieben und unterstützt eine Reihe von Indizes wie IndexFlatL2, IndexFlatIP, HNSW und IVF.

Obwohl Faiss ein unglaublich nützliches Werkzeug ist, hat es Grenzen. Es funktioniert nur als grundlegende Algorithmenbibliothek, nicht als Datenbank für die Verwaltung von Vektordatensätzen. Außerdem bietet es keine verteilte Version, keine Überwachungsdienste, keine SDKs und keine Hochverfügbarkeit, was die wichtigsten Merkmale der meisten Cloud-basierten Dienste sind.

Plug-ins auf der Grundlage von Faiss und anderen ANN-Suchbibliotheken

Es gibt mehrere Plug-ins, die auf Faiss, NMSLIB und anderen ANN-Suchbibliotheken aufbauen und dazu dienen, die grundlegende Funktionalität des zugrunde liegenden Werkzeugs zu erweitern, auf dem sie basieren. Elasticsearch (ES) ist eine Suchmaschine, die auf der Lucene-Bibliothek basiert und eine Reihe solcher Plugins enthält. Nachfolgend finden Sie ein Architekturdiagramm eines ES-Plug-ins:

1.png 1.png

Die eingebaute Unterstützung für verteilte Systeme ist ein großer Vorteil einer ES-Lösung. Dies spart Entwicklern Zeit und Unternehmen Geld, da kein Code geschrieben werden muss. ES-Plug-ins sind technisch fortgeschritten und weit verbreitet. Elasticsearch bietet eine QueryDSL (domänenspezifische Sprache), die Abfragen auf der Grundlage von JSON definiert und einfach zu verstehen ist. Ein vollständiger Satz von ES-Diensten ermöglicht die gleichzeitige Durchführung einer Vektor-/Textsuche und die Filterung skalarer Daten.

Amazon, Alibaba und Netease sind einige große Technologieunternehmen, die sich derzeit auf Elasticsearch-Plug-ins für die Vektorähnlichkeitssuche verlassen. Die Hauptnachteile dieser Lösung sind der hohe Speicherverbrauch und die fehlende Unterstützung für die Leistungsoptimierung. Im Gegensatz dazu hat JD.com seine eigene verteilte Lösung auf der Grundlage von Faiss namens Vearch entwickelt. Allerdings befindet sich Vearch noch in der Inkubationsphase und die Open-Source-Gemeinschaft ist relativ inaktiv.

Milvus

Milvus ist eine Open-Source-Vektordatenbank, die von Zilliz entwickelt wurde. Sie ist äußerst flexibel, zuverlässig und rasend schnell. Durch die Kapselung mehrerer weit verbreiteter Indexbibliotheken wie Faiss, NMSLIB und Annoy bietet Milvus einen umfassenden Satz intuitiver APIs, mit denen Entwickler den idealen Indextyp für ihr Szenario auswählen können. Außerdem bietet Milvus verteilte Lösungen und Überwachungsdienste. Milvus hat eine sehr aktive Open-Source-Community und über 5.5K Sterne auf Github.

Milvus übertrifft die Konkurrenz

Wir haben eine Reihe von Testergebnissen der verschiedenen oben genannten Lösungen für die Vektorähnlichkeitssuche zusammengestellt. Wie in der folgenden Vergleichstabelle zu sehen ist, war Milvus deutlich schneller als die Konkurrenz, obwohl es mit einem Datensatz von 1 Milliarde 128-dimensionalen Vektoren getestet wurde.

MotorLeistung (ms)Datensatzgröße (Millionen)
ES6001
ES + Alibaba Cloud90020
Milvus271000+
SPTAGNicht gut
ES + nmslib, faiss90150
Ein Vergleich der Lösungen für die vektorielle Ähnlichkeitssuche.

Nach Abwägung der Vor- und Nachteile der einzelnen Lösungen entschied sich Trend Micro für Milvus für sein Vektorabrufmodell. Aufgrund der außergewöhnlichen Leistung bei riesigen, milliardenschweren Datensätzen liegt es auf der Hand, warum das Unternehmen Milvus für einen mobilen Sicherheitsdienst gewählt hat, der eine Vektorähnlichkeitssuche in Echtzeit erfordert.


Entwicklung eines Systems zur Virenerkennung in Echtzeit

Trend Micro hat mehr als 10 Millionen bösartige APKs in seiner MySQL-Datenbank gespeichert, und jeden Tag kommen 100 000 neue APKs hinzu. Das System extrahiert und berechnet die Thash-Werte verschiedener Komponenten einer APK-Datei und verwendet dann den Sha256-Algorithmus, um sie in Binärdateien umzuwandeln und 256-Bit-Sha256-Werte zu erzeugen, die die APK von anderen unterscheiden. Da Sha256-Werte bei APK-Dateien variieren, kann eine APK einen kombinierten Thash-Wert und einen eindeutigen Sha256-Wert haben.

Sha256-Werte werden nur zur Unterscheidung von APKs verwendet, und Thash-Werte werden für die Suche nach Vektorähnlichkeit verwendet. Ähnliche APKs können die gleichen Thash-Werte, aber unterschiedliche Sha256-Werte haben.

Um APKs mit schadhaftem Code zu erkennen, hat Trend Micro ein eigenes System entwickelt, um ähnliche Thash-Werte und entsprechende Sha256-Werte zu ermitteln. Trend Micro entschied sich für Milvus, um eine sofortige Vektorähnlichkeitssuche in umfangreichen Vektordatensätzen durchzuführen, die aus Thash-Werten konvertiert wurden. Nachdem die Ähnlichkeitssuche durchgeführt wurde, werden die entsprechenden Sha256-Werte in MySQL abgefragt. Eine Redis-Zwischenspeicherschicht ist ebenfalls in die Architektur integriert, um Thash-Werte auf Sha256-Werte abzubilden, was die Abfragezeit erheblich verkürzt.

Nachstehend finden Sie das Architekturdiagramm des mobilen Sicherheitssystems von Trend Micro.

image-20210118-022039.png image-20210118-022039.png


Die Wahl einer geeigneten Abstandsmetrik trägt zur Verbesserung der Vektorklassifizierungs- und Clustering-Leistung bei. Die folgende Tabelle zeigt die Abstandsmetriken und die entsprechenden Indizes, die mit binären Vektoren arbeiten.

AbstandsmetrikIndex-Typen
- Jaccard
- Tanimoto
- Hamming
- FLACH
- IVF_FLACH
- Überstruktur
- Unterstruktur
FLAT
Abstandsmetriken und Indizes für binäre Vektoren.


Trend Micro konvertiert Thash-Werte in binäre Vektoren und speichert sie in Milvus. Für dieses Szenario verwendet Trend Micro die Hamming-Distanz zum Vergleich von Vektoren.

Milvus wird bald String-Vektor-IDs unterstützen, und Integer-IDs müssen nicht mehr auf den entsprechenden Namen im String-Format abgebildet werden. Dadurch wird die Redis-Zwischenspeicherschicht überflüssig und die Systemarchitektur weniger sperrig.

Trend Micro setzt auf eine Cloud-basierte Lösung und stellt viele Aufgaben auf Kubernetes bereit. Um Hochverfügbarkeit zu erreichen, setzt Trend Micro Mishards ein, eine in Python entwickelte Milvus-Cluster-Sharding-Middleware.

![image-20210118-022104.png](https://assets.zilliz.com/image_20210118_022104_3001950ee8.png "Mishards architecture in Milvus.)


Trend Micro trennt Speicherung und Abstandsberechnung, indem es alle Vektoren im von AWS bereitgestellten EFS (Elastic File System) speichert. Diese Praxis ist ein beliebter Trend in der Branche. Kubernetes wird verwendet, um mehrere Leseknoten zu starten, und entwickelt LoadBalancer-Dienste auf diesen Leseknoten, um eine hohe Verfügbarkeit zu gewährleisten.

Zur Wahrung der Datenkonsistenz unterstützt Mishards nur einen Schreibknoten. Eine verteilte Version von Milvus mit Unterstützung für mehrere Schreibknoten wird jedoch in den kommenden Monaten verfügbar sein.


Überwachungs- und Warnfunktionen

Milvus ist kompatibel mit Überwachungssystemen, die auf Prometheus aufbauen, und verwendet Grafana, eine Open-Source-Plattform für Zeitreihenanalysen, um verschiedene Leistungsmetriken zu visualisieren.

Prometheus überwacht und speichert die folgenden Metriken:

  • Milvus-Leistungsmetriken, einschließlich Einfügegeschwindigkeit, Abfragegeschwindigkeit und Milvus-Betriebszeit.
  • Systemleistungsmetriken, einschließlich CPU/GPU-Nutzung, Netzwerkverkehr und Festplattenzugriffsgeschwindigkeit.
  • Metriken zum Hardwarespeicher, einschließlich Datengröße und Gesamtanzahl der Dateien.

Das Überwachungs- und Warnsystem funktioniert wie folgt:

  • Ein Milvus-Client sendet angepasste Metrikdaten an Pushgateway.
  • Das Pushgateway sorgt dafür, dass kurzlebige, flüchtige Metrikdaten sicher an Prometheus gesendet werden.
  • Prometheus ruft weiterhin Daten von Pushgateway ab.
  • Der Alertmanager legt die Alarmschwelle für verschiedene Metriken fest und löst Alarme per E-Mail oder Nachricht aus.


Systemleistung

Seit dem Start des auf Milvus basierenden ThashSearch-Dienstes sind ein paar Monate vergangen. Die Grafik unten zeigt, dass die End-to-End-Abfrage-Latenz weniger als 95 Millisekunden beträgt.

image-20210118-022116.png image-20210118-022116.png


Auch das Einfügen ist schnell. Es dauert etwa 10 Sekunden, um 3 Millionen 192-dimensionale Vektoren einzufügen. Mit Hilfe von Milvus konnte die Systemleistung die von Trend Micro festgelegten Leistungskriterien erfüllen.


Seien Sie kein Unbekannter

  • Finden Sie Milvus auf GitHub oder tragen Sie dazu bei.
  • Interagieren Sie mit der Community über Slack.
  • Verbinden Sie sich mit uns auf Twitter.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Weiterlesen