[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: Novembre 2003 ml@sikurezza.org
Soggetto: Re: La programmazione sicura "dei poveri"
Mittente: Michele Albrigo
Data: 20 Nov 2003 15:43:16 -0000
Simo Sorce wrote:

On Thu, 2003-11-13 at 17:53, Michele Albrigo wrote:


Rispondo ad entrambe le mail ed alle varie obiezioni...

Chroot di apache e python: ni. Se metto un interprete python accessibile all'interno della chroot, ho l'impressione di lasciare, a disposizione del malintenzionato di turno, il classico "coltellino svizzero multiuso" con cui lanciare tutte le chiamate di sistema che vuole facendo danni a destra e a manca.



Scusa, ma una volta che sei dentro cosa ti impedisce di scaricarti nella
chroot un interprete python piuttosto che un programma compilato C con
test per tutte le syscall che vuoi?


Tanto per cominciare nella chroot dovrebbe essere tutto read-only per l'utente del server web, quindi non ci dovresti poter scrivere, a meno che tu non prenda i permessi di root direttamente dall'unico processo di apache che gira come root. Cio' che non e' read only (ad esempio la directory dove sono salvati i dati dell'applicazione web), dovrebbe essere protetto con meccanismi tipo Trusted Path Execution e partizione montata noexec, assieme ad un bel set di direttive di apache che blocca l'esecuzione di php, perl e compagnia dentro quella directory. Quindi se arrivi nella mia chroot per scrivere il tuo programma compilato in C, o sei gia' root o non lo esegui. Per impedirti di scaricare roba pensavo di filtrare il traffico in uscita in modo un po' bastardo (ad esempio dicendo che l'utente del server web non puo' inizializzare nessuna connessione)...
Infine vale sempre la pena di attivare un controllo di integrita' dei file su tutto l'ambiente della chroot, in modo da rilevare l'eventuale caricamento di software estraneo.


Ovviamente tutto questo non vale se l'interprete python ce lo metto gia' io: uno lo lancia e puo' chiamare le syscall che preferisce, a meno di restrizioni fatte con roba tipo rsbac o grsecurity (che comunque potrebbe essere installata ugualmente, giusto per non fidarsi di un sistema di sicurezza solo, ma per avere sempre due o tre linee di difesa).

Infine, ma non e' cosa su cui contare piu' di tanto, anche una rimozione di tutti gli strumenti con i quali si puo' identificare il sistema operativo e le versioni dei software sul server potrebbe far comodo, in modo che la compilazione del programma in C di cui parli risulti un po' piu' un terno al lotto, magari loggando e dando il giusto rilievo a tutti gli exec falliti sul sistema...

Altre idee?
Ciao
Michele

--
---------------------------------------------------------------
"Non sei messo cosi' male se non hai ancora messo la macchinetta
del caffe' sotto gruppo di continuita'..." (Anonimo caffeinomane)



________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List




[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005