google/magika

Fast and accurate AI powered file content types detection

Magika – AI 駆動のファイルタイプ検出

概要 – Magika は、ファイルのコンテンツタイプ(例:Python ソース、DOCX ドキュメント、INI 設定)を約 99% の精度で識別する、小型で高速なディープラーニングモデルです。ファイルサイズに関係なく、単一 CPU で 1 ファイルあたり約 5 ミリ秒で動作します。これは、ファイルのバイトの限られたスライスのみを調べるためです。

重要性 – 従来のファイルタイプスニファは、ファイル拡張子や単純なマジックバイトのヒューリスティックに依存しており、だまされたり、あいまいな形式を見逃したりする可能性があります。Magika のニューラルモデルは、200 以上のバイナリおよびテキスト形式をカバーする約 1 億のサンプルでトレーニングされており、セキュリティパイプライン、コンテンツポリシースキャナー、および「このファイルが実際に何であるか」を知る必要があるあらゆるワークフローに対して、より信頼性の高いシグナルを提供します。

使用方法

  • CLI(Rust ベース)– magika <path>… 再帰、JSON 出力、MIME タイプのみ、カスタムフォーマットなどのオプションがあります。
  • Python ライブラリ – from magika import Magika; Magika().identify_path('file') はリッチな結果オブジェクトを返します。
  • JavaScript/TypeScript – 実験的な npm パッケージが Web デモを強化し、Node またはブラウザで使用できます。
  • Go – 作業中のバインディング。

インストールのショートカット

  • pipx install magika または pip install magika で Python パッケージ(CLI も同梱)。
  • macOS/Linux では brew install magika。
  • 純粋な Rust インストールには cargo install --locked magika-cli。
  • JS バインディングには npm install magika。

主な機能

  • 小型モデル – わずか数 MB で、配布が簡単。
  • 速度 – 一度モデルをロードすれば、1 ファイルあたり約 5 ミリ秒の推論。
  • 高信頼モード – high-confidence、medium-confidence、best-guess により、再現率と精度をトレードオフできます。
  • しきい値システム – タイプごとの信頼度しきい値により、特定のラベルを返すか、一般的な「テキスト」/「バイナリ」にフォールバックするかを決定します。
  • バッチ処理 – 1 つのコマンドで数千のファイルを処理できます。-r でディレクトリを再帰的にスキャンします。
  • クロス言語バインディング – Rust CLI、Python API、JS/TS npm パッケージ、Go サポートは近日公開予定。

実際の使用例 – Google は Magika を大規模に使用して、数十億の Gmail、Drive、Safe-Browsing ファイルを適切なセキュリティスキャナーにルーティングしています。また、VirusTotal および abuse.ch のマルウェア分析プラットフォームにも統合されています。

はじめに

# pipx で CLI をインストール(Rust バイナリを含む)
pipx install magika

# 単一ファイルを識別
magika myscript.py

# 自動化のための JSON 出力
magika myscript.py --json

# ディレクトリ全体を再帰的にスキャン
magika -r /path/to/files

Python の例

from magika import Magika
m = Magika()
result = m.identify_path('example.docx')
print(result.output.label)   # → docx
print(result.score)          # 信頼度スコア(0-1)

詳細情報 – プロジェクトの Web サイト、オープンソースリポジトリ、および付随する研究論文(ICSE 2025)には、モデルアーキテクチャ、トレーニングデータ、評価方法が詳しく説明されています。

ライセンスとサポート – Apache 2.0。このプロジェクトはオープンソースですが、Google の公式製品ではありません。セキュリティの問題は magika-dev@google.com に報告してください。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト