AIがファイルの中身を瞬時に見抜く!200種類以上を99%の精度で判定 — magika

google/magikaPython14.1k

Magikaは、ファイルの種類(画像・文書・プログラムコードなど)をAI(人工知能)の力で自動判定するツールです。従来のファイル拡張子(.jpgや.pdfのような末尾の文字)に頼るのではなく、ファイルの中身そのものをディープラーニング(深層学習)で分析して、200種類以上のファイル形式を約99%の精度で見分けます。数メガバイトの軽量なAIモデルを使っているため、1ファイルあたりわずか5ミリ秒(0.005秒)で判定が完了します。GoogleがGmailやGoogleドライブのセキュリティスキャンに実際に活用しており、毎週数千億ファイルの処理に使われている実績があります。セキュリティの専門家だけでなく、ファイルの仕分けや整理をしたい人にも便利なツールです。

🔥 なぜ話題?

AI技術の活用がセキュリティ分野でも注目される中、Googleが実際に大規模運用しているツールがオープンソースとして公開されている点が開発者やセキュリティ研究者の関心を集めています。IEEE/ACM ICSE 2025での論文発表や、VirusTotalへの統合など、学術面・実用面の両方で認知が広がったことも話題を後押ししています。

💡 こう使える!

たとえば、社内のファイルサーバーに拡張子が付いていないファイルや、拡張子が間違っているファイルが大量にある場合、Magikaで一括スキャンすると「これはPDF」「これはPythonのコード」「これはExcelファイル」とAIが中身を読み取って正確に分類してくれるので、手作業で一つずつ確認する手間がなくなります。

ユースケース: 大量のファイルの種類を自動判定し、セキュリティスキャンやファイル整理に活用する

  • 200種類以上のファイル形式を約99%の精度で判定するAIモデル搭載
  • 1ファイルあたり約5ミリ秒で判定完了する超高速処理
  • GoogleがGmail・Googleドライブ・Safe Browsingで実際に大規模運用中
GitHubで見る →

Fast and accurate AI powered file content types detection

技術情報

言語

Python

ライセンス

Apache-2.0

最終更新

2026-04-16

スター数

14,137

フォーク数

740

Issue数

127

トピック

aideep-learningfiletypekeras-classification-modelskeras-modelsmime-typesonnx

技術詳細

アーキテクチャ・仕組み

  • ディープラーニングベースのカスタムモデルを使用し、ファイルの内容の一部分のみを読み取って判定を行う
  • モデルサイズは数MB程度と非常に軽量
  • ファイルサイズに依存しない、ほぼ一定の推論時間を実現
  • ファイルの先頭・末尾など限られた部分のみを使用するため、巨大ファイルでも高速に処理可能

対応言語・プラットフォーム

  • CLI: Rust製のコマンドラインツール(macOS / Linux / Windows対応)
  • Python API: Pythonバインディング(PyPIで公開)
  • JavaScript/TypeScript: npm パッケージ(実験的、ブラウザ上でも動作するWebデモあり)
  • GoLang: バインディング開発中(WIP)
  • Rust: Rustライブラリとしても利用可能

パフォーマンス・精度

  • 約1億件のサンプルで学習・評価
  • 200種類以上のコンテンツタイプ(バイナリ・テキスト両方)に対応
  • テストセットで平均約99%の精度(precision)と再現率(recall)を達成
  • 特にテキスト形式のファイル(ソースコード、設定ファイルなど)で既存ツールを上回る性能
  • モデル読み込み後の推論時間は1ファイルあたり約5ミリ秒(CPU単体で実行時)

主要な機能一覧

  • ファイルパス、バイト列、ストリームからのファイル種別判定
  • ディレクトリの再帰スキャン(-r オプション)
  • 標準入力からの読み取り対応(パイプ処理可能)
  • JSON / JSONL 出力フォーマット
  • カスタムフォーマット出力(--formatオプション)
  • MIMEタイプ出力(-iオプション)
  • 予測スコアの表示(-sオプション)
  • シンボリックリンクの扱い制御(--no-dereference

信頼度制御(Prediction Modes)

  • コンテンツタイプごとの閾値システムを採用
  • モデルの予測が信頼できない場合、「Generic text document」や「Unknown binary data」といった汎用ラベルを返す
  • high-confidencemedium-confidencebest-guess の3つの予測モードでエラー許容度を調整可能

実績・連携

  • Google内部: Gmail、Googleドライブ、Safe Browsingで毎週数千億ファイルの処理に使用
  • VirusTotal: マルウェア解析プラットフォームに統合済み
  • abuse.ch: マルウェアサンプル共有サイトに統合済み
  • 学術論文: IEEE/ACM ICSE 2025で発表

ライセンス・商用利用

  • Apache License 2.0(商用利用可能)
  • Googleの公式プロジェクトではなく、品質・適合性についてGoogleは保証しない旨の免責事項あり

Webデモ

  • インストール不要でブラウザ上で試せるWebデモが公開されている(JavaScriptパッケージを使用してローカルで動作)

インストール・クイックスタート

コマンドラインツールのインストール

pipx経由(Python):

pipx install magika

brew経由(macOS / Linux):

brew install magika

インストーラースクリプト経由:

curl -LsSf https://securityresearch.google/magika/install.sh | sh

cargo経由(Rust):

cargo install --locked magika-cli

Pythonパッケージ

pip install magika

JavaScriptパッケージ

npm install magika

クイックスタート(Python)

from magika import Magika
m = Magika()
res = m.identify_bytes(b'function log(msg) {console.log(msg);}')
print(res.output.label)  # => javascript

参考になる外部の関連記事

関連リポジトリ

ユーザー名ひとつで400以上のSNSアカウントを一括検索!ネット上の足跡を追跡 — sherlock

sherlock-project/sherlockPython79.7k

sherlockは、ユーザー名を入力するだけで400以上のSNS(ソーシャルメディア)やWebサービス上にそのユーザー名のアカウントが存在するかどうかを一括で調べられるツールです。たとえば「tanak

AIハッカーがあなたのアプリの脆弱性を自動で発見・修正! — strix

usestrix/strixPython22.0k

Strixは、AI(人工知能)を使ってアプリやウェブサイトのセキュリティの弱点(脆弱性)を自動的に見つけ出し、修正まで行ってくれるオープンソースのツールです。本物のハッカーのように実際にコードを動かし

AIが100以上のセキュリティツールを自動で操る!会話するだけで脆弱性診断ができるプラットフォーム — CyberStrikeAI

Ed1s0nZ/CyberStrikeAIGo2.5k

CyberStrikeAIは、自然な言葉で指示するだけでAIがセキュリティ診断を自動実行してくれるプラットフォームです。nmap、sqlmap、nucleiなど100種類以上のセキュリティツールが組み

写真1枚でリアルタイム顔入れ替え!ワンクリックでディープフェイク映像を生成 — Deep-Live-Cam

hacksider/Deep-Live-CamPython90.5k

Deep-Live-Camは、たった1枚の写真を用意するだけで、ウェブカメラの映像やビデオの中の顔をリアルタイムに別人の顔に入れ替えられるソフトウェアです。「顔を選ぶ→カメラを選ぶ→ライブボタンを押す

使うほど賢くなるAIエージェント — 学習・記憶・自動化を全部入りで月5ドルから運用 — hermes-agent

NousResearch/hermes-agentPython87.5k

Hermes Agentは、Nous Research社が開発した「自己改善するAIエージェント」です。会話するたびに経験からスキルを自動生成し、ユーザーの好みや過去のやり取りを記憶して、使えば使うほ