Banserv

Nome progetto: Banserv
Anni: 2004
Linguaggio: mIRC script
Stato: Concluso

Banserv (o BanS3rv come era effettivamente chiamato il bot, per via di politiche di naming sui server di Azzurra) è stato il mio secondo bot di una certa importanza su Azzurra. È nato dalla necessità di mantenere alcuni personaggi poco simpatici a debita distanza dai miei canali. Purtroppo la tendenza delle persone poco gradite è quella di non capire di essere poco graditi o di non interessarsi particolarmente delle preferenze degli altri, e di provare comunque ad entrare nei canali dai quali erano stati allontanati. AzzurreNet metteva già a disposizione dei bot per la gestione dei canali che gestivano una lista di utenti indesiderati (ChanServ) ma essendo molto diffusi, esistevano alcuni stratagemmi noti per aggirare i suoi ban.

Inizialmente avevo pensato ad un sistema di difesa preventiva, ovvero un bot che bannasse gli indirizzi delle persone che volevo lasciare fuori dai canali di chat, impedendo loro direttamente di entrare. Tuttavia questa misura aveva dei lati negativi: intanto non potevo sapere se effettivamente qualcuna di queste persone avesse tentato di accedere ad uno dei canali, inoltre non potevo vedere rapidamente quale utente il bot stesse davvero bannando perchè dall’indirizzo non potevo intuirlo. Infine, credevo sarebbe stato più semplice per gli utenti in lista al bot indovinare come funzionava in realtà, se avessero visto pubblicamente il bot aggiungere indirizzi alla lista dei bannati in maniera apparentemente casuale, avrebbero potuto capire il suo funzionamento e trovare un modo per aggirare la protezione.

In realtà forse con quest’ultima frase ho sopravvalutato un po’ le reali capacità di queste persone, però per sicurezza ho modificato il funzionamento del bot in modo che tenesse nota degli indirizzi degli utenti bannati prima che questi entrassero nei canali e che cacciasse gli utenti solo nel momento in cui questi tentavano l’accesso. La differenza di funzionamento, che ha garantito a Banserv di continuare a fare il suo lavoro per diversi anni era di aggiungere alla notify list (che oggi chiameremmo forse "lista amici") gli utenti indesiderati. Così facendo, il server avrebbe avvisato Baserv non appena uno di quegli utenti si fosse connesso, anche se questo non fosse entrato nel canale. Questo gli consentiva di prendere nota degli utenti che, non sapendo di questo trucco, si collegavano anche se brevemente al loro nickname principale e di essere in grado di bannarli anche se tentavano di entrare nei canali usando un nuovo nickname.

Questo funzionamento a volte portava al verificarsi di qualche ban di utenti che in realtà non erano nelle liste, ma escludendo questi davvero pochi falsi positivi mi rendeva assolutamente certo di avere il canale al sicuro.

Dopodichè ho aggiunto anche protezioni anticaps, antiflood, e antimass-action nei canali, con un sistema di 3 avvertimenti prima di prendere un provvedimento, ed una protezione antispam tramite RegEx che dopo qualche aggiustamento ha sempre identificato e segnalato automaticamente tutti i tentativi di spam, provvedendo al ban immediato dello spammer.

BanS3rv comunicava inoltre con Tavoletta per trasferire alcuni dati come ad esempio le statistiche per il servizio TavStats.

Nessuna versione di BanS3rv è stata mai rilasciata, è stato prodotto ad uso personale, e tale è rimasto, anche per impedire di trovare qualche trucco per sfuggire ai suoi ban. BanS3rv è rimasto in servizio fino al 2008, alternando, come Tavoletta, periodi di connessine continua e periodi offline, fino alla disconnessione completa.