不知道大家平时是否关注过杀毒软件?有时候咱们下载一个文件到本地,就立马被杀毒软件删除,说这个文件是病毒;有时候,咱们运行软件的时候,杀毒软件就会提示说该软件有可疑操作,是否运行该软件?大家有想过这是怎么实现的吗?杀毒软件是用什么方法、什么技术来保护我们的电脑安全的?随着互联网的发展,杀毒软件又更新了哪些技术了呢?
这一期,咱们就聊一聊杀毒软件的查杀原理和用到的开发技术,看看杀毒软件都是怎么查杀、怎么识别病毒的?开发一个杀毒软件需要用到哪些技术?
话不多说,咱们开始吧!
查杀原理
特征码查杀
最早出现、也是最简单、最有效、最快捷的查杀方式就是静态查杀,或者叫特征码查杀,至今仍在沿用。杀毒软件公司从各种途径获取到的病毒样本,在人工检查确认是病毒后,就开始提取这个病毒文件的特征码;所谓的特征码就是可以唯一标识这个文件的数据,例如最简单可以使用文件MD5值,或者文件中唯一存在的一段字符串(该段字符串在其他软件上都不会出现,只有在这个病毒软件出现的) 。
所以,只要样本数量足够多,就可以得到一个庞大的病毒特征库,咱们更新杀毒软件的病毒库的时候,很大一部分是在更新这个特征码库!
当我们的电脑出现一个新文件的时候,杀软就会遍历特征库,判断该文件是否是特征库中标记的文件;若是则报毒,直接查杀。
什么是“加壳”技术?
杀毒软件和病毒木马它们是一种相爱相杀、相互成就的关系!我们看到静态查杀方式有点笨,就靠简单的特征匹配。病毒木马就想到了一劳永逸的对策——“加壳”技术:加壳就是指对病毒程序二进制数据进行加密、混淆,在程序入口处插入一段还原代码,使得病毒程序能被正常加载运行。这样,即使同一个病毒文件,被加壳后,都会变得不一样,就像是一个全新的文件一样,完美绕过特征码匹配
内存查杀
这时,内存查杀应运而生!杀毒软件本着“宁停三分、不抢一秒”的谦让原则,让病毒木马先加载到内存,脱去外壳,此时,病毒木马已经还原为真实的数据。这时候,杀软再开始进行对内存数据进行查杀,匹配特征。
查杀未知的病毒木马
虽然,杀毒软件可以凭借上述静态查杀和内存查杀对已知的病毒木马形成压制,但奈何病毒木马数量太过于庞大、变种太多、技术也不断更新换代,未知的病毒木马实在是太多了!如何查杀未知的病毒木马,是杀毒软件成长的瓶颈!目前有 3 种主流的应对方式:主动防御、云查杀 和 AI查杀!
主动防御
主动防御的本质是通过“行为判断”来识别未知病毒和变种!简单说,就是通过监控程序的文件操作、注册表操作、网络操作、进程操作、线程操作、关键函数调用等行为,从而综合判断是否是病毒木马。这一想法的依据是,无论病毒木马的文件、内存如何混淆、如何变化,它的目的、它的行为是不会改变的!病毒木马都会有特定行为,例如:自删除、自启动、释放文件、调用敏感的DLL等。所以,可以通过程序的行为来识别病毒木马!
从工作原理上可分为静态启发和动态启发两种:
- 静态启发技术指的是在静止状态下通过病毒的典型指令特征识别病毒的方法,是对传统特征码扫描的一种补充。在不运行病毒木马的情况下,进行简单的反汇编,查找、匹配是否出现病毒木马特定的指令或者API函数调用序列
- 动态启发式通过杀软内置的虚拟机技术,给病毒构建一个仿真的运行环境,诱使病毒在杀软的模拟缓冲区中运行,运行过程中监控程序的行为。这种方法能够全面、有效地采集程序行为,从而综合判断程序是否是病毒
云查杀
有时候程序出现可疑行为,但不足以确定是病毒木马!为了降低误报率,提升用户体验,杀毒软件都会放行!所以,为了不放过任何一个病毒木马,补充主动防御地缺陷,“云查杀”应运而生!所谓云查杀就是把杀毒软件当作一个采集器,杀毒软件会把可疑文件上传到杀毒软件的服务器,如果文件太大,则会提取文件特征、行为特征进行上报,汇总到服务器。服务器可以分配更多资源、调用更多特征库进一步确认。大家可以设想一下,如果所有的网络用户都安装了同一款杀毒软件,那杀毒软件服务器就可以通过某一段时间内可疑文件的传播范围、影响数量,从而判断该文件是否是病毒木马,并提取特征写入特征库!这样,通过这样一个个分布式的杀软节点,构建连接起了一个“云大脑”,可以有效、快速地进行识别和防御,控制病毒木马的大规模扩散!
AI查杀
近些年,机器学习(AI)技术发展得如火如荼!无疑,AI在病毒木马的识别上应用还是很成功的。杀毒软件公司依托自己庞大的病毒样本库,可以很好地进行模型训练,能够更快、更准确地判断变种病毒木马!
当然,杀毒软件为了降低误报,还有很多查杀的细节,例如“黑名单、白名单”机制。通过判断验证程序的数字签名,如果是在白名单的,则不进行检测,所有行为都放行。如果是在黑名单的,直接报毒。
总结
好了,咱们的杀毒软件查杀原理就介绍到这里,基本上囊括了所有主流的查杀方法了!所以,咱们今后记得要及时更新杀毒软件的病毒库哦~
在这里给大家安利病毒检测网站:VirusTotal(https://www.virustotal.com ),今后有什么文件自己不清楚是不是有毒的,都可以上传到这个网站进行检测,它会调用全球几十款杀软同时检测,并告诉你这些杀软检测的结果,方便你判断是否是病毒文件
每个病毒都有灵魂,从它诞生的一天就注定了一生的孤独。我想,最了解病毒的,莫过于杀毒软件了吧?相爱相杀、相互成就!我们也要有病毒木马的勇气,只要我们一天不认输,就不会失败!
视频链接和公众号
视频链接
https://www.bilibili.com/video/BV18L4y1N76r