Discord 反破坏机器人会监视服务器审计日志中的集中破坏性操作(大规模封禁、踢出、删除频道或身份组)。当某个账号在短时间内超过限制时,机器人会对该账号进行禁言、踢出或封禁,并发出警报。它无法撤销最初几次操作,但能把“90 秒内丢掉整个服务器”的事件变成“丢失两个频道,一名管理员被禁言”。本指南说明什么是大规模破坏、检测如何运作、应设置哪些限制,以及事后该怎么做。

A shield absorbs a burst of ban attempts from an attacker while members stay protected. ! Members protected

什么是服务器大规模破坏

大规模破坏是指拥有较高权限的账号利用这些权限,尽可能快地摧毁服务器:删除每个频道、删除每个身份组、封禁每位成员,再给剩下的内容改名。用脚本操作只需几秒钟。攻击者几乎从来不是陌生人,而是被钓鱼的员工、心怀不满的版主、权限超出所需的机器人,或是几个月前被授予管理员权限、之后被遗忘的小号。

最后这一点对防御很重要。验证和反垃圾信息防范的是外部人员或处于层级底部的人。反大规模破坏防范的则是已经处于顶层的人。

检测如何运作

Discord 不会告诉机器人“用户 X 刚刚删除了一个频道”。它只会发出一个不带作者信息的频道删除事件。为了找出是谁做的,机器人会读取服务器审计日志,其中记录了每项管理操作的执行者。这就是为什么每个反破坏机器人都需要“查看审计日志”权限,也是为什么审计日志是检测依据,而不是猜测。

Noxyr 的反破坏功能通过审计日志跟踪四种操作类型:

  • 删除频道
  • 删除身份组
  • 封禁成员
  • 踢出成员

每项操作都会归属到其执行者,并在一个滚动时间窗口内计数。当同一执行者在窗口内超过设定的操作次数时,机器人会执行设定的处罚,并记录事件经过。服务器所有者的操作从不计数,机器人账号执行的操作也不计数;关于此限制的更多说明见下文。

设置限制

Noxyr 的默认值是30 秒内 3 次破坏性操作,机器人的响应是 60 分钟禁言。你可以使用 /security antinuke,或在控制面板的安全页面中修改所有这些设置:

  • max_actions:在时间窗口内,单个账号在机器人作出反应前最多可执行的被跟踪操作次数。3 次是比较合理的下限;一位正在重新整理分类的真正管理员可能会快速删除两个频道,你不希望因此禁言他。
  • window_seconds:时间窗口的长度。大规模破坏速度很快,因此 30 到 60 秒可以捕捉到它们,同时为正常的管理工作留出余地。
  • action:禁言、踢出、封禁,或仅记录。禁言是最安全的默认选项,因为它可以撤销,并能阻止对方继续操作。封禁力度最强,但如果误判了一位联合所有者,后果会很痛苦。
  • timeout_minutes:当处罚为禁言时,禁言持续的时长。

如果你感到不放心,可以先把“仅记录”运行一天。这样你能准确看到什么会触发机器人,而机器人不会对任何人采取行动。

受信任的用户和身份组

有些账号出于正当理由会批量删除内容:比如重新规划频道布局的联合所有者,或你用来管理临时语音频道的机器人。/security trust 可将某个用户或身份组排除在反破坏功能之外;/security untrust 则会取消这一豁免。名单应保持简短。每个受信任的账号,一旦被盗用,机器人都无法阻止,因此诚实的原则是:只信任你会把服务器交给的人,其他人一概不信任。

关于机器人账号的说明:Noxyr 不会统计其他机器人的操作。这是有意为之的(机器人在正常功能中经常会创建和删除频道),但这也意味着恶意或被盗用的机器人不在反破坏功能的覆盖范围之内。请审查哪些机器人拥有“管理频道”、“管理身份组”或“封禁成员”权限,并移除它们不需要的权限。突袭防护指南中有一份权限检查清单。

触发后会发生什么

  • 执行者会受到设定的处罚:禁言、踢出或封禁。
  • 一条警报嵌入消息会发送到你的日志频道,内容包括执行者、操作类型、时间窗口内的计数以及所采取的响应。
  • 时间窗口会重置,因此来自另一个账号的第二轮破坏会被单独跟踪。

在依赖以上任何功能之前,请先设置日志频道。没有日志频道,机器人仍会采取行动,但你将没有记录可用于解释某次禁言,或重建被删除的内容。安全设置和操作演示请参阅安全文档和教程。

恢复:反破坏功能做不到的事

没有任何反破坏机器人能够恢复你的服务器。等到超过限制时,之前的操作已经发生,而 Discord 对频道或身份组也不提供撤销删除的功能。恢复工作需要你自己完成,而如果你事先有所准备,会容易得多:

  • 保留服务器模板。服务器设置可以生成你的频道和身份组结构模板。在重大布局调整后请刷新它。它不会恢复消息,但能在一分钟内把框架恢复回来。
  • 把重要内容导出到别处。存放在 Discord 之外的工单记录、发票和评价,在大规模破坏后依然完好。Noxyr 将其记录和发票保存在自己的数据库中,并允许你备份发票。
  • 批量解除封禁。如果成员被封禁,可以在服务器设置中清空封禁列表。虽然繁琐,但可以完成。
  • 收回访问权限。从每个并非严格需要管理员权限的身份组中移除管理员权限,并在安全设置中要求管理操作启用两步验证。

如何选择反破坏机器人

专门的安全机器人(Wick、Beemo、Security Bot)功能更为深入:有些能跟踪更多操作类型,增加了加入突袭的启发式检测,或为高级订阅用户提供部分回滚功能。如果你只需要机器人提供安全功能,并且愿意付费,它们值得一看;我们的安全机器人对比对它们做了客观介绍。Noxyr 的优势在于,反破坏、反垃圾信息、验证和日志频道都是免费的,并且与工单和商店使用同一个控制面板进行设置,因此服务器中少了一个拥有危险权限的机器人。安全机器人页面列出了具体包含的功能。

常见问题

反破坏默认开启吗?Noxyr 的安全模块是开启的,但反破坏功能本身默认处于关闭状态,这样机器人就不会在你毫无准备时对管理员进行处理。你可以使用 /security antinuke enabled:True,或在控制面板中开启它。

如果我的联合所有者清理频道,机器人会禁言他吗?只有当他在时间窗口内超过限制时才会。如果他经常进行批量操作,请用 /security trust 将他添加到名单中。

机器人需要管理员权限吗?它需要“查看审计日志”权限来检测执行者,需要“管理成员”、“踢出成员”或“封禁成员”权限来做出响应。管理员权限是确保它能够处理违规账号的最简单方式;同时,机器人的身份组必须位于它需要处理的身份组之上。

反破坏能恢复被删除的频道吗?不能,Discord 也无法做到。请保留服务器模板,并把反破坏功能视为减少损失的手段。

服务器所有者呢?机器人从不对所有者采取行动。如果所有者账号被盗,请联系 Discord 支持;任何机器人在这种情况下都无能为力。