在线查毒工具 VirusTotal
在线查毒工具 VirusTotal
★(高级话题)攻击者如何利用 VirusTotal?——【高风险人士】须知
(这个章节写给【高风险人士】;如果你不属于这类人,本章节可以不用看)
最近10年,俺写了很多信息安全的博文,读者里面也有一些安全领域的高端人士。如果只聊前面那些扫盲性质的话题,显然不能满足这类读者的胃口。
为了避免被这些高端读者吐槽,俺在本文的末尾,聊一点稍微“阳春白雪”的话题——主要是针对【高危人士】的经验。
◇何为“高风险人士/高危人士”?
俺所说的“高风险人士/高危人士”,换个说法就是“高价值目标”。因为当你的价值高,攻击者如果搞定你的“数字资产”(PC、手机、帐号...),收获会很大。因此,“高价值目标”所面临的【攻击力度】会远远大于普通网民。其“高风险”就来自于此。
很多人【误以为】“高价值目标”就是“技术高手”。其实不然!“高价值目标”不一定是“技术高手”;反之“技术高手”也不一定是“高价值目标”(关于这个误解,俺曾经在某篇博文中澄清过)
比如说某些处于关键岗位的政府官员,不一定是技术高手,但属于高价值目标;同理,某个重要公司中处于关键岗位的人,也是这种情况。
◇站在攻击者的角度思考
在去年(2019)那篇《如何【系统性学习】——从“媒介形态”聊到“DIKW 模型”》,俺特地强调了【换位思考】的重要性。在信息安全领域,不论你处于“攻/防”的哪一边,你都需要换位思考(关于这点,俺在评论区与读者交流时,也强调过)
当你想要提升【安全防范】,你就需要站在攻击者的角度思考问题。既然今天聊得是 VirusTotal 的话题,你需要知道——攻击者如何利用 VirusTotal 来辅助攻击?
在俺聊之前,建议你自己先琢磨一下(这可是个锻炼思维能力的机会哦)
给
你
一
柱
香
的
时
间
思
考
这
个
问
题
,
先
别
急
着
往
下
翻
页
:)
◇攻击者利用 VirusTotal,检验自己的“数字化军火”
这是最容易想到的一招。
如果你是一个攻击者,你想发一个木马给某个重要目标。你当然希望【一击得手】。而要提高成功率,就要确保自己发过去的木马,不会被对方的杀毒软件检测出来。因此,攻击者很容易想到——先用 VirusTotal 检查一下自己制作的木马。
一个高级的攻击者(或攻击者团队),肯定具备编程能力(开发软件的能力)。因此,他们可以自己开发一个木马。开发完成后,先用 VirusTotal 查毒;如果被查出来,就继续完善,然后再用 VT 查;如此循环多次,一直完善到 VT 彻底查不出。
当然啦,要让 VT 完全查不出某个木马,攻击者(攻击团队)需要牛逼到一定程度。这样的攻击者(攻击团队)肯定存在;而且这样的攻击者(团队),通常【不】屑于攻击普通网民(因为价值不够高)。他们要攻击的,肯定是【高价值目标】。
这种玩法并【不是】俺个人的臆想,著名的《Wired》(连线杂志)曾经发过一篇报道(如下),就提到了俺刚才那个玩法。
《A Google Site Meant to Protect You Is Helping Hackers Attack You @ Wired》
那么,VirusTotal 方面如何知道攻击者在利用 VT 进行测试捏?因为 VT 的数据库,除了会保存上传的文件,还会保存上传者的“公网 IP”,以及其它一些信息(这也就回答了俺在前面章节提及的“隐私问题”)
请允许俺稍微跑题一下:
上述文章提到说:某些国家级骇客(比如天朝的御用骇客)会使用【相同的公网 IP】,多次往 VirusTotal 提交包含恶意代码的文件。这种行为显然是攻击者(攻击团队)在拿 VirusTotal 进行测试。因为普通人偶尔才会碰到恶意代码,因此【频繁】提交含有恶意代码的文件,这种可能性【几乎不存在】。
看到这里,俺猜测某些读者会纳闷了:那些国家级的骇客团队,难道不使用【代理】吗?
俺之所以跑题,想聊的就是这个——
多年前曾经发过一篇《每周转载:天朝【御用骇客】是如何暴露的?》,其中涉及到天朝的【军方骇客团队】(番号:61398部队,隶属总参三部二局),他们也是因为一些低级失误(公网 IP、帐号关联性、等等) 而暴露身份。说明这种失误【不是】个例。而且,不光天朝的御用骇客出现过这种失误,其它国家也出现过。
那么,为啥“国家队”会出现这种低级失误捏?关键在于【心态】——
御用骇客是“体制内的人/政府的人”,他们【不用】担心身份暴露的风险。因此,在“隐藏踪迹”方面比较容易松懈(毕竟,人都是有惰性滴)。
相比之下,【民间】的攻击者,暴露身份的代价就很高(比如坐牢)。因此,他们就有更强的动力去做“隐藏踪迹”的措施。俺本人为啥要在【防范】方面花很多精力,原因也在于此。
引申阅读:《为啥朝廷总抓不到俺——十年反党活动的安全经验汇总》
◇攻击者利用 VirusTotal,判断目标的防范意识
咱们天朝有句老话叫做【知己知彼】。如果你是一个攻击者,你当然想要知道:攻击目标的【安全防范意识】。
由于 VirusTotal 的用户群已经非常大,很多安全防范意识较高的人,都会利用它扫描文件或网站。如果目标人士有“经常使用 VT”的习惯,能在某种程度上反映此人的安全意识。
为了判断对方是否习惯于使用 VT,你可以先用某种方式(邮件、IM、等)让对方得到一个【完全无害】的文件,并且该文件是【全新】滴。所谓的【全新】意味着——在这之前,不可能有人在 VT 上提交过相同的文件。如果你的攻击目标在得到该文件之后,上传到 VT 进行扫描,就会在 VT 上留下一个【扫描历史】。你作为攻击者,只要定期去 VT 查询该文件的散列值,就能判断出:对方拿到该文件之后,有没有提交到 VT 进行扫描。从而判断出:对方的“安全防范意识”是否足够高。
◇ 攻击者利用 VirusTotal,让目标放松警惕
前面聊的2招,都是针对“文件扫描”。接着再来谈谈“网站扫描”。
普通网民使用 VirusTotal 扫描某个网址(URL),主要是担心该 URL 对应的网站存在“挂马”的风险。
如果你是一个攻击者,你搭建了一个网站进行【挂马攻击】。你当然要考虑到,你的攻击目标可能会用 VirusTotal 检测你发过去的网址。
那么,一个足够高明的攻击者(攻击团队)会怎么做捏?其实很简单!
VirusTotal 要检测某个网址(URL),当然先要获取该网站的网页内容。这个过程就类似于“搜索引擎的爬虫”。
因此,那些高明的攻击者(攻击团队)在搭建好挂马的服务器之后,但【还没】放木马之前,自己先把这个服务器的网址提交到 VT 进行检测。一旦提交,VT 的网页爬虫马上就会来抓取该服务器的网页。于是,攻击者(攻击团队)就可以在服务器上分析“VT 网页爬虫的行为”——
比如说:“VT 网页爬虫”使用的公网 IP 是啥?(只要测试足够多次,就能汇总 VT 公司使用的【所有】公网 IP)
比如说:“VT 网页爬虫”解析网页的行为与真实浏览器的解析行为,有哪些差异?
比如说:“VT 网页爬虫”内置的“JS 引擎”(JS VM)与真实浏览器的“JS 引擎”,有啥区别?
......
当攻击者(攻击团队)收集了足够多“VT 爬虫的特征”,他们就可以在自己的服务器上进行【区别对待】——如果判断出访问者是“VT 爬虫”,就显示【完全无害】的网页内容;反之,如果是正常的用户浏览器,就推送木马,使之中招。
此招数的奥妙在于——就算受害者的防范意识比较【强】,先用 VT 检查收到的网址,VT 也会报告说“一切 OK”。从而使得那些防范意识较强的目标,也放松警惕。
◇小结
针对上述介绍,俺稍微总结一下:
(如果你是高价值目标),【不要】过于相信 VT 关于“无毒”的检测结果。
但反过来,如果 VT 上有【足够多引擎】报毒,那么这个结论肯定是可信滴(真实阳性)。
简而言之,(如果你是高价值目标)VT 可以帮你确诊,但无法帮你排除。
◇高价值目标的应对措施
下面这些措施,主要针对“高价值目标”;普通网民姑且听之,不要因此而受到惊吓 :)
如果 VT 的结果不够可信(无法帮你排除),那咋办捏?
对于【文件】
当你得到一个可疑的文件,而且因为某种原因,你又需要打开/运行该文件。那么,在一个【专用】且【网络隔离】的虚拟机中进行,会比较保险。(没玩过虚拟机的同学,可以先看《扫盲操作系统虚拟机》系列教程)
某些安全要求非常高的同学,可能还会担心“虚拟机穿透”的危险;这些同学可以去玩【物理隔离】这招——专门用一个独立且【网络隔离】的电脑,来打开那些来历不明的文件(关于【物理隔离】,可以参考《如何防止黑客入侵》系列教程的其中一篇)
由于这台电脑是【网络隔离】,你可以用【U盘】在两台电脑之间搬运数据。当然啦,每次都这么干,会有点麻烦。但为了“安全性”,有时候麻烦一点也值得。
对于【网址】
如果别人发给你一个网址,即使你已经用 VT 扫描过,依然要在一个【隔离】的浏览器环境中打开。
浏览器的隔离,分如下几个档次:
基于【浏览器实例】(Profile)的隔离
基于【操作系统用户】(OS User)的隔离
基于【虚拟系统】(Guest OS)的隔离
基于【物理系统】(Host OS)的隔离
越前面的档次,隔离性越差,但更方便;越后面的档次,隔离性越好,但更麻烦。这方面的详细教程,参见《如何保护隐私》系列的其中一篇。
评论
发表评论