凌晨两点,恶意我的代码电脑风扇突然狂转起来。任务管理器里,查杀一个叫“svchost.exe”的软件进程吃掉了98%的CPU。我下意识地打开任务管理器——但那个进程消失了,恶意像一只蟑螂躲回了墙缝。代码三秒后,查杀它又出现,软件换了个名字。恶意
这就是代码恶意代码的典型行为:藏匿、伪装、查杀伺机而动。软件我见过太多人把杀毒软件当成“装了就完事”的恶意护身符,但真正的代码恶意代码查杀,从来不是查杀点一下“扫描”按钮那么简单。
查杀软件的核心逻辑其实很朴素——它得先知道“坏东西长什么样”。传统杀软靠特征码,就像通缉令上的照片,比对文件指纹,认出来就抓。但问题是,恶意代码作者不傻,他们用加壳、变形、混淆技术,让同一只病毒每次出现都换张脸。特征码库越滚越大,查杀率却越来越疲软。
所以现代查杀软件早就换了思路。行为检测,不看你长什么样,看你干什么——一个正常文档不会突然去修改注册表启动项,一个计算器程序也不会悄悄往系统目录写可执行文件。一旦行为越界,哪怕你是全新的变种,照样拦下来。这招对付勒索病毒特别管用,因为勒索病毒无论如何变脸,总要加密你的文件,这个动作逃不掉。
但行为检测也有误报的毛病。我自己就遇到过,一个自己写的脚本工具,因为调用了系统API,被某杀软当成木马删了。那种感觉,就像你家里进了个保安,把你好端端的工具箱当凶器没收了。所以好的查杀软件,得懂得“放行”的艺术——给信任的文件加白名单,给可疑的行为设沙箱,让它在隔离环境里跑一遍,看看是不是真凶。
说到沙箱,我想起一个真实案例。去年有个朋友的公司中了挖矿木马,CPU利用率长期飙到80%,IT部门查了半个月没结果。后来用带沙箱的查杀工具一跑,发现是某个员工下载的破解版PDF阅读器里藏了东西。那个木马平时装死,一到深夜就启动挖矿程序,还专门绕开监控时段。这种狡猾的对手,靠人工排查根本抓不到,就得靠沙箱把它的“夜班行为”逼出来。
不过话说回来,查杀软件再强,也只是事后补救。我见过太多人中了招才想起装杀软,或者装了杀软却从不更新病毒库——那等于雇了个不看新闻的保安,旧通缉令上的贼认得,新来的毛贼一个不认识。真正的安全习惯,是随手关掉U盘的自动播放,是别手贱点陌生邮件里的附件,是给系统和软件打补丁的速度赶得上漏洞公布的速度。
写这篇文章的时候,我电脑右下角的杀软图标正安静地转着圈。它刚拦截了一个来自网页的钓鱼脚本,弹窗提醒我“已阻止”。我瞟了一眼就点了关闭——这种日常保护已经变成空气一样自然的存在。但我知道,就在我敲字的这几分钟里,全球有无数台电脑正在被扫描、被试探、被攻击。查杀软件就像守夜人,大部分时候沉默无声,只有在黑夜里真正亮出刀的那一刻,你才会意识到,这份沉默有多值钱。