6 ポイント 投稿者 GN⁺ 2024-02-17 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-02-17

Hacker Newsの意見

  • 新しいファイルタイプ検出ツールをWebクローリングデータに適用してみた。

    • 単純なHTMLファイルを誤検出するケースが発生。
    • WOFF、WOFF2ファイルも一部誤検出された。
    • 自動化に使うにはまだ信頼できない実装だと評価。
    • 出力先がパイプのときにシェルのカラーエスケープを除去しないことへの不満も述べている。
  • 10年前のスプレッドシートのファイルタイプ検出に関する経験を共有。

    • magicを使ってファイルタイプを検出するパッチを提案したが却下された。
    • 現在はディープラーニングを使ったファイルタイプ検出について言及。
    • Googleが性能ベンチマークを公開することを望んでいる。
  • 100個のファイルに対する検出テスト結果を共有。

    • 大半は正確に検出したが、一部は誤検出したり不明確なタイプとして検出された。
    • 主なエラーはMagikaがサポートしていないファイルタイプで発生。
    • 既存のfileユーティリティと比べて同程度の精度を示した。
  • ファイルタイプ検出分野に新しいツールが登場したことへの前向きな反応。

    • Nodeモジュールが公開された理由に疑問を呈している。
    • ドキュメントでは速度が遅いと述べられており、モデルをランタイム時にロードする。
    • 実験的であることの表示と、サポートするファイルタイプが限られていることへの言及。
  • Googleがlibmagicの改善ではなく、ニューラルネットワークベースのファイルタイプ検出ツールの開発にリソースを投入したことへの戸惑い。

    • ニューラルネットワークのほうが高精度だが、対応するファイルタイプが少なく、敵対的な状況では効果が落ちると指摘。
  • さまざまな形式として有効なポリグロットファイルをどう検出するのかに興味。

    • 実際のテストでは、ZIPレイヤーだけが検出されたと述べている。
  • APKやJARファイルを正確に検出する際の、他ツールの適合率や再現率について疑問を提起。

    • 特定のファイルが適合率や再現率に影響した事例について説明を求めている。
  • Racketでlibmagicを実装した経験を共有。

    • libmagicのほうがより多くのファイルタイプを検出できるが、Magikaはテキストファイル検出に役立つ可能性があると言及。
  • ファイルタイプ検出は本質的に決定論的だという主張。

    • 「マジックバイト」は一貫しているはずで、ヒューリスティクスや確率的推論が必要なのか疑問を呈している。