Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

L'OS di Elena alle prese con un "byte maligno"

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.

powered by IMHO 1.2

Print | posted on giovedì 20 ottobre 2005 20:03 | Filed Under [ 010 .bytes. 010 ]

Feedback

Gravatar

# re: L'OS di Elena alle prese con un "byte maligno"

Ti prego, dimmi che in qualche maniera le hai estorto l'email e le hai scritto davvero! :-D
Io ho estorto il numero di telefono ad una standista della vodafone facendo il simpatico e sono riuscito a convincerla ad uscire con me...
20/10/2005 20:33 | Michele Bernardi
Gravatar

# re: L'OS di Elena alle prese con un "byte maligno"

Michele: cavolo, complimenti!!! Comunque no, non le ho estorto l'email....magari!!!
:-)
sono troppo timido per fare una cosa del genere!
:-)
20/10/2005 20:44 | Igor Damiani
Gravatar

# re: L'OS di Elena alle prese con un "byte maligno"

Mannaggia Igor, sarebbe stato un bel colpo! :-D
Beh, io sono stato fortunato, e, come mi ha detto lei, SFACCIATO. Però un po' di sfacciataggine paga... :-D
...eppoi dopo avere scoperto che una standista vodafone ha il telefonino TIM il mio silenzio in qualche maniera doveva pagarlo! ;-)
20/10/2005 21:42 | Michele Bernardi
Gravatar

# re: L'OS di Elena alle prese con un "byte maligno"

seguo sempre le tue storielle sui byte....
continua così......
20/10/2005 22:58 | gio
Gravatar

# Re: L'OS di Elena alle prese con un "byte maligno"

Vai Igor, sei grande..ehhhee la storiella di Elena si addiceva al byte[] virus troja-n...
21/10/2005 19:47 | python
Gravatar

# [SMAU] Toccare con mano una... URL!

About SMAU 2005...
22/10/2005 19:27 | TheDuzBlog! ;-p
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET