病毒文件识别:从哈希到沙箱的完整检测链路 前段时间帮朋友看一个被安全软件报毒的脚本,查了半天发现是误报。这个过程中我意识到,很多人对“病毒扫描”的理解还停留在杀毒软件弹窗的层面。其实文件识别背后是一套分层技术栈,从最简单的哈希比对到动态沙箱,每一层都有它的用处,也有它的局限。 这篇文章把自己这些年整理的一套思路串起来,配上代码,可以直接跑。 一、先看清整体流程 一个实用的病毒检测系统,通常不是单点判断,而是多层结果叠加。我用下面这张图概括: 待检测文件 / URL / Stream 静态检测层 哈希比对 MD5/SHA256/SSDEEP 特征签名 YARA / ClamAV 结构分析 PE / ELF / Mach-O ML 模型 静态特征向量 文件预处理 解压 / 去壳 / 熵值 综合风险评分引擎 输出:恶意 / 可疑 / 干净 文件进来先做预处理,然后静态层同时跑哈希、YARA、结构分析和机器学习。静态层拿不准的,再进动态层执行。最后综合打分,给出一个标签。 二、检测流程的详细走法 实际扫描一个文件时,我会按下面这个流程走: 开始 读取文件 预处理:大小、类型、熵值 哈希库比对 .... 病毒文件识别:从哈希到沙箱的完整检测链路 病毒检测