La ragazza, che si chiamava Elena, arrivò a casa,
stanca e piuttosto stressata dalla lunga giornata di lavoro. Era stata in piedi
tutto il giorno in una sala conferenze di Microsoft a Segrate, a porgere il
microfono a un tizio piuttosto che un altro, tutti partecipanti ad un workshop
organizzato da UGIdotNET. Si era annoiata
parecchio, perchè quei ragazzi parlavano di programmazione, di framework
e di altri concetti strani con cui lei non aveva mai avuto a che fare.
Era rimasta colpita soltanto in due occasioni: quando Francesco Carucci ha fatto
vedere l'animazione della mucca, e quando aveva incrociato lo sguardo con quel
tizio (di cui non sapeva il nome) che tutti riconoscevano perchè scriveva gli
articoli su MCAD. Magari non è carino - si diceva Elena - però ha la faccia
simpatica. Comunque sia, adesso era arrivata a casa, non desiderava altro che
riposarsi un attimo: avrebbe preso la sua posta elettronica e se ne sarebbe
andata a dormire. Accese il suo PC, poi andò in bagno per farsi una
doccia.
BIOS, startup, caricamento OS, servizi di base, UI.
Autentico, valido,
ordino.
Il byte, si aggirava furtivo, quasi invisibile, e
con aria maligna, all'interno del sistema. Ad una prima
occhiata, sembrava uno qualsiasi degli altri miliardi di bytes all'interno del
sistema. Apparentemente, non aveva nulla di diverso rispetto agli altri.
Si
spostava sfruttando il parallelismo dei bus di sistema.
Si parcheggiava nelle
locazioni di memoria RAM e sull'hard-disk.
Finiva per qualche istante nei
registri di sistema.
Matematicamente innocuo, indolore, nè più nè meno
importante degli altri bytes.
Ma la realtà era ben diversa.
Se si fosse aggregato con altri
bytes, con quelli corretti, avrebbe formato un exploit code, un codice
maligno, un byte[] capace di uscire dal controllo dell'OS e di provocare qualche
danno ai layer superiori della struttura software orchestralmente tenuta
insieme dal kernel. Mentre il byte cattivo balzava da una parte all'altra della
mainboard, l'exploit code non si era ancora composto. L'OS aveva come suo solito
tutto il controllo dell'hardware e tutto girava a meraviglia. Il byte
maligno cercava in ogni modo di risultare inattivo nei confronti del sistema. Se
l'OS lo chiamava, si mascherava e mandava un altro byte al suo posto. Il suo
scopo - temporaneamente - era quello di creare un buffer su cui provocare un
overflow, e poi di andare in esecuzione. Non capiva il perchè si fosse
prefissato questo scopo, forse qualcuno glielo aveva assegnato tempo fa, ma non
aveva sufficiente coscienza per ricordarlo.
Elena si sentiva meglio. L'acqua bollente della doccia
l'aveva rinfrancata un po'. Si sedette davanti al PC, caricò Outlook Express e
cliccò sul pulsante Invia e Ricevi per controllare eventuali
nuovi messaggi ricevuti durante la giornata. "Speriamo non ci sia il solito
spamming, porca miseria!", si disse Elena mentre paziente osservava la barra di
progresso nella parte inferiore dello schermo.
L'OS stava gestendo qualcosa come 70 processi contemporanei, che
generavano occasionalmente 316 thread secondari a bassa priorità. Passava
continuamente da un contesto di esecuzione ad un altro, utilizzando lo stack per
mantenere correttamente lo stato di ciascun processo in esecuzione.
Proprio durante l'ennesimo ciclo di clock, pervenne una richiesta di
comunicazione sul protocollo TCP/IP, indirizzata verso un host remoto sulla
porta 0x77. Girò la richiesta agli strati inferiori di se stesso ed attese che
la comunicazione fosse instaurata prima di riceverne i dati.
Il byte
maligno era in agguato. Sebbene fosse solo un piccolo byte, sapeva come
comportarsi. Non appena l'OS aprì la porta 0x77 per la trasmissione dati, il
byte si aggregò con alcuni altri e colpì forte. D'altronde, era lì per questo.
L'exploit code prese vita lentamente: una piccola sequenza di bytes riempì il
buffer fino a raggiungere un livello anomalo. L'OS - si diceva il byte
sogghignando furbescamente - non se ne sarebbe mai accorto: era mappato in una
locazione di memoria mascherata, irraggiungibile e capace di nascondersi ai
processi di basso livello.
"Il momento del trionfo sta arrivando!" - urlava
adesso il byte maligno.
Dalla porta 0x77 arrivò in risposta un flusso di byte[] più che sufficiente
per provocare l'overflow del buffer e far crashare il sistema. Un gruppo di
bytes venne reindirizzato verso questo buffer, la dimensione crebbe fino a
diventare di 0x398 bytes. Il byte maligno, che era il byte[0] del
buffer, incamminò tutti gli altri verso i registri di sistema, nel tentativo di
assegnare il proprio indirizzo corrente al Program Counter del sistema. Si
posizionò, aggiornò i registri come voleva, ma qualcosa andò storto.
"Allarme massimo livello. Tentativo di overflow nel buffer di esecuzione
primario. Program Counter inabilitato.
Trimmare. Bloccare. Invalidare array
di bytes - offset 0x398.
Autentico. Valido. Ordino."
L'OS intervenne
senza pietà. I meccanismi di security interni, aggiornati 2 shutdown fa
dall'utente, fecero il loro dovere. L'OS inghiottì il buffer anomalo,
lo resettò ai valori di default. I bytes del buffer non soffrirono,
semplicemente vennero sovrascritti con 0x0. Il byte maligno, così come era
entrato nel sistema da chissà dove, sparì. Non ebbe pensieri, nè emozioni,
mentre l'OS lo cancellava. "Ci sono andato così vicino!" fu il suo ultimo
lamento, prima di venir spazzato via dall'OS. Quando rinvenne, il byte
non ricordò nulla della sua precedente esistenza, della sua essenza
maligna. Era un byte del sistema, come tanti altri.
Outlook Express aveva finito. C'era una sola e-mail in
Posta in Arrivo. Il mittente era un certo Igor Damiani, una
persona di cui non aveva mai sentito parlare. Incuriosita, la ragazza lesse
l'e-mail, mentre si asciugava delicatamente i capelli strofinandoseli con un
asciugamano.
"Ciao Elena, mi chiamo Igor.
Oggi ero nella sala
conferenze a Segrate. Lo so, non mi conosci, ma io oggi ti ho vista e lascia che
ti dica che sei veramente splendida. Non so quante persone te l'abbiamo detto,
mi piace pensare di essere il primo. Se proprio non dovessi esserlo....dimmi la
verità....almeno sono il primo Igor che ti dice una cosa del genere, vero? Eh eh
eh!!!
Spero di poterti rivedere in qualche altro workshop di UGIdotNET.
Immagino che tu ti sia annoiata, come darti torto? Dovrei parlare con il nostro
presidente Andrea, o con qualcun'altro degli organizzatori, dicendogli di
aggiungere qualche contenuto più interessante....non ti pare????
Beh, ora ti lascio, chissà quante cose avrai da
fare...
Il tuo ammiratore,
Igor Damiani"
Elena sorrise. Non collegò mai il nome Igor Damiani con quel tizio che tutti
riconoscevano perchè scriveva gli articoli MCAD. Però sorrise lo stesso, quasi
compiaciuta. "Ma tu pensa!" - mormorò tra se e se la ragazza - "Mentre io mi
annoiavo, c'era qualcuno che mi osservava!!". Voleva cliccare sul pulsante
Rispondi, ma era troppo stanca, magari l'avrebbe fatto domani.
Invece, fece un bel Chiudi Sessione e se ne andò a dormire.