Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
asso:moderation:mobilizon [2022/04/16 13:05] qduchemiasso:moderation:mobilizon [2023/03/13 17:05] (Version actuelle) qduchemi
Ligne 1: Ligne 1:
 +{{indexmenu_n>10}}
 ## Mobilizon : vive le spam ! ## Mobilizon : vive le spam !
  
-<bootnote>On suppose que tu as accès au compte administrateur de [l'instance Mobilizon de Picasoft](https://mobilizon.picasoft.net/). Les identifiants sont sur le [[technique:adminsys:secu:password_store:start|pass]], mais tu peux les demander à quelqu'un de l'équipe de modération.</bootnote>+<bootnote>On suppose que tu as accès au compte administrateur de [l'instance Mobilizon de Picasoft](https://mobilizon.picasoft.net/). Les identifiants sont sur le [[asso:tuto:vaultwarden|VaultWarden]], mais tu peux les demander à quelqu'un de l'équipe de modération.</bootnote>
  
 ### Modération fédérée : une autre paire de manches ### Modération fédérée : une autre paire de manches
Ligne 17: Ligne 18:
 - Mais les comptes de spam peuvent venir d'autres instances avec lesquelles nous sommes fédérées. - Mais les comptes de spam peuvent venir d'autres instances avec lesquelles nous sommes fédérées.
  
-Ce qui rend la modération sur les services fédérés très complexes ; à tel point qu'une [thèse conduit{{:asso:moderation:signalements.png|}}e par une membre](https://fedithese.fr/co/fedithese.html) est en cours.+Ce qui rend la modération sur les services fédérés très complexes ; à tel point qu'une [thèse conduite par une membre](https://fedithese.fr/co/fedithese.html) est en cours.
  
 ### Gérer les problèmes locaux ### Gérer les problèmes locaux
Ligne 33: Ligne 34:
 Deux cas se présentent. Deux cas se présentent.
  
-##### Compte de spam+#### Compte de spam
  
 Un compte fait uniquement de la publicité et du spam, sur toutes les instances. Exemple typique via un signalement : Un compte fait uniquement de la publicité et du spam, sur toutes les instances. Exemple typique via un signalement :
Ligne 96: Ligne 97:
  
 Il faut probablement engager le dialogue, et en l'absence de réponse, voter une _défédération_, qui se fait facilement depuis l'interface d'administration. Il faut probablement engager le dialogue, et en l'absence de réponse, voter une _défédération_, qui se fait facilement depuis l'interface d'administration.
 +
 +### Grosse vague de spam, détecter les contenus problématiques
 +
 +<bootnote critical>Les techniques montrées ici demandent toujours l'arbitrage d'un être humain. Nous ne pratiquons pas la modération automatique et ces méthodes ne sont pas parfaites, il existe de faux-positifs et de faux-negatifs</bootnote>
 +
 +Une fois dans le conteneur de base de données :
 +
 +```sh
 +psql -U mobilizon -d postgres_mobilizon
 +```
 +
 +Pour détecter les profils problématiques, nous pouvons nous connecter en base et lancer quelques requêtes, la requête ci-dessous indique les évènements dont la durée est supérieure à 80 jours, ces évènement ont de fortes chances d'être du spam :
 +```sql
 +SELECT url FROM events WHERE local = true AND draft = false AND visibility = 'public' AND ends_on - begins_on > '80 days'::interval;
 +```
 +
 +Cette requête recherche des mots clés dans les évènements, en effet nous avons remarqués certains mots clés qui reviennent dans beaucoup de spams :
 +```sql
 +SELECT organizer_actor_id, COUNT(*) AS nb FROM events WHERE local = true AND draft = false AND visibility = 'public' AND title ILIKE '%motclé%' GROUP BY organizer_actor_id ORDER BY nb DESC;
 +```
 +Ces mots clés peuvent être utilisés (non exhaustif, à compléter) :
 +  * cash
 +  * bitcoin
 +  * escort
 +  * driver
 +  * download
 +  * exam
 +  * design (! beaucoup de faux positifs)
 +  * company
 +
 +Cette requête indique les comptes ayant beaucoup d'évènement, faire bien attention, pour beaucoup de comptes c'est tout à fait légitime :
 +```sql
 +SELECT organizer_actor_id, COUNT(*) AS nb FROM events WHERE local = true AND draft = false AND visibility = 'public' GROUP BY organizer_actor_id ORDER BY nb DESC;
 +```
 +
 +On peut ensuite accéder au profil à l'URL `https://mobilizon.picasoft.net/settings/admin/profiles/<ID>`.
 +
 +Cette requête indiques les profils ayant créé des évènement qui démarrent très peu de temps après la création du compte, encore une fois c'est parfois légitime mais c'est un critère commun à beaucoup de spams :
 +```sql
 +SELECT DISTINCT actors.id, actors.url FROM actors INNER JOIN users ON actors.user_id = users.id INNER JOIN events ON events.organizer_actor_id = actors.id WHERE events.begins_on - users.inserted_at < '2 hours'::interval AND events.local = true AND events.visibility = 'public' ORDER BY actors.id DESC;
 +```
  • asso/moderation/mobilizon.1650107135.txt.gz
  • de qduchemi