对攻击者来说,投递的难点不在于写出载荷,而在于让人把它跑起来。在流媒体站点上,这个难题靠场景解决了:一个本来就在想办法让视频播起来的访客,会接受一个关于「它为什么播不了」的解释。

下面几乎每一种伪装,都是这一招的变体。相应的对策说起来简单,破起来很难:**没有哪个流媒体站点需要你安装、解压或粘贴任何东西才能播视频。**现代浏览器原生就能解码标准视频。任何说法相反的页面都在撒谎,而谎话的具体措辞并不重要。

常见的伪装有哪些?

流传的东西里,大部分能归到七种形态。

伪装 它的说法 它实际上是什么 破绽
缺解码器 「安装这个解码包才能看高清」 一个安装程序,通常是捆绑广告软件或加载器 浏览器原生解码 H.264 已经十几年了
播放器更新 「你的播放器版本太旧」 同上,只是做成了站点自己界面的样子 网页上根本没有播放器可更新
浏览器更新 一个模仿你浏览器更新界面的页面,还会按 user agent 对号入座 一个可执行文件 浏览器自己更新,绝不会从某个网站更新
假验证码 「验证你是真人:按 Win+R,粘贴这段」 你亲手运行了攻击者的命令 没有哪个验证系统会让你去用命令行
下载助手 「装个应用,播得更快」 一个带持久化的安装程序 不装它站点照样能用
字幕或压缩包 视频旁边配一个 .srt.zip.rar 里面是脚本或可执行文件 扩展名和压缩包内容跟描述很少对得上
有签名的安装程序 一个确实做过代码签名的安装程序 签名是真的,但证书是被滥用或被盗的 有效签名证明的是谁签的,不是它安全

假验证码这一类——有时候被叫做「粘贴并运行」——值得单独留意,因为它把基于文件的防御整个绕开了。页面把一段命令塞进你的剪贴板,再以验证为借口让你粘贴到运行对话框或终端里。全程没有文件被下载,所以下载信誉检查和很多扫描器根本不会被触发。互联网上没有任何正经东西曾经要求你这么做。

文件名是怎么藏住一个文件的真身的?

靠的是大多数系统默认隐藏扩展名这件事。

手法 看上去是 实际上是
双扩展名 video.mp4.exe 一个可执行文件,在隐藏扩展名时显示成 video.mp4
快捷方式文件 movie.mkv.lnk 一个会执行命令的快捷方式
伪装成媒体的脚本 episode.mp4.js 一个系统会去执行的脚本
安装程序冒充 codec_setup.msi 一个安装程序,跟标签写的一模一样——标签本身就是伪装
从右到左覆盖符 videoexe.mp4 字符被一个不可见的控制字符倒置了
加密压缩包 film.zip,密码写在页面上 不解开就没法扫描内容

第一件该做的事是改个设置:在 Windows 资源管理器或 macOS 访达里打开扩展名显示。它不花任何成本,却能把上面这张表永久废掉一半。

加密压缩包是一种刻意的反扫描手段。任何下载如果附带一个写在页面文字里的密码,就是在让你绕过自己的杀毒软件,而一个公开下载没有任何正当理由要这样加密。

打开一个下载文件之前该怎么检查?

一套很短的流程,按有用程度排序。

检查项 它能拦下什么
打开扩展名显示,然后看真正的那个扩展名 双扩展名和脚本文件
把文件大小跟它宣称的东西对一下 一部 3 MB 的「1080p 电影」不是电影
用多引擎服务扫一遍 已知样本;新鲜出炉的经常混过去
检查数字签名 没签名的安装程序,或者签名者是家毫不相干的公司
留意它是不是要管理员权限 媒体文件从来不需要提权
不要关掉 SmartScreen 或 Gatekeeper 这些警告存在的意义就是为了这种情况

这一切底下的那条规矩是:你要判断的不是这个文件看起来安不安全,而是你究竟有没有任何理由去下载一个可执行文件。在一个流媒体页面上,答案是没有,而这个答案的可靠程度是扫描结果达不到的。

如果已经运行了,该怎么办?

先按凭据失窃来处理。如今泛滥的商品化恶意软件绝大多数是窃密型的,它的第一个动作通常就是复制浏览器 cookie、保存的密码和会话令牌——这也是为什么在中招的机器上改密码等于白改。

步骤 原因
1. 断开网络 阻止继续外传数据和接收远程指令
2. 到一台另外的、干净的设备上改密码 被控设备可能正在记录你敲的每一个字
3. 把重要账号的所有会话都登出 被偷走的会话令牌在改密码之后照样有效
4. 检查有没有新增的浏览器扩展和配置文件 一种常见的持久化手段
5. 检查启动项和计划任务 另一种常见的持久化手段
6. 用可引导介质做一次离线扫描 活跃的感染会干扰在系统内运行的扫描器
7. 凡是存过支付或身份数据的机器,重装系统 一旦有代码以你的权限跑过,这是唯一可靠的处置

第 2 步是最常被做错顺序的,第 3 步是最常被整个跳过的。一个在你改动任何东西之前就被导出的会话令牌,会一直有效,直到账号明确把它作废为止。

相关问题