Sta scrivendo su / dev / null secure?

2

Sto lavorando a un progetto di crittografia basato sul servizio web in JAVA. L'idea di base è che il client invii una richiesta SOAP a un servlet per crittografare i dati. Per la trasmissione dei dati sto usando MIME / data-handlers e ho notato che MIME memorizza i dati trasmessi in un file temporaneo se la dimensione è maggiore di una certa quantità. Anche se questo file sarà spazzato via, preferirei che non sia nemmeno sul mio sistema. Quindi, ho scritto questo file temporaneo su / dev / null. Poiché questo è solo un progetto, non è la fine del mondo se qualcuno può ancora leggere il file temporaneo, ma mi ha fatto pensare a un ambiente di produzione in cui questo potrebbe essere un grosso problema.

Sta scrivendo su / dev / null sicuro e protetto? È lo stesso di non scrivere affatto il file? Qualcuno potrebbe ancora accedere al file temporaneo in chiaro che sta per essere scritto cioè, come viene scritto?

    
posta Sam 30.06.2015 - 20:05
fonte

2 risposte

4

È possibile sostituire /dev/null con qualcos'altro. Provalo (come root):

mv /dev/null /dev/null-real
mkfifo /dev/null # Create a FIFO pipe to read/write data
while read line; do echo "Incoming: $line"; done < /dev/null &
echo secretdata > /dev/null

Vedrai un messaggio che dice Incoming: secretdata nel tuo terminale. Questo perché il ciclo "while read" è "backgrounded" (il segno & lo fa). Ciò significa che verrà eseguito in background mentre viene eseguita la riga successiva. Tutto ciò che è scritto sulla nostra pipe FIFO, che si trova a /dev/null , verrà raccolto e visualizzato.

Se hai provato questo sul tuo computer, puoi ripristinare la situazione originale semplicemente facendo:

rm /dev/null
mv /dev/null-real /dev/null

Tuttavia avere un listener su /dev/null è estremamente raro. Penso che solo root possa farlo. Se ti interessa davvero, puoi anche controllare se /dev/null è effettivamente il dispositivo originale /dev/null (puoi vedere in stat /dev/null che è un certo tipo di dispositivo con un certo inode). Non penso che valga la pena farlo, perché:

TL; DR: Se non ti puoi fidare dell'amministratore del tuo server di lasciare il dispositivo% co_de da solo, la tua applicazione non dovrebbe essere comunque in esecuzione.

    
risposta data 30.06.2015 - 20:22
fonte
2

Scrivere su / dev / null è sicuro come consentito dal sistema operativo. Lo stai utilizzando per lo scopo esatto per cui è stato creato, reindirizzando l'output verso il nulla. / dev / null fa parte della filosofia UNIX in cui tutto è un file, inclusi i dispositivi. È un file speciale riconosciuto dal kernel e l'output non viene mai scritto da nessuna parte.

Chiunque abbia accesso a livello di root può comunque accedere ai dati attraverso vari mezzi, incluso il reindirizzamento di / dev / null da qualche altra parte. Ciò è inevitabile in quanto l'accesso a livello di root può fare qualsiasi cosa, inclusa la lettura di posizioni di memoria arbitrarie e la sostituzione di parti del sistema operativo o dell'applicazione.

    
risposta data 30.06.2015 - 20:36
fonte

Leggi altre domande sui tag