- GoogleがAIベースのファイルタイプ識別システムであるMagikaをオープンソースとして公開
- Magikaはカスタムの最適化されたディープラーニングモデルを使用し、CPU上でも数ミリ秒以内に正確なファイル識別が可能
- MagikaのWebデモを試すことができ、
pip install magikaコマンドでPythonライブラリおよびスタンドアロンのコマンドラインツールとしてインストール可能
ファイルタイプ識別が難しい理由
- コンピューティングの黎明期から、ファイルタイプを正確に検出することは、ファイルの処理方法を決定するうえで重要だった。
- Linuxにはlibmagicとfileユーティリティがあり、これらは50年以上にわたりファイルタイプ識別の事実上の標準として使われてきた。
- ファイルタイプ検出は、Webブラウザやコードエディタなどさまざまなソフトウェアでファイルを正しくレンダリングするために不可欠である。
- ファイル形式ごとに構造が異なったり、そもそも構造がなかったりするため、正確なファイルタイプ識別は非常に難しい問題として知られている。
- libmagicとほとんどのファイルタイプ識別ソフトウェアは、各ファイル形式を検出するために手作業で作られたヒューリスティックやルールに依存している。
- このような手作業のアプローチは時間がかかり、誤りも生じやすい。
Magikaの性能
- Magikaは、AIモデルと大規模な学習データセットにより、100種類以上のファイルタイプを含む100万ファイルのベンチマークで既存ツールより約20%優れた性能を示した。
- 特に、テキストファイル、コードファイル、設定ファイルなど、他のツールが苦手とするファイルタイプでより大きな性能向上を示した。
Google社内でのMagikaの利用
- MagikaはGoogle社内で、Gmail、Drive、Safe Browsingのファイルを適切なセキュリティおよびコンテンツポリシースキャナへルーティングし、ユーザーの安全性向上に活用されている。
- 週平均で数百億件のファイルを扱う規模において、Magikaは手作業ルールに依存していた従来システムと比べ、ファイルタイプ識別精度を50%向上させた。
- MagikaはVirusTotalとの統合を通じて既存のCode Insight機能を補完し、グローバルなサイバーセキュリティエコシステムに貢献して、より安全なデジタル環境の構築に役立つ予定である。
Magikaのオープンソース化
- Magikaをオープンソース化することで、他のソフトウェアにおけるファイル識別精度の向上と、研究者に大規模なファイルタイプ識別の信頼できる手段を提供することを目指している。
- MagikaのコードとモデルはGithubでApache2ライセンスのもと無償提供されており、PyPIパッケージマネージャーを通じて簡単にインストールできる。
- Magikaの使い方の詳細は、Magikaのドキュメントサイトを参照のこと。
GN⁺の見解
- Magikaのオープンソース公開は、ファイルタイプ識別の精度向上に大きく役立つとみられる。
- 特にセキュリティ分野では正確なファイル識別が非常に重要であり、Magikaはそのための強力なツールになり得る。
- Googleの技術力とオープンソースコミュニティへの貢献は、グローバルなサイバーセキュリティエコシステムを強化するうえで重要な役割を果たすと期待される。
1件のコメント
Hacker Newsの意見
新しいファイルタイプ検出ツールをWebクローリングデータに適用してみた。
10年前のスプレッドシートのファイルタイプ検出に関する経験を共有。
magicを使ってファイルタイプを検出するパッチを提案したが却下された。100個のファイルに対する検出テスト結果を共有。
fileユーティリティと比べて同程度の精度を示した。ファイルタイプ検出分野に新しいツールが登場したことへの前向きな反応。
Googleがlibmagicの改善ではなく、ニューラルネットワークベースのファイルタイプ検出ツールの開発にリソースを投入したことへの戸惑い。
さまざまな形式として有効なポリグロットファイルをどう検出するのかに興味。
APKやJARファイルを正確に検出する際の、他ツールの適合率や再現率について疑問を提起。
Racketでlibmagicを実装した経験を共有。
ファイルタイプ検出は本質的に決定論的だという主張。