EAL (Evaluation Assurance Level) e software.

I miei discorsi sul software sono stati presi con curiosita’, nel senso che molti non credono/pensano che esista un sistema di certificazione rigoroso, ne’ che esistano delle patenti. E molti credono che tutti i sistemi operativi (in realta’ quelli mainstream ) siano molto diversi, ma misurano tale sicurezza in termini di “mio cugino dice che”.

L’esistenza di livelli di EAL in genere non finisce sulla stampa informatica mainstream, ne’ se ne occupano molto i programmofoni, perche’ alla fine dei conti si tratta di roba che non vogliono far sapere. Molti per esempio continuano a pensare che alla fine dei conti l’ OS “A” sia piu’/meno sicuro dell’ OS “B”, e quindi non piacerebbe sapere loro che esistano delle classifiche , i cui risultati probabilmente non sono quelli che vorrebbero.

EAL e’ un sistema che classifica software ed appliances a secondo del livello di “sicurezza”, ovvero un livello minimo di qualita’ accettabile per piazzare il software a fare una determinata cosa. Mettereste Windows95 a gestire una centrale nucleare? No. Ma che cosa dovreste metterci? Qual’e’ il livello minimo? E che cosa le assicurazioni accetteranno?

Allora, EAL elabora una serie di common practices (che e’ molto lungo studiare) e a seconda della loro applicazione classifica i sistemi in sette livelli. Tali livelli sono mappabili in altri sistemi di classificazione analoghi: EAL1 corrisponde a ITSEC E0-E1, che corrisponde a BSI ITS Q0-Q1, e a TSEC D-C1.

CC EAL ITSEC E BSI ITS Q In sintesi TCSEC
EAL1 E0-E1 Q0-Q1 Il produttore dice che secondo lui funziona. Fidatevi di lui. D-C1
EAL2 E1 Q1 Sono noti i test e le tecniche di sviluppo,ma non ci hanno messo altro sforzo. C1
EAL3 E2 Q2 Una terza parte ci ha dato un occhio e dice che secondo loro funziona bene.Ma qui lo dicono e qui lo negano. Ancora niente ciccia per le assicurazioni. C2
EAL4 E3 Q3 Auditing e separazione della sicurezza tra utenti. Alle assicurazioni sembra sufficiente. B1
EAL5 E4 Q4 Le policy di sicurezza sono formali, ma la verifica e’ ancora euristica. B2
EAL6 E5 Q5 Le policy di sicurezza formali sono testate formalmente , i test sono descritti formalmente ma sono eseguiti in maniera semiformale. B3
EAL7 E6 Q6 Sia i test che le verifiche sono descritte formalmente ed eseguiti formalmente. A

Faccio una carrellata sotto, menzionando solo i sistemi notevoli. Poi, siete sempre in tempo a chiedere che certificazione EAL abbia il vostro OS preferito. San Google vi aiutera’.

EAL1 e’ dedicato a quei sistemi per i quali si valuta che un malfunzionamento od un problema di robustezza/sicurezza non siano davvero problematici. Ci si aspetta che il software funzioni la maggior parte delle volte, ma non e’ cosi’ necessario che il software sia sicuro. Molte console di videogiochi sono su questo livello, specialmente se non si connettono ad Internet. Si, e’ gradito che funzionino, ma la sicurezza non e’ qualcosa per la quale un’assicurazione pagherebbe mai. Nessuna assiurazione vi assicurera’ mai un diveogame, insomma. Non sono richieste azioni da parte degli sviluppatori per ottenere questo livello.

EAL2 e’ dedicato a quei sistemi nei quali gli sviluppatori sono tenuti a dirvi solo qualcosa riguardo all’architettura (linguaggio usato, OOP o no, etc) e a darvi il risultato dei test eseguiti sotto forma di percentuale di successi. la descrizione dei test non deve essere formale. Nessun altro sforzo e’ richiesto, per cui potete considerarli un pochino come alcune console o alcuni giochi che vi dicono “il motore e’ sviluppato in c++” e vi dicono che hanno testato il gioco con 1000 testers, e il 99% dei testers erano soddisfatti. Siamo ancora a livello bassino.

EAL3 e’ quel momento in cui arriva un ente di certificazione esterno a dare un’occhiata, ma si tratta di un ente di certificazione che NON si assume alcuna responsabilita’ assicurativa. E’ come Casaleggio che paga qualcuno per “certificare” la sua piattaforma di voto, ma se qualcosa va storto, pazienza. Non e’ vitale, nessuna infrastruttura dipende da questo, l’operazione puo’ essere ripetuta. Siamo a livello di alcuni prodotti OpenSource con qualche auditing indipendente, ma ancora le assicurazioni non pagano. Tra i membri illustri spicca:

EAL4 si inizia a fare sul serio. A questa famiglia appartengono :

  • AIX
  • HP-UX
  • FreeBSD
  • Oracle Linux
  • Novell NetWare
  • Solaris
  • SUSE Linux Enterprise Server 9
  • SUSE Linux Enterprise Server 10
  • Red Hat Enterprise Linux 5
  • Windows 2000 Service Pack 3
  • Windows 2003
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows Server 2008 R2
  • IBM z/VM versione 5.3

per ottenere questa certificazione occorre garantire ALMENO un livello di accesso alle risorse basato sui privilegi dell’utente. occorre che la policy sia descritta formalmente e che sia descritto formalmente il test plan. Tutti i sistemi sopra hanno richiesto ed ottenuto questa certificazione con successo.

Se andate oltre i requisiti minimi richiesti ma non siete abbastanza bravi per salire a EAL5 allora siete EAL4+:

  • Trusted Solaris,
  • Solaris 10 Release 1106 Trusted Extensions,
  • La prima versione di XTS-400 (software per sistemi d’arma sviluppato da BAE)
  • VMware ESXi versione 5.0
  • QNX Neutrino (ci stanno provando anche col multicore).

capite che i programmofoni e i giornali di tifoseria informatica (linuxari, windowsari&co ) non vi diranno mai queste cose. Oltre alla mancanza di Apple che spicca con forza, non tutti i linuxari ammetteranno mai che Linux non sia mai riuscito a salire a EAL4+, e si trovi nello stesso girone di certificazione di Windows Vista.

EAL5 qui il gioco si fa piu’ duro. Il livello di pratica richiesto e’ molto piu’ duro, le informazioni fornite devono essere molto piu’ complete, e ci sarebbe da scrivere libri (e non post) a riguardo dei test che si possono fare. I sistemi che arrivano a EAL5 sono:

  • Smartcard per Carte di credito.
  • Tenix Interactive Link (un sistema di operazioni di rete in uso per la telefonia forense)
  • XTS400 (sviluppato da BAE systems, fabbricanti di sistemi d’ arma) dallo STOP6 in poi.
  • IBM LPAR su System z.(il sistema di virtualizzatione dei mainframe IBM)

Alcuni sistemi per smartcard hanno bisogno di livelli di sicurezza un pelo superiori ad EAL5, come capita a:

  • Siemens CardOS M4.3B mask: EAL 5+

che viene usato su alcune smartcard molto sicure per questioni particolari (accesso a caveau, etc).

EAL6 qui siamo ad applicazioni che non solo girano soldi, ma se vanno in cacca allora muore gente. Anche con i sistemi d’arma di BAE systems muore gente, ma siccome sono sistemi d’arma, non sempre e’ un problema. Qui invece girano soldi , le assicurazioni pagano una marea di soldi e non deve morire nessuno. La lista dei test e dei requisiti e’ enorme. Abbiamo:

  • HP OpenVMS e SEVMS

se andate oltre a EAL6, potete ottenere EAL6+ che ha un membro famoso:

  • Integrity-178B (il sistema RTOS che gira su B-2, F-16, F-22 and F-35, Airbus A380)

per capirci, su questi ultimi sistemi non e’ consentita l’allocazione dinamica della memoria. Se ne conoscete altri che abbiano EAL6+, ditemelo. Non si finisce mai di imparare, in questo settore.

EAL7 qui siamo a dei livelli estremi, ove la sicurezza viene garantita dal fatto che l’hardware (di fatto, software implementato sotto forma di ASIC o SoC) abbia certe caratteristiche ed abbia superato delle verifiche formali.

  • The Tenix Interactive Link Data Diode Device (un sistema di isolamento tra reti che consente solo un ascolto monodirezionale: io vedo te tu non vedi me)
  • Fox-IT Fox Data Diode (il concorrente europeo del sistema di cui sopra)

si tratta di strumenti per la misura di dati su rete e per la sicurezza estrema nell’analisi dei protocolli.Si usano per separare delle reti ordinarie da reti di controllo con dei Niente che la maggior parte di noi vedra’ mai all’opera.

Quali sono i test da passare? Si tratta di una serie di certificazioni intermedie, che per la Germania (ove la certificazione raggiunge livelli maniacali) sono riportate in questo modo:

  • FAU (Sicherheitsprotokollierung)
  • FCO (Kommunikation)
  • FCS (Kryptographische Unterstützung)
  • FDP (Schutz der Benutzerdaten)
  • FIA (Identifikation und Authentisierung)
  • FMT (Sicherheitsmanagement)
  • FPR (Privatsphäre)
  • FPT (Schutz der Sicherheitsfunktionen)
  • FRU (Betriebsmittelnutzung)
  • FTA (Schnittstelle)
  • FTP (vertrauenswürdiger Pfad/Kanal)

ognuna di queste sigle corrisponde ad una serie di test puntualmente mappati da ISO IEC/15408. Una comoda overview la trovate da parte di Siemens AG

Adesso voi vi chiederete come mai si parli poco di questa roba.

La prima e’ che si tratta di roba avvilente. Se superiamo il livello tipico dei videogiochi, di Windows 9598/2k , abbiamo quasi tutti i concorrenti concentrati sul livello EAL4 , sino a EAL4+ . Se gia’ cerchiamo EAL5 troviamo praticamente IBM ed i militari. Questo fa capire chiaramente per quale motivo oltre un certo livello di criticita’ trovate sempre dei mainframe IBM: basta scrivere che si vuole EAL5 , e oltre IBM non andrete.

E’ inutile che i linuxari si azzuffino, dal momento che dal punto di vista di questi test, Windows Vista e Linux pari sono. Avete voglia di discutere di Zombix Trusted Security Fichissimus 4.5 , tanto da li’ non vi schiodate. Al massimo fate EAL4+. Non oltre.

I fan di Apple hanno notizie ancora peggiori. Apple MacOS X arriva ad EAL3 il che significa che ha una certificazione inferiore a Linux e Windows. Apple e’ meno sicuro e robusto di Windows e Linux. (Se qualcuno mi sa mostrare la certificazione EAL4 di Apple Mac OS ovviamente sto sbagliando, ma attualmente non trovo niente oltre alla EAL3).

Vedere che nei tre livelli superiori della sicurezza e dell’affidabilita’ ci siano pochissimi sistemi, e che di fatto quasi ogni cosa conosciamo si fermi tra EAL4 ed EAL4+ non e’ un bel complimento per il software attuale. (Apple dovrebbe svegliarsi , per dire, se vuole entrare nell’ era dell’ IoT).

Perche’ questo e’ un problema?

Andiamo a vedere, per esempio, la centralina elettronica della vostra automobile.
Abituati a lavorare direttamente con il silicio, ove si fa la verifica formale di tutto, le aspettative di qualita’ e sicurezza delle case automobilistiche si collocano tra EAL5 ed EAL6+.

Ma la stragrande maggioranza del software che conosciamo sta SOTTO EAL4.

E’ vero che dal momento che una centralina d’auto non comunica e non e’ fisicamente accedibile (se non dal vostro meccanico) sia “facile” arrivare a questi livelli alti. Ma significa anche che quasi nessun sistema operativo e’ adatto per fare IoT sulla vostra auto, almeno sino a quando vorrete assicurarla.

Questo e’, almeno su un piano piu’ “formale” quello che intendo dire quando dico che col software non ci siamo. Non siamo pronti ne’ alla IoT ne’ a tutte quelle brave promesse di Robot che guidano le auto, di robot che fanno i chirurghi, di oggetti che prendono cura del nonno: nessuna assicurazione vorra’ coprirli, e in molti paesi del mondo praticamente ogni cosa della vostra casa e’ assicurata. (In Germania, per dire, l’assicurazione sulla casa e’ obbligatoria).

Perche’ non si dice sulla stampa “specializzata”? Perche’ molti, troppi, vivono convinti che “Cuginix e’ piu’ sicuro di Wassoretis, e che ovviamente PuppaBSD sia ancora piu’ sicuro e stabile di Cuginix”.

No: sono tutti piu’ o meno li’.

E sono tutti insufficienti per il mondo che vorremmo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *