一些网络安全方面的基础科普 - P1 识别恶意软件

来自: https://blog.binklac.com/d4ad30414b22/

 

这几天看到了一些比较肆虐而且比较常见的互联网病毒传播,所以专门写篇文章聊一聊这个问题

特别一提,由于本文的性质,本文章为公共领域文章,即在世界范围内放弃本文的所有权利,故任何人都可以以任何方式转载或重新发布

当然,如果你可以保留指向本文章的链接那就再好不过了,因为本文章可能会更新,保留链接可以使读者获得及时的更新

本文章虽然是面向Windows的,但是安卓或者其他平台举一反三也可以用,本文章的方案只是个人经验,常在河边走总会踩进去!

01 手把手的入门! 浅谈一下比较泛用的病毒(恶意软件)识别方式

01–1 万事开头难: 误报

对于对信息安全方面不太熟悉的朋友来说,有一个词很熟悉: 误报

误报这个问题具体来说就是因为某些软件(外挂, 破解器)的行为和病毒实在是太像了,导致杀毒软件不能准确的识别

于是有些病毒作者就把思路打开了: 如果杀毒软件会把病毒和破解工具搞混,那是不是可以把他们捆绑在一起让用户手动放行呢?

没错,是这样的,并且有很大一部分的病毒也正是这样传播的,所以,支持正版,不要开挂是预防病毒很好的手段

哎哎别关网页,肯定有人要说了: “你这说了个JB”,别慌,接下来是正题

看之前请记住,以下的分析并不能替代杀毒软件的动态监测

也请不要抱着: 我也没啥值钱的东西感染就感染了呗

现代的木马盗号已经是轻的了,冒充你的信息贷款,使用你的电脑攻击其他设备或者进行其他违法行为才是需要警惕的,毕竟警察看到的是从你的设备发出的攻击

01–2 Virus Total: 简单,高效的恶意文件分析识别网站

接下来,就是我们的正题: 如何将外挂等工具与木马病毒区分开来

当然,如果你是卡巴斯基用户…只需要右键一下…

image-20221121074133901.png

咳咳,跑题了,先放链接: Virus Total

打开上面的链接,你会看到这样的页面

image-20221121055646500.png

OK, 这就是我们的主角了,具体它是什么网站感兴趣的可以自行查询

主页很简单,点击 Choose file 按钮或者将文件拖拽到中间的图标上[参考下图]即可上传文件进行分析

image-20221121060717496.png

拖拽上去之后,如果你的文件从来没有人上传过,会弹出一个窗口要求你确认上传[参考下图],点击中间的 Confirm upload 按钮即可上传。 请注意,你所上传的文件,对于专业的安全研究人员来说,是可以下载的,请不要上传涉及机密以及个人隐私的文件

image-20221121061919925.png

新的文件可能需要一些时间来扫描,等扫描结束之后,我们即可看到结果页面,大概长下面这样

image-20221121062540403.png

首先,最主要的部分就是文件安全概览部分,也就是下图中的部分

image-20221121063046747.png

左边的圆环 [图中标有 1 的方框] 代表着有多少杀毒软件认为这个文件是带有恶意的,在这张图中,总共有70个杀毒软件对文件进行了扫描,其中有0个杀毒软件将其汇报为恶意

圆环的下方 [图中标有 2 的方框] 代表有多少VT的用户认为这个文件是恶意或者善意的,图中只有我自己投了一票,所以上面的评分是问号。这个评分是个人就能投,目前对于恶意刷票是否有惩罚我没有了解,所以它并不能权威的表示这个文件具体的行为,但是具有一定的参考价值

在整体靠右的位置 [图中标有 3 的方框],代表这个文件第一次上传是什么时候,可以看到我选择的文件在五天前第一次被上传,通常来说,较旧的文件(大于半年)的结果是比较准确的,因为不明确的文件大概率都被各大安全公司已经拖回去手动分析过了,而较新的文件可能存在漏检的问题,因为病毒也会尝试新的技术来躲避杀毒软件的追踪

继续向下看,就可以看到几个分页 [见下图],点击任意标题即可跳转到对应的页,四个标签分别对应着 **杀毒软件检测结果 [图中标有1的方框]文件详情 [图中标有2的方框]该文件的行为(就是他执行之后干了啥) [图中标有3的方框]社区评分的详情 [图中标有4的方框,对应上一张图的2号框]**,

image-20221121064229727.png

其中,我们在 杀毒软件检测结果 页中,主要关注 如果杀毒软件报毒,那么杀毒软件认为他是个什么东西,即下图中红色字体的部分 (下图中,为了演示我换了一个报毒的样本)

image-20221121065913636.png

而另外几个标签页,则会结合杀毒软件检测结果中的信息综合使用,详见下文

在接下来的文章中,我会选择四类文件进行分析,分别是 完全可信的文件, 大概率可信的文件, 有疑点但是也许可信的文件, 大概率不可信的文件,并向大家指出如何区分它们.

01–3 典型的完全可信文件

这一部分最为简单,一个典型的白名单文件应该做到什么呢?代码透明,没有恶意行为,有可信任的文件发布者,满足这点即可放心的使用

在这里,我使用了自己的 EV 证书签名了一个来自 Google Android Platform Tools 的文件,并将其上传至 Virus Total,可以点击这个链接 查看

对于这个文件,72个杀毒软件对其进行了测试,其中有0个杀毒软件将其标记为了病毒

同时我们点击文件详情(忘了在哪里?回去看看吧 XD), 向下拖,可以看到有一个叫做签名信息的区域,其中有一行带有绿色对勾的 Signed file, valid signature , 表明该文件经过了数字签名(什么是数字签名? 点这里 或者 点这里 查看科普),同时该文件的签名人持有的是EV证书(什么是EV证书? 点这里查看科普) 所以该文件大概率是可信的. [见下图]

image-20221121071645358.png

01–4 大概率可信的文件

这里我们选择了一个来自 Github 的文件,其报告可以从 这里 查看,大部分情况下,我们使用的一些小工具并没有进行数字签名(贵啊!),不过相对来说,还是比较好区分的

首先,没有任何杀毒软件对其报毒,这很好,其次,虽然它没有签名,但是他也没有任何的异常行为(见下图红框),所以我们认为他是可信的

image-20221121081224780.png

01–5 有疑点但是也许可信的文件

接下来,也就是本文的重点难点,怎么样区分误报和真正的恶意软件

在阅读以下文本之前,强烈建议你先看看 来自卡巴斯基的恶意软件科普及命名简介

首先,先回顾一个问题: 为什么会有误报发生? 是因为某些软件(外挂, 破解器)的行为和病毒实在是太像了,导致杀毒软件不能准确的识别

另一个方面,误报通常发生在用户使用量较小的杀毒软件上,这很好理解,因为用户量大的杀毒软件通常都针对误报做了足够好的优化,一般我认为在 ESET-​NOD32, Avast, Comodo, BitDefender, Kaspersky, SymantecMicrosoft, Rising, Tencent 算是大厂,因为他们的用户量比较大

最后,误报通常都 会显示出有意义的病毒种类信息,因为杀毒软件只是因为不认识或者怀疑而报毒,而并不是因为识别出了具体的行为

拿风灵月影 举个例子

image-20221121175252340.png

虽然有22个杀毒软件认为他不是好东西,但是大家都基本可以认出来他是 GameHack, 3DMGAME Trainer, 而上面的大厂列表中,最严重的是 ComodoApplicUnwnt , 也就是说本身不是恶意, 也许只是对你没有啥用的软件,所以虽然他看起来很多报毒,但是实际上并没有啥大问题

再换个例子,另外一款游戏修改器

image-20221121175921201.png

只有四款杀毒软件认为其有恶意,其中 Symantec 的报毒原因是来源于机器学习 … 总之,IDS也没有啥严重的规则命中,我们也基本可以信任它。

接下来我们上点难度,用非外挂软件 举个例子 , 这个链接中的样本有 9 /​67 的杀毒软件认为他是病毒

image-20221121150827935.png

我们先看,其中有三款杀毒软件将文件简单的将文件标为 Malicious(恶意),针对这个结果,我们等下看

有三款杀毒软件明确的告诉我们,他们只是怀疑这个程序,分别是 ESET-​NOD32A Variant Of Win64/Packed.VMProtect.J Suspicious(使用了加壳工具VMProtect的可疑程序)SentinelOne (Static ML)Static AI — Suspicious PE (可疑的PE文件)SophosGeneric ML PUA (PUA) (PUA: 不需要的软件,也许是垃圾软件)

当然了,有的朋友肯定要说了,你知道他们代表的是啥,我又不知道啊!首先,我们可以尝试搜索 报毒的杀毒软件名 <空格> 汇报的病毒名称,例如我们搜索 Sophos Generic ML PUA (PUA) 搜索引擎会给我们以下的结果

image-20221121153456704.png

这次很幸运,头两个结果将会把我们带到杀毒软件的官方文档,点击进去 会看到杀毒软件将其描述为 潜在有害应用程序 (PUA) 是一个术语,用于描述虽然不是恶意的,但通常被认为不适合业务网络的应用程序,也就是说通常不包含恶意

SentinelOne 的汇报则简单明了,直接说明了是可疑的文件,我们先跳过不管

ESET-​NOD32 的情况则稍微有一些复杂,我们的搜索结果大概长这样

image-20221121154204253.png

我们通过阅读开始的几篇文章 不是卖软件 的文章即可了解并推断,这种误报是相当常见的

接下来,我们继续查看最后的几款杀毒软件,在互联网上搜索,发现针对 Trojan.Malware.300983.susgen 的反馈大多是误报,Trojan.Heur!.02292022 几乎没有有用的信息,Generic.mg.6a3cf94332d7fa61 更是几乎没有关联的网页

最后我们看看大厂,在 ESET-​NOD32, Avast, Comodo, BitDefender, Kaspersky, Microsoft, Rising, Tencent 中,只有一家汇报了风险,而且是怀疑,所以这个文件大概率没有问题

总结一下,如果大家都认为一个样本属于 GameHack, PUA, HACKTOOL 之类的标签,那么他大概率是没啥问题的,如果一些软件为了防止破解加了很重的保护,那么大概率也是误报,最终可以依据 ESET-​NOD32, Avast, Comodo, BitDefender, Kaspersky, SymantecMicrosoft, Rising, Tencent 的报告做出决定,如果他们都觉得没啥事,那大概率是误报,但是如果他们中有 两个及以上 认为这个程序有害,那大概率就是真的有问题

01–6 正儿八经的恶意程序

接下来我给大家看看正经的恶意程序长啥样

安卓偷照片的勒索病毒

image-20221121181731669.png

Kaspersky, ESET-​NOD32, AvastBitDefender 均准确的识别出这是 Spy Trojan(窃取信息的木马)

Windows下面的远程控制木马

image-20221121182052440.png

这还用说?满脸都是”我是木马”

总之,基本卡巴斯基(Kaspersky)报毒,他就真的是毒,所以卡巴红了就…别用了

本篇到这里就写完了,下一篇教大家,如果真的很想用,那么应该怎么搭建一个安全的环境

我很少写这样基础向的文章,如果有什么问题可以联系我,例如推特 @VeroFess

下次见!



没有评论: