万益资讯网

Google 开源了一个用 AI 做文件类型识别的工具,叫 Magika。它不是

Google 开源了一个用 AI 做文件类型识别的工具,叫 Magika。它不是传统的基于规则或 magic bytes 的方案,而是把深度学习模型直接用在文件检测上——模型只有几 MB 大小,在普通 CPU 上识别一个文件只需要大约 5 毫秒。

传统的文件类型检测主要靠两种方式:文件扩展名或者 magic bytes(文件头部的固定字节序列)。扩展名可以随便改,magic bytes 也不是所有格式都有,而且很多格式的 magic bytes 会重叠。Magika 的做法是读取文件内容的前一小段,交给深度学习模型做分类。无论文件本身有多大(比如一个 10GB 的数据库文件),模型只取头部一段内容,推理时间几乎恒定,不受文件大小影响。

Magika 的训练集覆盖了约 1 亿个样本、200 多种文件格式,既有二进制格式(PDF、ZIP、EXE 等),也有纯文本格式(Python、JavaScript、Markdown 等)。在测试集上,平均精度和召回率都达到了约 99%。它对每种文件类型设了一个阈值系统——如果模型预测的置信度不够高,就返回"Generic text document"或"Unknown binary data"这类兜底标签,而不是硬给一个可能错误的结果。

Google 内部已经在三个核心产品中大规模使用 Magika:Gmail、Drive 和 Safe Browsing。文件上传后会先经过 Magika 识别类型,再路由给对应的安全策略扫描器做下一步检查。每周处理的检测请求达到数百亿次。VirusTotal 和 Swiss 的 abuse.ch 恶意软件平台也已经集成了它。

Magika 提供 Rust 编写的命令行工具(支持递归扫描、JSON 输出、管道输入、自定义输出格式等)、Python API、JavaScript/TypeScript 包(npm 包还能在浏览器本地跑 Web demo,无需服务端),以及实验性的 Go 绑定。相关论文被软件工程顶会 ICSE 2025 收录。项目采用 Apache 2.0 协议。

(由 流苏ªⁱ 撰写)MagikaGoogle开源文件检测AI