恶意软件越来越多地针对 Discord 进行滥用

2021-07-23 23:10:20

传播和管理恶意软件的威胁行为者长期以来一直滥用合法的在线服务。正如我们在调查恶意软件使用 TLS 时发现的那样,恶意软件产生的网络流量中有一半以上使用 TLS 加密,其中 20% 涉及恶意软件与合法在线服务通信。在该研究的时间范围内,我们发现 TLS 保护的恶意软件下载总量的 4% 来自一项特别是一项服务:Discord。以游戏为中心的文本和语音聊天平台的日益流行也引起了恶意软件运营商的注意。 Discord 运营着自己的内容交付网络(CDN),用户可以在其中上传文件与他人共享。该服务还发布了一个 API,使开发人员能够创建新的方式与 Discord 进行交互,而不是通过其客户端应用程序进行交互。我们观察到大量恶意软件托管在 Discord 自己的 CDN 中,以及与 Discord API 交互以发送和接收数据的恶意软件。几个密码劫持恶意软件系列专门针对 Discord 帐户。 SophosLabs 还发现恶意软件利用 Discord 聊天机器人 API 进行命令和控制,或将窃取的信息泄露到私有 Discord 服务器或渠道中。由于该服务的起源与在线游戏有关,因此 Discord 的受众包括大量游戏玩家,包括 Fortnite、Minecraft 或 Roblox 等面向青年的游戏玩家。在我们在 Discord 网络中发现的恶意文件中,我们发现了针对游戏中与 Discord 集成的游戏的游戏作弊工具。据称,这些工具利用 Discord 协议中的弱点,使一名玩家有可能使另一名玩家的游戏崩溃。我们还发现应用程序只不过是无害但具有破坏性的恶作剧。但我们发现的最大比例的恶意软件侧重于凭据和个人信息盗窃、各种窃取恶意软件以及更通用的 RAT。这些操作背后的威胁行为者利用社会工程来传播窃取凭证的恶意软件,然后使用受害者获得的 Discord 凭证来瞄准其他 Discord 用户。我们还遇到了托管在 Discord CDN 中的几个勒索软件系列——大部分是旧的,只能造成伤害,因为不再有支付赎金的方法。 Discord 上托管的文件还包括多个 Android 恶意软件包,从间谍软件到窃取财务信息或交易的虚假应用程序。

滥用 Discord 就像滥用任何基于 Web 的服务一样,并不是一种新现象,但它是一个快速增长的现象:Sophos 产品被检测到并被阻止,仅在过去两个月中,检测数量是同期的近 140 2020 年期间。4 月,我们向 Discord 代表报告了超过 9,500 个在 Discord 的 CDN 上托管恶意软件的唯一 URL。在第二季度,我们在 Discord 的 CDN 中检测到 17,000 个指向恶意软件的唯一 URL。这不包括未托管在 Discord 中的恶意软件,它们以各种方式利用 Discord 的应用程序接口。就在发布时间之前,这些 URL 中有超过 4,700 个指向恶意 Windows .exe 文件,仍然处于活动状态。这种增长的原因似乎很容易理解。 Discord 提供了一个持久的、高度可用的全球分发网络,恶意软件操作者可以利用它,以及一个可以轻松适应恶意软件命令和控制的消息传递 API——很像 Internet Relay Chat,以及最近的 Slack 和Telegram,已被用作C2频道。它还为诈骗者和恶意软件运营商提供了一个不断增长的、目标丰富的环境,以传播恶意代码,以通过社会工程窃取个人信息和凭据。一些 Discord 用户显然是出于恶意而不是为了经济利益寻求使用该平台来伤害他人的计算机。 Discord 并不是恶意软件分发者和诈骗者以任何方式滥用的唯一服务,该公司对删除请求做出了响应。但是 Discord 用户应该对服务上恶意内容的威胁保持警惕,并且防御者不应根据服务本身的合法性将来自云服务的任何流量视为本质上是“安全的”。使用最新的遥测数据,我们能够从这些 URL 中检索到数千个独特的恶意软件样本和 400 多个存档文件——这一计数并不代表整个恶意软件语料库,因为它不包括 Discord 删除的文件(或由最初上传它们的演员)。这些已向 Discord 披露,其中大部分已被删除;然而,新的恶意软件继续发布到 Discord 的 CDN 中,我们继续发现使用 Discord 作为命令和控制网络的恶意软件。 Discord 是一项基于云的服务,针对感兴趣社区内的大量文本和语音消息进行了优化。 Discord 从通过该平台提供的优质服务中获得收入,包括“服务器提升”,允许群组提高其服务器实例的实时流媒体和语音聊天的性能并添加自定义功能。

但是基本平台——包括对 Discord 应用程序编程接口 (API) 的访问——是免费的。 Discord 服务器,包括免费服务器,也可以配置为与第三方应用程序交互——将内容发布到服务器频道的机器人、提供构建在 Discord 之上的附加功能的应用程序以及直接连接到 Discord 消息平台的游戏。 Discord 的“服务器”是由 Cloudflare 前端的 Elixir Erlang 虚拟机的 Google Cloud 实例。服务器可以是公共的或私有的——服务器“所有者”可以要求个人加入服务器频道和访问内容的邀请密钥。除了消息和流路由,Discord 还充当所有类型数字内容的内容交付网络。在最简单的形式中,该内容是消息附件——由 Discord 用户上传到聊天或私人消息中的文件。 Discord 使用 Google Cloud Storage 来存储文件附件;一旦文件作为消息的一部分被上传,就可以通过代表存储对象地址的 URL 从网络上的任何地方访问它。与 Discord 的服务器实例一样,存储对象由 Cloudflare 前端处理。这种架构使 Discord 具有足够的可扩展性,可以处理其数亿活跃用户,并且能够抵御拒绝服务攻击——这是与游戏社区打交道的一个优势。它还使其成为恶意行为者滥用的理想平台。文件上传到 Discord 后,除非报告或删除,否则它们可以无限期保留。虽然 Discord 具有一些恶意软件筛选功能,但许多类型的恶意内容会在没有通知的情况下溜走。当用户被抓住时,他们可以烧毁他们的帐户并创建一个新帐户。 Discord 在很大程度上依赖于用户向警察滥用行为的报告。但是,当 Discord 架构用于仅限于不一定在 Discord 用户社区内的目标的活动时,它们可能不会被报告并持续数月。我们观察到从 Discord 的 CDN 部署恶意软件的主要方式之一是通过社交工程——使用聊天频道或私人消息发布带有欺骗性描述的文件或外部链接,以诱使他人下载并执行它们。我们发现了许多文件,其名称表明它们为游戏玩家提供了一些功能,其中一些实际上是:游戏作弊、声称能够解锁付费内容的游戏“增强”、许可证密钥生成器和绕过。但是,虽然有些实际上是广告宣传的内容,但其中绝大多数实际上是另一种黑客行为——旨在以一种或另一种形式窃取凭据。这些凭据窃取者中有很大一部分以 Discord 本身为目标。 Discord 令牌记录器窃取用于对 Discord 用户进行身份验证的 OAuth 令牌,以及其他凭据数据和系统信息,包括 Steam 和其他游戏平台的令牌。他们通过 webhook 连接将被盗的令牌“记录”回 Discord 频道,允许他们的操作员收集 OAuth 令牌并试图劫持对帐户的访问。

构建令牌记录器的学习曲线不是很陡峭。可以在 GitHub 上找到基于 Python 的概念验证令牌记录器,并且可以轻松地将其转换为定制的可执行文件,以便与恶意软件操作员选择的服务器进行通信。一个活跃的令牌记录器活动已经通过一个持续的社会工程骗局利用被盗帐户传播,要求用户测试正在开发的游戏。 “游戏”是一个类似于概念证明的编译后的 Python 脚本。一旦凭据被盗,它们通常被用来通过社会工程继续窃取其他凭据。令牌记录器还收集机器指纹数据,并尝试从目标机器上刮取其他 cookie 和凭证令牌,因此可能造成的损失不仅仅是帐户丢失。另一个被作者命名为 PirateMonsterInjector 的窃取者使用 Discord 自己的 API 将 Discord OAuth 令牌和其他被盗信息转储回私人 Discord 服务器聊天。它通过从包含 Discord API 代码的恶意网站 (monster[.]casa) 检索 JavaScript 并从与 Discord 和其他应用程序相关的系统中抓取数据来实现这一点。其他凭据窃取计划走得更远。几个恶意软件文件还提取了有效负载可执行文件和/或 DLL,然后他们将其用于更广泛的数据盗窃。文件中散布着许多被称为 Agent Tesla 的广泛使用的窃取恶意软件的副本。在一个示例中,传播感染的初始文件名为 PURCHASE_ORDER_1_1.exe。 Agent Tesla 恶意软件在其感染过程中下载有效载荷的情况并不少见,但意外地发现该有效载荷也托管在 DIscord 的 CDN 中。该恶意软件直接从 CDN 中拉取名为midnight.exe 的有效负载可执行文件并执行它。反过来,该有效载荷从另一个网站下载了一个名为 TextEditor.dll 的 DLL,并将其注入到正在运行的系统进程中。 (我们之前已经写过 Agent Tesla 的功能。)在另一个例子中,我们发现了 Minecraft 修改版的恶意安装程序。安装程序实际上确实提供了无处不在的创意积木游戏的完整版本,但有所不同。 Minecraft 安装程序伪装成具有称为 Saint 的特殊功能的“mod”,捆绑了一个 Java 应用程序,该应用程序能够从目标系统中捕获按键和屏幕截图,以及来自受感染计算机上的摄像头的图像。文件中的 Java 类清楚地表明了恶意软件的功能。

我们发现了许多使用文件名窃取恶意软件和后门信息的实例,表明它们被用作社会工程活动的一部分。一个名为 fortniat.exe 的文件,被宣传为“FortNite 的多工具”,实际上是一个恶意软件打包程序,它会投放一个 Meterpreter 后门。我们发现的另一个恶意软件样本将自己宣传为 Browzar 的安装程序,Browzar 是一个面向隐私的网络浏览器。但是,在安装浏览器的同时,它还删除了 Agent Tesla 信息窃取程序。还有一些文件声称安装了流行(但昂贵)商业软件的破解版,例如 Adob​​e Photoshop。当然,还有一些工具声称可以让用户访问 Discord Nitro(该服务的高级版)的付费功能。该集合中至少有 50 个文件被命名为暗示它们可以在属于未订阅 100 美元/年服务的用户的帐户上解锁 Discord Nitro 的功能,或者生成“礼品代码”以奖励1 个月的 Nitro 升级。许多工具将自己称为“氮”实用程序,是 Nitro 和“代码生成器”的串联。虽然一些文件生成的代码类似于用于将标准 Discord 帐户升级到 Discord Nitro 版本的代码,但大多数没有。其中一个示例删除了一个批处理脚本,该脚本试图删除注册表项并终止数十个端点安全工具的进程或服务。这个“antiav.bat”脚本在用户启动程序后立即从系统上的 %TEMP% 目录运行。同一个“nitrogen”实用程序的批处理脚本禁用了许多关键的 Windows 安全功能,Windows 提示用户重新启动计算机“关闭用户帐户控制”这一事实证明了这一点,该功能提示 Windows 用户允许应用程序以提升的权限运行。如果没有 UAC,可执行文件可以使用管理权限运行,而无需用户允许。许多程序使用各种方法来分析受感染的系统并生成他们试图上传到命令和控制服务器的数据文件。由于如此多的文件已存在数月,目标服务器没有响应,但我们可以观察到正在写入硬盘驱动器的分析数据。

除了对系统进行分析外,许多样本还试图检索浏览器“令牌”,这些令牌将允许其操作员使用受害者的帐户登录 Discord,或者安装了按键记录器组件来监视用户输入并试图将其传递给命令和控制服务器。大多数令牌窃取者未能从测试台检索令牌,因为 Discord Windows 应用程序使用了测试系统上用于 Discord 的唯一凭据;假受害者从未使用浏览器登录过该服务。在许多情况下,这些令牌值通过使用 Discord 自己的 API,通过对 Discord 上特定 URL 的 HTTPS POST 请求直接发送到其他 Discord 频道或用户帐户。有时,我们还会偶然发现一个恶意软件,它试图将数据发送到 Slack 上的一个频道。其中一些“令牌窃取者”恶意软件包括受害者的头像和他们面向公众的 IP 地址,他们使用 ifconfig.me、ipify.org、iplogger.com 或 wtfismyip.com 等服务检索到这些 IP 地址。这些更复杂的窃取者能够从 Discord 客户端应用程序中提取令牌,而不仅仅是浏览器。然后,窃取者会向特定的 Discord 频道 URL 生成格式良好的提交。一些窃取者试图直接从 Github 或 Pastebin 下载恶意的 Visual Basic 脚本文件。幸运的是,在这些情况下,这些站点已经锁定或删除了有效负载脚本,因此窃取者未能完成其任务。还有其他恶意软件通过 Discord 分发,标有与游戏相关的名称,显然只是为了损害他人的计算机。 O 一个标记为“Roblox_hack.exe”的文件实际上携带了 WinLock 勒索软件的变种,这是我们在 Discord 的 CDN 中发现的几种勒索软件变种之一。这种勒索软件不是加密文件,而是将受害者锁定在桌面环境之外。在 Discord 的 CDN 中也广泛出现的另一个屏幕锁恶意软件家族是 Somhoveran / LockScreen,它为赎金威胁增加了倒计时。 Somhoveran 使用 Windows Management Instrumentation 收集受影响系统的“指纹”,并在屏幕上显示其中的一些数据。

我们在 Discord 的 CDN 中发现了一个更令人讨厌的旧勒索软件样本:Petya,一种于 2016 年首次出现的加密勒索软件。由于 Petya 的 Tor 站点已死,目前尚不清楚此文件是否出于敲诈的意图共享它的目的是简单地禁用收件人的计算机。大多数反恶意软件产品(包括 Windows Defender)都会阻止 Petya,因此对于大多数 Windows 机器来说,这不仅仅是一种威胁,而是一种好奇心——但它仍然对较旧的计算机具有潜在危害,并且在确信它需要运行的人手中提高游戏性能。 Discord 的恶意软件问题不仅仅基于 Windows。通过遥测,我们发现了 58 个可以在 Android 设备上运行的独特恶意应用程序。其中包括许多以银行业为重点的恶意软件和间谍软件,如下面的 Sophos 检测所示: 在我们 90 天的遥测回顾中,我们在 Discord 域中发现了 205 个指向 Android .apk 可执行文件的 URL(具有指向重复文件的多个冗余链接) )。在向 Discord 报告列表后,该服务删除了这些文件,但几周后的后续查询显示,同时出现了更多文件。在发布之前可用的应用程序中有一个执行欺诈性广告点击的应用程序(归类为 Andr/Hiddad-P);在设备上投放其他恶意软件(Andr/Dropr-IC 和 Andr/Dropr-IO)的应用程序;允许远程攻击者访问受害者移动设备的后门,包括一个透明的 Metasploit 框架 Meterpreter(Andr/Bckdr-RXM 和 Andr/Spy-AZW);以及 Anubis 银行家木马 (Andr/Banker-GTV) 的副本,该木马拦截并将在线金融交易的凭据转发给犯罪分子。 Android 恶意软件文件的名称和图标可能会让人相信它们是合法的银行或游戏更新程序应用程序。其中一个应用程序似乎使用了 COVID-19 联系人跟踪应用程序的图标和名称。设备中生成了几个弹出窗口,要求用户将它们激活为“设备管理员”,这使应用程序几乎可以完全控制设备。与任何对开发人员友好的平台一样,这些功能也很容易被滥用。我们发现的恶意应用程序包括宣传为游戏作弊的应用程序——改变或影响游戏环境的程序。例如,“Conrado's FiveM Crasher”是托管在社区运行服务器上的侠盗猎车手多人游戏服务器的游戏作弊,它从 FiveM 与 Discord 的集成中提取数据,以在游戏中“崩溃”附近的玩家:

我们检索到的基于 Linux 的恶意档案之一是这个名为virus_de_prost_ce_esti.rar 的文件,它从原始的罗马尼亚语翻译成你是多么愚蠢的病毒。该档案的内容包括 11 个 ELF 二进制文件、7 个文本文件(包含一长串 IP 地址)以及一个以各种顺序执行它们的 Python 脚本。该软件包的目的是破坏游戏服务器,导致它们滞后或崩溃。 Python 脚本的内部评论表明它旨在攻击托管在两个平台上的服务器:Amazon 的 AWS 和 NFO Servers(为 MineCraft、Counter Strike、Battlefield、Medal of Honor 和其他多人游戏托管私人游戏服务器的服务)。 Discord 通过删除我们报告给他们的大部分恶意文件来回应我们的报告。根据一些通讯,该公司目前正在内部努力提升他们的安全状况。但该平台仍然是恶意软件的倾倒场。即使对于未托管在 Discord 上的恶意软件,Discord API 也是恶意命令和控制网络功能的沃土,这些功能将自身隐藏在 Discord 受 TLS 保护的网络流量中(以及服务声誉的背后)。虽然 Discord 上的一些恶意软件显然是专门用来禁用计算机或破坏游戏玩家访问他们选择的平台的能力,但信息窃取者、远程访问工具和其他犯罪恶意软件的盛行所带来的风险远远超出了游戏爱好者领域。随着越来越多的组织将 Discord 用作低成本协作平台,丢失 Discord 凭证可能造成的危害为组织打开了更多的威胁媒介。即使您家中或办公室中没有 Discord 用户,恶意软件运营商滥用 Discord 也会构成威胁。端点保护(以及企业级别的 TLS 检查)可以提供针对......的保护。