我找到了这个问题其中详细解释了防病毒软件的工作原理。但刚刚有一位客户问我这个问题,我真的无法给他一个好的、简单的、易于理解的答案。我能想到的最好的答案是,每种病毒都有一个特定的“指纹”,软件会在已知的受感染区域进行扫描。
我该如何以一种简单易懂的方式来解释这一点?
答案1
检测机制或者说它们在更深层次上是如何的?
当人们问我恶意软件是如何进入他们的机器的,为什么恶意软件一旦进入系统就无法删除,以及几乎任何与恶意软件有关的问题时,我总是用与这个比喻组合/类似的来回答:
(当我写下它时,我听起来可能有点像个白痴,但我希望你喜欢它!)
想象一下,您的房子就是一台计算机,防病毒程序就是几种不同的安全机制。
下载/新文件创建:
想象一下你家门口有个保镖 - 任何进入房子的人(文件进入你的机器)都要经过他,他会检查文件是否干净*。如果他发现有问题,他通常会告诉你该怎么做。
主动式扫描仪
想象一下,一个内部安全团队监视着你家里的每个人(活动进程),他们接触的任何物体(文件)都会被检查,以确保它们是干净的*
被动/手动扫描
当没有其他事情可做或您选择时,您可以让安全团队检查房子里的每个物品,以确保它们能够抵御最新的威胁。
Rootkit/一旦感染
虽然您的家庭安全系统始终会尽最大努力,但没有任何东西能 100% 有效。一旦有人进入房屋,如果不阻止他们,他们就可以为所欲为。虽然可以清理他们留下的垃圾,并且在大多数情况下可以消除所有损坏……但他们可能会留下自己的安全团队,干扰您自己的安全团队。
“*正如 Randolph 在他的回答中所说,它通常是指纹和启发式)
我似乎找不到它,但微软曾经有一个关于创建 AV 软件的 API 文档,我只能找到一个链接至 MS Office/IE API 指南。我猜想由于假冒 AV/Root 工具包,他们删除了这些信息。
(此外,赛门铁克还拥有有趣的文章进一步阅读)
编辑-刚刚发现一个有趣的 Stack Overflow 问题...Windows 防病毒软件如何接入文件访问过程?
答案2
它们在多个层面运作,包括:
正如您所说,指纹定义会检查与数据库匹配的活动或文件签名
可疑行为,例如,引导扇区被无法识别的某些东西修改,或者内存被不应有访问权限的进程覆盖
Rootkit 检测,这需要 AV 本身几乎像病毒一样运行(* 这就是为什么 AVG 不喜欢 ComboFix 的原因 - 它所做的事情与病毒行为难以区分),因为它必须将自己隐藏在 Rootkit 之外。
这当然不是一个完整的列表,我欢迎对答案进行编辑。
答案3
我曾多次告诉人们他们需要 AV 软件,同时又要抵挡“专家”的批评,即 AV 软件“毫无价值”,因为新的、未识别的病毒无法被阻止,而且正如 Wil 所说,它们会留下一些东西,使得真正的清理变得不可能。
我认为非超级用户理解最后两点很重要,但不要认为 AV 软件毫无价值。他们还需要理解第三点,即需要制定一个仔细的备份计划,着眼于“从轨道上摧毁它,这是唯一能确保安全的方法”清理,即清除系统并从已知的良好备份中重新安装操作系统。
答案4
你的操作系统是一栋建筑,病毒是小偷
Windows 是办公楼
虽然每个人都可以进出,但他们必须通过安检,行李要经过检查,还要经过X光检查。这相当于主动扫描仪。所有东西都经过检查,因此任何东西从前门被带走的可能性很小。
整个设施都有摄像头和保安人员监视他们,以寻找可疑活动。这是被动扫描。保安人员非常擅长发现常见的恶作剧行为,因为他们每天都花一整天的时间观察人们。
有趣的是,如果你在通过 X 射线扫描仪时跳起滑稽的鸡舞,你就会通过,不会问任何问题。
感染过程如下。小偷在前面的警卫面前跳着滑稽的鸡舞。一旦他们进去拿走了他们想要的东西,他们只需要找到(或创建)一个后门就可以带着货物出去。
如果窃贼不够老练,被动式扫描仪会发出警报并派出安保人员追捕他们,但是,如果你最近看过《十一罗汉》,你就会明白我说的“并非所有窃贼都不够老练”是什么意思。本质上,一旦坏人进入,如果他是好人,他就会知道如何躲避和破坏你的监控系统,这样你甚至都不知道他在那里。然后他就可以免费窃取你的数据了。
更糟糕的是,它们具有影响力。它们在你的系统内结交朋友(感染其他应用程序),因此,即使你成功将它们踢出,它们也可以打电话给伙伴让它们重新进入。被动扫描器不仅监视坏人,还监视每个人的行为,但它们并不完美。
特洛伊木马就像一个躲在紧急出口旁的隐身小偷,如果他听到外面有同伴偷偷敲门,他就会从里面开门。你肯定不希望你的大楼里有这样的人,因为他们非常有才华。
Mac 是办公楼,但配有钥匙卡系统
进入大楼后,您必须向警卫登记才能获得通行证。但是,一旦进入大楼,您就可以自由地在有权漫游的区域内活动。如果您需要访问公司库存,则需要再次登记以获取更高级别的通行证才能继续。每次离开安全级别时,您都会丢失通行证,因此每次需要重新进入时都必须签名。
这里的漏洞是,确保您知道您授予访问权限的人应该被允许进入。
Linux 就像一个军事基地
您必须通过安检才能进入大门,但您还需要军衔/头衔才能进入基地的部分区域。例如,如果您不是飞行员(也不是高级军官),您就不能进入机场;如果您不是潜艇员,您就不能进入潜艇。
把 root 帐户想象成将军。他不需要获得许可才能去任何地方,因为他是基地里最高级的军官。因此,你不会想让你的将军随便让任何人进入基地(因为他会毫无疑问地服从)。
Linux 的诀窍是,不要让自己成为将军。让自己成为一名尽职尽责的士官。然后,当那位士官发现他需要一些额外的资源来完成他的工作时,暂时将他升级为将军(Linux 中提升权限的命令是 sudo,它授予临时 root 访问权限),以使事情动起来。
实际上,Linux 和 Unix 使用相同的权限安全模型。Mac 只是没有像 Linux 那样将系统划分为多个部分,以使其更加用户友好。
所有这些系统的主要问题是,一旦窃贼找到进入的方法,他们就可以创建后门,以便稍后再次进入,而不必通过安检。
唯一的真的安全系统的安全方法是拥有更复杂的系统。比如,在每天结束时回到一天的开始。这相当于沙盒虚拟化每次加载操作系统时,它都会加载一个全新的、未经篡改的副本。不会存在后门,因为操作系统将恢复到窃贼进入之前的状态。这种方法有局限性,但它们太详细/复杂,无法在此介绍。
大多数人(有些人故意)忽略的诀窍是。一旦你让某人进入大楼并授予他们访问权限,他们就可以让其他人进来。所以,首先不要让穿着黑白条纹衬衫的男人(有时还有拿着量子力学书的小女孩)进入前门。除了时髦的小鸡舞,除非你允许,否则他们进不来。
病毒扫描程序的问题在于,人们过于依赖它们。想想看,无论是主动扫描程序还是被动扫描程序都不知道这个古怪的“鸡”伎俩。您只是自由地让坏人进入您的系统。如果您幸运的话,他会做一些引起被动扫描程序注意的事情。如果您不走运,他会在您的系统内从一个阴影移动到另一个阴影,造成严重破坏,而您甚至不知道他在那里。
零日软件漏洞(已知的软件缺陷暴露了尚未修补的安全漏洞)相当于滑稽的小鸡舞。微软也不是唯一应该为此负责的一方;我曾见过 Adobe Flash 黑客在不到 15 秒的时间内攻破我的系统,使之无法修复。
Windows/Linux 往往不会出现怪鸡问题,因为您在整个系统中随处携带着访问权限(钥匙卡、等级)。
A根工具包就像让这些人绑架你的执行安全官,把他锁在壁橱里,然后冒充他。作为安全主管,他有权雇用/解雇任何人,并随心所欲地改变政策。如果他们找到他,你就真的倒霉了,因为他可以解雇整个安全人员,或者实施政策,迫使安全人员盯着自己的脚,袖手旁观,否则就会被解雇。也就是说,你真的不想让这个家伙受到牵连。
我希望这能有所帮助。