Quando Shellshock è stato introdotto, quanto è stato male ** allora **?

6

Il bug shellshock e la funzione sottostante che consente l'importazione di funzioni dall'ambiente (lo chiamo FIE), sono state in bash almeno dal 1993, prima dell'ascesa di CGI.

A quel tempo, il resto dell'ambiente Unix / Linux / GNU era molto diverso.

Quindi in quel momento della storia:

  • Sono stati consentiti script setuid in quel momento?
  • Gli script setuid erano parte della configurazione predefinita in quel momento?
  • Le chiamate system(3) e popen(3) sono state utilizzate regolarmente dai binari setuid in quel momento?
    • usi comuni sono per espandere i globi di shell ( less sembra usarlo per questo, ma non è setuid) ed eseguire comandi esterni
  • era comune in quel momento ereditare l'ambiente quando su -ing?
  • L'ambiente può essere propagato da cose come rlogin etc? (Penso che telnet abbia propagato DISPLAY per impostazione predefinita).
  • Ci sono delle caratteristiche che potrebbero rendere più problematico il bug della FIE?

Quindi quanto è stato pessimo questo escalation di privilegi e bug di esecuzione del codice, che è stato nascosto in bella vista per oltre vent'anni, quando è stato inizialmente introdotto ?

    
posta Ben 30.09.2014 - 11:45
fonte

1 risposta

5

Quanto male? Non molto.

Nessuno dei comuni vettori di attacco remoto esisteva quando è stato introdotto il bug: il bug di parsing "shellshock" era precedente a CGI e DHCP di circa un anno, e preimpediva SSH di due o tre anni. I programmi di accesso remoto come telnet e rsh non hanno l'abilità di restrizione dei comandi che fa SSH, quindi anche se un attacco "shellshock" potrebbe probabilmente essere montato contro di loro, non otterrebbe un attaccante nulla che non potrebbero ottenere t ottenere solo accedendo normalmente.

Per quanto riguarda gli attacchi locali di escalation dei privilegi, per quanto posso dire, Linux non ha mai supportato gli script setuid. Non ci sono molti programmi setuid: al momento, sarebbero stati quelli che ora sono i pacchetti "util-linux" e "shadow". Questi programmi fanno parte delle specifiche POSIX e non sono cambiati nelle loro operazioni fondamentali negli ultimi 20 anni. Di loro, solo su , mount e umount sono setuid e chiamano altri programmi, e tutti lo fanno attraverso exec*() . su ha fatto e passa ancora attraverso l'ambiente se invocato senza - , ma non è un vettore di attacco facile da usare: devi ottenere il tuo obiettivo per eseguirlo con un ambiente sotto il tuo controllo e invocarlo come su - (che pulisce l'ambiente) è una seconda natura per molti amministratori di sistema.

Il grande jolly è altri sistemi * nix-like. L'area utente GNU era una sostituzione popolare per i programmi dei fornitori di bassa qualità e alcuni dei sistemi operativi * nix supportati dagli script setuid.

    
risposta data 30.09.2014 - 13:58
fonte

Leggi altre domande sui tag