Come qualsiasi software, devi indurirlo per consentire all'utente solo ciò che intendi consentirgli. Nella tua domanda specifica si basa proprio su quale linguaggio hai programmato il tuo bot, su quali tipi di comandi lo permetti e su come sanifica l'input dell'utente.
Non ho familiarità con nessun libro che abbia come target la sicurezza di un bot IRC, tuttavia ci dovrebbero essere molte linee guida chiare su come programmare in sicurezza nel linguaggio di programmazione di tua scelta.
È anche molto importante leggere RF1459 su come il tuo bot dovrebbe comportarsi quando comunica su IRC.
Quando inizialmente configuri il tuo IRC bot, assicurati che le funzionalità di base siano funzionanti e funzionino correttamente. Questa è la roba semplice come:
- rispondere al ping con pong
- unisciti ai canali
Quindi devi sezionare queste operazioni e assicurarti che siano intrinsecamente sicure. Il tuo robot risponde a un PING casuale da chiunque? Cosa succede se fornisco un attacco di overflow del buffer al tuo bot con un "PING AAAA x50000"? Prova a memorizzarlo nel buffer e copiarlo nella risposta PONG? Forse l'unica fonte autorizzata a fare un PING per te dovrebbe essere anche il tuo server collegato.
Quando in un secondo momento fai in modo che il bot accetti i comandi da chiunque tu voglia autorizzare alla whitelist ( modello di sicurezza positivo ) i comandi che permetti (join, kick, ban, ping, ??) e poi disinfettano correttamente l'input al bot.
Il risanamento che deve essere fatto dipende molto da ciò che fa il bot in realtà. Ad esempio:
Quando progetti un tale bot devi cercare di pensare a tutti i modi possibili in cui qualcuno proverà a sfruttarlo. Devi essere molto attento e paranoico quando lo crei.