Discord Security Bot

Discord Security Bot

Auf Discord wiederholt sich immer dasselbe Szenario. Jemandem wird der Account gestohlen, und der verschickt innerhalb weniger Sekunden Massenerwähnungen und Betrugslinks in alle Kanäle. Bis es jemand aus dem Mod-Team bemerkt, hat die Hälfte des Servers in den Benachrichtigungen eine Aufforderung, sich gratis Nitro abzuholen.

Das Schlimmste daran: Die üblichen Schutzmaßnahmen reichen dagegen nicht. Die meisten gehen davon aus, dass ein neuer Account verdächtig ist. Ein gekaperter Account ist aber oft zwei Jahre alt, hat normale Rollen und verhält sich auf dem Server ganz gewöhnlich, bis ihn jemand Fremdes übernimmt.

Discord security bot ist ein Tool, das wir genau deshalb für unsere eigene Community Gamers Together geschrieben haben. Es beobachtet ausschließlich das Verhalten, nicht das Alter des Accounts, nicht die Mitgliedsdauer, nicht die Rollen. Es läuft seit Juli 2026 auf unserem Server und löst dieses Problem seitdem selbstständig. Wir stellen es frei zur Verfügung, samt Quellcode.

Es läuft bei dir, auf deinem Rechner. Keine Cloud, keine Datenbank, keine Daten, die an Dritte gehen.


Welches Problem der Bot löst

Einen gekaperten Account erkennt man an dem, was er tut, und er tut immer ungefähr dasselbe. Der Bot zielt genau auf diese Muster:

  • Massenerwähnungen. Eine Nachricht mit @everyone, @here oder Dutzenden markierten Personen, verschickt überallhin, wo der Account Zugriff hat.
  • Betrugs- und Phishing-Links. Gefälschtes Discord Nitro gratis, nachgemachte Steam-Loginseiten, Domains wie disc0rd oder steamcommunlty, die sich vom Original nur durch ein Zeichen unterscheiden.
  • Nachrichtenflut. Mehrere Nachrichten pro Sekunde über verschiedene Kanäle, schneller, als ein Mensch reagieren kann.
  • Bilderspam. Dasselbe Bild gleichzeitig in mehrere Kanäle gekippt.

Manuelle Moderation reicht dafür aus einem einfachen Grund nicht: Der Angriff dauert ein paar Sekunden, und der Moderator sitzt meistens gerade nicht am Rechner. Passiert das um drei Uhr nachts, wird es erst am Morgen geklärt, und bis dahin haben Dutzende Leute den Link schon angeklickt.

So funktioniert die Erkennung

Der Bot führt für jeden Nutzer ein gleitendes Fenster der letzten Nachrichten, standardmäßig zehn Sekunden lang. In diesem Fenster wertet er vier unabhängige Signale aus:

SignalWas es istWann es auslöst
MassenerwähnungenEine Nachricht erwähnt 5 oder mehr Nutzer oder enthält @everyone bzw. @hereWenn das 3× im Fenster passiert
Verdächtiger LinkDer Link passt zu einem bekannten Betrugsmuster oder läuft über einen Linkverkürzer. Optional wird er zusätzlich gegen Google Safe Browsing geprüftWenn 3 solche Links auftauchen
Nachrichtenflut5 oder mehr Nachrichten innerhalb von 10 Sekunden, über mehrere KanäleSofort nach Überschreiten
BilderspamEin Bild, das in 2 oder mehr verschiedene Kanäle geschickt wirdSofort nach Überschreiten

Zwei Dinge daran sind hervorzuheben, weil sich der Bot genau hier von den meisten Anti-Raid-Tools unterscheidet.

Es wird nicht bewertet, wer der Nutzer ist. Kein Account-Alter, keine Mitgliedsdauer, keine Rollen. Nur das Verhalten in den letzten Sekunden. Genau deshalb greift er auch beim gestohlenen Account eines langjährigen Mitglieds, der durch jeden Schutz nach dem Muster „neuer Account = verdächtig“ rutscht.

Die Schwellen verlangen Wiederholungen, ein einmaliges Vorkommen reicht nicht. Ein verdächtiger Link löst nichts aus, es müssen drei sein. Eine Nachricht mit @everyone ebenfalls nicht. Das ist keine theoretische Vorsicht: Die erste Version griff schon beim ersten Vorkommen ein, und das führte zu Fehlalarmen. Wer einmal einen gekürzten Link schickt, ist kein Spammer.

Was der Bot tut

Er entscheidet danach, wie viele Signale in dem Moment gleichzeitig aktiv sind:

Aktive SignaleMaßnahme
2 oder mehrBann und Löschen des Nachrichtenverlaufs der letzten 7 Tage dieses Accounts
genau 1Timeout für 24 Stunden und Löschen dieser Nachricht
keinsNichts

Jede Maßnahme schreibt der Bot in einen Kanal, den du ihm zuweist. So weißt du immer, wen er warum bestraft hat, und kannst es rückgängig machen.

Moderatoren und Administratoren sind unantastbar. Wer die Berechtigung Administrator, Ban Members oder Moderate Members hat, ist komplett von der Prüfung ausgenommen. Der Bot rührt ihn unter keinen Umständen an.


Download

Das Paket ist kostenlos unter der MIT-Lizenz. Du kannst es anpassen, nutzen und weitergeben, auch kommerziell. Es enthält den vollständigen Quellcode, Installationsskripte für Windows und Linux, eine ausführliche Anleitung und eine Reihe automatischer Tests.

Beide Versionen enthalten exakt denselben Code. Sie unterscheiden sich nur in der Sprache der Anleitung und der Meldungen, die der Bot in den Log-Kanal schreibt, und die kannst du jederzeit mit einer einzigen Zeile in den Einstellungen umstellen.

Wenn du prüfen willst, dass die Datei unterwegs nicht verändert wurde, hier sind ihre SHA-256-Prüfsummen:

discord-security-bot-cz.zip
d24ca9465a1b35665c8282693d0d835d490d227c1b8a2c63918e42c664da954c

discord-security-bot-en.zip
d283be540ef962ea4dfd5159dba4a7b02d4601d5792e0d9c0789a70fb6f2fe9a

Installation Schritt für Schritt

Programmieren musst du nicht können. Die ganze Installation besteht darin, ein Skript zu starten und zwei Werte in eine Textdatei zu übertragen. Du brauchst dafür Python 3.10 oder neuer und Admin-Rechte auf dem Discord-Server.

Schritt 1: Leg einen Bot auf Discord an

  1. Geh zum Discord Developer Portal und klick auf New Application. Benenn sie, wie du willst.
  2. Wähl im linken Menü Bot.
  3. Klick auf Reset Token, bestätige und kopier dir den Token. Er wird nur einmal angezeigt. Er ist das Passwort zu deinem Bot, schick ihn niemandem.
  4. Scroll runter zum Abschnitt Privileged Gateway Intents und aktiviere MESSAGE CONTENT INTENT. Speichere.

Der letzte Punkt ist der wichtigste in der ganzen Anleitung. Ohne aktivierten Message Content Intent sieht der Bot den Inhalt der Nachrichten nicht, erkennt also weder Links noch Erwähnungen. Er startet, sieht so aus, als würde er laufen, und erfasst überhaupt nichts. Wenn später nichts funktioniert, komm als Erstes hierher zurück.

Schritt 2: Lade den Bot auf deinen Server ein

  1. Wähl im linken Menü OAuth2 → URL Generator.
  2. Hak unter Scopes den Punkt bot an.
  3. Hak unter Bot Permissions an: View Channels, Send Messages, Manage Messages, Ban Members und Timeout Members.
  4. Kopier die unten generierte Adresse, öffne sie im Browser und lade den Bot auf deinen Server ein.
  5. Zieh unter Servereinstellungen → Rollen die Rolle des Bots über die Rollen der Mitglieder, die er überwachen soll. Discord erlaubt nie, gegen jemanden mit einer höheren Rolle vorzugehen. Das ist der zweithäufigste Grund, warum der Bot „nichts tut“.
  6. Leg einen Kanal für die Protokolle der Maßnahmen an, zum Beispiel #mod-log, nur für Moderatoren sichtbar. Seine ID kopierst du, indem du in Discord Einstellungen → Erweitert → Entwicklermodus aktivierst, dann mit der rechten Maustaste auf den Kanal klickst und ID kopieren wählst.

Schritt 3a: Installation unter Windows

Entpack die heruntergeladene ZIP in den Ordner, in dem du sie haben willst. Klick dann dort mit der rechten Maustaste auf install.ps1 und wähl Mit PowerShell ausführen. Wenn Windows das verweigert, öffne im Ordner PowerShell und gib ein:

powershell -ExecutionPolicy Bypass -File install.ps1

Das Skript prüft Python, bereitet die Umgebung vor, installiert die nötigen Pakete und erstellt die Datei .env. Öffne sie im Editor und trag zwei Werte ein: den Token aus dem ersten Schritt und die Kanal-ID aus dem zweiten. Dann starte den Bot:

.venvScriptspython.exe bot.py

Sobald Logged in as … erscheint, läuft der Bot. Er passt auf, bis du das Fenster schließt.

Schritt 3b: Installation unter Linux

unzip discord-security-bot-en.zip
cd discord-security-bot
chmod +x install.sh
./install.sh
nano .env
./venv/bin/python bot.py

Dauerbetrieb

Auf einem Heim-PC passt der Bot nur auf, solange der Rechner an ist. Damit er den Server rund um die Uhr schützt, braucht er eine Maschine, die ständig läuft. Der günstigste VPS reicht locker, der Bot hat minimale Anforderungen.

Im Paket liegt eine fertige Vorlage für eine systemd-Unit. Du musst darin nur zwei Platzhalter ersetzen, sie an die richtige Stelle kopieren und starten:

sudo cp discord-security-bot.service.template /etc/systemd/system/discord-security-bot.service
sudo systemctl daemon-reload
sudo systemctl enable --now discord-security-bot

Der Bot startet dann nach einem Neustart des Servers von selbst und fährt auch von selbst wieder hoch, falls er abstürzt. Die ausführliche Anleitung steht in der Datei README.md im Paket.


Einstellungen

Alles wird in einer einzigen Textdatei .env eingestellt. Nach jeder Änderung startest du den Bot neu.

VariableStandardWofür
DISCORD_TOKENPflicht. Der Bot-Token aus dem Developer Portal.
MOD_LOG_CHANNEL_IDPflicht. Der Kanal, in den der Bot seine Maßnahmen schreibt. Leer = der Bot greift ein, schweigt aber.
GUILD_IDleerBeschränkt den Bot auf einen einzigen Server. Leer = er überwacht jeden Server, auf den er eingeladen ist.
GOOGLE_SAFE_BROWSING_API_KEYleerSchaltet eine zweite Runde der Linkprüfung gegen die Datenbank von Google ein.
BOT_LANGUAGEenSprache der Bot-Meldungen: cs oder en.
MENTION_THRESHOLD5Ab wie vielen erwähnten Nutzern in einer Nachricht es eine Massenerwähnung ist.
MENTION_REPEAT_THRESHOLD3Wie oft eine Massenerwähnung im Fenster vorkommen muss, damit sie ein Signal ist.
LINK_THRESHOLD3Ab wie vielen verdächtigen Links im Fenster es ein Signal ist.
BURST_COUNT5Ab wie vielen Nachrichten im Fenster es eine Flut ist.
BURST_WINDOW_SECONDS10Länge des überwachten Fensters in Sekunden.
TIMEOUT_HOURS24Dauer des Timeouts bei einem Signal.
BAN_PURGE_DAYS7Wie viele Tage Verlauf bei einem Bann gelöscht werden.

Bevor du die Schwellen senkst, bedenke: Je niedriger sie sind, desto mehr Unschuldige bestraft der Bot. Die Standardwerte sind im Livebetrieb entstanden und bewusst so gewählt, dass sie einen Grenzfall lieber durchlassen, als jemanden zu bannen, der sich in einer Diskussion nur in Rage geschrieben hat.


FAQ

Bannt der Bot versehentlich einen normalen Nutzer?

Er ist so gebaut, dass das so selten wie möglich passiert. Für einen Bann müssen gleichzeitig zwei verschiedene Signale aktiv sein, und jedes davon hat eine eigene Wiederholungsschwelle. Ein einzelner gekürzter Link oder eine einzelne Nachricht mit @everyone löst überhaupt nichts aus. Moderatoren und Administratoren sind komplett von der Prüfung ausgenommen. Trotzdem empfehlen wir, den Bot erst ein paar Tage im Log-Kanal zu beobachten, bevor du ihm blind vertraust.

Muss ich programmieren können?

Nein. Das Installationsskript erledigt den technischen Teil für dich, und du trägst danach nur zwei Werte in eine Textdatei ein: den Bot-Token und die Kanal-ID. Wenn du dir zutraust, ein Programm zu installieren und den Editor zu öffnen, schaffst du das.

Ist das kostenlos?

Ja, komplett, unter der MIT-Lizenz, auch für kommerzielle Nutzung. Es wird nirgends etwas bezahlt oder freigeschaltet. Die einzigen möglichen Kosten sind die Miete für einen Server, wenn der Bot rund um die Uhr laufen soll, und das bekommst du sehr günstig.

Funktioniert das auch, wenn mein Rechner aus ist?

Nein. Der Bot passt nur auf, solange er läuft. Auf einem Heim-PC schützt er den Server also nur, solange der Rechner an ist. Für Schutz rund um die Uhr setzt du ihn mit der beiliegenden systemd-Vorlage auf einem VPS auf. Dann läuft er ständig und startet nach einem Neustart des Servers von selbst.

Sammelt der Bot Daten über Mitglieder?

Nein. Er hält nur ein gleitendes Fenster der letzten Sekunden im Arbeitsspeicher, um eine Flut zu erkennen. Es gibt keine Datenbank, nichts wird auf die Festplatte geschrieben und nichts verlässt deinen Rechner. Ein Neustart des Bots leert wirklich alles. Der Quellcode ist Teil des Pakets, du kannst das also selbst überprüfen.

Wie verhindere ich Spam auf Discord auch ohne Bot?

Die Grundlagen erledigt Discord selbst, und die solltest du so oder so eingerichtet haben: Stell die Verifizierungsstufe unter Servereinstellungen → Moderation mindestens auf „Mittel“, schalte den integrierten AutoMod ein, gib ganz neuen Mitgliedern kein Recht, Links zu posten, deaktiviere Direktnachrichten von Servermitgliedern und erzwinge die Zwei-Faktor-Authentifizierung für Moderatoren. All das zielt aber auf neue und nicht verifizierte Accounts. Gegen den gestohlenen Account eines langjährigen Mitglieds, das die Verifizierung längst hinter sich hat, hilft nichts davon, und genau diese Lücke schließt der Bot.

Worin unterscheidet er sich von Wick, MEE6 oder Dyno?

Vor allem darin, wo er läuft. Die großen Bots laufen auf fremder Infrastruktur, und die Nachrichten von deinem Server wandern auf die Server ihrer Betreiber. Dieser hier läuft bei dir, du kannst den Code lesen, und die Daten gehen nirgendwohin. Der Preis dafür: Er hat keine Weboberfläche und wird über eine Textdatei eingestellt, und er macht genau eine Sache. Musik, Level oder Begrüßungsnachrichten gibt es nicht. Neben einem größeren Bot kann er problemlos gleichzeitig laufen, die beiden stören sich nicht.

Was, wenn der Bot jemanden bannt, den er nicht hätte bannen sollen?

Den Bann hebst du unter Servereinstellungen → Banns auf, den Timeout per Rechtsklick auf das Mitglied und Timeout entfernen. Gelöschte Nachrichten lassen sich nicht wiederherstellen. Passiert das wiederholt, erhöhe die Schwellen in der Datei .env. Und wenn du dir unsicher bist, lass den Bot anfangs nur in den Log-Kanal schreiben und beobachte ihn eine Weile.


Bevor du ihn einsetzt

Die Software wird „wie besehen“, ohne jegliche Gewährleistung und ohne Support bereitgestellt. Wir stellen Code und Anleitung zur Verfügung, betreiben den Bot nicht für dich und haften nicht für Schäden, die durch seine Nutzung entstehen.

Nimm ernst, was du dem Bot erlaubst: Mitglieder bannen und Nachrichten löschen. Deshalb empfehlen wir drei Dinge:

  1. Teste ihn zuerst auf einem leeren Testserver, den du nur dafür anlegst.
  2. Prüfe, dass deine Moderatoren eine der Berechtigungen Administrator, Ban Members oder Moderate Members haben, sonst sind sie nicht von der Prüfung ausgenommen.
  3. Lass ihn ein paar Tage laufen und lies den Log-Kanal mit, bevor du ihm blind vertraust.

Und zum Schluss: Schick den Token deines Bots nie jemandem und leg ihn in kein öffentliches Repository. Wer ihn hat, steuert den Bot, mit allen Rechten, die du ihm gegeben hast.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Warenkorb
Nach oben scrollen