Safe Haven 中文文档 下载 App

Safe Haven VX-TITANIUM 扫描引擎,字节结构解析加 ML 分类器

是什么

VX-TITANIUM 是 Safe Haven 扫描管线里的可选增强引擎。当扫描器检测到工作目录下有 libcolourswift_av.so(C/C++ 机器码引擎库)和机器学习定义包时,会自动加载完整的 VX-TITANIUM 引擎来做深度分析。

如果这两个文件不存在(比如社区分支去掉了闭源组件),扫描器不会报错——它会自动降级为纯 Python 的哈希比对和证书提取引擎,核心的签名锁定功能不受影响。

v9 引擎(2026 年 6 月)的扫描能力

官方文档里明确列了三个检测维度,以及一个明确的技术排除项:

能力说明
签名数据库匹配对比 APK 内部的字节结构特征与已知恶意样本的签名模式
哈希查找对比 APK 文件的 SHA-256 与已知恶意文件的哈希库
ML 分类器字节结构解析 + 机器学习模型,检测被混淆的恶意载荷
不是 YARA明确不使用 YARA 规则做检测

为什么不用 YARA

YARA 是最流行的恶意代码匹配工具,很多安全引擎都用。Safe Haven 明确排除了 YARA,可能的原因:

Safe Haven 的选择体现了它的定位——它不是一个追求极致覆盖率的传统杀毒引擎,而是一个侧重签名锁定 + 元数据透明化的应用商店安全层。引擎能力够用就行,不必追求全覆盖。

字节结构解析

签名数据库匹配和 ML 分类器都需要先做字节结构解析——把 APK 文件里的字节流解析成结构化的特征向量。这是 .so 引擎库负责的核心能力,纯 Python 实现做不到这种性能。

解析过程大致是:

  1. APK 解压 → 拿到 classes.dex(Dalvik 字节码)
  2. 把 dex 反编译成 smali 或提取原始字节序列
  3. 按固定窗口大小滑过字节序列,提取 n-gram 特征
  4. 特征向量送入签名数据库做匹配,或送入 ML 分类器做推理

ML 分类器能发现什么

签名数据库匹配的局限性是:你只能检出已知的恶意模式。ML 分类器的价值是可能检出未知的(0-day)混淆恶意载荷——前提是 ML 模型在训练时见过足够多的良性样本和恶意样本。

Safe Haven 没有公开 ML 模型的训练数据和架构,但从它选择用 ML 而不是纯签名匹配来看,它想覆盖的场景就是:

降级模式

没有 .so 引擎库时,Safe Haven 扫描管线还能做什么:

功能有 VX-TITANIUM降级模式
APK SHA-256 计算✅✅
签名密钥提取✅✅
签名锁定比对✅✅
manifest 提取(versionCode / packageName)✅✅
本地威胁数据库哈希比对✅✅
签名数据库字节模式匹配✅❌
ML 分类器推理✅❌

降级模式覆盖了 Safe Haven 作为应用商店安全层的核心职责——签名锁定和哈希去重。增强的字节结构匹配和 ML 推理只是额外加分项。

商业安全软件的边界

Safe Haven 官方文档承认它"leverages commercial security software in the live build"——商业引擎有商业引擎的问题:

Safe Haven 的应对方式不是"换开源引擎",而是透明化——把扫描结果直接展示给用户,让用户看到引擎扫了什么、结果是什么。如果两个应用用了相似技术栈,一个被扫出"可能恶意",另一个没有,这个对比本身就是有价值的信息。

扫描结果怎么进客户端

VX-TITANIUM 引擎的分析结果最终会:

  1. 作为 scannedAt(扫描时间戳)和 VTTI 摘要入库
  2. 写入应用条目的扫描记录
  3. 随索引同步下发到客户端
  4. 在应用详情页展示 VTTI 分析区(v2.0.9 起)

用户看到的是:"扫描时间 2026-10-14,VX-TITANIUM 引擎分析完成,无恶意检出"这样的信息。引擎内部的判定逻辑和 ML 推理过程用户看不到,但扫描结果本身是公开的。