Discordサーバーがnukeされたら、まず被害を止めてください(侵害されたアカウントのロールをロックダウンするか削除します)。次に監査ログで誰が行ったかを確認し、テンプレートがあればそこからチャンネルとロールを再構築します。BANリストのBANを解除し、Discordには削除を取り消す機能がないので、消えたメッセージは諦めて受け入れます。これはnuke対策ボットがどうやって攻撃を検出するかという理論ではなく、実際の作業の順番です。その理論はアンチnukeガイドで扱っています。このガイドは、最初の1時間、最初の1日、そしてその後に実際に何をするかを説明します。

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

まず確認:本当に止まったか

ほかの作業に取りかかる前に、攻撃者がもう操作できないことを確認してください。アンチnukeボットが動いていれば、そのログチャンネルを確認します。アカウントがタイムアウト、キック、またはBANされたことが表示されているはずです。アンチnuke保護がない場合や、攻撃がボットの対象外のアカウントから来た場合(サーバー所有者のアカウントはアンチnukeの対象にできず、信頼リストにあるアカウントは意図的にスキップされます)は、手作業で行ってください。そのアカウントのロールを剥奪するか、キックします。侵害されたスタッフのアカウントだった場合は、その人にすぐDiscordのパスワードを変更させ、認証済みのアプリを確認させてください。nukeは、ランダムな攻撃ではなく、フィッシングで盗まれたトークンの最後の段階であることがとても多いのです。

何が起きたかを調べる:監査ログ

サーバー設定 → 監査ログには、チャンネルの削除、ロールの削除、BAN、キックのすべてが、実行したアカウントとタイムスタンプとともに記録されています。「誰が」「どれだけ」の正確な情報源です。何かを推測する前に、必ずこれを読んでください。侵害された管理者アカウントによるnukeは、権限を与えすぎたボットによるnukeと、その時点では見た目が同じだからです。セキュリティボットを運用している場合、そのログチャンネルには、何が対応を引き起こしたのか、いつだったのかが、より整理された形でまとめられていることが多いです。Discordのネイティブの監査ログを1件ずつたどるより、速く読めます。

再構築:戻せるものと戻せないもの

  • チャンネルとカテゴリ:サーバーテンプレートがなければ戻りません。サーバー設定 → サーバーテンプレートでは、いつでもチャンネルとロールの構成のスナップショットを生成できます。攻撃の前に作っておいてあれば、適用すれば1分ほどで骨組みが再構築されます。作っていない場合は、記憶やスクリーンショットを頼りに手作業でチャンネルを作り直すことになります。
  • ロールと権限:チャンネルと同じです。テンプレートが復元するのは構成であって、誰がどのロールに割り当てられていたかではありません。その後にロールを手作業で割り当て直すのが、最も時間のかかる作業です。
  • メッセージ:復元できません。Discordには、メッセージ内容をサーバー側で削除から戻す機能がありません。もし記録として重要だったもの(会話ではなく、サポート履歴、売上、レビュー)があった場合は、生のチャットメッセージ以外の場所に保存されていなかったか確認してください。Noxyrは、nukeでチャンネルと一緒に消えないように、インボイスとチケットのトランスクリプトを、独自のデータベースに保存しています。
  • BAN:攻撃者がメンバーを大量にBANしていた場合は、サーバー設定 → BANで一括して解除できます。手間はかかりますが、完全に復旧できます。BANはデータを壊すものではなく、再参加をブロックするだけです。
  • サーバーそのもの:nukeがどれほどひどくても、サーバーを削除したり、所有者を消したりするものではありません。常に復旧の作業であって、ゼロからの再構築が必要になることはありません。

空になったサーバーを見て知る前に、メンバーに伝える

突然チャンネルが3つだけになり、ロールがないサーバーは、その状況を見ていなかった人には、放置されたか、乗っ取られたように見えます。まだ残っているチャンネル(または最初に再構築するチャンネル)に、何が起きたかを1〜2文で書き、復旧中であることを投稿してください。沈黙は、「nukeされました。今直しています」という正直な一言よりも悪い印象を与えます。

落ち着いたら:本当の穴をふさぐ

nukeが起きたのは、あるアカウントが必要以上の権限を持っていて、それが侵害されたか、悪意に転じたからです。目の前の混乱を片づけるだけで、その原因を直さなければ、次の事件まで1件だけの距離になります。

  1. 管理者、チャンネルの管理、ロールの管理、メンバーのBANのいずれかの権限を持つロールをすべて監査してください。本当に必要ではない人からは、それを削除します。最小権限のロール設定ガイドを参照してください。
  2. サーバーのすべてのボットについて、同じ権限がないか確認してください。機能に必要な以上のアクセス権を持つボットは、侵害された管理者と同じ被害範囲を持つ、2つ目の攻撃対象です。
  3. オフになっていればアンチnukeとアンチスパムをオンにし、ログチャンネルを設定してください。次の事件は、起きないことが望ましいですが、起きたとしても最初の1秒から明確な記録が残るようにします。
  4. 物事が落ち着いている今のうちに、サーバーテンプレートを作成してください。次回の再構築が1日ではなく1分で済みます。
  5. 権限の高いロールを持つ人全員に、サーバー設定 → 安全設定で2段階認証を必須にしてください。

よくある質問

Discordのサポートで、nukeされたサーバーを復元してもらえますか?サーバーレベルの事件では、Discordは削除されたチャンネル、ロール、メッセージを復元しません。復旧はサーバー所有者の責任です。所有者本人のアカウントが侵害され、完全にロックアウトされた場合にのみ、Discordのサポートに連絡してください。それはサーバーの被害とは別の、アカウントのセキュリティの問題です。

侵害されたスタッフのアカウントなのか、悪意のあるボットなのかは、どうすればわかりますか?監査ログには、すべての操作を実行したアカウントの名前が記録されます。それがボットのアカウントなら、そのボットが実際に必要とした権限と、実際に持っていた権限を比べてください。人間のアカウントなら、本人が意図したかどうかに関係なく、そのパスワードと接続されたアプリを確認する必要があります。

実行したアカウントをBANすべきですか?明らかに悪意があり、話し合える知人やスタッフのアカウントではない場合は、はい。知っている人の侵害されたアカウントの場合は、本人がアカウントを守っている間にキックするか、タイムアウトするだけで通常は十分です。友人の乗っ取られたアカウントをBANすると、修正後に本人が戻ってくるのが難しくなることがあります。

アンチnukeは次回これを防げますか?被害を抑えられます。アンチnukeが正しく設定されたボットは、「サーバー全体が消える」を「数チャンネルと、タイムアウトされた1アカウント」に変えます。制限を超える前に起きた操作を取り消すことはできません。制限と設定については、アンチnukeガイドを参照してください。

削除されたメッセージを取り戻す方法はありますか?Discordを通じては、ありません。事件の後も残す必要のあるメッセージ内容は、生のチャットの外側に保存する必要があります。たとえば、固定されたルールのドキュメント、エクスポートした記録、または、トランスクリプトやインボイスのように、重要なものの独自のコピーを保存するボットなどです。

次回に備えるには、監査ログを継続的に監視するセキュリティボットを使い、サーバー防御の参加時の半分については、レイド対策のプレイブックをお読みください。