明天跟大家介绍一下,开发一个像 360、QQ 电脑管家这样的安全软件,有哪些核心技术,或者说哪些外围组件是必不可少的?
反病毒引擎
首先,第一个必不可少的就是反病毒引擎。安全软件最早的外围也就是这个货色,它的目标就是检测一个文件是不是恶意软件。
反病毒引擎次要通过对文件进行动态剖析,辨认歹意文件的特色,与本人的病毒特色库进行匹配,来判断指标是否是歹意的。
这外面次要用到的技术有文件格式辨认、加壳脱壳技术、加密解密技术、可执行文件的反汇编、指令级的特色匹配、虚构执行、样本家族团伙基因判断、机器学习等等。
HOOK 驱动
安全软件的次要工作,就是要爱护咱们的电脑不受病毒、木马这些恶意软件的侵害,除了能通过动态剖析辨认已知的威逼,还要守住计算机的平安防线,避免被恶意软件攻破。
那如何防守呢?
安全软件须要感知计算机上产生的所有事件,这蕴含,每一个过程线程的创立、每一个文件的创立和读写、每一次网络连接的建设,甚至每一次零碎服务的调用。
安全软件是通过 HOOK 技术来做到这所有的。
安全软件应用内核驱动程序,劫持应用程序通向操作系统内核的要害入口,从而监控所有过程的行为。
简直每一个安全软件都有这么一个驱动程序,它外部有一套 HOOK 框架,提供编程接口给其余驱动程序调用,比方 360 中赫赫有名的hookport.sys。
主动防御驱动
光有一个 HOOK 框架驱动不行,还得配套有一个主动防御驱动,负责实现具体的平安进攻。
应用层上个别会有一个主动防御过程,负责从安全软件云端服务器接管控制指令,下发最新的进攻规定,最新的特色库,比方拦挡哪些程序,拦挡哪些操作等等。
主动防御过程拉取到这些信息后,下发给内核空间的主动防御驱动程序,由它来具体执行对应的拦挡行为。
文件过滤驱动
通过 HOOK 驱动来进行监控,有时候并不能齐全解决问题。有一些底层软件,能够绕过零碎 API 调用,这样一来 HOOK 驱动就监控不到了。
因而,安全软件个别还会配套有一个文件过滤驱动,通过文件系统提供的接口实现更底层的文件监控性能。
这一类驱动个别应用的技术有 minifilter、sfilter 等。
网络监控驱动
和文件过滤驱动相似,对于网络同样须要一个更底层的驱动程序,来监控计算机中所有的网络连接,通过操作系统网络架构底层的接口,监控计算机进进出出所有的数据包,将网络通信状况齐全一目了然。
这一类驱动应用的技术有 TDI、NDIS、WFP 等。
沙箱驱动
除了守护咱们的计算机,安全软件的另外次要工作还是剖析恶意程序。
后面提到的反病毒引擎次要是 动态剖析 ,但动态剖析有肯定的局限性,很多时候程序的歹意须要运行当前才会裸露进去。因而, 动态分析 技术少不了。
尽管网络安全技术倒退了很多年,但动态分析用到的次要技术还是“沙箱剖析”。
所谓沙箱剖析,就是提供一个仿真的环境,把指标丢进去,让它跑起来,等到它暴露无遗,是不是歹意就能高深莫测。
因而,许多安全软件也会提供一个沙箱驱动,通过内核隔离,模拟出一个“平安”的执行环境,让指标在其中运行。
攻防驱动
安全软件指标这么大,天然会招来很多恶意软件的攻打。除了恶意软件,有些安全软件相互为了争夺用户,也会互相攻击。
所以,安全软件必须增强本身的进攻。
后面提到的主动防御,属于正规军作战,也蕴含有爱护本人的能力,但面对同样是内核级的攻打对手,这一招根本就收效甚微了。
因而,安全软件个别还会有一个攻防驱动,通过各种伎俩和对手作战,爱护本人,这外面用到的技术就形形色色了。
总结
总结一下,开发一款安全软件,次要有三方面的事件要做:
看完这篇文章,你有什么播种吗,写作不易,欢送动动手指转发分享。