Moderatore: Staff




Dani ha scritto:Il link sembra interessante, lo rileggero' con piu' calma, grazie.
Ma se qualcuno mi exploita un'applicazione ritrovandosi in qualche modo in mano una shell, tenendo conto che l'applicazione bucata giri in chroot, l'attacker non puo' uscire in nessun modo dalla "finta root" ?


Sempre in merito alla sicurezza del sistema, ecco un'altra feature interessante: la versione di Apache di OpenBSD, per esempio, viene eseguita in jail (una specie di gabbia da cui il processo non può uscire); niente di nuovo, se non fosse che il chroot del processo è predefinito. In questo modo un malintenzionato potrebbe soltanto far andare in crash il Web Server, senza poter accedere al contenuto del disco, in quanto il processo non ha i diritti per farlo.


goldy ha scritto:masa tu che sei esperto di queste cose ,
discutendo con un mio amico , grande utilizzatore di bsd sui server
mi faceva notare che da questo punto di vista linux
Questa ulteriore "sicurezza" adottata in BSD potrebbe attutire i danni di eventuali bug delle applicazioni che girano sui server?

bloodlust ha scritto:i vserver su Linux sono similari (non la stessa cosa) e non paragonabili a livello di sicurezza e stabilità.
per farti un es. su freebsd sono presenti chiamate di sistema nel kernel già dalla versione 4.x (non ricordo quale nello specifico) mentre su linux devi patchare kernel etc.. e quindi molto più sperimentali.
più che altro il parallelo lo farei con le zone di solaris 10 (con la pecca che non ci puoi far girare nfs..).
clock_settime(3, 0xFFBFFC18) Err#1 EPERM [sys_time]
int
clock_settime(clockid_t clock, timespec_t *tp)
{
...
if (secpolicy_settime(CRED()) != 0)
return (set_errno(EPERM));
...
(lasciamo perdere selinux che IMO è 'na schifezza).

masalapianta ha scritto:paragonare jail di bsd con sistemi tipo vserver o uml e' come paragonare chroot con jail (mele con pere), son cose diverse che si prefiggono scopi diversi
le zone di solaris non sono ne carne ne pesce, da una parte vorrebbero creare una sorta di virtualizzazione, dall'altra zone e global zone condividono un sacco di cose (che sarebbe stato meglio virtualizzare)
e ne negano l'accesso, sotto certe condizioni, alle zone; ad esempio il clock di sistema, se chiami clock_settime() da una zona ti becchi un bellissimo EPERM:
in quanto nel kernel viene verificato che il chiamante sia la global zone, in caso contrario ti manda a quel paese:
il che e' na bella zozzeria...se io ho necessita' di sincronizzare l'orario in maniera differente nelle varie zone non posso
(questo, ripeto, e' un esempio stupido, ci sono altri esempi, come lo stack di rete condiviso e relative tabelle di routing, che creano problemi ben piu' seri)
perche' pensi questo?

bloodlust ha scritto:masalapianta ha scritto:paragonare jail di bsd con sistemi tipo vserver o uml e' come paragonare chroot con jail (mele con pere), son cose diverse che si prefiggono scopi diversi
non li vedo appartenenti a categorie di virtualizzazione differenti (entrambi virtualizzazione a livello os) tuttalpiù approcci (e risultati) un po' differenti. infatti ho specificato "similari" (ma forse sarebbe più corretto dire simili).
Più che mele e pere direi mele e meline.
non si può ridurre vserver ad un semplice chroot perchè non è solo quello (è uno degli strumenti che usa per ottenere lo scopo) ma concordo se mi dici che non si può paragonare il livello di sicurezza offerto dai due.
le zone di solaris non sono ne carne ne pesce, da una parte vorrebbero creare una sorta di virtualizzazione, dall'altra zone e global zone condividono un sacco di cose (che sarebbe stato meglio virtualizzare)
concordo se mi dici che questa tecnologia è ancora (molto) immatura (basta pensare che è una novità di solaris 10 mentre jail è presente nel kernel freebsd già da svariate versioni (e tempo)), ma come concetto e funzionalità offerte è molto più vicina a jail che non vserver o altri.
e ne negano l'accesso, sotto certe condizioni, alle zone; ad esempio il clock di sistema, se chiami clock_settime() da una zona ti becchi un bellissimo EPERM:
in quanto nel kernel viene verificato che il chiamante sia la global zone, in caso contrario ti manda a quel paese:
il che e' na bella zozzeria...se io ho necessita' di sincronizzare l'orario in maniera differente nelle varie zone non posso
questo è un comportamento voluto e conosciuto (e scaturito da una visione di sicurezza e da una struttura sottostante differente rispetto ad altre).
(questo, ripeto, e' un esempio stupido, ci sono altri esempi, come lo stack di rete condiviso e relative tabelle di routing, che creano problemi ben piu' seri)
questa è una peculiarità di questo tipo di virtualizzazione nella quale il kernel è uno soltanto, per cui è normale che determinate strutture di kernel siano uniche e non modificabili dalle zone (es. anche con jail non puoi modificare la routing table. sarebbe venir meno a certi requisiti di sicurezza).
Se si hanno esigenze differenti si sceglie una tecnologia differente.
perche' pensi questo?
affermazione dovuta a (negative) esperienze passate. probabilmente dovute alla mia scarsa conoscenza in merito. lo vedo un po' troppo complicato da gestire per cui questo può portare ad avere sistemi che vengono creduti sicuri ma che in realtà non lo sono.
Non essendo io un esperto di sicurezza spesso mi devo basare sul lavoro fatto da altri e se questo lavoro non è fatto bene chi ci rimette sono anche io.


Visitano il forum: Nessuno e 2 ospiti