Agenti e sicurezza nelle reti
Prima parte: introduzione
Premessa
Difendere una rete di comunicazione non è semplice. Le ragioni di questa non semplicità nascono da una contraddizione tra la natura intrinsecamente distribuita del problema e la gestione centralizzata del suo controllo.
L’attacco ad una rete di comunicazione può avvenire (nel senso del manifestarsi dei sintomi di attacco) in un punto qualunque della rete stessa. La centralizzazione in un SOC (Security Operation Center) rende tale struttura e le sue linee di comunicazione con l’esterno un bersaglio molto appetibile che, se venisse centrato, porterebbe alla totale impossibilità di difendersi da un attacco.
I sintomi di un attacco sono spesso significativi solo se analizzati da un punto di vista di insieme piuttosto che singolarmente. Tutti i sistemi non distribuiti di rilevamento di intrusioni (Intrusion Detection System o IDS) quando agiscono in via preventiva, ossia bloccando l’attacco sul nascere, sono soggetti ad un alto tasso di falsi positivi. Quando invece agiscono a posteriori consentono di ridurre gli effetti dell’attacco ma, comunque, una parte di danno si è già avuta. Raggruppando più sintomi è più semplice ottenere valutazioni corrette, anche in via preventiva.
La difesa medievale
Un approccio spesso utilizzato è quello di distribuire delle sonde nel sistema e di acquisirne, in maniera centralizzata, le segnalazioni per poterle correlare e prendere decisioni su un numero di informazioni maggiore. Questa soluzione presuppone, però, la disponibilità del sistema di correlazione e la possibilità di comunicare via rete. Quest’ultima situazione rappresenta un paradosso, almeno dal punto di vista potenziale, in quanto, in caso di attacco, intere porzioni di rete possono essere isolate. Volendo utilizzare una metafora militare, l’approccio sopra descritto è basato su un concetto medievale di difesa: una fortezza robusta e ben costruita consente di resistere ad un attacco in quanto accentra in essa sia i compiti di sorveglianza a lungo raggio, sia la capacità di reazione ad un attacco. È evidente, continuando con la metafora, che se la fortezza viene posta sotto assedio non potrà portare aiuto al resto del territorio.
L’approccio che abbiamo definito medievale presenta un ulteriore punto di debolezza dovuto alla elevata complessità delle attuali reti: ormai si hanno reti geografiche di estensione mondiale e di complessità un tempo impensabile. L’utilizzo di strutture difensive centralizzate pone quindi notevoli problemi in quanto, tra l’altro, spesso vanno messi a fattor comune i dati di sottoreti di proprietari diversi.
Il sistema immunitario di rete
Da alcuni anni si sta ragionando sulla possibilità di un approccio distribuito della difesa della sicurezza delle reti. Si sta infatti passando da un modello centralizzato basato sui SOC ad uno diffuso che, pur prevedendo aree centrali analoghe ai SOC, ne è l’evoluzione. In cosa consiste l’innovazione del modello distribuito? Tale innovazione nasce dal fatto che le sonde non sono più semplici collettori di misure con limitata capacità decisionale (in quanto possono valutare solo fenomeni da loro misurati) ma diventano agenti intelligenti (o autonomi). Un agente è, sostanzialmente, un componente software che può prendere decisioni in maniera autonoma sulla base dei rilievi che effettua sull’ambiente circostante. Fin qui un agente sembrerebbe molto simile ad una normale sonda. Il tipo di agenti che si vogliono considerare in questo articolo e nei successivi è quello di agenti pensati per vivere e cooperare in un sistema multi-agente. In pratica essi sono in grado di raggrupparsi e di scambiarsi informazioni per ottenere una maggiore capacità di discernimento locale, in modo da prendere, localmente, in maniera autonoma, decisioni basate su informazioni di natura più globale. Ecco quindi che si chiarisce perché questa modalità è vista come un’evoluzione di quella basata sui SOC: le comunità di agenti che si creano “spontaneamente” in una rete vengono a costituire dei SOC locali che, essendo distribuiti e dinamici, risultano difficilmente attaccabili. Siamo quindi passati da una visione centralizzata di tipo medievale ad una molto più simile ad un sistema immunitario.
Nel corso di questa serie di articoli saranno presentati sia gli aspetti teorici delle popolazioni di agenti sia dei loro principali applicazioni pratiche, con particolare attenzione agli aspetti di sicurezza delle reti. In questo articolo specifico verranno forniti concetti di base sugli agenti autonomi con un breve excursus sui temi trattati negli altri. Quello che in pratica cercheremo di analizzare è la possibilità di realizzare veri e propri sistemi immunitari di rete.
Gli agenti
Non esiste, ad oggi, in letteratura, una definizione precisa sul concetto di agente. L’unica cosa su cui sembra che tutti siano d’accordo è un non meglio precisato grado di autonomia dell'agente stesso. Questa definizione imprecisa porta a far sì che si possano ritenere, giustamente, degli agenti anche delle sonde con un una elementare capacità decisionale locale. Nell’economia di questo testo per agente intendiamo qualcosa di più.
Un agente è definibile come un sistema informatico, situato nell’ambiente con cui vuole interagire, capace di agire autonomamente per raggiungere gli scopi per cui è stato progettato, eventualmente apprendendo dall’esperienza. Quest’ultimo punto non è necessario nella gran parte delle applicazioni degli agenti ma può invece essere sostanziale in molte altre. Si noti come in questa definizione sia stato volontariamente omesso l’attributo intelligente, così come non siano stati meglio specificati né il concetto di ambiente né quello di autonomia.
Un agente possiede, di norma, un insieme limitato di possibilità di interagire con l’ambiente circostante. Tale insieme viene definito come “capacità” dell’agente e rappresenta il limite delle reali possibilità di azione dell’agente. Ciò porta a considerare anche la possibilità di avere agenti specializzati per determinati compiti che siano in grado, ad esempio, di trasferirsi da un punto all’altro della rete. In questo caso si parlerà di agenti “rilocabili” o “mobili”.
Di norma un agente non possiede il totale controllo sull’ambiente circostante e quindi deve essere pronto a reagire al caso di fallimento, ossia alla situazione in cui un’azione che in precedenza aveva avuto successo, in un altro momento si rivela inefficace. Le ragioni di tale inefficacia vanno ricercate proprio in quelle variabili che non sono sotto il controllo dell’agente stesso.
Un agente viene, invece, detto “intelligente” quando presenta ulteriori tre caratteristiche:
- Potere di iniziativa: l’agente è in grado di agire preventivamente prendendo l’iniziativa per affrontare problemi senza dover essere autorizzato da altri;
- Capacità di relazione sociale: l’agente è in grado di interagire con esseri umani e altri agenti, stabilendo autonomamente tali relazioni, al fine di svolgere compiti per cui è stato progettato;
- Reattività: l’agente è in grado di reagire autonomamente agli stimoli che gli giungono dalla sua percezione dell’ambiente.
Grazie a queste caratteristiche l’agente è in grado di agire in ambienti molto complessi e popolati da numerosi altri agenti. Nel primo caso, ossia per confrontarsi con una complessità schiacciante, l’agente comunica con altri suoi simili per ottenere sufficienti informazioni per decidere. È grazie alla presenza degli altri agenti che può fare la scelta giusta. Ma, poiché anche gli altri ragionano alla stessa maniera, si ha a questo punto un nuovo problema: le azioni dei singoli agenti vanno coordinate in modo che abbiano un effetto risultante benefico e non dannoso. Questo è il secondo aspetto del problema, ossia la compresenza di numerosi altri agenti, e può essere risolto mediante un coordinamento degli agenti. Vengono quindi a crearsi, grazie alle capacità di relazione sociale, ai poteri di iniziativa e alla reattività dei singoli, delle comunità temporanee (o anche di lunga durata)che agiscono come un vero sistema immunitario.
Tutto questo è molto interessante ma, per essere portato ad un livello di utilizzabilità pratica, richiede ulteriori interventi di approfondimento sui vari aspetti. Nei prossimi articoli si tratterà sia delle popolazioni di agenti sia della modalità con cui vengono prese delle decisioni in un contesto così fortemente distribuito. Dopo aver approfondito questi aspetti si ragionerà sulle modalità di apprendimento di gestione della conoscenza (ossia sulla memoria del nostro sistema immunitario di rete) e poi si passerà valutare le possibili applicazioni pratiche. Tutti questi argomenti saranno affrontati, nelle prossime settimane, in altri articoli.

