Discordのアンチヌークボットは、サーバーの監査ログで破壊的な操作(大量BAN、キック、チャンネルやロールの削除)が短時間に集中していないかを監視します。1つのアカウントが短いウィンドウ内で上限を超えると、そのアカウントをタイムアウト、キック、またはBANし、アラートを投稿します。最初の数回の操作を取り消すことはできませんが、「90秒でサーバーを丸ごと失った」という事態を、「チャンネルを2つ失い、管理者1人がタイムアウトされた」という程度に抑えられます。このガイドでは、ヌークとは何か、検知の仕組み、設定すべき制限、そしてその後の対応を説明します。

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

サーバーのヌークとは

ヌークとは、高い権限を持つアカウントがその権限を使い、できるだけ速くサーバーを破壊することです。すべてのチャンネルを削除し、すべてのロールを削除し、すべてのメンバーをBANし、残ったものの名前を変えます。スクリプトを使えば数秒で完了します。攻撃者がまったくの第三者であることはほとんどありません。フィッシングの被害に遭ったスタッフ、不満を抱えたモデレーター、必要以上の権限を持つボット、あるいは数か月前に管理者権限を与えられて忘れ去られた代替アカウントなどです。

この最後の点は防御において重要です。認証やスパム対策は、外部の人間や階層の下位にいる人間から守るためのものです。アンチヌークは、すでに上位にいる人間から守るためのものです。

検知の仕組み

Discordは、ボットに対して「ユーザーXがチャンネルを削除した」とは伝えません。実行者の情報を含まないチャンネル削除イベントを送ってくるだけです。誰が実行したかを知るために、ボットはサーバーの監査ログを読み取ります。監査ログには、管理操作ごとの実行者が記録されています。だからこそ、すべてのアンチヌークボットには「監査ログの表示」権限が必要であり、監査ログが推測ではなく検知の根拠になるのです。

Noxyrのアンチヌークは、監査ログを通じて4種類の操作を追跡します。

  • チャンネルの削除
  • ロールの削除
  • メンバーのBAN
  • メンバーのキック

各操作は実行者に紐づけられ、スライディングウィンドウ内でカウントされます。同じ実行者が、ウィンドウ内で設定された回数を超えると、ボットは設定された処分を適用し、何が起きたかを記録します。サーバーオーナーによる操作はカウントされず、ボットアカウントによる操作もカウントされません。この制限については後述します。

制限の設定

Noxyrのデフォルトは、30秒間に3回の破壊的操作で、対応として60分のタイムアウトが適用されます。すべての設定は/security antinuke、またはダッシュボードのセキュリティページから変更できます。

  • max_actions:ボットが反応するまでに、1つのアカウントがウィンドウ内で実行してよい追跡対象操作の回数です。3回が妥当な下限です。実際の管理者がカテゴリーを整理する際に、チャンネルを2つ素早く削除することはあるでしょうから、そのような操作でタイムアウトさせたくはないはずです。
  • window_seconds:ウィンドウの長さです。ヌークは素早く行われるため、30〜60秒であればそれを捕捉しつつ、通常の管理作業の余地も残せます。
  • action:タイムアウト、キック、BAN、またはログのみから選べます。タイムアウトは元に戻せ、操作を続ける能力を奪えるため、最も安全なデフォルトです。BANは最も強力ですが、共同オーナーを誤検知した場合の被害は大きくなります。
  • timeout_minutes:処分がタイムアウトの場合に、その期間の長さを設定します。

不安がある場合は、まず1日「ログのみ」から始めてください。ボットが誰にも手を出さずに、何が発動していたかを正確に確認できます。

信頼ユーザーとロール

正当な理由で大量に削除するアカウントもあります。チャンネル構成を組み直している共同オーナーや、一時的なボイスチャンネルに使っているボットなどです。/security trustを使うと、ユーザーまたはロールをアンチヌークの対象外にでき、/security untrustで対象外を解除できます。リストは短く保ってください。信頼されたアカウントは、ボットではそのアカウントが乗っ取られても止められないアカウントです。ですから、率直なルールは、サーバーを任せてもよいと思う人だけを信頼し、それ以外の誰も信頼しないことです。

ボットアカウントについての注意点です。Noxyrは他のボットによる操作をカウントしません。これは意図的な設計です。ボットは通常の機能の一部として、チャンネルを作成したり削除したりするからです。しかしこれは、悪意のある、あるいは乗っ取られたボットがアンチヌークの対象外になることを意味します。「チャンネルの管理」「ロールの管理」「メンバーのBAN」の権限を持つボットを監査し、必要のないものは取り除いてください。レイド対策ガイドには、権限のチェックリストがあります。

発動時に起きること

  • 実行者には、設定された処分が適用されます。タイムアウト、キック、またはBANです。
  • ログチャンネルに、実行者、操作の種類、ウィンドウ内の回数、適用された対応を示すアラートの埋め込みが届きます。
  • ウィンドウはリセットされるため、別のアカウントによる2回目の集中操作は、個別に追跡されます。

これらに頼る前に、ログチャンネルを設定してください。ログチャンネルがなくてもボットは対応しますが、タイムアウトを説明したり、何が削除されたのかを再構築したりするための記録がありません。セキュリティ設定と操作手順はセキュリティのドキュメントとチュートリアルにあります。

復旧:アンチヌークにできないこと

アンチヌークボットがサーバーを元に戻すことはありません。制限を超えた時点で、それ以前の操作はすでに起きています。そしてDiscordには、チャンネルやロールを復元する機能がありません。復旧はあなたの仕事であり、事前に準備しておけば格段に楽になります。

  • サーバーテンプレートを保存しておく。サーバー設定では、チャンネルとロールの構成からテンプレートを生成できます。大きなレイアウト変更の後には更新しておきましょう。メッセージは復元されませんが、骨組みは1分で戻せます。
  • 重要なものは別の場所にも書き出しておく。Discord外に保存されたチケットのトランスクリプト、請求書、レビューは、ヌークを生き延びます。Noxyrはトランスクリプトと請求書の記録を独自のデータベースに保存しており、請求書のバックアップも可能です。
  • 一括でBANを解除する。メンバーがBANされていた場合、サーバー設定からBANリストを消去できます。手間はかかりますが、対応は可能です。
  • アクセス権を見直す。厳密には必要のないすべてのロールから管理者権限を外し、安全設定でモデレーション操作に2段階認証を必須にしてください。

アンチヌークボットの選び方

専用のセキュリティボット(Wick、Beemo、Security Botなど)は、より深く踏み込みます。追跡する操作の種類が多かったり、参加によるレイドのヒューリスティックを備えていたり、プレミアム購読者向けに部分的なロールバックを提供していたりします。ボットに求める機能がセキュリティだけで、料金を払う意思がある場合は、検討する価値があります。セキュリティボットの比較では、これらを公平に紹介しています。Noxyrの強みは、アンチヌーク、アンチスパム、認証、ログチャンネルがすべて無料で、チケットやストアと同じダッシュボードから設定できることです。そのため、サーバーに危険な権限を持つボットが1つ減ります。セキュリティボットのページに、含まれる機能の一覧があります。

よくある質問

アンチヌークはデフォルトでオンになっていますか?Noxyrのセキュリティモジュールはオンですが、アンチヌーク自体は無効の状態で始まります。そのため、ボットが予告なしに管理者を処分することはありません。/security antinuke enabled:True、またはダッシュボードから有効にしてください。

チャンネルを整理した共同オーナーをタイムアウトさせてしまいますか?ウィンドウ内で上限を超えた場合にのみ、タイムアウトされます。大量の作業を定期的に行う場合は、/security trustで追加してください。

ボットには管理者権限が必要ですか?実行者を検知するには「監査ログの表示」が、対応するには「メンバーのタイムアウト」「キック」または「BAN」が必要です。管理者権限は、問題のあるアカウントに確実に対応できるようにする最も簡単な方法です。また、ボットのロールは、対応に必要なロールより上に配置されていなければなりません。

アンチヌークで削除されたチャンネルを復元できますか?できません。Discordにもできません。サーバーテンプレートを保存しておき、アンチヌークは被害の抑制策として考えてください。

サーバーオーナーの場合はどうなりますか?オーナーには決して処分が適用されません。オーナーのアカウントが乗っ取られた場合は、Discordのサポートに連絡してください。その場面でボットが手助けできることはありません。