用 Claude 搭一个自己的杀毒软件:ClamAV + YARA + VirusTotal 五层实战

导语:每年杀毒软件自动续费几十到一百美元,给你一个绿色盾牌和一句”你已受保护”,却没人告诉你它到底在你机器上干了什么。事实上,抓恶意样本的引擎、签名库、规则格式全是免费开源的–你缺的只是有人把零件拼起来、配好、再用人话讲清楚。这篇跟着原作者的长文走一遍:前因、原理、操作,以及它替代不了什么。


前因:付费的不是引擎,是那面绿盾

先说清楚这笔账。商业杀毒软件每年收你 40 到 100 美元,画个绿盾牌,说你受保护了,然后提醒你续费。钱你交了,但它在你机器上干了什么,你基本一无所知。

而真相是:抓恶意样本的引擎是免费的、开放的。签名数据库长什么样、规则文件什么格式、安全团队每天用的查询服务是什么样子–这些全是公开的,今晚就能下下来。缺的从来不是零件,缺的是有人把它们拼起来、正确配置、然后用你听得懂的话告诉你结果。

这件事过去需要一个安全工程师来做。现在可以是 Claude。

原作者 Suprik 的账号简介写着”把一半工作流换成 AI 的 crypto degen”。他拿自己的笔记本试了这套东西,结果扫描结果是:8 项安全问题、2 个数据窃取器、1 个摄像头间谍,以及 1247 张照片。

视频里终端逐行吐文件名:~/.cache/.comXXXX/cap_XXXX.jpg,编号连续,时间戳集中在凌晨一点四十五、三点五十二、五点十四,每行右边还标着 webcam 和 Light: OFF。右边面板是四个数字:8、2、1、1247,底部一行写着 8 issues · 2 stealers · 1 camera spy · 1,247 photos · removed。

整个过程没有弹窗、没有卡顿、没有警告。笔记本一直表现得完美无缺,这才是最让人后背发凉的地方。

后台:杀毒软件剥掉外壳之后在干什么

把 logo 和仪表盘扒掉,所有杀毒软件做的都是同样四件事:

第一,认出已知的坏文件。安全公司每天收集样本,给每个样本做一份签名–一个能认出这个文件的指纹。杀软下载几百万份指纹,跟你的文件逐一比对,命中就是已知恶意软件。

第二,看文件里有没有可疑行为。签名只能抓已经被人见过的,于是还要往文件内部看:一个”PDF”其实是脚本、程序被加壳藏起行为、代码一运行就去下载别的东西。

第三,问别人。拿不准的时候问信誉服务:别人见过这个文件吗,他们怎么判的。

第四,盯住什么会自己启动。恶意软件想活过重启,就藏进那些开机自动运行的地方,杀软要盯着这些地方。

付费产品多出来的是一套好界面、一个市场部、和一封续费提醒。

好消息是这四件事全都有免费实现,而 Claude 负责把它们串起来。

五层,各补各的漏

层组件干什么抓得到漏什么
1ClamAV签名库,每天更新已知木马、蠕虫、流传中的勒索与恶意文档没人收录的新变种
2YARA行为模式,公开规则包改一个字节也认得出的变种、藏在文档里的脚本、加壳、投递器还没人写规则的东西
3VirusTotal第二意见几十家引擎的联合判定只给哈希,看不到文件内部
4启动项基线今天 vs 昨天新冒出来的开机自启不是自启的持久化
5Claude 报告人话解释,不检测—
myav 五层流水线

逐层拆开看:

ClamAV 是开源反病毒引擎,由思科塔洛斯维护,这个团队本身就是全球最大的威胁研究力量之一。它活了二十多年,邮件服务器、文件服务器、网关设备上到处在用。签名库通过 freshclam 每天更新,第一次下载体积最大,之后就是很小的每日增量。

YARA 是研究员用的 hunting 工具。不做精确指纹匹配,而是描述”恶意软件长什么样”–某些字符串、某些结构、某些 tricks。文件改一个字节,签名就废了;写得好的 YARA 规则照样能抓住。公开规则包很多,YARA Forge 是个不错的起点。规则不用你写,Claude 下个靠谱的包,再跑一遍测试确认所有规则都能编译。编译不过的规则要删掉,不是忽略掉。 这一层的代价是误报率最高,后面单独说。

VirusTotal 把文件丢给七十多家引擎跑一遍,把所有判定摆出来。关键细节是:你的文件不外传,只送本机算出来的哈希,一个短指纹。免费公共 API 够个人用,限制是每分钟 4 次、每天 500 次。整套扫描只在前面两层觉得可疑或陌生时才去问,所以基本碰不到上限。

启动项基线是最简单的一层,也是最有用的。恶意软件很少老实地躺在下载目录等你来查,它会把自己装进某个开机自启的位置然后保持安静。这一层把当前所有自启项列出来、存一份基线、每天跟昨天比,多出来的就报警。

各系统要看的位置不一样:

  • macOS:登录项、~/Library/LaunchAgents、/Library/LaunchAgents、/Library/LaunchDaemons
  • Windows:注册表 Run 键、启动文件夹、计划任务
  • Linux:systemd 用户服务、crontab、~/.config/autostart

Claude 报告是免费工具都给不了的一层。别人给你一串哈希和规则名,它给你的是:”这是一个假装成 PDF 的脚本,从邮件里来的,已经隔离,删掉,并且别再打开那封邮件。”

操作:从一条 prompt 到每天自动跑起来

先把要造的东西说清楚

五层流水线,各自补上一层的漏网之鱼。目标很简单:免费下载目录、桌面和 U 盘里冒出来的新文件,几秒内给个判断;每天确认开机自启项没被偷偷加东西;每周日做一次全盘扫描;每次扫描后给一份能读懂的报告。

那一条 prompt

打开 Claude Code,在一个空文件夹里,粘这一段:

Build me a local antivirus called myav using only open-source tools.

1. Install ClamAV and set up nightly signature updates
2. Add a YARA rule pack from a reputable public source
3. Write a watcher for Downloads, Desktop and USB drives
4. On every new file: ClamAV → YARA → VirusTotal hash lookup (hash only)
5. Anything flagged goes to quarantine. Never delete without asking me
6. List every app that starts on boot, alert me when a new one appears
7. Schedule a full scan every Sunday at 3am
8. Write a short plain-English report after every scan
9. Prove it works with the EICAR test file

Explain each step before running it. Don't touch system settings without asking.

最后一句最重要。你要的是 Claude 解释、提问、等待,尤其是碰系统设置的时候。这段 prompt 的价值不在”长”,而在它把边界写死了:第五条规定了只隔离不删除,第六条规定了只报警不擅自动手,结尾那句把”先解释再执行”设成了默认行为。

Claude 接下来会做九件事

一,装引擎。 macOS 是 brew install clamav;Linux 是 apt install clamav clamav-daemon 这类包管理器命令;Windows 用 clamav.net 的官方安装包。

二,配签名更新。 ClamAV 自带 freshclam 负责下载新签名。Claude 写好配置文件,调度它每晚跑一次。第一次下载最大,之后就是小的每日更新。

三,装 YARA 并下规则包。 规则包放进 rules/ 目录,然后跑一遍快速测试,确认所有规则都能编译,坏掉的直接移除。

四,写监听器。 一个小脚本盯着你的下载目录、桌面和 U 盘,有新文件就触发扫描。Linux 上 ClamAV 自带开箱即用的访问即扫工具 clamonacc;macOS 和 Windows 上 Claude 会写一个轻量的文件监听器。

五,建隔离区。 一个只有你能打开的目录,并且去掉执行权限。被标记的文件移进去,同时附一条小记录:它从哪来、什么时候来的、为什么被标记。

六,接 VirusTotal。 你注册一个免费账号、复制 API key。Claude 把它存进本地配置文件并收紧权限,绝不写进代码,绝不放在公开目录里。

七,写启动项监控。 读取你这套系统的所有自启位置,存一份今天的基线,然后每天对比。

八,安排调度。 每晚更新签名、周日全盘扫描、每日启动项检查。macOS 和 Linux 上是 cron 或 launchd,Windows 上是任务计划。

九,测试。 EICAR 测试文件,后面细说。

整个装完大概一个晚上,时间主要花在你逐条读、逐条批准上。作者说这是值得的:你在造一个自己理解的东西,而不是又装一个黑盒。

一个新文件进来后,几秒钟里发生了什么

假设你从邮件里下载了 invoice.pdf.js。接下来几秒:

第一步,检测。 监听器看到下载目录多了新文件,把它交给扫描器。

第二步,签名。 ClamAV 查签名库,没命中。这是个还没人收录的新变种。

第三步,模式。 YARA 往文件里看,发现一个专门用来下载并执行其他东西的脚本。命中,判定:投递器。

第四步,第二意见。 只有这个文件的 SHA-256 哈希被送到 VirusTotal,72 家引擎里有 31 家报警。够了。

第五步,处置。 文件进隔离区,你收到通知,报告文件夹里落一段人话总结。

新文件落地的五步流程

最要紧的一条规矩:它绝不自己删东西。先隔离,再由你决定。

误报是一定会发生的。一条 YARA 规则可能误伤一个你信任的安装包,也可能误伤你自己写的脚本。如果杀软检测到就删除,一条坏规则就能把你的活儿抹干净。隔离区里的一切随时可以恢复。

报告长什么样

每次扫描后,Claude 在 ~/myav/ 写一份短报告,不带哈希不带黑话:

2 threats found, both quarantined
HIGH: setup_crack.exe in Downloads. known trojan, came from a cracked installer. delete it
HIGH: invoice.pdf.js from an email. a script pretending to be a PDF. delete it, don't open the email again
CHECK: new startup item "updater_helper", not signed. did you install something this week?
OK: everything else clean. signatures updated 2h ago

每条发现只给三样东西:多严重(HIGH / CHECK / OK)、是什么(一句话)、接下来做什么。商业杀毒软件不会告诉你这些,它只会说”已拦截”。

先证明它真的在工作

EICAR 是全世界杀毒软件都认的一行无害文本,专门用来验证防护是否有效,不含任何真实恶意代码。Claude 把它生成在下载目录里,你的监听器应该在几秒内抓住它、移进隔离区、写进报告。

没反应,就说明配置坏了。这个要在今晚发现,不要等到出事那天。

误报:怎么处理才不砸自己的脚

自己搭的杀软,误报只会更多,YARA 尤其。碰到被误伤的东西,顺序是这样:

先看报告,确认是哪一层报的、为什么;再去 VirusTotal 看,如果 72 家引擎一个都不报,而且文件来自官方站点,那基本可以放心;从隔离区恢复,别直接复制出来,让工具来恢复,这样记录才会同步更新;然后加白名单–按哈希加,不按文件名,这样同名的恶意文件照样能被抓住;如果某条规则反复误伤,只让 Claude 禁掉这一条规则,而不是整个规则包。

目标不是零告警,是你信得过的告警。

每月五分钟的巡检

搭完就不管的杀软,久了就等于没搭。但好在这套几乎全自动,每个月花五分钟:

  • 看报告里签名上次更新是什么时候,超过两天就是出问题了
  • 更新 YARA 规则包,研究者一直在加新规则,让 Claude 拉最新的并重测
  • 重跑一次 EICAR,三十秒换一次确定感
  • 翻一遍隔离区,确认坏的删掉,不该拦的恢复
  • 审查启动项基线,装了新软件就接受掉,告警才有意义

这活儿可以做成 Claude Code 的一个 skill,一句话的事:”run the monthly myav checkup”。

五个升级,等基础跑通再做

一是扫邮件附件,把监听器指向邮件客户端的附件目录,现实中大部分恶意软件还是从邮件进来的。二是U 盘插上就全扫,监听器本来就覆盖新设备,再加一条规则:任何 U 盘在打开之前必须过一遍完整扫描。三是周报,把每次一份报告换成周日一份汇总:扫了什么、发现了什么、自启项变了什么、更新跑了没有。四是盯浏览器下载,很多恶意软件伪装成”浏览器更新”或”扩展安装包”,加一套专门针对假安装包的规则。五是家人机器,同一套配置直接搬到爸妈的笔记本上,报告这个功能在那里最值钱–他们收到的是”把这个文件删掉”,而不是看不懂的红色弹窗。

七个让人一周内放弃的坑

一,不读就批准。 整个重点就是理解自己造的东西,每一步都读。

二,自动删除。 一条坏规则、一个被删掉的项目。所有命中只进隔离区。

三,关掉系统自带防护。 myav 是额外一层,不是替代品,这一条下面还会再说。

四,不做测试。 跑 EICAR,三十秒的事。

五,规则装太多。 一个又大又吵的规则包意味着一天五十条误报,然后你就再也不看报告了。从一个靠谱的精选包开始。

六,上传文件而不是哈希。 有些查询工具会把整个文件传上去,对私有文档来说这就是泄露。只传哈希。

七,忘了它的存在。 一个静默失败的定时任务,比没有还糟。报告里必须永远写明上次更新是什么时候。

边界:它替代不了什么

作者自己把话说得很死。myav 是个真能用的工具,但它不是魔法。

它擅长的:抓下载目录、附件和 U 盘里的已知恶意软件;识别伪装成文档的假文件和脚本;发现新的开机自启项;把一切用人话讲明白;不花钱,也不藏着掖着。

它替代不了的:Windows Defender 和 macOS XProtect。它们是系统自带的、免费的,并且在内存和运行中进程层面做实时防护,这些深度是文件扫描做不到的–千万别把内置防护关掉;系统更新。绝大多数攻击利用的是早就有补丁的漏洞;备份。勒索软件唯一的真答案是你真的演练过恢复的备份;常识。没有任何扫描器能替你不去点错链接、不把密码输到错的网站上。

正确的定位是:myav 是你的额外一层,不是唯一一层。如果你正是在 Defender 或 XProtect 之上还交着第三方的钱,这层开销可以砍掉,而且你对自己的机器的了解会比以前多得多。

8 项实测问题与五层射程对照

这张对照表是我把作者的自测结果和五层射程摆在一起算的:8 项问题里,只有”未签名应用开机自启”真正落在第五层的射程内,”远程登录开着”算部分沾边,其余六项–防火墙、更新暂停、浏览器扩展、明文密码文件、不锁屏、旧管理员账户–全是配置和账号层的东西,ClamAV 和 YARA 只看文件,看不见”设置被改成了什么样”。

作者在自己的长文里其实也承认了这一点,所以这不是他写错了,而是”文件扫描”这个范式的边界。

真正该自己去查的三件事

如果只做一件事,我建议做这三件,它们比 myav 更能兜住上面那六个漏网的:

  • 翻一遍系统的摄像头与麦克风授权列表,看谁在用。灯灭不灭从来不是证据,Windows 笔记本压根就没有摄像头指示灯。
  • 翻一遍开机自启和计划任务(macOS 看登录项与 LaunchAgents,Windows 看 Run 键与任务计划),对着基线看多了谁。
  • 清掉远程登录和多出来的管理员账户。

另外两个新风险,作者没细说,但值得补一句:把 AI 放进系统权限,”每次都问你”是人肉防线不是技术防线–Claude Code 手里握着 Bash 权限,问不问全看你看不看;而隔离区这个设计本身就是在移动用户文件,误报一次就是错位一次。还有 VirusTotal 只传哈希这点做对了,但哈希可以被反查:私有文档的 SHA-256 递上去,等于告诉几十家引擎”这份文件存在过”。

最后

作者那篇文章最后一段话值得抄下来:

打开 Claude Code,新建一个文件夹,粘上 Step 02 那段 prompt,读完每一步再批准,跑一次 EICAR 测试看它被抓住,跑第一次全盘扫描然后读那份报告。

第一次全盘扫描要花点时间,看你硬盘多大。你多半会在下载目录里翻出点自己都忘了的东西。

然后,下一次续费提醒来的时候,把它取消了。

原文在这里:https://x.com/Supriik_/status/2115926942029316559

版权声明:本文根据原作者 Suprik 的公开长文编译整理,观点与事实以原文为准。文中配图由华盟网原创制作。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容