Fabio Coatti cova@xxxxxxxxxxxxxxxx [mlerlug/erlug list] wrote:
Il 20:02, lunedì 3 dicembre 2001, hai scritto:
Una polemica! Una polemica! :->
Ci ho riflettuto, e sono acora più convinto che avere più sistemi diversi sia
assurdo. Vuol dire che su almeno il 60% dei servers hai dei prodotti di
seconda "scelta" , che devi preoccuparti del triplo di possibili compromises,
che devi lavorare il triplo per sistemare i servers, che devi avere il triplo
di configurazioni _completamente_ diverse, che devi controllare il triplo di
advisories. L'unica cosa che salvi avendo 1/3 di servers vulnerabili è
_forse_ la continuità del servizio. Ma considerando che normalmente un
attacco non ti blocca il servizio ma molto più spesso serve a sfruttare la
macchina per fare altre cose, tipo da ponte per fare altri danni, oppure
serve a carpire informazioni riservate che possano essere depositate sul
server stesso, fossero anche solo le password ftp, la cosa è decisamente un
non senso.
In realtà, la risposta giusta è "dipende". Mi coglie il ghiribizzo
tuttavia di investigare la questione un pò - lanciando un piccolo amo
ad eventuali ingegneri e matematici in lista.
E' del tutto ragionevole pensare che di 3 server, uno sia migliore degli
altri due dal punto di vista della sicurezza, non essendo questa l'unico
parametro a governare la diffusione. Detti A, B e C i server, abbiamo
che la probabilità di avere un baco è:
pA < pB < pC
perchè naturalmente uno dei due tra B e C sarà a sua volta meno sicuro
dell'altro. Diciamo invece che l'ipotetico unico server abbia una
probabilità p di avere un baco di sicurezza. Diciamo che cA è una misura
del lavoro necessario per stare dietro ad A, cB e cC per B e C, c per il
server unico, e che la differenza tra stare dietro a un host e
stare dietro a N tenda a decrescere molto rapidamente al crescere di
N in maniera sostanzialmente indipendente da quale server è in ballo
(si tratta di una semplificazione un pò grossa, ma senza fare esempi
concreti come faccio a sapere che il più sicuro è quello per cui è
più facile replicare la configurazione su molti server ?); ne segue
che stare dietro al server unico mi costa c mentre stare dietro ai
tre mi costa cA+cB+cC > 3c (ma non di tanto).
Supponiamo altresì che il danno conseguente a una violazione di
sicurezza sia esprimibile come
w0 + K * w1 - (N - K) * u2 = w0 + K * (w1 + u2) - N * u2
ovvero una quota fissa w0 dovuta al fatto che una violazione c'è
stata, quota che non dipende da quanti host sono stati violati,
da una quota funzione del numero K < N di host compromessi e da
una quota u2 funzione del numero di host ancora disponibili (in
senso lato: se N host offrono "il servizio", non sto a disquisire
se lo ridondino o ciascuno offra un pezzo che a uno interessa e
a uno no). Per K = 0, normale esercizio, ho un danno negativo
ovvero un vantaggio.
Per N host il danno medio è circa
(pA + pB + pC) * w0 + (pA + pB + pC) * (w1 + u2) * N / 3 - u2 * N
ovvero se supponiamo che pA sia circa pB - d e pC sia circa pB + d,
3 * pB * w0 + pB * (w1 + u2) * N - u2 * N
nel caso multiplo e
p * w0 + p * w1 * N
nel caso unico.
Il danno nel caso unico è minore se
p * w0 + p * w1 * N < 3 * pB * w0 + (pB * w1 + pB * u2 - u2) * N
ovvero per N grande se
p * w1 < pB * w1 + (pB - 1) * u2
Studiamo il caso di p molto più piccolo di pB, ovvero pB - p circa uguale
a pB:
0 < pB * w1 + (pB - 1) * u2
ovvero il danno nel caso unico è minore se
u2 < pB (w1 + u2)
ora supponiamo w1 < u2, ovvero che il beneficio di avere il servizio sia
superiore allo sforzo per ripristinarlo in caso di violazione (in
caso contrario cosa lo ripristino a fare ?) e quindi
1 < pB (w1/u2 + 1) = pB (x + 1)
essendo x < 1, pB (x + 1) < 2 * pB e quindi perchè il caso unico sia
migliore devo avere pB > 0.5; nemmeno i prodotti Microsoft hanno una
probabilità del 50% di avere violazioni di sicurezza.
E' quindi interessante il caso in cui p e pB sono paragonabili, anche
se p è meglio, ovvero p = pB - q. In tal caso il caso unico è migliore
per N grande se
(pB - q) * w1 < pB * w1 + (pB - 1) * u2
ovvero
0 < q * w1 + (pB - 1) * u2
u2 < q * w1 + pB * u2
1 < q * x + pB
ma ancora una volta x < 1, q < 1 e pB < 0.5 ... per valori sensati di w1
e u2 x è piccolo, q non è grande altrimenti ricadremmo nel caso
precedente ... non andiamo sopra 1.
Ne traggo la conclusione che per N grande il danno da violazione di
sicurezza della configurazione a tre server sia inferiore a quello
della configurazione a server unico: intuitivamente, ciò accade perchè
quando si ne verifica una mi resta il 60% del servizio, sotto l'ipotesi
u2 > w1 ovvero che quando mi compromettono una macchina abbia senso
sforzarsi di ripristinarla.
Ingegneri e matematici potrebbero farmi molto male, ma sono gli
statistici quelli che possono affondarmi davvero :-) ...
Davide Bolcioni
--
Linux - the choice of a GNU generation.
|