Che cos’è un Chroot?

Un chroot è un’area isolata in un sistema informatico in cui gli utenti possono testare programmi non attendibili e impegnarsi in altre operazioni che non desiderano influenzare il resto del computer. Viene utilizzato in Unix e sistemi simili e richiede all’utente di eseguire una serie di comandi che modificano la directory radice utilizzata come riferimento dal programma. Il comando chroot deve essere usato con cautela perché il sistema può essere ancora vulnerabile se non è configurato correttamente o se l’utente non presta attenzione quando opera al suo interno.

Quando un utente crea un ambiente chroot, i programmi eseguiti all’interno di quell’ambiente trattano la directory specificata come root. Questi programmi presumono che non ci siano directory superiori e quindi non possono accedere alla vera directory radice nella parte superiore del file system. Ciò rende difficile apportare modifiche che potrebbero mettere in pericolo il resto del sistema. Anche altri programmi non possono accedere e modificare le informazioni all’interno del chroot; si comporta come un’unità di isolamento.

Chroot può essere rotto, usando una varietà di tecniche. Uno dei più basilari consiste nel lasciare l’utente nel chroot con i privilegi di root, che consentono modifiche estese al sistema. I programmi possono approfittarne per uscire dalla prigione digitale e accedere al resto del sistema. Per questo motivo è importante modificare i permessi dell’utente il prima possibile, una misura standard nella sicurezza informatica. Lasciare gli utenti impostati sui ruoli meno privilegiati come regola generale può ridurre il rischio di un problema di sicurezza.

Anche la falsa directory root deve essere opportunamente popolata con le risorse che i programmi devono utilizzare. In caso contrario, potrebbero non funzionare correttamente. Gli utenti in genere tengono tutto ciò che non è strettamente necessario fuori dal chroot, ma devono assicurarsi che alcune informazioni siano disponibili. Mentre gli utenti navigano nell’ambiente, possono prendere nota di eventuali problemi o dubbi specifici che sorgono in modo da essere consapevoli prima di provare gli stessi processi nel sistema informatico in generale.

Questo può essere un utile ambiente di test, in cui un utente desidera esplorare codice o programmi con un rischio ridotto per il resto del sistema. Può anche essere prezioso per la manipolazione di materiali sconosciuti o non attendibili. Piuttosto che caricarli direttamente sul sistema, l’utente può usare chroot per esaminarli e valutarli per determinare se sono sicuri.