PDA

View Full Version : [NEWS] PI Debug/ NTFS-3G, privilegi scalati


c.m.g
25-02-2017, 16:03
venerdì 24 febbraio 2017

Su GNU/Linux è possibile montare partizioni Windows usando il modulo FUSE NTFS-3G. Ma un bug, che permette l'esecuzione di un terminale con privilegi di root, trasforma un semplice utente in amministratore

Per quanto un utente GNU/Linux voglia mantenere le distanze dalle tecnologie basate su Windows, prima o poi finirà sempre per doverci fare i conti. Ciascuno di noi ha un amico che usa Windows e che utilizza delle pendrive per passarci dei file importanti. Uno dei file system storici è il FAT, ma il file system NTFS è ormai molto diffuso sia per hard disk pendrive di dimensioni superiori a 32 GB. È probabilmente per questo motivo che uno degli strumenti provenienti dall'universo Microsoft più popolari nel mondo GNU/Linux è NTFS-3G, il modulo FUSE che permette l'accesso ai dispositivi di memorizzazione formattati con NTFS. Il meccanismo di FUSE è molto intelligente, perché lavorando nello userspace invece che nel kernelspace permette il montaggio di file system anche agli utenti comuni e non solo all'utente root. Si tratta, quindi, di un sistema più sicuro, e anche più flessibile visto che si possono inventare file system virtuali di qualsiasi tipo. Tuttavia, il modulo fuse del kernel Linux deve essere caricato.

Un'azione inutile
Sui sistemi dotati di NTFS-3G viene fornito un programma, solitamente /bin/ntfs-3g, che permette l'utilizzo di dispositivi formattati con l'NTFS. E siccome per montarli sul proprio sistema è necessario che FUSE sia abilitato, il programma provvede a caricare tale modulo di sistema chiamando il comando modprobe (lo stesso, per capirci, che si usa per caricare qualsiasi altro modulo di sistema come quelli per i driver delle periferiche).
Il fatto è che questa operazione è nella maggioranza dei casi inutile: oggi come oggi, tutte le distribuzioni che supportano NTFS-3G hanno il modulo FUSE già caricato nel kernel. Insomma, sarebbe sufficiente controllare se il modulo sia caricato e, in caso contrario, rifiutarsi di avviare il montaggio della partizione NT. Ma il vero problema è che non soltanto questa operazione è inutile, ma anche pericolosa. Proprio perché non era previsto che questi strumenti venissero usati in questo modo, non era garantito che funzionassero correttamente. Ed infatti c'è un piccolo intoppo nel meccanismo: il programma che si occupa di NTFS-3G viene eseguito con privilegi di utente semplice, ma se questi vuole a sua volta caricare il modulo fuse nel kernel usando il comando modprobe, avrà bisogno di privilegi di amministrazione. Quindi, il programma usa setuid, il meccanismo che permette a specifici programmi considerati "affidabili" di poter eseguire azioni di root anche quando avviati con i privilegi di utenti normali. Il comando modprobe non è progettato per essere eseguito da setuid, ma soltanto dal vero utente root, ed utilizza una variabile d'ambiente per memorizzare delle opzioni da eseguire assieme al comando. Ciò significa che un malintenzionato potrebbe modificare tale variabile nell'ambiente dell'utente "semplice", e poi avviare ntfs-3g forzando il caricamento del modulo fuse con modprobe, andando quindi ad eseguire ciò che vuole con privilegi di root (cioè quelli concessi a modprobe grazie a setuid). È quindi possibile ottenere di fatto i privilegi di amministrazione, però ricordiamo che non è un problema di modprobe: è un problema di ntfs-3g, che utilizza modprobe in modo improprio.
Continua su Punto Informatico =========>> (http://punto-informatico.it/4373210/PI/News/pi-debug-ntfs-3g-privilegi-scalati.aspx)






Fonte: Punto Informatico (http://punto-informatico.it/4373210/PI/News/pi-debug-ntfs-3g-privilegi-scalati.aspx)