Google hat Magika 1.0 veröffentlicht, ein Tool zur Bestimmung des Dateiinhalts.

Die Google-Kompanie hat die Veröffentlichung des Tools Magika 1.0 vorgestellt, das zur Bestimmung des Inhalts basierend auf der Analyse der im Dokument vorhandenen Daten entwickelt wurde. Magika kann präzise die verwendeten Programmiersprachen, Komprimierungsmethoden, Installationspakete, ausführbaren Code, Markup-Typen sowie Formate für Audio, Video, Dokumente und Bilder identifizieren. Das mit dem Projekt verbundene Tool und das bereitgestellte Machine-Learning-Modell sind unter der Apache 2.0 Lizenz verfügbar. Wrapper wurden für die Programmiersprachen Rust, Python, JavaScript/TypeScript und Go vorbereitet.

Magika unterscheidet sich von ähnlichen Projekten, die den MIME-Typ anhand des Inhalts bestimmen, durch den Einsatz von Machine-Learning-Methoden. hoher Leistung kombiniert. und Genauigkeit der Bestimmung. Das Modell wurde unter Verwendung des Keras-Frameworks auf 100 Millionen Beispielen trainiert (Datensatzgröße über 3 TB) und unterstützt die Erkennung von 200 Datentypen mit einer Genauigkeit von mindestens 99 %. Das Modell ist im ONNX-Format kompiliert und hat eine Größe von nur wenigen Megabyte. Der Einsatz von Methoden des tiefen maschinellen Lernens ermöglichte eine 50%ige Steigerung der Bestimmungsgenauigkeit im Vergleich zu dem zuvor bei Google verwendeten System, das auf manuell festgelegten Regeln basierte.

Bei Google wird das System zur Klassifizierung von Dateien in den Diensten Gmail, Drive, Code Insight und Safe Browsing eingesetzt, um Sicherheitsüberprüfungen und die Einhaltung von Dienstvorschriften durchzuführen. Die Integration von Magika in die Plattformen VirusTotal und abuse.ch dient als Schnittstelle zur ersten Filterung von Dateien vor der Durchführung spezifischer Analysen. Die in der Google-Infrastruktur implementierte Konfiguration von Magika ermöglicht das Scannen von mehreren Millionen Dateien pro Sekunde und mehreren Hundert Milliarden Dateien pro Woche. Nach dem Laden des Modells beträgt die Ausgabedauer 5 ms beim Testen auf einem einzelnen CPU-Kern. Die Bestimmungszeit hängt kaum von der Dateigröße ab.

Um Magika in Ihren Projekten zu nutzen, stehen eine Kommandozeilen-Utility, Pakete für Python, Rust und Go sowie eine JavaScript-Bibliothek zur Verfügung, die sowohl im Browser als auch in Node.js-Projekten verwendet werden kann. Die Kommandozeilenoberfläche und die APIs unterstützen Batch-Operationen, d.h. Sie können mehrere Dateien in einem einzigen Anfrage überprüfen. Es gibt einen rekursiven Scan-Modus für den gesamten Inhalt eines Verzeichnisses sowie drei Prognosemodi zur Anpassung an Fehlertoleranz (hohe Zuverlässigkeit, mittlere Zuverlässigkeit und beste Schätzung).

Ursprünglich wurde das Projekt in Python entwickelt, doch bei der Vorbereitung von Version 1.0 wurde die Engine zur Erkennung von Inhalten auf Rust umgeschrieben, was eine höhere Leistung bei gleichzeitigem Erhalt der Sicherheit des Codes ermöglichte. Für die Durchführung des Machine-Learning-Modells wird das ONNX Runtime-Framework verwendet, und für die parallele asynchrone Verarbeitung von Anfragen die Tokio-Bibliothek. Auf einem MacBook Pro (M4) kann die Engine etwa 1000 Dateien pro Sekunde verarbeiten.

Neben der neuen Engine wird in der Version 1.0 die Erweiterung der unterstützten Typen von etwa 100 auf 200 hervorgehoben; die Einführung eines neuen Kommandozeilenclients, der in Rust geschrieben ist; die Verbesserung der Genauigkeit bei der Erkennung von Textformaten wie Konfigurationsdateien und Code; sowie die Überarbeitung der Module für Python und TypeScript zur Vereinfachung der Integration in andere Projekte. Unter den unterstützten neuen Inhaltstypen befinden sich: Formate, die im maschinellen Lernen und KI verwendet werden; Programmiersprachen wie Swift, Kotlin, TypeScript, Dart, Solidity, WebAssembly und Zig; DevOps-Komponenten (Dockerfiles, TOML, HashiCorp, Bazel-Build-Dateien und YARA-Regeln); SQLite-Datenbanken; AutoCAD-Dateien (dwg, dxf), Adobe Photoshop (psd) und Schriftarten (woff, woff2). Die Trennung von Code in C++ und C, JavaScript und TypeScript wurde verbessert.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster