Handshaking

Ho appena finito di leggere “L’approccio di Microsoft alla sicurezza nello sviluppo del software” di Feliciano Intini, Chief Security Advisor di Microsoft Italia. Da alcune sue frasi, è evidente la volontà di trovare una linea di collaborazione tra Microsoft ed il mondo dell’Open Source sul tema della sicurezza. Credo che questo sia il desiderio sincero dell’intera azienda e penso anche che sia effettivamente necessario sedersi attorno ad un tavolo e discutere. Per quello che può valere la mia posizione personale, trovate qui di seguito alcune considerazioni e alcune proposte. Mi dispiace solo di non poter essere meno “acido” di quanto leggerete. Purtroppo, partiamo da posizioni molto lontane e la distanza si fa sentire. Speriamo che si riduca in futuro.

Trustworthy Computing

Come ho già spiegato in decine di articoli, sia su Punto Informatico (vedi rubrica “Untrusted”) che sul mio blog “La spina nel fianco” che altrove, il Trustworthy Computing (ex Palladium, ora noto anche come NGSCB), non è una soluzione ai problemi della sicurezza ma rappresenta anzi una seria minaccia per l’utente, per la sua libertà, per la sua sicurezza e per la sua dignità. Per stessa ammissione dei suoi progettisti, questa tecnologia non serve a proteggere l’utente od il sistema da attacchi esterni (virus ed hacker). Serve invece a proteggere il software che gira sulla macchina ed i contenuti multimediali che vi sono memorizzati da un possibile “attacco” da parte di un utente che abbia accesso fisico alla macchina (in buona sostanza: un attacco da parte del proprietario). Il Trustworthy computing e, più in generale, tutta la tecnologia Trusted Computing, servono quindi ad impedire all’utente di accedere “abusivamente” a materiale coperto da copyright o da licenze software proprietarie che risiede sulla sua macchina. Questi sistemi proteggono solo i diritti e gli interessi economici dei fornitori (case editrici di contenuti multimediali e di software) dalle azioni dell’utente. Non proteggono l’utente né dai virus né dagli hacker. Questi sistemi, di fatto, impediscono all’utente di usare il sistema (il PC), il software ed i contenuti multimediali (film, musica, etc.) secondo la propria volontà (e sotto la propria responsabilità). A tutti i fini pratici, si tratta di sistemi per la gestione dei diritti (DRM) di seconda generazione che aprono le porte a metodi di commercializzazione dei contenuti ed a metodi di controllo semplicemente odiosi.

La mia personalissima richiesta è che MS abbandoni ufficialmente e definitivamente lo sviluppo ed il supporto di qualunque tecnologia di questo tipo (Trusted Computing, Trustworthy Computing, NGSCB, o come volete chiamarla). Solo dopo aver tolto dal tavolo questa minaccia per l’utente sarà possibile proseguire in una azione comune sul tema della sicurezza.

Security Best Practices

Un plauso a Microsoft per il suo impegno sulla sicurezza. Stabilito che MS ha fatto, e sta facendo, tutto il possibile per garantire la sicurezza dei suoi programmi, a partire dal sistema operativo, viene però istintivo chiedersi: “perchè Windows Vista, che è stato progettato e costruito seguendo queste Best Practice, ha ancora bisogno di un antivirus per garantirsi da eventuali attacchi ed eventuali infezioni mentre tutti gli altri sistemi operativi (Mac OS X, Linux, Solaris, BSD, etc.) ne possono fare a meno tranquillamente da sempre?”

L’uso di un antivirus con Windows Vista (come con qualunque versione di Windows) viene considerato obbligatorio da tutti gli osservatori di cui ho potuto leggere le opinioni, inclusa Microsoft. Dopo 23 anni di sviluppo di Windows (1985 – 2008) ci troviamo sostanzialmente allo stesso punto, come se ci fosse ancora MS/DOS sotto il cofano.

Se questo è il reale livello di sicurezza che si può ottenere attraverso l’adozione di queste Best Practices, forse conviene rivedere almeno alcuni aspetti delle Best Practices stesse.

Posso anche fare qualche proposta concreta:

  1. Non tentare di garantire la sicurezza attraverso l’oscurità che deriva dal fatto di rilasciare codice closed source. Al giorno d’oggi, i programmi compilati non sono più al sicuro di quanto lo sia un programma open source, grazie agli strumenti ed alle tecniche di analisi di cui disponiamo. Per esempio, ci farebbe molto piacere poter esaminare i sorgenti di MS IE e di Mail/Outlook, visto che sono i due principali strumenti di contatto tra il mondo Windows ed Internet. Lo stesso vale per IIS.

  2. Adottare una politica di distribuzione e di installazione che metta la sicurezza al centro dell’attenzione e che coinvolga (ed istruisca) l’utente. Ad esempio, l’utente deve essere sempre costretto durante la fase di installazione a creare due utenze (admin e user) non intercambiabili tra loro e deve essere costretto a capire cosa sta facendo e perché. Non si deve tentare di bypassare la superficialità e l’ignoranza degli utenti sostituendosi a loro in queste scelte. Non si deve nemmeno scaricare il barile sull’utente inondadolo di alert a cui l’utente, di fatto, non saprà cosa rispondere.

L’Approccio Olistico

Windows Vista è sicuramente un sistema operativo molto più sicuro dei suoi predecessori. Anche Windows XP lo era, al punto tale che qualcuno (all’interno di Microsoft) lo aveva definito, forse un po’ troppo ottimisticamente, “il sistema operativo più sicuro mai costruito”. Anche le versioni correnti degli altri programmi Microsoft sono nettamente più sicure delle versioni precedenti, soprattutto per quanto riguarda la suite Office, Internet Explorer e Mail (ex Outlook).

Tuttavia, come giustamente fa notare il Dott. Intini, la sicurezza è un problema olistico:la resistenza di un intero sistema dipende dal suo anello più debole.

Nel mondo Windows, l’anello più debole non sono né Windows Vista, né Windows XP, né la suite Office, né Internet Explorer 7 (od 8), né Mail. L’anello debole è rappresentato dalla grande quantità di sistemi di vecchia generazione ancora presenti nelle nostre industrie e nei nostri uffici.

L’azienda dove lavora mia moglie (migliaia di dipendenti, una decina di sedi produttive nel mondo, etc.) è standardizzata su… Windows 2000 e Office 97. Niente XP e niente Vista nei suoi uffici. Neanche all’orizzonte (aspettano Windows 7).

Le SOHO che seguo per lavoro (da 2 a 20 dipendenti, di solito) usano uno spettacolare mix di Windows 95, 98, ME, NT, 2000 ed XP (e solo alcuni esemplari di Windows Vista). La suite office va da Office 97 a Office 2003. Internet Explorer è presente in versioni che vanno dalla 3.0 alla 7 e lo stesso vale per Outlook.

Molte di queste vecchie macchine devono essere mantenute operative perché il software che gira su di esse non gira sulle versioni più recenti di Windows. Ad esempio, mia moglie è costretta tenersi caro un vecchio 80386 con Windows 3.11 perché un applicativo custom, sviluppato a suo tempo da un consulente esterno con Visual Basic 4.0 (16 bit) su quella macchina, si rifiuta di funzionare altrove (32 bit + librerie di run-time per il 16 bit). Per lavoro seguo decine di vecchie macchine che si trovano nella stessa posizione, spesso a causa di applicazioni custom, cruciali per l’azienda, scritte da consulenti esterni, ora passati ad altra occupazione, con Visual Basic o con Access. Il fatto che, negli anni, Microsoft non sia riuscita a garantire la necessaria retrocompatibilità si dimostra ora un boomerang sul piano della sicurezza perché impedisce il rinnovo di una parte non trascurabile del parco macchine.

Gran parte di queste vecchie macchine sono connesse tra loro da una LAN e molte di esse hanno accesso ad Internet. Per alcune versioni di questi sistemi operativi non sono più disponibili antivirus aggiornati. Ci troviamo quindi di fronte ad una situazione in cui le infezioni si propagano con facilità e gran parte delle macchine è esposta ad ogni tipo di attacchi (via Internet, via floppy, via CD, via flash memory, etc.).

L’innegabile robustezza di Windows Vista viene quindi oscurata dalla sostanziale assenza di protezione delle altre macchine presenti. E Windows Vista, nel mondo SOHO che io frequento, è tuttora presente solo su meno del 10% delle macchine. Per confronto, sul mio “pianeta”, Linux è presente ormai su circa il 15% delle macchine, soprattutto grazie alle postazioni da ufficio con OpenOffice e Thinkfree, alle postazioni di accesso ad internet con Thunderbird e Firefox, ai server di vario tipo ed ai proxy/firewall.

Se si vuole seguire un approccio olistico è necessario affrontare anche questo problema di “promiscuità” tra versioni vecchie e nuove. Non è impossibile. Si può fare così:

  1. Si tirano fuori dai backup i sorgenti di NT

  2. Sulla base di NT si sviluppa un sistema operativo compatto pensato per poter girare su vecchio hardware (diciamo dai Pentium I in su). Chiamiamolo “Windows NT Replacement Edition”.

  3. Ci si assicura che su questo NT compatto riescano a girare le applicazioni che ora girano sui vecchi sistemi (95, 98, ME e persino 3.11)

  4. Ci si assicura che questo sistema sia sicuro e che esista un antivirus aggiornato per esso.

  5. Lo si distribuisce gratis ai vecchi utenti per invogliarli a passare a qualcosa di più sicuro delle loro vecchie àncore arrugginite.

Per contrasto, si noti che è possibile far girare, in assoluta sicurezza, una Slackware 3.0 su un vecchio 80386 con 4 Mb di RAM ed avere ancora la possibilità di usare gran parte del software che risale al 1994. Su alcune installazioni Unix (IBM AIX e SunSoft Solaris) che vedo dai miei clienti, girano ancora applicazioni CAD e FEA che risalgono agli anni ’80 o persino ’70 (CADAM, Catia, etc.). In alcuni casi, queste macchine sono collegate ad una LAN e ad Internet (attraverso un apposito router e firewall). Per ovvie ragioni, non hanno mai preso un virus in vita loro. Ci sono stati, è vero, casi di attacco remoto (exploit usati per installare backdoor e rootkit) ma casi simili li abbiamo visti anche su Windows (NT, 2000 e XP) e comunque sono stati immediatamente rilevati dai sistemi IDS e/o bloccati dal firewall.

Nessun sistema è invulnerabile

Questo è vero. Sono stati messi a punto, collaudati in laboratorio e diffusi “in the wild” anche virus e worm per Linux (circa una dozzina). Tuttavia, nessuno è ancora riuscito a dimostrare che anche uno solo di questi virus fosse in grado di propagarsi in modo realmente efficace da un sistema all’altro e/o fosse in grado di scaricare sul sistema bersaglio un carico realmente pericoloso.

Perché?

La resistenza a attacchi da remoto (exploit) di Windows (da NT in poi) è più o meno la stessa di Linux, Mac OS X, BSD e Solaris. I servizi esposti sulla rete sono per forza di cose dei punti critici e le brutte esperienze non mancano, nemmeno nelle case più blasonate.

Data questa sostanziale equivalenza, perché un utente dovrebbe preferire un sistema proprietario (che costa centinaia o migliaia di euro, del quale non dispone dei sorgenti e rispetto al quale deve rispettare una serie di vincoli di licenza) rispetto ad un sistema Open Source come un normale sistema LAMP o simili?

Credo che sia necessario dare delle risposte credibili a queste domande prima di procedere in un qualunque discorso sulla sicurezza. Diversamente, il modo migliore di garantire all’utente una maggiore sicurezza resta quello di installargli una Ubuntu.

Interoperabilità

Spero che il Dott. Intini stia scherzando. È solo di poche settimane fa la diatriba per la presentazione da parte di Microsoft di OOXML come candidato per uno standard OSI in competizione con l’esistente, e largamente condiviso, formato ODF.

Sinceramente, se si vuole portare avanti un dialogo, prima di tutto Microsoft deve accettare l’uso di standard che hanno origine al di fuori della sua struttura e che non sono sotto il suo controllo. Il mondo ha già avuto abbastanza .DOC, .RTF, .XLS e via dicendo. Nel settore della sicurezza, questo aspetto è anche più critico e lascia ancora minori spazi di trattativa.

Resto ovviamente disponibile a proseguire in questa conversazione, sia pubblicamente che privatamente, ai soliti indirizzi.

Alessandro Bottoni

alessandro.bottoni@infirnito.it

Annunci
Comments
6 Responses to “Handshaking”
  1. groucho_nt ha detto:

    “…Questo è vero. Sono stati messi a punto, collaudati in laboratorio e diffusi “in the wild” anche virus e worm per Linux (circa una dozzina). Tuttavia, nessuno è ancora riuscito a dimostrare che anche uno solo di questi virus fosse in grado di propagarsi in modo realmente efficace da un sistema all’altro e/o fosse in grado di scaricare sul sistema bersaglio un carico realmente pericoloso.

    Perché?…”

    secondo la mia modestissima opinione, al di la di innegabli vantaggi strutturali del s.o., la maggior sicurezza di linux dipende dal fatto che l’utente di tale sistema operativo è un utente un decisamente più evoluto e competende di un classico utente microsoft: quanti sono quegli utenti di windows che hanno la “favolosa” abitudine di fare doppio click in maniera compulsiva su qualunque cosa che assomigli ad una icona?

    IMHO: anche se ti fai la vaccinazione contro il tifo per andare in india, andare a ravanare con le mani nelle fogne di calcutta non è in ogni caso una pratica sicura; per contro se sei un attento a cosa tocchi, a quello che mangi e a che ambiente frequenti, puoi anche azzardati a fare a meno delle vaccinazioni per andare in alcuni posti

  2. Michele133 ha detto:

    Sig.n Bottoni ho letto il suo articolo, ho un mio amico ingegnere elettronico mi ha detto al proposito del trusted computing che per chi ha conoscenze tecniche e facilmente violabile a causa che i chip ci sono i datasheet sui siti del produttore(ST ,ecc) ma ha me, visto che facciamo lo stesso lavoro la cosa che mi preouccuppa é questa che faremo noi?
    http://www.effedieffe.com/content/view/3995/152/

  3. alessandrobottoni ha detto:

    Michele133 dice:
    “Sig.n Bottoni ho letto il suo articolo, ho un mio amico ingegnere elettronico mi ha detto al proposito del trusted computing che per chi ha conoscenze tecniche e facilmente violabile a causa che i chip ci sono i datasheet sui siti del produttore(ST ,ecc)”

    Sarò ben lieto di pubblicare tutti i dettagli di una qualsiasi operazione che sia in grado di rendere inoffensivo un TPM non appena qualcuno sarà in grado di fornirmeli.

    Alessandro Bottoni

  4. Michele133 ha detto:

    Non ci sarà bisogno fin che non sarà il momento di quando arriveranno queste tecnologie su internet ci sono già degli esempi che ci sono riusciti avevano usato un emulatore tipo ephix come il mac in pratica il sito diceva un cosa che insegnano a scuola
    L’HARDWARE SENZA IL SOFTWARE NON E’ NIENTE E VICEVERSA.
    Quindi in pratica se accadrà ci toccherà modificare le schede madri come le play.
    Il mac è un esempio di trusted computing.

  5. alessandrobottoni ha detto:

    Michele133 dice:
    Non ci sarà bisogno fin che non sarà il momento di quando arriveranno queste tecnologie su internet ci sono già degli esempi che ci sono riusciti avevano usato un emulatore tipo ephix come il mac in pratica il sito diceva un cosa che insegnano a scuola
    L’HARDWARE SENZA IL SOFTWARE NON E’ NIENTE E VICEVERSA.
    Quindi in pratica se accadrà ci toccherà modificare le schede madri come le play.
    Il mac è un esempio di trusted computing.

    Non hai colto la battuta…

    Per favore (lo dico a tutti) prima di dire cose come queste, leggetevi la documentazione esistente sul Trusted Computing.

    Io stesso ho pubblicato decine di articoli in italiano su Punto Informatico (rubrica “untrusted”) e sul mio vecchio blog “La Spina nel Fianco”.

    Inoltre, ci sono decine di articoli in inglese su questo tema, oltre a tutta la documentazione ufficiale del Trusted Comping Group.

    Leggete almeno una parte di questa roba prima di fare affermazioni di qualunque genere sulla inviolabilità o violabilità del TC.

    Grazie a tutti per la collaborazione.

  6. Pr3d ha detto:

    Il fatto che, negli anni, Microsoft non sia riuscita a garantire la necessaria retrocompatibilità si dimostra ora un boomerang sul piano della sicurezza perché impedisce il rinnovo di una parte non trascurabile del parco macchine.

    Diciamo che sono sostanzialmente d’accordo ma ci terrei a precisare anche che in Italia, al giorno d’oggi, abbiamo moltissime realtà aziendali nelle quali si lavora con Win95-98 perchè tale software non è compatibile con sistemi operativi più recenti ma cascano le palle (passami il termine) quanto ti rendi conto che, per esempio, il software in questione è un vecchissimo gestionale che lavora in dos.
    Allora penso che Ms non garantisce la retrocompatibilità ma anche che i nostri reparti IT dovrebbero darsi una svegliata e tenersi leggermente più aggiornati, il che non significa solo spendere ma anche aumentare la produttività.
    E guardando in giro c’è da spaventarsi. uffici in cui la stampante di rete è sconosciuta (addirittura usano quelle ad aghi con parti di ricambio introvabili e se si ferma quella è fermo l’ufficio!), uffici in cui tutti lavorano come amministratori, password nemmeno a cercarle con il lanternino e via dicendo…

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: