==============================================================================
-----------[ BFi numero 10, anno 4 - 20/09/2001 - file 2 di 18 ]--------------
==============================================================================


-[ C0LUMNS ]------------------------------------------------------------------
---[ iL PR0BLEMA E LA S0LUZi0NE
-----[ Raistlin 
 

IL PROBLEMA E LA SOLUZIONE
Una tragica storia di Boria, Sicurezza, Orgoglio e Pregiudizio.
------------------------------------------------------------------------------

di Raistlin


PROLOGO:


Quanto segue si basa sull'advisory di sicurezza UMBRA Advisory RFP2K02; i
contenuti tecnici di questo articolo, per quanto cammuffati e relativamente
secondari rispetto al suo vero significato, sono validi e non assolutamente
inventati (anche se a volte stupefacenti per la loro stupidita`). Non
lasciatevi stupire dalla forma e cercate di capire la critica fondamentale a
un modo di agire e di essere che si va diffondendo come una piaga all'interno
delle grandi societa` di software. Sorridete e ridete dove e` il caso... ma
come molte commedie, anche questa si porta dentro una morale che non vorrei
sottovalutaste.


AVVERTENZA:


Fatti e persone qui rappresentati sono puramente reali. Non sperate che
quello che ho scritto sia solo una barzelletta. E` la tragica dimostrazione
che la realta` supera anche la peggiore delle fantasie.


PERSONAGGI ED INTERPRETI:


I crediti per l'exploiting di questa curiosa backdoor vanno tutti ai due
mitici Alf Serer ( alf@at.clientlogic.com ) e Rain Forest Puppy
( rfp@wiretrip.net ). Vorrei approfittare per ringraziare quest'ultimo per la
sua amicizia e disponibilita`. 

Sempre nel ruolo degli intrepidi cercatori di perle, Gerardo e Ivan Arce
( iarce@core-sdi.com ) della CORE (scopritori del SECONDO bug, come vedremo).

Tra gli interpreti (involontari) della commedia che andremo a mettere in
scena, vi sono anche numerosi man-in-black del Microsoft Security Team. Li
chiameremo tutti Smith, in onore a uno dei piu` grandi film della storia (se
non beccate la citazione potete anche iniziare a frustarvi). Tanto non hanno
una identita`, avvolti nel blobboso nulla della casella anonima
"secure@microsoft.com". 

La figura dell'imbecille la fa, dando prova di sapersi calare perfettamente
nella parte, il signor Russ Cooper, gestore di NTBugTraq.

Infine, in tutte le commedie si ringraziano le persone che non sono comparse
sul palco, ma senza il cui contributo, aiuto e incoraggiamento l'opera non si
sarebbe potuta scrivere. Non faccio eccezione. Un ringraziamento a tutti i
fratelli dell'Orda delle Badlands e di S0ftpj. Grazie di esistere cosi` come
siete (cioe`, bastardi dentro ;)

------------------------------------------------------------------------------

ATTO PRIMO - L'INIZIO DELLE OSTILITA`
(qualcuno direbbe "let mortal kombat begin, ma io sono piu` serio - ciauz pho
:)


SCENA I - L'INCRESCIOSO ANTEFATTO

Accadde un di` in quel di Redmond che l'agente Smith, sorridendo, osasse
deridere uno dei frequentatori di Bugtraq (la pericolosa lista di sovversivi
che osava mettere in cattiva luce il Software di Casa Microsoft); si trattava
del povero signor Cuartango, che aveva individuato una vera e propria backdoor
nell'autenticazione dei pacchetti di installazione Microsoft.

Riassumendo concisamente la questione, Cuartango aveva fatto notare quanto
fosse inquietante il fatto che, visitando il sito Microsoft, alcuni controlli
venissero installati automaticamente senza chiedere l'autorizzazione
dell'utente, in forza di "chiavi" privilegiate di autenticazione della stessa
Microsoft. Ora, chiunque si rende conto che questo corrisponde ne` piu` ne`
meno che a una backdoor. Fatto sta che l'Agente Smith, ritenendosi blandamente
offeso dal sospetto (una BACKDOOR? Ma quelle sono cose da hacker! Loro -
secure@microsoft.com - sono i BUONI!) ebbe l'ardire di scrivere (io me lo
immagino con un sorrisino accennato sulle labbra) che l'accettazione
automatica dell'installazione era stata creata:
"to improve our customers' experience while downloading software from
Microsoft web sites."
"per migliorare l'esperienza dei nostri clienti durante il download di
software dai siti Microsoft"

Inoltre, imprudentemente, aggiunse, a ulteriore derisione:
"...we love a good conspiracy theory as much as the next person..."
"...sappiamo apprezzare come chiunque altro una buona teoria di
cospirazione..."

Sottintendendo con questo che fosse assolutamente ridicolo pensare che una
societa` che domina il 75% del mercato dei sistemi operativi potesse,
colpevolmente, inserire delle "backdoor" nei propri applicativi per cercare di
"dominare il mondo".

In effetti e` ridicolo: Microsoft riesce perfettamente a dominare il mondo
anche senza l'uso di backdoor...

"Cos'e` Microsoft?"
"Microsoft e` ovunque, e` intorno a noi, anche adesso, nella stanza in cui
siamo. E` quello che vedi quando ti affacci alla finestra, quando accendi il
televisore. Lo avverti quando vai al lavoro, quando vai in chiesa, quando
paghi le tasse. E` il mondo che ti e` stato messo davanti agli occhi per
nasconderti la verita`"
"Quale verita`?"
"Che tu sei uno schiavo, Neo. Come tutti gli altri sei nato in catene, sei
nato in una prigione senza sbarre, che non ha mura, che non ha odore. Una
prigione per la tua mente"

Ok, ok, mi sono lasciato trasportare... (e` inquietante pero` che questa frase
si adatti cosi` bene alla realta`... e` molto inquietante...). Ma torniamo
all'agente Smith e alla sua spensierata risposta. Alla sua benevola presa in
giro di chi IPOTIZZAVA simili comportamenti SLEALI da parte di una Rinomata
Rispettabile Societa' di Software come Microsoft... torniamo alla solita idea,
che questi agenti del Buonismo di Mamma Software House pensano di poter
spandere impunemente attorno. L'idea per cui e' solo una certa invidia, un
odio preconcetto e congenito, a muovere coloro che fanno critiche
*mode LADY INGLESE INDIGNATA ON*
cosi` INGIUSTE E IRRESPONSABILI! Cielo!
*mode LADY INGLESE INDIGNATA OFF*


SCENA II - IL PECCATO...


Come si sa, orgoglio e menzogna sono peccati capitali. E per una volta la
punizione non si e` fatta attendere...


... E LA PUNIZIONE


Di fronte a tanta dignita` ferita, infatti, nessuno si e` lasciato
impietosire. Ed ecco che come una mazzata sulle gengive e` uscito l'advisory
di sicurezza di cui vi voglio parlare, ovvero:
"Netscape engineers are weenies!"
"Gli ingegneri Netscape sono dei cagasotto!"

Dopo averci fatto sgranare gli occhi con questo titolo quantomeno INSOLITO,
Rain Forest Puppy (per coloro che non lo conoscessero, e` uno dei piu` attivi 
contributors di BugTraq, e non e` nuovo a scoperte esplosive come questa...)
ci chiarifica per bene la portata del problema di sicurezza:
"A back door in Microsoft FrontPage extensions/authoring components"

Che mi sembra una frase del tutto esplicativa, anche se lascia qualche
difficolta` a comprendere cosa c'entri il titolo...

Il problema di sicurezza rilevato da RFP e` abbastanza semplice, e al
contempo abbastanza scioccante [qui ed altrove, sono mie le traduzioni dai
post originali, il piu` fedelmente possibile]:
<< con l'option pack di NT4 viene distribuita una ISAPI .dll particolare nella
directory /_vti_bin/_vti_aut/, denominata dvwssr.dll [...] Questa particolare
.dll consente di leggere i file .asp (e .asa) nella root web, posto di
conoscere la 'password' (codificata solo per offuscamento) da utilizzare. E,
come implica il titolo di questo advisory, la chiave costante usata nella
codifica e` "Netscape engineers are weenies!".>>

Ora. Vi siete mai trovati nella condizione di chiedere a qualcuno quale fosse
la sua password e osservare il suo imbarazzo mentre vi rispondeva qualcosa
come "c*zzo123" o altre scempiaggini simili, e si vergognava profondamente
della sua stupidita` nello scegliere le proprie chiavi d'accesso?

Ecco, provate a immaginarvi la faccia di Smith mentre leggeva una advisory di
sicurezza (e vabbe`) riguardante NT (ce ne sono tre al giorno), in particolare
IIS (due al giorno), in cui e` stata scoperta una backdoor INTENZIONALE (e
gia` la situazione si fa piu` tesa), la cui password chiama gli ingegneri
della concorrenza "cagasotto", rivelando solo una duplice, stupida boria,
ovvero quella di insultare dei colleghi e di farlo con la sicurezza di non
essere mai colti in flagrante.

C'e` di che rovinare la giornata anche al nostro impassibile Agente Smith.

RFP riesce a mantenersi serio ancora per qualche istante, il tempo di dare
tutti i limiti della backdoor trovata: infatti <>. Vi prego di fare attenzione a questo particolare, che
nel seguito della nostra tragicommedia avra` molta importanza... In questo
post i limiti e i privilegi della backdoor sono _perfettamente chiari_ ed
enunciati in modo molto professionale, anche se il quadro della situazione
e` abbastanza comico.

Insomma, in qualche modo, l'efficacia "effettiva" di questa backdoor e`
alquanto limitata. Lo stesso RFP lo ammette; ma come potete capire, il piu`
grave danno proviene non tanto dalla effettiva utilizzabilita` della backdoor
quanto dalla sua chiave di crittazione. Trattenendosi a stento dallo scoppiare
a ridere apertamente in faccia a Smith, RFP commenta sarcastico (riferendosi
alla compita letterina dello stesso): << lasciatemi dunque descrivere come
Microsoft abbia anche incluso una ISAPI .dll come parte del pacchetto di
estensioni FrontPage, dell'option pack e di Visual InterDev, "per migliorare
l'esperienza di UN HACKER durante il download di software dal VOSTRO sito." >>

SKLANK! (colpo di mazza chiodata che piove sulla testa di Smith - ma
tranquilli, questi signori sono fatti di pongo come un cartone animato e
possono sopportare questo ed altro, probabilmente continuando a sorridere).


SCENA III - QUALCHE DETTAGLIO TECNICO


Con un certo divertimento malcelato, RFP completa l'advisory descrivendo come
sia stata rinvenuta la famigerata stringa "Netscape engineers are weenies!"
(niente di complicato... era addirittura contenuta IN CHIARO all'interno del
file, anche se inserita all'indietro...). Incuriosito da questa scoperta
(fatta da Alf Serer), il nostro eroe si e` messo a cercare DOVE quella .dll
fosse richiesta da FP o dalle extensions. Un'occhiata al sito Microsoft
(esplicativo, chiaro e completo come al solito) rivelava solo un generico "la
DLL e` usata per verificare gli URL". Strano che a fronte di questo essa non
venisse MAI invocata (anche se viene esplicitamente richiesta da
InterDev 1.0).

Altro piccolo particolare sospetto della DLL medesima: dove tutte le altre
ISAPI .dll delle FrontPage extensions sono alla versione 3.0.2.1105,
dvwssr.dll e` ferma al 1.00.00.2503A. Il che offre solo due possibilita`,
entrambe sconcertanti:
a) Microsoft ha introdotto solo di recente in Front Page tale .dll, oppure
b) Essa e` un residuo dei giorni in cui FP veniva sviluppato dalla Vemeer
   Technologies Inc. (... se vi eravate chiesti, come il sottoscritto, il
   perche` del prefisso _vti_ eccovi la spiegazione...)

Nel caso a) la responsabilita` di Microsoft e` evidente. Nel caso b), e`
inquietante che dopo l'acquisizione di un prodotto esso non venga auditato, o
quanto meno verificato. In ogni caso il punto e` che Microsoft ha codato, o
consentito, l'inserimento di una .dll con una key statica tanto imbecille
quanto quella citata.

Per coloro che fossero interessati ai dettagli tecnici, l'algoritmo di
encripting simpaticamente ribattezzato "weenie" e` un algoritmo a slittamento
di carattere a 62 posizioni (non includo il codice perl, che puo` essere
comodamente reperito sul sito di SecurityFocus - anche se questo codice
avra` un'importanza non secondaria nel resto di questa vera e propria
telenovela della sicurezza informatica). Sappiate anche che la versione Unix
delle FP Extensions (AHAHAHAHAHAHAHAH, ma ci sara` qualcuno che la usa?) non
include tale codice, e che se non usate InterDev 1.0 potete comodamente
cancellare la .dll per sicurezza.


CORO DELL'ATTO PRIMO


Canta le sagge parole del mai abbastanza lodato RFP:

    Regardless if Netscape engineers are weenies,
    Microsoft engineers are definately pompous

[   Che gli ingegneri di Netscape siano dei cagasotto o no,		     ]
[   e` invece certo che gli ingegneri di Microsoft siano parecchio pomposi   ]

------------------------------------------------------------------------------

ATTO SECONDO - OVVERO, SI TENTA L'INSABBIAMENTO


SCENA I - PANICO!


Siete nei panni del nostro agente Smith, e vi siete doverosamente presi la
palata sui denti. A mezzogiorno avete saltato il pranzo mentre cercavate di
capire chi avesse combinato questo casino enorme (io penso che chi ha inserito
quel codice non lavori piu` per Microsoft... o che sia stato trasferito nella
stessa filiale del tecnico che attacco` il famoso scanner USB durante la
presentazione di Windows 98...)

Ora, il punto dolente e`: che dichiarazione ufficiale rilasciare? Non si
puo` non commentare una cosa del genere... e del resto e` ovvio che anche
dietro la blobbosa anonimita` della casella secure@microsoft.com non ci si
puo` difendere dalle risate del mondo intero... Pertanto ecco che esce il
compito post della Microsoft (scritto da uno Smith in lacrime che si frusta
col suo cilicio):

Advisory MS00-025, 14 Aprile:
<<
Issue
=====
Dvwssr.dll is a server-side component used to support the Link View
feature in Visual Interdev 1.0. By design, it provides  .asp files to
clients who have web authoring privileges on the server. However, it
does not properly restrict the files that a web author can request,
with the result that a user who has web authoring privileges on one
web site could request .asp  files from anywhere on the server,
including other web sites hosted on it. However, even with this
vulnerability, the component would only comply with the request if
the specific file granted read access to the user.
>>

I lettori anglofobi (poi mi spiegate come fate ad occuparvi di informatica
senza parlare inglese, eh...) mi scuseranno se mi risparmio di tradurre e mi
limito a commentare... Microsoft non fa altro che riconoscere il danno, anche
se evita accuratamente lo spinoso argomento di chi sia un cagasotto e chi
no...

Tra l'altro hanno anche il coraggio di cercare qualche scusa...

<<
There are some significant restrictions to this vulnerability:
- Only servers hosting multiple web sites could be affected by it
>>

(nel senso che sugli altri server l'author non avrebbe nessun vantaggio a
usare la backdoor...)

<<
- Only a user who has web authoring privileges for a site on the
  server could request a file. He would need to know the name and
  location of the file on the server.
>>

(si`, mi pare che questo l'avessimo gia` detto... inoltre la seconda
condizione e` abbastanza idiota... se uno ha accesso web author E accesso in
lettura a tali file...)

<<
- The files would only be sent if their permissions granted read
  access to the particular user who requested them. In most cases,
  this would mean that the files granted read access to the
  Everyone group
>>

(Non mi pare poi COSI' INCREDIBILE come condizione... specie considerando il
livello medio di sicurezza dei server web NT...)

<<
- Only .asp files (and global.asa, which is a special-case .asp
  file) could be retrieved.
>>

E stikazzi! Nei file .asp ci puo` essere anche del sorgente di un certo
valore (di solito un programmatore ASP non viene pagato poco per creare i
meccanismi di gestione di un sito... figuriamoci se mi va di mettere quei
sorgenti a disposizione della concorrenza...) e sopratutto visto che ASP
accede ai database, possono esserci (in chiaro) delle password di accesso. Ma
stiamo scherzando?


SCENA II - I MEDIA

Affamati di notizie riguardanti gli "acher", molti giornalisti si sono tuffati
a pesce su questa notizia, capendone ovviamente circa un decimo (e sono
buono...), e con ogni trasmissione televisiva questo bug e` cresciuto di
importanza: "un piccolo bug.." "un rilevante problema" "il disastro totale per
i siti di e-commerce" "attenzione: vi potrebbero rubare la carta di credito"
(perche` tanto poi finiscono sempre per parare li`... pare che credano che i
black-hats non abbiano obiettivi piu` goduriosi di queste stramaledette carte
di credito... mah...)

Fatto sta che, anche grazie alle esagerazioni dei media, i nostri cari agenti
Smith si trovano, finalmente, nella condizione di poter dire "no, beh, e` meno
grave di quel che pensassimo" (avete mai notato quanto sia producente questa
strategia? Far si` che gli altri ingigantiscano i vostri errori, fino a
quando li sopravvalutano tanto da passare dalla parte del torto...
impariamola, questa lezione!).

Ed e` cosi` che il signor Russ Cooper, gestore di NTBugTraq e stimato esperto
delle problematiche di sicurezza di NT, riesce a dichiarare, nello stesso
maledetto 14 aprile, che: "Le ultime notizie sono che non vi e` alcuna
vulnerabilita` in DVWSSR.DLL". Sostanzialmente sostenendo che la stringa
(visibile a chiunque: basta disassemblare la .dll) non esiste.

Lascio a commento le parole di Yarmond su Slashdot: "Don't try to fix the bug,
for that is impossible. You must realize the truth: there is no bug." Ogni
riferimento al solito film che pare caratterizzare tutta questa storia e`
puramente secondario.

Sempre Russ Cooper riesce, nello stesso post, a darci una commovente
descrizione degli uomini di Microsoft che "si sono messi al lavoro su questo
come pazzi, cercando di verificare il problema ed analizzando tutti i
possibili pezzi di codice che potessero essere affetti."
Non e` commovente questa storia con gli omini di Microsoft sudati e impaludati
in mezzo a mucchi di righe di codice, cercando disperatamente questa backdoor
cosi` ben nascosta da ESSERE VISIBILE DALL'ESTERNO A QUALCUNO PRIVO DEL CODICE
SORGENTE?

Davvero, a volte uno si chiede se SONO fessi, oppure se si credono tanto furbi
e ci credono tanto idioti da permettersi di sparare impunemente cazzate 
simili. Ad ogni modo, Cooper conclude con un rimprovero: "Se gli (agli omini
di microsoft, NdT) fosse stato dato un ragionevole quantitativo di tempo per
rispondere nessuno si sarebbe preoccupato di nulla (i.e. la stampa non si
sarebbe preoccupata di questa storia)."

E cavolo! Pensateci, prima di rendere pubbliche le vostre osservazioni!
Comunicatecelo in privato: "Cara Microsoft, guarda che abbiamo trovato la
BackDoor che hai piazzato in questa .dll: rimuovila, eh! Ora va', e non
peccare piu`!": in questo modo potremo patchare il tutto in silenzio, magari
senza neanche specificare chiaramente la CAUSA del problema. Sarebbe uscito
soltanto il compito post in cui si parla di "vulnerabilita`" e "inappropriata
restrizione d'accesso", e ci saremmo evitati la figura di merda di aver
chiamato i nostri diretti concorrenti "cagasotto". Ma per favore!


SCENA III - IL COLPO DI SCENA (o "L'Incredibile Faccia di Bronzo di Cooper")


Mentre Microsoft esibiva la sua dignita` ferita da queste ingiuste illazioni
della stampa, facendo si` che qualcuno arrivasse a escludere QUALSIASI
problema nella .dll in questione, il signor Gerardo (di CORE), con un po' di
voglia di curiosare (quella che a noialtri non manca mai, vero?) ha dato
un'occhiata piu` approfondita a questo gioiellino di casa Microsoft. E...
sorpreeeeeeeeesa!

"C'era la backdoor!" diranno tutti i miei quarantatre` lettori. No cari,
avete sbagliato: sorpresa, _OLTRE_ alla backdoor (alle volte il destino si
accanisce contro i colpevoli) c'era _anche_ un simpatico buffer overflow, in
grado di consentire l'esecuzione di comandi arbitrari sul server (incluso un
CMD.EXE da remoto). Tanto per cambiare sono bastardo, e per i dettagli
exploitatorii vi rimando al solito SecurityFocus.

Immaginatevi Smith che legge l'advisory, e lo commenta con la stessa frase
che usa l'omonimo coprotagonista di "The Matrix" di fronte al cannoncino
Vulcan del B-212.

"NO!"

E invece si`, cari. E gia` che ci siamo, vogliamo parlare del fatto che
nemmeno Microsoft sia in grado di dirci con QUALI PRIVILEGI questo codice 
venga eseguito? Sembra incredibile, dal mio punto di vista di persona abituata
alla sicurezza UNIX, in cui e` sempre abbastanza chiaro con quali privilegi 
venga eseguito un certo brandello di codice, ma e` vero! Infatti, in uno 
stesso post (MS00-025 update , April 17th) i segugi di Redmond riescono ad 
affermare due cose completamente contraddittorie:

> Dvwssr.dll is a server-side component used to support the Link View
> feature in Visual Interdev 1.0. However, it contains an  unchecked
> buffer. If overrun with random data, it could be used to cause an
> affected server to crash, or could allow  arbitrary code to run on the
> server in a System context.

E quindi, ci pare di capire, il codice si esegue con privilegi di sistema.
Alla faccia del buffer overflow. Ma:

> By default, the affected component, Dvwssr.dll, resides in a folder
> whose permissions only allow web authors to execute it.  Under these
> conditions, only a person with web author privileges could exploit the
> vulnerability - but a web author already  has the ability to upload
> and execute code of his choice, so this case represents little
> additional threat.

Quindi il codice gira coi privilegi da Web Author? (E DICI POCO?)
Oppure ci state dicendo che il codice eseguito da Web Author ha gli stessi 
privilegi di SYSTEM?

Credo restera` un mistero fino a quando qualcuno (esterno alla Microsoft, che
e` evidentemente INCAPACE di dirimere la questione) fara` funzionare un
exploit su questo overflow, dimostrando al di la` di ogni dubbio la sua
portata... certo che pero` e` triste dover fare da balia a una societa`
cosi` seria e professionale...

Ma ecco che, colto in contropiede nella sua opera di Difesa di Microsoft, il
Simpatico e Ridente Russ Cooper perde l'occasione di starsene schiscio
(traduco dal dialetto milanese: zitto, muto e con le orecchie basse) e
contrattacca osservando che "La vulnerability scoperta da CORE sembra
completamente scollegata dal problema "weenie", a parte per il fatto che
risiede nella stessa DLL."
Come se questo risolvesse in qualche modo il problema!

Dopodiche` si ridicolizza ulteriormente precisando che se "CORE desidera nomi
di DLL da controllare... posso inviargliene una
lista-delle-DLL-da-controllare-di-oggi" e che gli sembra ridicolo pensare che
"se in una DLL c'e` un potenziale problema ci saranno probabilmente degli
exploit".

A questo punto uno si chiede: e allora chiudiamo tutte le liste di sicurezza
e piantiamola di analizzare i programmi forniti dalle Grandi e Rispettabili
Software House. Probabilmente il Ridente Cooper intende proprio questo (ma
come? Non gestisce lui stesso la piu` importante lista di sicurezza-NT al
mondo?). E insiste nella linea secondo cui "...se fosse stato dato piu` tempo
a Microsoft prima che il tutto fosse reso pubblico...", provocando una
reazione piccata e pienamente comprensibile di Ivan Arce' (presidente di
CORE, l'azienda di Gerardo, scopritore del secondo baco). Ivan si chiede (e
chiede un po' a tutti noi che ci occupiamo di queste cose) come ci si possa
aspettare che la comunita` della sicurezza si faccia dei problemi relativi
alle possibili travisazioni che dei nostri messaggi faranno i giornalisti.
Purtroppo non c'e` modo di ovviare all'ignoranza con cui vengono trattati
certi temi, e allo stesso tempo non si puo` per questo ricondurre l'analisi
di sicurezza all'underground (dove gia` e` rimasta fin troppo a lungo...).

In sostanza Cooper (con una faccia di bronzo incredibile, sopratutto visto e
considerato che DIRIGE una delle piu` importanti liste di full-disclosure al
mondo) sostiene che se non si fosse fatto casino, il secondo "baco" non
sarebbe nemmeno saltato fuori, quasi a dire: avete trovato questo baco solo
perche` vi scocciava che non ci fosse un reale problema di sicurezza con la 
backdoor di prima, state giocando sporco, ci sara` sempre un baco, state 
facendo disinformazione.


CORO DELL'ATTO SECONDO


Entra e canta le parole di fuoco di Arce' contro Cooper ed il metodo di
insabbiamento Microsoft:

"I do consider misinformation in terms of information security issues a
serious threat. If someone yells 'FIRE' and that appears to be reasonable,
i'd be very careful ... before yelling "NOT TRUE! NOT TRUE! EVERYTHING IS 
FINE!".
...
The problem is that there are bugs out there and people is not taking
appropriate measures to confirm or deny their existence. Excuse me if i'm
being rude, but i'm shocked by the fact that our company is being questioned
because we found a bug."

["Considero la disinformazione nel campo di problemi di sicurezza informatica
una minaccia seria. Se qualcuno urla "AL FUOCO" e pare ragionevole cio` che
dice, io sarei molto cauto ... prima di sostenere: "NON E` VERO! NON E` VERO!
VA TUTTO BENE!".
...
Il problema e` che ci sono dei bug li` fuori, e c'e` gente che non sta 
prendendo misure atte a confermarne o negarne l'esistenza. Scusatemi se sono 
maleducato, ma sono shockato dal fatto che la nostra compagnia venga messa in 
discussione perche` abbiamo TROVATO un bug."]

------------------------------------------------------------------------------

ATTO TERZO - RFP STRIKES BACK
Estratti da "Contemplations on dvwssr.dll and how it affects life" - di
Rain Forest Puppy


SCENA I - UN UOMO INDOMITO


Dopo una lunga pausa di riflessione, RFP decide di riprendere in mano il suo 
post e di aggiungere le sue considerazioni all'indegno carosello cui abbiamo
assistito principalmente da parte di Microsoft e di vari "servi sciocchi" del
padrone.

E come d'uso, non lo fa in termini normali. Lo cito senza traduzione,
perche` sono certo che perderei la freschezza dei suoi passaggi in inglese.

"So there I was sitting.  An individual injecting permanent black dye into my
arm with a small electrical needle device, forming a tribal pattern that will
forever be on my arm.  Half way through I started to wonder 'why'?  And trust
me, half way through a tattoo session is not a good time to start wondering
such things.

Why?  Why do such things at all?  What would others reactions be to it? Why
do I care what others think?  Who else is there really?

Deep breath.  A flood of Descartes enters my mind.  What is there beyond
myself?  How can I be assure of anything beyond me?

Quite simply, I can't.  I can't tell anyone what it's like to be in
Microsoft's place, because I haven't been there.  I don't know what it's like
to be a Netscape engineer and be called a weenie, because I'm not (a Netscape
engineer that is; the other is debatable).

I can not positively state for certain anything other than my own perceptions,
since I only know what, well, I have personally experienced. So I can only
talk of matters concerning me, as when I involve anything beyond myself, I am
making assumptions on its form, state, and the
perception it offers to me.

So I have observed the results of RFP2K02.  Every nuance, every publically
spoken word on the subject I could find, I have considered, contemplated. What
does each contemplation involve?  I review them to myself..."

Invito tutti coloro che hanno riso fin qui leggendo questo teatrino in cinque
atti a leggersi per intero questo post (lo trovate nell'archivio di bugtraq
all'indirizzo URL:
http://www.securityfocus.com/templates/advisory.html?id=2236)

Io mi limitero` a citarne i brani che mi preme commentare, perche` sono il
climax e la degna conclusione di questa vicenda da operetta della sicurezza
informatica


SCENA II - PER QUEL CHE RIGUARDA LA STAMPA...


Dapprima il Nostro, in una crisi mistica introspettiva e in un lungo e
appassionato monologo degno di una tragedia shakespeariana, si chiede: "Sono
forse io la causa del problema?". In alternativa, tutto il casino che e`
saltato fuori dai media, e` davvero colpa mia?

Per rispondersi, RFP risale al primo articolo sulla vicenda, scritto da Ted
Birdis sul Wall Street Journal. E pensa: "Se io fossi stato Ted, cosa avrei
fatto leggendo la MIA advisory? L'advisory di una persona non nota e che
quindi, per me (Ted) puo` anche sbagliare? Ma e` semplice, mi basta
consultare Microsoft".

E qui e` la sorpresa. Il manager del security-response center di Microsoft,
Steve Lipner (uno dei MIB! Ha un nome! INCREDIBBBBOLE!) CONFERMA a Ted Birdis
un rischio elevato di sicurezza derivante da questa backdoor, che viene
descritta da lui come "assolutamente contraria alle nostre policy" e come
sicura causa di licenziamento per gli eventuali responsabili ancora non 
identificati.

Questo per quanto riguarda l'opinione del produttore. Per quanto riguarda
invece l'opinione di Russ Cooper (la PRIMA opinione di Russ Cooper, almeno),
egli dichiara a Ted che il problema minaccia "quasi ogni provider che offra
servizi di hosting... e` un difetto grave..."

Mi ricordo che un detto cinese dice "Three men make a tiger". Perche` se una
persona ti dice che ha visto una tigre in citta`, puoi pensare che sia un 
pazzo. Se sono in due, che siano d'accordo. Ma se TRE persone indipendenti ti
confermano la stessa cosa, c'e` da iniziare a pensare che non sia poi del
tutto falsa.

Il "casino" di cui si lamenta Cooper durante la sua arringa difensiva di
Mamma Microsoft Minacciata dai Bimbi Cattivi nasce da qui. Da tre conferme
indipendenti di un problema di sicurezza. E, per colmo di ironia, e` proprio
Russ Cooper (esperto - lo ricordiamo - di sicurezza NT e amministratore - lo
ricordiamo - di NTBugTraq) il primo ad aver detto che si trattava di un
problema "diffuso" e "pericoloso", mentre in effetti l'advisory di RFP diceva 
l'esatto contrario, minimizzando.

Tutto sommato, facendo il paragone con la media dei colleghi giornalisti, Ted
Birdis si e` comportato in maniera dignitosissima, cercando addirittura un
secondo e un terzo parere... Puo` essere colpa sua, o colpa di RFP, se le
altre due fonti hanno cambiato idea SUCCESSIVAMENTE (e ci sono le MAIL a
dimostrarlo, in questo teatrino dell'assurdo)?

No, non puo` essere colpa loro.

E quindi, ci si puo` chiedere, dov'e` che Ted Birdis ha sbagliato?

La risposta e` necessaria e stringente: non ha sbagliato in nulla.


SCENA III - LE MIRABILI TRASFORMAZIONI DI RUSS COOPER
"A monk asked Yun Men, 'What are the teachings of a whole
lifetime?'  Yun Men said, 'An appropriate statement.'"
- The Blue Cliff Record


RFP e` micidiale nel delineare le tappe della conversione di Cooper.

* Venerdi`, 14 Apr 2000, ora imprecisata
Intervista con Ted Birdis. Il problema e` diffuso, grave, praticamente
presente in ogni internet provider.

* Venerdi`, 14 Apr 2000 11:27:09 -0400
Mail su NTBugtraq: e` un problema di sicurezza che puo` consentire ad altre
persone (che pero` devono avere gia` i permessi di web authoring) di scoprire
dati a cui non dovrebbero avere accesso.

* Venerdi`, 14 Apr 2000 15:32:52 -0400
Mail su NTBugtraq, quella famosa contro cui tuonera` Ivan D'Arce: Non c'e`
assolutamente nessuna vulnerabilita` su DVWSSR.DLL

* Domenica, 16 Apr 2000 10:02:41 -0400
Mail su NTBugtraq: Cooper si autocita e si autocorregge: ho detto che non
c'era la vulnerability perche` allora pensavo cosi`, adesso pero` sappiamo
che non e` vero [non e` vero che non c'era, quindi e` vero che c'era]

Chiarito che in effetti Cooper ha cambiato idea ALMENO due volte, c'e` da 
capire il motivo... ma ecco che e` Russ Cooper a spiegarsi, sempre in una
delle mail sopra citate: "I commenti che ho fatto a Ted Birdis riguardo al
problema li ho fatti con poche informazioni a disposizione, e quindi ho 
evidentemente sopravvalutato il tutto."

Eh gia`, adesso e` tutto chiaro.

Tranne un piccolo particolare. Perche` un consulente di sicurezza si mette a
pontificare a un giornalista che SICURAMENTE scrivera` un articolo di
rilevanza nazionale su un problema di cui non ha "esattamente presenti" i
confini?

E Russ Cooper, che ha tuonato contro questa "sovraesposizione mediatica", non
si considera in qualche modo uno dei principali responsabili di essa? No,
come ci declama RFP nel:


CORO DELL'ATTO III
(Anche noto come "le autorita` non sbagliano mai, al limite fraintendono")

"I wonder if that [comportarsi come ha fatto Cooper] would be considered
contributing to the 'hype'?

No, I concluded.  If *I* had said such a thing, then yes, it would be directly
contributing to the hype.  But since an authority said such, well, I would 
hope that it would help clear the waters, rather than muddy them.

Yes, muddy.  Indeed."

------------------------------------------------------------------------------

ATTO QUARTO - L'EXPLOIT FANTASMA


SCENA I - DEL GIALLO DELL'EXPLOIT
"Even when I do things for the sake of others
No sense of amazement or conceit arises.
It is just like feeding myself;
I hope for nothing in return."
- Shantideva


Ma il macello delle pseudoragioni di Russ Cooper non si ferma qui. Infatti,
il Difensore dei Diritti di Microsoft, come ricorderete, aveva lamentato di
non riuscire a riprodurre l'attacco su una installazione-tipo di Front Page
(come a dire: non e` che RFP ci ha preso in giro?).

Come, "non riproducibile"? Si chiede RFP. Non e` che per caso il buon Russ
non si e` reso conto che dal momento che quel codice era DIMOSTRATIVO e non
un exploit sarebbe stato necessario FORNIRGLI LE CREDENZIALI di Web Authoring
per provarlo? Non che non si possa scrivere in modo diverso per creare un
vero exploit che funzioni anche senza tali credenziali... ma non era questo
lo scopo. Ed era scritto in modo ben evidente in quell'advisory: "Also, the
default permissions don't allow for anonymous users to use the .dll--however,
anyone with web authoring can, and I've seen few sites that have allowed
permission (which is more due to a misconfiguration on their part)."

Peraltro, un evidente, piccolo errore di programmazione (del tutto normale in
codice inserito in un advisory... strano che Cooper non lo abbia notato come
hanno fatto molti altri: forse non comprende il PERL?) lo rendeva
inutilizzabile su alcuni casi critici... ma davvero questo e` sufficiente per
giudicare negativamente il lavoro di una persona? Non lo credo, visto che il
punto era tutt'altro che quello di produrre un exploit funzionante.

Quindi, chiarito che lo script aveva uno scopo preciso (e lo assolveva) e
sotto quali condizioni fosse utilizzabile, la domanda rimane: come mai Russ
Cooper non se ne e` reso conto? Restera` senza risposta, perche` noi qui
stiamo facendo del teatro, e l'arte del narrare e` questa: di far sorgere
domande senza poi pretendere di fornirne le risposte, ma con il solo scopo di
lasciarle alla riflessione del lettore o dello spettatore. Se non vi e` chiaro
cio` che voglio dire, cercatevi la videocassetta di "I-TIGI canto per Ustica"
di Roberto Paolini.

Detto in altre parole: questo articolo non vuole trovare un colpevole, e se
lo troverete lo avrete indicato voi, con il vostro cervello e il vostro cuore.
Non io. Allo stesso modo, tutti hanno visto nel post di RFP la stessa cosa, e
cioe` una non velata presa per i fondelli ai danni dell'imbecille che, in 
Microsoft, ha creato questa backdoor infantile. Ma non e` stato RFP a deridere
Microsoft. Ha solo mostrato una piccola verita` (arma terribile, la verita`!
Lo aveva capito perfino Caterina Caselli...). L'impressione che il 
comportamento della casa di Redmond fosse degno di un bambino dell'asilo ce
la siamo creata da soli, con il ragionare e giudicare che e` proprio della
nostra condizione di uomini liberi. E lo stesso si puo` dire delle altre
impressioni che, prima della fine di questa storia, inevitabilmente avrete.


SCENA II - PASSWORD, O NON PASSWORD? QUESTO E` IL DILEMMA!


Degno davvero dell'"Amleto" questo passaggio del battibecco Cooper - RFP:

RFP: "This particular .dll allows you to read .asp (and .asa) files under the
web root, providing you know the 'password' (obfuscated encoding scheme) of
which to ask it."

Russ Cooper: "THIS IS NOT A PASSWORD..."

Password, o non password ? Questo e` il problema! Apriamo dunque la bibbia 
della crittografia, nientepopodimeno che "Applied Cryptography" di Bruce
Schneier (1996 - seconda edizione):
Capitolo 1, pagina 1: "Il processo con cui si maschera un messaggio in modo 
tale da nascondere la sua sostanza si chiama crittazione (encryption)".

Ora, come funziona la richiesta alla DLL? Il nome del file richiesto viene 
OFFUSCATO UTILIZZANDO LA STRINGA "Netscape engineers are weenies". Quindi la
richiesta sta, per definizione, venendo "crittata". Anche se normalmente a un
processo del genere si da` il nome piu` "limitato" di "encoding".

Pagina successiva dello Schneier: "Il "plaintext" ... puo` essere un flusso 
di bit, un file di testo, una bitmap, uno stream di voce digitalizzata, 
un'immagine digitale... qualsiaasi cosa." Questa definizione parrebbe 
includere anche i "nomi di file". Forse in una prossima edizione...

Ora, la funzione di encryption (E) e` qualcosa che opera sul plaintext (P) e
lo trasforma in cyphertext (C) , e viceversa per la decryption (D). In 
matematica scriveremmo: 
E(P) = C          D(C) = P      ----> D(E(P)) = P, per ogni P [invariante]

Quindi, per stabilire se "Netscape engineers are weenies!", oltre che un 
clamoroso autogol pubblicitario, sia una password, ci dobbiamo chiedere se 
viene utilizzata nel modo che abbiamo appena detto. Dal momento che lo script 
in PERL di RFP trasforma il nome di file (P), usando "matematicamente" quella 
stringa (E), in qualcos'altro (C), che poi la DLL di FrontPage ritrasforma, 
usando all'indietro quella stringa (D) ancora nel nome di file P, in modo 
infallibilmente esatto, direi che si`, si tratta di una stramaledetta 
encryption. Questo sarebbe chiaro anche a un bambino, credo, e vi avra` 
annoiato che io vi abbia "mostrato" una cosa cosi` ovvia.

Ma allora chiediamoci... perche` una persona intelligente, o stimata tale,
puo` NEGARE l'evidenza? Quali sono i motivi? Chiediamocelo, perche` e` 
questo, non altro, il fondamento della morale di questa storia. Della DLL 
incriminata si son dimenticati tutti, non serve a nulla... della stringa si 
son dimenticati quasi tutti (sicuramente non se ne sono dimenticati gli 
ingegneri di Netscape, e nemmeno io che ho scritto questa papagna di 
articolo). Ma di questa doppiezza incredibile e di questa capacita` di dire 
"che il si` e` no, e che il no, se lo guardi bene, diventa si`" (non e` mia 
questa frase, e` di Manzoni), alla facciaccia dell'algebra di Boole, di 
questa non dobbiamo dimenticarci mai.

Ma continuiamo a giocare con le parole... sempre secondo Lord Dark Schneier 
(scusatemi la concessione al mio essere Otaku... ), capitolo 1 pagina 3: 
"Un algoritmo la cui sicurezza si basa sul mantenere segreto il suo 
meccanismo di funzionamento si chiama "algoritmo ristretto"".
Dal momento che nessun altro conosceva o aveva pubblicato l'algoritmo 
"weenie", esso si puo` giustamente considerare in questa categoria...
perche` cio` e` interessante?

Perche` gli algoritmi ristretti "non consentono di applicare Controllo di 
Qualita` e Standardizzazione ai prodotti". Ecco perche` quella DLL e` 
scivolata tra le reti di controllo di mamma Microsoft... e infine l'ultima 
bordata: questi algoritmi sono utili per "applicazioni a bassa sicurezza" i 
cui utenti "non comprendano o non si interessino dei problemi di sicurezza 
nel loro sistema". Se questa e` l'immagine che Microsoft ha del suo cliente 
business modello nel campo del web authoring e hosting, possiamo anche 
andarcene tutti a ramengo, in futuro la sicurezza informatica sara` una 
battaglia persa in partenza... E peraltro ci si puo` chiedere, se questa e`
la filosofia di fondo, quanto credibile possa essere l'ISASERVER, il 
nuovissimo "enterprise class firewall" di Microsoft. Domande, domande, 
domande...

Ma non abbiamo ancora trovato una risposta. Una volta compreso che questo e` 
un algoritmo di crittazione ristretto, e che la sua scelta indica una bassa 
stima di Microsoft delle nostre capacita` intellettive, "Netscape engineers 
are weenies!" ne puo` essere la password?

Ricorriamo sempre alla Bibbia: la password e` una cosa "che puo` assumere un
ampio numero di valori" e che viene utilizzata sia dall'algoritmo di 
crittazione che da quello di decrittazione in modo da rendere tali funzioni 
dipendenti dalla password, e inutili senza la password corretta. Considerando 
che il weenie algorithm calcola la differenza tra le lettere del nome di file 
e quelle della famosa stringa, direi che questa e` a tutti gli effetti una 
password.

Ne volete una prova? RFP, umoristicamente, cambia: "Netscape engineers are 
weenies!" con "Microsoft engineers are weenies!", e nota, sorpreso, che il 
risultato non funziona piu`. Straaaano. Probabilmente deve essere perche` la
frase sta antipatica alla DLL... o piu` facilmente, perche` effettivamente 
tale frase E` la chiave di crittazione. Considerando che in tutti gli 
algoritmi "effettivi" usati nell'universo tale chiave viene chiamata 
"password", potremmo QUASI concludere che lo sia... ma un momento, siamo 
abituati a pensare che una password sia qualcosa di scelto da noi, definibile
da noi e modificabile. La stringa "Netscape engineers are weenies!" non lo
e`. Possiamo allora chiamarla "hard-coded password", magari. O forse solo 
"chiave". Oppure "pass phrase", come nel PGP.

Le password sono tutte chiavi? O viceversa tutte le chiavi sono password? O 
forse entrambe? La vita e` un sogno, o i sogni aiutano a vivere? Quanto siamo
piccoli di fronte a questi grandi problemi marzulliani del cosmo e della vita!

Russ, bonta` sua, ci evita di partecipare tutti a "Mezzanotte e Dintorni" e 
acconsente: "... utilizzare il termine password per designare quella stringa 
non e` al di la` del regno del comprensibile. Infatti client e server devono 
entrambi conoscere questo valore, e usarlo correttamente, per comunicare."

Bonta` sua! Quindi, di una password si tratta, alla facciaccia di Amleto, di 
Guildenstern, Rosekrantz e del teschio di Yorick. E di chi e` disposto a 
corrompere il dizionario e a fare il sofista, pur di non ammettere 
l'evidenza: che in una DLL di SISTEMA creata da MICROSOFT esiste una BACKDOOR 
dotata di una PASSWORD che avrebbe consigliato a qualsiasi essere umano 
dotato di dignita` di fare harakiri per la vergogna.

Sic transit gloria Redmundi.


SCENA III - ADESTE FI(DE)LES 
(o "E' un problema cosi` grave che i file .asp si aprano?")


Che, in definitiva, ottenere accesso ad informazioni che ACL e sistemi di
sicurezza tengono occultate sia il modo di procedere di chiunque voglia
violare un sistema, direi che non ci sono dubbi. Che uno dei principali 
meccanismi di sicurezza di un server (e in special modo di uno con accessi 
FTP e web) sia il controllo d'accesso ai file, e in particolare la "gabbia" 
che riserva alla lettura via web solo i file posti sotto la cosiddetta 
"web root" direi che non c'e` dubbio.

Internet Information Server e FrontPage hanno una (dis)onorata tradizione per
essere infarciti di bug che consentono in modo piu` o meno illecito di 
"traversare" le directory del server, uscendo dalla gabbia della web root e 
andando a curiosare piu` o meno ovunque.

Per la precisione, il baco del .asp sembra essere "notevolmente limitato" dal
fatto che per essere utilizzato l'utente deve gia` avere web authoring
permissions su almeno una parte dei file ospitati dal server. Vero. Ma in 
ogni caso, questa backdoor consente (almeno in teoria) di leggere file che 
NON DOVREMMO poter leggere. E (cosa ancora piu` grave) di attraversare le 
directory verso l'alto, leggendo file fuori dalla web root (per esempio: 
sorgenti .asp ancora in corso di sviluppo su una directory separata). 
Insomma, consente di violare almeno alcune delle restrizioni fondamentali di 
sicurezza di un server.

Ma quanto e` grave davvero questo problema?


CORO DELL'ATTO IV


"I do not know.  I just know it works.  How dangerous this prospect is, is
not for me to judge, because I do not have this problem.  I do not use 
FrontPage.  I do not mourn.  I leave the judging to Russ Cooper, and judge he 
did do, indeed."

------------------------------------------------------------------------------

ATTO QUINTO - IL PROBLEMA E LA SOLUZIONE
" There are moments where time can stand still...where a second in my mind is
an hour in time.  I can not control the passing of minutes; I am only aware 
that what was now, is not any more."
Rain Forest Puppy


SCENA I - QUESTO E` UN PROBLEMA? REPRISE


Esiste dunque un problema? Ormai anche il cuore piu` coraggioso inizierebbe a
dubitarne.

Applichiamo dunque il metodo cartesiano e dubitiamo di tutto. Dubitiamo di 
Arce' e di Gerardo. Eliminiamo anzi del tutto dal campo quel "secondo exploit"
con buffer overflow. Dubitiamo di RFP e di Cooper. Dubitiamo dei loro post e 
delle loro discussioni. Torniamo alla sorgente, al primo post di Microsoft: 
"To eliminate this vulnerability, customers who are hosting web sites using 
any of the affected products should delete all copies of the file Dvwssr.dll 
from their servers." Parola di Redmond, rendiamo grazie a Bill. Cosa ci hanno
detto gli omini in nero?

Beh, capperi, mi stanno raccomandando di eliminare un file. Qualcosa che, 
normalmente, appartiene ai "don'ts" dell'informatica (quante volte avete 
cancellato una DLL e il vostro delitto e` rimasto impunito? A me di solito 
salta fuori una simpatica schermata "collegamento mancante all'esportazione...
reinstallare Windows").

Cancellare una DLL e` un rischio. Cancellare una DLL che "analizza gli url" 
passati a un WEBSERVER dovrebbe essere doppiamente, triplamente rischioso, 
anzi, del tutto distruttivo. Dire che cancellare questa DLL potrebbe non avere
effetti negativi e` ammettere che essa in realta` non serve a questo, e anzi 
non serve a quasi nulla se non viene in qualche modo chiamata. E dire che 
cancellarla e` IL modo per fixare un problema, significa ammettere due cose:
1) che effettivamente un problema da correggere esiste
2) che questa DLL non ha altre "funzioni" importanti a parte quella di essere
   causa del problema in questione.

In sostanza, questa DLL non "contiene una backdoor". _E`_ una backdoor, e 
questa e` la sua _unica_ funzione. Vi pare paglia?

Ammesso dunque (ammesso perche` non possiamo dubitare delle parole di casa 
Microsoft quando LORO STESSI consigliano di CANCELLARE una loro DLL) che un
problema con questo file esiste, ovviamente permane una obiezione 
fondamentale di Russ Cooper: "Without proper and full permissions applied 
across virtual servers on a given box, site leakage or manipulation by others
will always be possible in myriad ways."

Ma questo in qualche modo sminuisce le scoperte di CORE e di RFP? Solo
perche` non si tratta di un nuovo e mistico modo di infrangere le leggi che 
regolano un sistema informatico, ma di un modo addizionale di sfruttare le 
debolezze che possono sorgere se vengono impostati male i controlli d'accesso
alle informazioni? Se cosi` fosse, dovremmo buttare nel cestino il 99% delle
scoperte in questo campo, in quanto davvero sono pochi, a memoria d'uomo, gli
exploit davvero innovativi nel loro meccanismo.

E se anche questo fosse il dodicesimo modo conosciuto per entrare in possesso
di informazioni abusando della web authoring permission, sarebbe in qualche 
modo intrinsecamente piu` grave degli altri. Perche` VOLONTARIO, capperi. Non
dimentichiamocelo. Non si tratta di una sovrapposizione di condizioni tali
per cui, se tutte sono verificate, come effetto "secondario" di una serie di
piccoli errori di progettazione la sicurezza del sistema viene compromessa.

Si tratta di una vera e propria back door inserita volontariamente da una
piu` o meno rispettabile (e qui ci scappa da ridere, lo so...) societa` 
dell'era digitale, ed e` QUESTO, non altro, il punto fondamentale (anche se
un notevole punto secondario e`: con che coraggio hanno scelto la password?).
Non lasciamoci sviare dalla discussione se questo problema sia piu` o meno 
grave, se esistano altri modi di approfittare di simili condizioni, se 
esistano buffer overflow piu` gravi di esso all'interno della stessa DLL.

Questo problema e` ETICAMENTE grave, se intenzionalmente inserito. 
TECNICAMENTE gravissimo, se non rimosso per errore. In ogni caso l'immagine di
un produttore di software che si lascia SFUGGIRE una cosa del genere, o la 
inserisce INTENZIONALMENTE, dovrebbe risultarne incrinata per sempre.

Perche` questo non succede?

Perche` finiamo per discutere di faccende collaterali, dallo "hype" mediatico
scatenatosi, alle procedure corrette per informare le societa`, alla
gravita` tecnica del bug?

Perche` il cuore del problema, e cioe` la COLPEVOLEZZA ASSURDA di Microsoft,
non viene piu` nemmeno menzionato?


SCENA II - APPRENDERE E INSEGNARE.
"I have heard of the bird trying to teach a fish to fly, but I have never 
witnessed a fish coaching a bird on flight.  That is, until now."
Rain Forest Puppy


Dopo aver visto in azione il Security Response Team di Microsoft che, 
disponendo (suppongo) dei sorgenti di quella DLL non trova qualcosa che un 
esterno ha trovato esaminando il compilato; dopo aver visto l'amministratore 
di una lista dedicata alla sicurezza sbraitare contro coloro che inviano 
advisory nelle liste dedicate alla sicurezza; dopo aver udito giornalisti 
parlare di informatica (con ovvia ignoranza) e informatici parlare di 
giornalisti (con altrettanto ovvia ignoranza), pensavamo di aver visto tutto.

Non e` cosi`.

Non avevamo ancora visto la serieta` con cui molti prendono l'analisi della
sicurezza. Prendiamo ad esempio il laboratorio di Computer's Reseller News (un
sito commerciale dedicato ai canali di distribuzione del materiale 
informatico). Riporta la notizia del "possibile" bug/exploit/security hole 
(diamine, nessuno che lo chiami col suo nome: BACK - DOOR) nelle Front Page 
extensions. Sentite come lo riporta:

"The CRN Test Center is currently examining a security hole in Microsoft's 
FrontPage 98 Server Extensions that allows a hacker to cause a web server to 
crash via denial of service attacks."

E gia` fa inarcare un sopracciglio l'idea che il personale del laboratorio di
test di un sito dedicato alla vendita di materiale informatico (gente che di
lavoro, per capirci, monta un pc, ne esamina i benchmark, e modifica le 
configurazioni fino a trovare quelle che sembrano piu` performanti salvo 
smettere di funzionare appena gli aggiorni i driver delle DirectX...)

"The Test Center is currently seeking the assistance of Microsoft and anyone
that can successfully demonstrate how the security hole can be exploited."

Ma... e tutte le discussioni fatte su bugtraq? Ce le siamo dimenticate di
bazza? Ma questa gente da dove ha recuperato le sue informazioni? Ecco la 
risposta:

"The Test Center found a Perl script on the Web that appears to have been 
authored by the same individual who originally reported the flaw to Microsoft.
However in attempting to execute the Perl script, Test Center Engineers ran 
into syntax errors in the script as well as un-resolved external references."

Beh, normale, chiunque di noi (noi = persone che qualche volta si sono 
occupate di sicurezza informatica) si e` scontrato con qualche script che non
funziona... anzi, la stragrande maggioranza degli script e dei .c di exploit
non funzionano, vuoi per sfortuna o perche` sono stati appositamente
disabilitati per evitarne l'uso da parte del primo imbecille che capita per
strada, del cosiddetto "script kiddy", o dell'addetto di un laboratorio di 
testing per le performance dei calcolatori a cui sembra cosi` semplice tutta
questa storia dell'hacking che decide, per il fatto di aver imparato due
giorni fa a installare la sua prima distribuzione linux (magari Corel Linux,
cosi` non ha fatto troppa fatica), di essere anche lui un espertissimo di
sicurezza informatica.

Facciamo un giochino come quello della settimana enigmistica. Cosa c'e` di 
sbagliato nel seguente piccolo inizio di script?

#!/usr/bin/perl# dvwssr.pl by LordRaYden :)) (neh, bij Rain Forrest Puppy)#
# Usage: dvwssr.pl target_host /file/to/retrieve/source
#use Socket;$ip=$ARGV[0];
$file=$ARGV[1];

Io (NON conoscendo il perl) ci ho messo circa 4 secondi a fare "EH?". Voi
quanto ci mettete a rendervi conto che uno script con la linea "use Socket"
commentata DIFFICILMENTE funzionera`?

Eppure qualcuno che si illudeva di condurre test di sicurezza non se ne e` 
accorto.

Eppure questo qualcuno riporta a gran voce che "l'exploit non funziona".

Quanti ne ho conosciuti negli ultimi mesi? Ad alcuni di loro sono stati 
affidati (da persone evidentemente ancora piu` ignoranti e disperate) i test 
di sicurezza su reti di importanza anche rilevante (commerciale e finanche 
militare... giuro e parlo per esperienza personale... ahi, povero stato 
italiano, come mi auguro che non ci capiti mai di essere coinvolti in una 
guerra dai risvolti informatici...).

Tu gli passi qualche dritta, e loro, regolarmente, ti rispondo "eh ma non ha 
funzionato". Cosa fai? Gli spieghi che cosa sia un offset, che per utilizzare
un hack a volte bisogna capire qualcosa dell'effetto, che bisognerebbe 
studiarsi il TCP/IP e magari qualcuno dei protocolli dei servizi che stai 
tentando di exploitare?

Certe volte la tentazione di limitarsi a dire "Ragazzino, lasciaci lavorare" 
e` forte... l'idea che certe informazioni andrebbero riservate a un'elite di
tecnici in grado di capirci qualcosa compare nella mente, strisciante e 
seducente... del resto, con una analogia ben calzante, i tecnici e gli 
esperti sono i nuovi stregoni dell'era digitale...

Poi pero` mi rendo conto che il paragone non calza. Nel caso degli stregoni,
la conoscenza era volutamente "nascosta", iniziatica. Nel caso
dell'informatica ben poco c'e` di nascosto, o che rimane nascosto in eterno
(questa storia lo dimostra bene...): tutto si riduce a una semplice 
necessita`.

Per capire, bisogna imparare. Per saper fare le equazioni differenziali 
bisogna prima imparare a fare le moltiplicazioni. Per studiare le reazioni 
dei polimeri bisogna prima imparare a leggere una tavola periodica. Per 
dipingere bisogna prima imparare come si maneggia un pennello. Ci vuole 
tempo, fatica, studio, convinzione, voglia, per tutte queste cose. Dalle 
fondamenta al tetto, dal semplice al complesso.

Perche` la gente e` convinta che l'informatica sia differente e si possa 
"usare" un computer senza capire nulla di come funziona, come viene 
programmato, su quali basi poggia il suo comportamento? Perche` e` convinta
che si possa usare la rete senza non dico conoscere i protocolli, ma sapere 
COSA sia un protocollo, e cosa diavolo succeda in quel fumoso insieme "rete"
che persino i libri di informatica dell'universita` rappresentano sempre come
una maledetta, non ben definita "nuvoletta" senza alcun tipo di informazione?

Non si tratta di essere maghi, o iniziati. Si tratta di avere l'umilta` di
imparare cio` che e` necessario, e di ammettere cio` che non si sa, prima di
buttarsi a capofitto in imprese che sono impossibili per chi non sa e non
capisce. L'umilta` e` una grande lezione che l'informatica moderna tende a 
far dimenticare. L'umilta` e` la condizione base per apprendere e per 
imparare.

Ma sull'umilta`, e sulla sincerita` nei confronti degli altri, l'informatica
moderna offre solo cattivi esempi. Di chi e` la colpa (perche` dal mio punto
di vista di una colpa si tratta) di aver trasformato il computer in qualcosa
di cosi` "intuitivo" da usare, da renderlo assolutamente impenetrabile, non
riparabile, non smanettabile? Da rendere l'utente non qualcuno che "deve e
puo` imparare". Ma qualcuno che ha sempre diritto alla pappa pronta, e non si
rende conto che assieme a questo diritto assume anche un obbligo. Quello di 
essere schiavo di chi decide COSA puo` fare. Di essere nato in catene. In una
prigione mentale per cui le cose che gli devono essere chiare e quelle che gli
devono essere oscure sono selezionate da qualcun altro.

Se fossimo in campo politico, chiameremmo tutto questo "censura".

Se fossimo dentro un film, chiameremmo tutto questo "Matrix".

Se fossimo persone coraggiose e libere, chiameremmo tutto questo "Microsoft".

E in ognuno dei tre casi ci sarebbe una sola reazione possibile.
La ribellione.


SCENA III - IL PROBLEMA E LA SOLUZIONE


Come nella migliore delle tradizioni, l'ultima scena dell'ultimo atto si
intitola come l'atto stesso, e come la tragedia. Dice il solito Russ Cooper:
"If we're going to yell "Fire", then there should at least be a real fire to
point at."

E alla fine il fuoco su cui puntare il dito lo abbiamo trovato. Un fuoco
nascosto, eppure devastantemente largo. E per questo bisognerebbe
ringraziare doppiamente episodi come questo che ci consentono di vederlo e di
iniziare quanto meno a portare qualche secchio d'acqua.

Ovviamente il problema non e` la lettura dei file .asp (che, pero`, nonostante
tutta questa manfrina, E` un problema: quell'exploit funziona, eccome).

Il problema non e` nemmeno il buffer overflow (che, nonostante tutte le
stupidaggini dette in proposito da Cooper, c'e`, si sente, ed e` pericoloso).

Il problema non e` nemmeno il fatto che tutto questo succeda in una DLL 
inserita come backdoor all'interno di un prodotto che e` uno standard 
industriale indiscusso nel mondo non UNIX.

Dice RFP: "It is not the vehicle that concerns me; it is not even the 
destination...it is the journey itself."

In altre parole, l'aspetto preoccupante della vicenda non e` tanto il problema
(o i problemi) in se`, quanto la reazione di Microsoft, che dimostra che la
societa` di Redmond ha il CORAGGIO, la CAPACITA` e I MEZZI per creare una
situazione del genere, per ammetterla (erroneamente?) in un certo istante e
per poi riuscire ad OCCULTARLA successivamente.

Chi ha sbagliato nell'ammettere questo problema? Chi ha deciso che esso
doveva venir negato a tutti i livelli da un certo istante in poi? (mamma mia,
"Deny Everything"... sembra X-Files...)

Sbalordisce la crudezza del contrattacco. Sbalordisce la facilita` con cui 
Microsoft ha girato la frittata, finendo per far esclamare a Ivan Arce', nel 
coro dell'atto II: "Excuse me if i'm being rude, but i'm shocked by the fact 
that our company is being questioned because we found a bug."

Perche` se il nostro lavoro e`, ed e` sempre stato, garantire la sicurezza 
dell'informazione, non v'e` dubbio che questo lavoro passi anche per 
(e SOPRATUTTO per) l'esame minuzioso del software, l'analisi della qualita` 
dei prodotti, e la certificazione indipendente della loro sicurezza.

Non si tratta di mettere "sotto accusa" il creatore del software, ma piuttosto
di aiutarlo a migliorare e correggere il suo prodotto. Ma se proprio si deve
parlare di responsabilita`, direi che un bug di sicurezza e` in generale 
responsabilita` di chi ha creato il prodotto, non di chi lo ha esaminato 
(quando trovo uno yoghurt scaduto al supermercato, mi lamento con il 
supermercato, non e` il supermercato che si lamenta con me perche` ho trovato
un prodotto scaduto...).

Che un produttore di software si senta OFFESO da questo, e` un fatto di per
se` abbastanza nuovo (di solito programmatori con meno considerazione di se`
si limitano a ringraziare lo scopritore e a fixare il baco). Che un 
produttore accusi o faccia mettere sotto accusa chi ha trovato il baco, e` 
ancor piu` raro. Direi che il numero di volte che e` sorto un casino di 
proporzioni epiche come questo si conta pero` sulla punta di un dito.

Chiediamoci allora il MOTIVO di tutto cio`. Di questa reazione SCOMPOSTA
della compagnia. Ed il motivo e` semplice. Un bug di sicurezza capita tutti i
giorni, ma questa, agli occhi di chiunque, e` una cosa ben diversa. Tra un bug
e una backdoor c'e` la stessa distanza che tra omicidio colposo e omicidio 
premeditato. Un bug e` una tragica fatalita`. Una backdoor e` una spaventosa 
e subdola violenza. Una backdoor con una password del genere e` quanto di
piu` imbecille, insensato, e ridicolo sulla scena dell'informatica si sia 
visto da un bel pezzo.

In questa tragicommedia abbiamo visto molte cose che avremmo preferito non 
vedere. Abbiamo visto insulti piu` o meno velati piovere per distogliere
l'attenzione da cose serie. Abbiamo visto degli squallidi giochi di parole 
nati solo per confondere le idee e le acque. Abbiamo visto un balletto di 
dichiarazioni contrastanti indegno non dico di una software house e del suo 
dipartimento di sicurezza informatica, ma indegno persino del peggior politico
democristiano della storia della nostra sconquassata democrazia parlamentare.

Abbiamo anche visto dove puo` portare l'impreparazione o la preparazione 
approssimativa. Abbiamo visto quale livello di conoscenza un certo modo di 
fare informatica ambisce a distribuire al volgo. E invero, fino a quando la 
cosa che la gente notera` di piu` in un sistema informatico sono i menu` che 
compaiono in trasparenza con l'alpha channel (la caratteristica invero piu` 
notevole di Windows 2000), questo tipo di politica industriale avra` campo 
libero e partita sostanzialmente vinta.

Ma abbiamo anche visto un'altra cosa. Che per mettere in crisi tutti gli 
agenti Smith di questo mondo esiste un'arma piu` pericolosa di un fucile,
piu` dannosa di una testata atomica. La conoscenza. La nostra capacita` di 
discernere, di analizzare e di criticare (che e` l'unica cosa che ci 
distingue, per ora, dagli elaboratori elettronici di cui ci occupiamo) e` 
l'unica arma che abbiamo, e l'esempio di RFP ci dimostra chiaramente quanto 
pericolosa possa essere. Quante risorse possa mobilitare per fermarci.

La conoscenza e` potere. Anche i soldi sono potere. Noi abbiamo la conoscenza.
Loro hanno i soldi. E` uno scontro impari? Sicuramente.

I soldi si accumulano in poche ore. La conoscenza si accumula in lunghi e 
faticosi anni.

I soldi sono transitori. La conoscenza e` eterna.

Non c'e` nulla che non possiamo conoscere (basta che qualcuno abbia la
pazienza di insegnarcelo). Ci sono cose che non si possono comprare (per 
quanti soldi possano mettere sul piatto).

Ad esempio noi stessi. Keep fighting.


==============================================================================
--------------------------------[ EOF  2/18 ]---------------------------------
==============================================================================