È sicuro di rm -rf una directory non affidabile?

3

Sono disponibili molti strumenti di collegamento (collegamenti simbolici, collegamenti fisici, montaggio, ecc.). Supponiamo che un dipendente insoddisfatto abbia l'idea di nascondere un collegamento alla directory radice o una directory mission-critical, in modo che un amministratore di sistema pigro che esegue "rm -rf / home / joe" dopo che ha sparato finisca per distruggere qualcosa di importante.

Quali sono i modi in cui Joe può causare problemi con i collegamenti? Esiste un'impostazione di configurazione per proteggere il sysadmin pigro? Come dovrebbe un paranoico sysadmin eliminare in modo sicuro una directory che potrebbe contenere collegamenti sospetti?

    
posta Michael Burge 06.06.2017 - 04:11
fonte

1 risposta

3

L'hard link alle directory è stato inserito nei commenti. Nominalmente non possono accadere; I sistemi di tipo Unix li hanno disabilitati per molto tempo perché consentirebbero la creazione di loop. Poiché l'allocazione dello spazio in un tale file system è basata su conteggio dei riferimenti , un file viene effettivamente deallocato quando scompare l'ultimo collegamento su di esso, un ciclo di directory può indurre un sacco di file inaccessibili che non vengono recuperati.

Tuttavia, non essere ammessi non significa che non possa essere fatto; solo che il presunto dipendente scontento avrebbe dovuto armeggiare con la struttura del disco, che avrebbe comportato un accesso fisico o di root (accesso da remoto per farlo da remoto, se il dipendente avesse accesso fisico allora avrebbe potuto semplicemente riavviarsi su un CD live o USB per giocare con il disco). Nella struttura del filesystem, le sottodirectory sono referenziate dalla directory padre e notando che un caso della stessa directory a cui si fa riferimento da due distinte directory madri richiederebbe, in generale, una visione completa dell'intero albero delle directory. Il kernel non tenta di mantenere tale visione poiché potrebbe potenzialmente utilizzare più RAM di quella disponibile. Pertanto, se le strutture di directory vengono modificate per includere diversi collegamenti alla stessa directory, il sistema live non se ne accorgerà.

fsck rileva i loop, ma lo fa solo quando viene eseguito, cioè solo all'avvio, e quindi solo una volta ogni riavvio di N, per qualche valore (configurabile) di N. può rilevare altri casi di collegamenti multipli alla stessa directory (senza fare un ciclo) ma non posso garantire su quello, per la stessa ragione spiegata sopra: per rilevare in modo affidabile tutti i casi di più collegamenti, l'albero di directory completo deve adattarsi alla RAM del processo di rilevamento. I loop sono facilmente rilevabili con una camminata albero in profondità, ma la struttura aciclic non-tree richiede più risorse.

Ma, più in generale, se il cattivo Joe avesse accesso root o equivalente alla radice, e si presume che lo abbia potenzialmente usato con intenti nefasti, allora l'intera macchina dovrebbe essere toccata solo con i rebbi, e solo per spingerla ad alcuni trituratore di livello industriale.

I collegamenti simbolici, d'altra parte, non causano danni qui. rm non seguirà i link simbolici.

Evil Joe avrebbe potuto montare un'altra partizione in una sottodirectory della sua home directory, ma, ancora una volta, avrebbe richiesto l'accesso come root e siamo tornati al paragrafo precedente.

In generale, quando un dipendente lascia la società, il processo dovrebbe comportare una cancellazione / re-imaging della sua workstation o laptop. Se il dipendente è considerato capace di malizia e si presume che si sia comportato in sabotaggio attivo, allora la cancellazione non sarebbe la cosa giusta da fare comunque: si vuole fare qualche analisi forense e conservare le prove.

    
risposta data 09.06.2017 - 21:20
fonte

Leggi altre domande sui tag