Autenticazione tramite SysRq

3

L'idea generale qui è la possibilità di aggiungere "richieste di autorizzazione" simili a UAC di Windows a un sistema Linux, progettato in modo tale da non poter essere aggirato nel software. Dare il consenso dovrebbe essere fattibile solo se si è fisicamente alla tastiera. Qualsiasi processo può richiedere privilegi elevati.

L'idea specifica è che un comando che prevede una password (come su o anche più comandi specifici dell'applicazione come gradm , utilizzato per l'autenticazione del ruolo di amministratore quando si utilizza RBAC per i controlli di accesso) è vulnerabile a un processo locale che annusa le sequenze di tasti e successivamente le riproduce. Questo potrebbe essere mitigato dal fatto che un modulo PAM consente l'autenticazione quando viene immesso un particolare SysRq o una combinazione di tasti simile. Lo scopo sarebbe quello di attestare il fatto che l'entità che richiede i privilegi è un utente fisico sulla tastiera, non un processo.

Il modello di minaccia

Capisco che questo non è sufficiente per alcuni modelli di minacce, ma è per il mio. Si prega di considerare le seguenti affermazioni come corrette, a meno che non vi sia un errore evidente. Il modello di minaccia è semplice:

  • I processi dannosi vogliono aumentare i privilegi tramite il dirottamento del meccanismo di autenticazione.
  • Solo gli utenti autorizzati hanno accesso fisico. La sola presenza fisica dimostra autorità.
  • Non esistono vulnerabilità di escalation dei privilegi che possono essere utilizzate per dirottare il kernel.
  • Il meccanismo di input non può essere compromesso, ad es. non esiste un firmware della tastiera aggiornabile.
  • Secure Attenzione Key garantisce che nessun processo dannoso è in esecuzione in un determinato TTY.
  • Le voci Syslog non possono essere falsificate. Ignoriamo i codici di controllo unicode per ora.

Autenticazione con SysRq

Poiché i comandi SysRq vengono intercettati dal kernel prima che vengano inviati allo userspace, e poiché i comandi SysRq non possono essere iniettati o falsificati senza accesso fisico (sono progettati per essere immessi solo tramite una tastiera fisica, ignorando /proc/sysrq-trigger ), sembra che certe operazioni privilegiate possano essere fatte senza l'autenticazione della password. Il processo sarebbe simile a questo:

  1. Un processo (come su ) richiederebbe i privilegi. Questo potrebbe essere fatto usando un modulo PAM che controlla un comando SysRq personalizzato. Solo un comando può richiedere i privilegi alla volta. L'implementazione stessa non ha importanza.
  2. Il sistema deve rendere l'utente consapevole di quale comando richiede i privilegi. Ovviamente, questo non deve essere possibile spoofing, quindi i prompt X11 sono a posto. Una soluzione ghetto si collegherebbe al syslog. Se il syslog è impostato per stampare se stesso su un particolare TTY, l'utente può passare a quel TTY e usare Secure Attention Key (SAK). Ciò assicurerebbe che i registri che vedono siano autentici.
  3. L'utente può scegliere di consentire i privilegi al comando, ora che sa per certo quale comando richiede i privilegi. L'immissione di un particolare comando SysRq concederà l'autorizzazione.

Sembra che l'idea di usare SysRq per privilegiare i privilegi (o, più specificamente, disabilitare i meccanismi di sicurezza) non sia una nuova idea. La nuova funzionalità blocco del kernel può essere disabilitata tramite SysRq-x.

Ci sono problemi con questo meccanismo di autenticazione proposto, per il mio modello di minaccia?

    
posta forest 06.02.2018 - 04:57
fonte

0 risposte

Leggi altre domande sui tag