奇技指南
在【360互联网技术训练营第16期——大数据与微服务之路】上,360核心安全高级服务端开发工程师高吴林涧分享了《基于Hadoop的回扫样本存储系统XStore的设计与实践》。本文是具体内容。
01
为何我们需要一个样本存储系统
1
核心安全流程概述
在360用户安全中,云查杀占着很大的比重,除了贡献大量的查杀结果之外,也节省了用户的计算资源。云查杀的大体流程是:
如果用户检测一个尚未被收录的样本文件(pc文件,安卓apk软件包等),那么用户会将样本上传至样本存储系统, 然后检测大流程会使用多类的扫描器,对样本文件进行查杀,返回查杀结果,并记录
如果用户检测一个已经收录的样本文件,那么直接从云查杀中返回这个样本文件的黑白情况。
以上流程大致可以表示为下图:
2
存储系统主要用途
在这里,我们以安卓手机软件(.apk)为例。新收集的apk软件 会直接落地在存储系统中。存储系统主要为了满足3个使用需求:
APK样本实时上传收集
对APK样本实时检测服务提供样本文件下载服务
一旦样本检测的扫描器/模型/规则发生变化, 则对已收集的样本进行回溯扫描
基于这样的功能性需求,我们设计并开发了样本存储系统Xstore。
3
目标存储文件的特征
在设计具体的系统架构之前,我们有必要对这个样本文件存储系统所要存储的目标对象做一个特征的分析,以便更好地设计出贴合实际需求的架构。
依旧以占比较大、较典型的apk样本作为例子。我们待存储的apk样本有如下特征:
大小:单个文件平均大小50M,波动在10k至3G之间,总容量为10-100PB这个量级
数量:总量在10-100亿级别,每日增量为百万级别
以写入和读取为主,几乎不更新,无物理删除
读取方式为随机+顺序读取
高价值,要求提供容灾和备份方法