Italiano

Strumenti per sviluppatori · Calcolatore Chmod

Trovare file scrivibili da tutti e binari setuid con find -perm

· Perché è importante

chmod unix controllo degli accessi

controlli dei permessi mostrati come un diagramma distinto dei bit di autorizzazione Unix
Illustrazione vettoriale originale ToolAcre

Due modelli di autorizzazione spiegano molti incidenti reali: file che chiunque può modificare e programmi eseguiti come root. Questo post mostra come trovarli entrambi con find -perm e cosa fare al riguardo.

Il revisore richiede un elenco che non hai: quali file possono modificare qualsiasi utente e quali programmi elevano i privilegi quando vengono eseguiti

Una revisione delle autorizzazioni spesso inizia con modalità già raccolte altrove: forse 0002, 4000, 2000 o un valore completo come 4755. La calcolatrice può decodificare tali numeri in proprietario, gruppo e altre autorizzazioni, inclusi i tre bit speciali. Non esegue ricerche nelle directory, non esamina i file binari né produce un inventario dei percorsi.

Tratta ogni modalità fornita come una descrizione di bit, non come un verdetto su un file. Inseriscilo, confronta il campo ottale con la visualizzazione simbolica e la matrice delle caselle di controllo, quindi registra cosa è cambiato. La proprietà, le voci ACL, le capacità e l'identità di qualsiasi processo che utilizza il percorso rimangono fatti da raccogliere dall'ambiente reale.

Scrivibile da tutti significa che le altre classi hanno w — il modello ottale 0002 e perché -perm -0002 lo trova indipendentemente dagli altri bit

Il valore 0002 isola il bit di altra scrittura. Nel layout ordinario a tre classi, la cifra finale appartiene a tutti gli utenti esterni alle classi proprietario e gruppo e la sua componente di scrittura ha peso 2. Una modalità completa contenente quel bit mostrerà quindi w nell'altra classe, sebbene la calcolatrice non localizzi tali modalità da sola.

Il fatto che una particolare espressione find significhi corrispondenza esatta, di tutti i bit o di qualsiasi bit appartiene alla documentazione di find, non a questo convertitore. Fornire invece una modalità risultante. Ad esempio, 0666 diventa rw-rw-rw-, mentre 0644 diventa rw-r--r--; la differenza è visibile nel gruppo e in altre posizioni di scrittura senza implicare che entrambe le modalità si adattino a un percorso specifico.

0002 espone il bit di altra scrittura; trovare la semantica corrispondente è esterna

La cifra iniziale del bit speciale utilizza 4 per setuid e 2 per setgid. Pertanto 4755 combina setuid con i normali permessi 755, mentre 2755 combina setgid con gli stessi bit finali. La calcolatrice espone tali maschere separatamente e inserisce le relative lettere simboliche nella posizione di esecuzione del proprietario o del gruppo durante il rendering della modalità completa.

Il caso contiene prove utili. Se setuid accompagna l'esecuzione del proprietario, la posizione di esecuzione del proprietario visualizza s; senza eseguire viene visualizzato S. Setgid segue la stessa regola nella posizione del gruppo. Questi output decodificano un numero intero fornito, ma non ispezionano un programma, ne determinano il proprietario, non lo eseguono o decidono se un bit speciale è giustificato.

4000 e 2000 decodificano come setuid e setgid senza controllare i binari

La sintassi di ricerca dei permessi deve essere tenuta separata dall'aritmetica dei permessi. La calcolatrice accetta una modalità simbolica ottale o di nove caratteri e restituisce un valore di dodici bit. Non ha alcuna rappresentazione per un operatore di ricerca, un predicato di percorso o una regola di corrispondenza, quindi una query in modalità esatta e una query con tutti i bit richiesti non possono essere distinte all'interno di questa interfaccia.

Decodifica la modalità da ciascun risultato di ricerca esterno anziché incollare l'espressione di ricerca. Le tre cifre ordinarie vengono mappate a proprietario, gruppo e altro, mentre una cifra iniziale opzionale viene mappata a setuid, setgid e sticky. Questo flusso di lavoro verifica i bit segnalati ma lascia la copertura della ricerca e la semantica di corrispondenza allo strumento che ha prodotto l'elenco.

Le modalità di ricerca esatta, tutti i bit e qualsiasi bit richiedono la documentazione di ricerca

Supponiamo che un audit eseguito altrove riporti 0666 e 4755. L'immissione di 0666 produce rw-rw-rw-, rendendo visibile other-write nell'ultima tripla. Inserendo 4755 si ottiene rwsr-xr-x: il proprietario ha letto, scritto ed eseguito e setuid sostituisce il carattere di esecuzione del proprietario con una s minuscola perché quel bit di esecuzione è presente.

Un secondo successo come 4644 dimostra perché la forma simbolica è importante. Rende rwSr--r--, con la S maiuscola che mostra setuid mentre l'esecuzione del proprietario è assente. Il calcolatore può rendere evidente questa incoerenza. Non è ancora in grado di identificare il percorso, stabilire chi ne è il proprietario, ispezionarne il contenuto o consigliare la rimozione del bit.

Esempio realizzato: decodificare gli hit di audit forniti senza eseguire la scansione dei percorsi

Non riparare automaticamente ogni modalità insolita. Una modalità è solo un input per una decisione che dipende anche dal target, dal proprietario, dal gruppo e dall'operazione richiesta. La pagina non riceve deliberatamente nulla di quel contesto. L'anteprima del comando è un testo inerte e anche un percorso tra virgolette corrette non viene aperto o controllato dal browser.

Prima di modificare una modalità segnalata, confrontare i valori attuali e proposti un bit alla volta. La rimozione di altre scritture da 0666 produce 0664; la rimozione di setuid da 4755 produce 0755. Questi fatti aritmetici sono riproducibili, ma se una delle modifiche preserva il carico di lavoro richiede prove locali oltre la calcolatrice e oltre la procedura dettagliata in bit ordinario dell'articolo 501.

Le eccezioni e le soluzioni correttive richiedono la proprietà locale e prove del carico di lavoro

Mancano diverse dimensioni rilevanti dell’audit. Il percorso non interroga le voci ACL, le funzionalità dei file, la proprietà, i componenti del percorso scrivibile, il comportamento di montaggio o la policy obbligatoria. Inoltre, non esegue la ricerca, l'ispezione di PATH o l'attraversamento della memoria. Una conversione pulita quindi dice solo che il numero fornito e le lettere visualizzate coincidono.

Mantieni questi confini visibili in qualsiasi rapporto. Registrare il percorso e il metodo di raccolta oltre alla modalità decodificata, quindi indagare sulle identità e sui meccanismi di accesso aggiuntivi con strumenti esterni appropriati. La calcolatrice è utile come controllo della notazione perché rifiuta le cifre ottali non valide ed espone bit speciali; non è uno scanner di file system o un motore di riparazione.

Conclusione: conosci i tuoi file scrivibili e privilegiati e utilizza il calcolatore Chmod per tradurre ogni modalità sospetta prima di modificarla

Un utile controllo dei permessi separa la scoperta dall'interpretazione. Lascia che un processo esterno e documentato raccolga i percorsi candidati, quindi utilizza la calcolatrice per tradurre ciascuna modalità restituita in autorizzazioni di classe esplicite. Controlla la cifra facoltativa del bit speciale con la stessa attenzione delle tre finali, poiché 0755, 2755 e 4755 condividono autorizzazioni ordinarie ma descrivono diversi valori a dodici bit.

Terminare con una conclusione ristretta: quale proprietario, gruppo, altro e bit speciali contiene la modalità fornita. Non trasformare questo calcolo in un'affermazione non supportata sull'esposizione o sulla politica richiesta. Il calcolatore aiuta i revisori a leggere accuratamente le modalità sospette; il sistema live deve fornire prove di proprietà, carico di lavoro e applicazione prima che qualcuno li modifichi.