GNU/Linux >> Linux Esercitazione >  >> Linux

Come mai non viene creato alcun core dump quando un'applicazione ha impostato SUID?

La memoria di un programma setuid potrebbe (è probabile che contenga anche) dati riservati. Quindi il core dump dovrebbe essere leggibile solo da root.

Se il core dump è di proprietà di root, non vedo un'evidente falla di sicurezza, anche se il kernel dovrebbe fare attenzione a non sovrascrivere un file esistente.

Linux disabilita i core dump per i programmi setxid. Per abilitarli, devi fare almeno quanto segue (non ho verificato che sia sufficiente):

  • Abilita i core dump setuid in generale impostando fs.suid_dumpable sysctl a 2, ad es. con echo 2 >/proc/sys/fs/suid_dumpable . (Nota:2, non 1; 1 significa "Sto eseguendo il debug del sistema nel suo insieme e desidero rimuovere tutta la sicurezza".)
  • Chiama prctl(PR_SET_DUMPABLE, 1) dal programma.

Il core dump contiene una copia di tutto ciò che era in memoria al momento del guasto. Se il programma esegue suid, significa che ha bisogno di accedere a qualcosa a cui tu, come utente, non hai accesso. Se il programma riceve quelle informazioni e poi scarica il core, sarai in grado di leggere quelle informazioni privilegiate.

Dal tuo esempio sopra, sembra che tu sia in grado di ottenere un core dump quando esegui come root o se rimuovi l'escalation dei privilegi.

Anche se potrebbe essere utile (solo per gli sviluppatori, penso) avere un facile accesso a un coredump da un programma setuid, è una falla di sicurezza e dovrebbe essere lasciata sul posto.


Linux
  1. Come impostare/creare variabili di ambiente e shell in Linux

  2. Linux – Suid non ha alcun effetto sulle directory con Linux?

  3. Come impostare i parametri quando Pipe Bash Script su Bash?

  4. Come mai ogni programma o servizio ha un proprio account in /etc/passwd?

  5. Come modificare il programma di "lettura" predefinito?

Come creare un Application Load Balancer su AWS

Come configurare un cluster Pacemaker per Linux ad alta disponibilità

Come creare un collegamento sul desktop?

Linux / UNIX:come trovare i file con SUID/SGID impostato

Come posso ottenere ciò che la mia funzione principale ha restituito?

Come aggiungere al gruppo quando il nome ha uno spazio?