[DOC] Le robot d'annulation miakibot
Démarré en 2021, le robot d'annulation miakibot a pour tâche d'annuler
des articles manifestement abusifs sur Usenet-fr. Lors de sa création
il y avait encore quelques nettoyeurs ponctuels annulant des articles
au coup par coup, mais Xavier Roche ne maintenait déjà plus le
principal robot nettoyeur à savoir bleachbot.
Cette [DOC] se propose de rassembler toutes les informations utiles
à propos du fonctionnement de miakibot, en particulier les critères
d'annulation et le format des articles de cancel.
[1] Les critères d'annulation
[2] Caractéristiques techniques des articles d'annulation
[3] Pourquoi des Cancels et pas des NoCeM ?
[4] Ce robot n'a aucune légitimité, ses annulations sont abusives !
Première publication : le 1er février 2024
Dernière révision : le 1er février 2024
======================================================================
[1] Les critères d'annulation
======================================================================
1.1. Publicités commerciales et assimilées
Aussi appelées spams, les publicités commerciales sont toujours
considérées comme indésirables sur Usenet-fr.
Parmi les plus fréquentes on trouve des publicités pour :
− des produits pharmaceutiques (viagra et drogues hallucinogènes)
− des faux documents (passeports, permis de conduire, diplômes)
− des faux billets ou fausses cartes de crédit
Mais il y a aussi :
− des propositions de prêts entre particuliers
− des listes de manuels PDF à télécharger
− des convertisseurs de fichiers Outlook (OST, PST, ...)
Ces spams sont le plus souvent détectés par des séquences
caractéristiques dans le champ Subject, souvent en anglais, même
si on en trouve dans de nombreuses autres langues. Par exemple la
présence d'au moins trois noms savants de produits pharmaceutiques
illicites est un signal de spam sur ce type de produits. Je ne
dresse pas ici la liste de tous les mots-clés repérés par le
robot car il y en a beaucoup trop.
La présence dans le champ Subject d'un nom de site spammeur ou
(plus récemment) d'un numéro WhatsApp est aussi caractéristique
de certains types de spams.
Mais il y a aussi certains spammeurs qui répondent à un article
précédent sans changer le champ Subject. Dans ce cas, c'est le
champ From qui est utilisé pour les détecter et annuler leur
publicité, puisque le champ Subject est alors quelconque.
Un autre cas d'annulation décidé d'après le contenu du champ
From est lorsque celui-ci contient le même genre de mots-clés
que dans le champ Subject, du style
buypharmaonline@example.com.1.2. Diffamation et insultes
Il y a quelques personnes publiques qui sont régulièrement
diffamées, avec généralement dans le champ Subject leur nom
accompagné d'adjectifs tels que pédophile ou assassin. Un
cas particulièrement facile à détecter est celui où les
insultes sont en italien et tout en majuscules.
Le robot miakibot annule surtout ces articles récurrents d'après
le champ Subject, puisque jusqu'à présent ce style de diffamation
a toujours été principalement porté par ce champ d'entête. Mais
voir aussi la section 1.4. avec le cas de mailkior.
1.3. Publicité /ou/ malveillance
Le robot annule aussi tout article dont le champ Subject ne
contient rien d'autre qu'une adresse de courriel. La plupart
du temps il s'agit d'un spam et cette adresse est celle à
laquelle le spammeur souhaite qu'on lui écrive. Mais il est
aussi arrivé qu'il s'agisse d'un article malveillant et que
l'adresse soit celle de la victime désignée par l'auteur de
l'article.
Alors même si le robot ne peut pas savoir s'il s'agit du premier
cas (spam) ou du second cas (malveillance), il est légitime
d'annuler ce genre d'article.
Voici quelques exemples de spams trouvés sur fr.soc.feminisme
(bien sûr j'ai modifié l'adresse pour ne pas propager le spam) :
Subject:
spammeur@fai.example.com Subject: Email:
spammeurfedex@fai.example.com Subject: E-Mail:
spammeurfinance@fai.example.com1.4. Inondation (flood)
Les spams sont déjà en eux-mêmes une forme d'inondation dans les
groupes de discussion, et c'est déjà parce qu'ils ne respectent
pas les thèmes de ces groupes qu'ils sont considérés comme un
abus du réseau et donc annulables.
Mais ces spams publicitaires ne sont pas les seuls articles à
envahir les groupes de façon abusive. On peut distinguer en fait
deux types de flood (et d'auteurs de flood) :
− ceux qui ont quelque chose à dire et tiennent absolument à ce
que ce soit répété le plus souvent possible, quoique parfois
dans un ou deux groupes de discussion seulement (type 1);
− ceux dont le but est principalement de foutre le bordel, en
écrivant n'importe quoi dans le plus de groupes de discussion
possible (type 2).
Il est à noter que la FAQ actuelle intitulée « Les annulations
légitimes sur fr.* » ne traite pas vraiment le cas du flood malgré
les tentatives d'y faire figurer une définition correcte. Alors
voici la définition que je prends en compte pour le robot.
« Il y a flood lorsque plus de la moitié des articles d'un
utilisateur donné sont hors thème dans le groupe ou les groupes
où ils sont postés. Ce flood devient annulable sans hésitation
lorsque la proportion d'articles hors thème atteint ou dépasse
90 % de tous les articles publiés par cet utilisateur. »
Actuellement, les utilisateurs dont les articles sont annulés
pour flood sont les suivants.
Annulation pour flood de type 1 :
− Amine Moulay Ramdane (fr.soc.politique)
− Andrea Sorrentino (fr.sci.maths)
− Eric Hamery (seuls ses crossposts sont annulés)
− Iván Valarezo (fr.soc.culture.chine et fr.soc.culture.japon)
− mailkior (c'est aussi le plus souvent de la diffamation)
- Pentcho Valev (fr.sci.physique et fr.sci.astrophysique)
Annulation pour flood de type 2 :
− Hikaru Makiba (ou Harakiri Bamako, etc.)
− Zorro (ou bbessart, etc.)
Rappel (en anglais) : <
https://xkcd.com/1357/>
======================================================================
[2] Caractéristiques techniques des articles d'annulation
======================================================================
2.1. Le champ Control
C'est le seul champ d'entête indispensable pour caractériser une
annulation. Son contenu est le mot « cancel » suivi du Message-ID
(complet avec les chevrons < et >) de l'article à annuler.
Certains articles d'annulation ne suivent aucune autre règle que
celle du champ Control, mais le robot miakibot respecte en plus
certaines conventions qui permettent d'authentifier ce robot.
2.2. Le champ From (et le champ X-Cancelled-By)
Dans ses articles d'annulation, le robot n'usurpe pas l'identité
de l'auteur de l'article annulé. Au contraire le champ From aura
l'une des deux valeurs suivantes :
« miakibot <
miakibot@miakinen.net> » (annulation pour spam)
« antiflood <
antiflood@miakinen.net> » (annulation pour flood)
Bien que ce ne soit pas indispensable, il ajoute exactement le
même contenu dans un nouveau champ X-Cancelled-By.
Quant au contenu du From de l'article à annuler, il est recopié
dans un nouveau champ X-Original-From. Noter que c'est aussi le
cas pour les champs Message-ID, Subject et Date devenant
respectivement X-Original-Message-ID, X-Original-Subject et
X-Original-Date.
2.3. Absence de tout champ Sender ou Reply-To
Conformément aux RFC 5322 et 5536, il ne doit pas y avoir de
champ Sender ni Reply-To du fait que, s'ils existaient, ils
seraient identiques au champ From.
2.4. Le champ Message-ID
Lorsque des annulations sont faites par un robot, il est important
que le champ Message-ID soit déduit du Message-ID d'origine. La
raison en est d'éviter que le même article soit annulé en boucle
par le même robot en cas de dysfonctionnement.
Pour cela, la méthode la plus simple consiste à ajouter une chaine
fixe devant le MID d'origine. Il est généralement conseillé de
prendre le préfixe « cancel. », mais cela offre aux spammeurs et
floodeurs la possibilité de contrer les annulations en doublant
chacun de leurs abus d'un doublon avec ce préfixe. Pour cette
raison, le robot miakibot change parfois de préfixe.
2.5. Le champ Path
C'est le champ le plus important, avec le champ From, pour qui
veut s'assurer que les articles d'annulation ont bien été
authentifiés par le serveur Paganini d'Ivo Gandolfo, et c'est
aussi éventuellement un moyen d'accepter certaines annulations
et d'en refuser d'autres.
Pour tout article d'annulation émis par miakibot, outre que le
champ From aura l'une des deux formes décrites plus haut selon
qu'il s'agit d'une annulation pour spam ou pour flood, il y
aura dans l'ordre les sous-chaînes suivantes :
− paganini.bofh.team (obligatoire)
− miakibot (obligatoire)
− by[...] (optionnel : par exemple byfrom, bysubject ou bymid)
− [...]cancel (optionnel : par exemple mmfcancel ou spewcancel)
− cyberspam (obligatoire)
− not-for-mail (obligatoire, et toujours en dernier)
2.6. Autres champs d'entête
D'autres champs d'entêtes sont remplis pour se conformer aux
normes ou aux usages. Je ne les détaille pas dans cette [DOC],
mais les curieux pourront constater la présence et le format des
champs Newsgroups, Subject, Date, Archive (et X-No-Archive),
Organization, Followup-To, ainsi que des trois entêtes MIME.
======================================================================
[3] Pourquoi des Cancels et pas des NoCeM ?
======================================================================
Actuellement le robot n'émet que des articles d'annulation sous la
forme de Cancel et pas de NoCeM. La raison est d'une part la nécessité
d'émettre de bonnes vieilles annulations pour protéger du spam les
serveurs anciens non mis à jour, d'autre part la non-nécessité de
faire des NoCeM ; en effet les admins de serveurs mis à jour sont en
général capables d'accepter spécifiquement les annulations du miakibot
grâce à l'authentification par les champs From et Path.
Lorsque j'aurai du temps à y consacrer, peut-être que je ferai évoluer
le robot pour qu'il soit capable d'émettre aussi bien des Cancels que
des NoCeM, mais ce n'est pas encore dans mes priorités.
======================================================================
[4] Ce robot n'a aucune légitimité, ses annulations sont abusives !
======================================================================
La réponse à cette critique dépend de si vous êtes attachés à un
Usenet-fr thématique où l'on puisse discuter sereinement des divers
thèmes prévus, ou si vous considérez que Usenet c'est l'anarchie et
que seuls les administrateurs des serveurs décident de ce qu'ils
acceptent de diffuser ou de transmettre via leurs serveurs.
Dans le premier cas, ce sont les spams et les floods qui sont abusifs
et les annuler n'est qu'une façon de faire respecter les thèmes qui
sont prévus par les chartes des groupes, leurs conseils d'utilisation,
ou simplement leur intitulé depuis le putsch de 2008.
Mais dans le second cas, puisque vous défendez la liberté d'expression
consistant à écrire ce que l'on veut où l'on veut tant qu'on n'en est
pas empêché par les responsables de l'infrastructure des serveurs,
vous devez logiquement défendre la liberté d'expression consistant à
émettre des articles particuliers, Cancels ou NoCeM, dont le format
peut amener certains serveurs à agir en conséquence.
Par ailleurs, dans un cas comme dans l'autre, vous avez *toujours*
le choix d'adopter un serveur qui refuse les Cancels comme les NoCeM,
et vous ne pourrez retirer à personne le choix d'adopter un serveur
qui les accepte. Voir la « [FAQ] Articles abusifs et annulations
abusives (ou pas) », et voir aussi <
https://xkcd.com/1357/> si vous
lisez l'anglais.
======================================================================