NotANameServer / discord

Règles et gestion du serveur Discord de programmation Not a Name : https://discord.gg/zcWp9sC
23 stars 10 forks source link

Détection des bots #66

Closed Gawaboumga closed 2 years ago

Gawaboumga commented 2 years ago

Hello, Proposition bête pour détecter les bots, voir si un utilisateur a posté le même message sur différents canaux différents. Éventuellement:

x0rld commented 2 years ago

steam,csgo ça marche bien aussi comme mot-clefs

SirLynix commented 2 years ago

Pour information, je sais déjà comment régler ce problème en étendant le module anti-raid de NaB, je suis juste incroyablement occupé avec mes cours en ce moment.

Actuellement le module anti-raid est déjà capable de virer le spam avec des paramètres assez simples (grosso-modo il auto-mute si X messages ont été postés dans une fenêtre de Y secondes, ces valeurs sont réglées sur 6 messages en 2 secondes sur NaN actuellement).

L'idée serait d'étendre ce système et de ne pas compter un certain nombre de messages sur X secondes, mais un score à ne pas dépasser. On garderait un message = score de 1, mais on pourrait dire qu'un message contenant un lien aurait un score de 2 (et donc là il suffirait de spammer trois messages contenant des liens en deux secondes pour trigger), on peut ensuite être plus spécifiques et dire qu'un message contenant "free nitro" ou "free Discord Nitro" possède un score de cinq (deux messages = mute), etc.

C'est assez simple à mettre en place, et je m'en occuperais dès que j'ai le temps, mais je dois faire passer le taff avant tout (et je suis assez short à ce niveau).

SirLynix commented 2 years ago

Bon du coup j'ai eu un peu de temps, et le fait d'avoir décrit le fonctionnement plus haut a aidé, j'ai implémenté un truc ultra rapide dans NaB, c'est pas configurable et on peut faire mieux mais ça devrait déjà bloquer la grosse majorité.

Du coup ça va virer les messages du genre et auto-mute le membre de façon permanente avec une alerte de modération (jusqu'à ce qu'un admin passe par là pour décider de ce qu'il faut faire, notamment pour gérer les potentiels faux positifs).

Julien00859 commented 2 years ago

Voila un tableau qui récapitule la fréquence d'occurrence de différents mots clés dans chacun des messages de spam connu de NaN.

image

Le tableur au format libre office : discordspam.ods

Récapitulatif:

mot clé occurrence
https://example.com 20
nitro 17
discord 17
steam 15
everyone 14
free 12
3 month 10
3 months 7
away 4
gift 3
airdrop 3
cs:go 1

Il est à noter qu'il n'y a presque pas de recoupement entre 3 month (sans s), away, gift et airdrop. En faisant un OR inclusif sur ces 4 mots, j'obtiens un hitrate de 85% (17/20)

Julien00859 commented 2 years ago

Il est à noter qu'il n'y a presque pas de recoupement entre 3 month (sans s), away, gift et airdrop. En faisant un OR inclusif sur ces 4 mots, j'obtiens un hitrate de 85% (17/20), les trois derniers messages sont hit par les autre mot-clés avec 50%+ hitrate.

Equinox4 commented 2 years ago

Voila un tableau qui récapitule la fréquence d'occurrence de différents mots clés dans chacun des messages de spam connu de NaN.

Il est cool ton tableau, par contre il y a des anomalies, par exemple la ligne 20, on voit que le message contient "Nitro for Free", mais les colonnes "nitro" et "free" sont à false. Ne pas oublier d'ignorer la casse ;)

Equinox4 commented 2 years ago

ah non, ils sont plus malins que ça, sur la 20ème ligne, le "o" de "nitro" est une lettre de l'alphabet cyrillique, donc le mot n'est pas détecté. (et pareil pour "Free", les "e" ne sont pas des "e") Je ne sais pas comment on pourrait contrer ça :thinking:

Julien00859 commented 2 years ago

Je suis au courant, cf: https://discord.com/channels/323076998576603137/378187529473622026/906570831226875955

Julien00859 commented 2 years ago

https://github.com/DigitalPulseSoftware/NotaBot/commit/2b90793f7818b8209abf350bf4936807bcacf3d1