Come patch Bash su OSX in seguito a "shellshock"? [duplicare]

7

Il mio Mac è vulnerabile, come mostra questo test:

x='() { :;}; echo VULNERABLE' bash -c : ( fonte )

Sto usando la versione di bash fornita con esso. Uso anche Homebrew. Qual è il modo migliore per applicare la patch a Bash?

    
posta hoosierEE 25.09.2014 - 17:59
fonte

3 risposte

11

Per prima cosa, non è necessario farlo a meno che tu non stia offrendo servizi Web a Internet pubblica dal tuo Mac. Se non lo sei, attendi fino a quando non è disponibile un aggiornamento di sicurezza ufficiale di Apple.

Tuttavia, se offri servizi web, potresti voler aggiornare.

Patch ufficiale

Apple ha rilasciato un aggiornamento di sicurezza Bash ufficiale qui

Verifica della vulnerabilità

Per confermare che stai utilizzando una bash non aggiornata: $ which bash /bin/bash $ /bin/bash --version GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13) Copyright (C) 2007 Free Software Foundation, Inc.

La bash più recente è 4.3.25

Metodo di aggiornamento non ufficiale: compilare Bash dal codice sorgente utilizzando Homebrew

Se non hai installato Xcode, avrai bisogno degli strumenti da riga di comando Xcode, che possono essere installati da $ xcode-select --install

O dal portale degli sviluppatori https://developer.apple.com/downloads/index.action?=command%20line%20tools download command_line_tools_for_osx_10.9_september_2014.dmg

Per installare Brew ( link ): $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Quindi fai: %codice% Segui le istruzioni se ci sono problemi. Molti problemi comuni sono indirizzati a $ brew doctor

Quindi aggiorna brew sull'ultimo elenco di pacchetti: http://www.moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/#troubleshoot-homebrew

Per ottenere l'ultima versione 4.3.25: $ brew update

Questo installa bash in $ brew install bash

Il vecchio /usr/local/Cellar/bash/4.3.25/bin/bash e bash esiste ancora a sh , quindi dopo l'installazione i nuovi eseguibili verranno rinominati in un nuovo file. /bin

Se sei molto paranoico, puoi rimuovere le autorizzazioni di esecuzione su $ sudo mv /bin/bash /bin/bash_old $ sudo mv /bin/sh /bin/sh_old bash_old

Quindi creare un collegamento simbolico alla nuova bash 4.3.25 che brew ha installato. $ sudo chmod a-x /bin/bash_old /bin/sh_old

Riavvia ed è completo.

Un avvertimento: questo può violare alcuni script di shell esistenti che potrebbero basarsi su bash 3.2 o le differenze che il Mac $ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/bash $ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/sh ha su linux sh . C'è una risposta molto più sofisticata per sostituire bash e sh da fonti a link

Nella maggior parte dei casi è meglio attendere gli aggiornamenti ufficiali.

- Christopher Allen

    
risposta data 25.09.2014 - 23:05
fonte
0

Verifica la versione di bash in Brew prima di eseguire il passaggio seguente:

$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash / bin / bash

$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash / bin / sh

La versione bash è stata aggiornata alla 4.3.27 finora. se si collega ancora 4.3.25 a / bin / bash, Mac non dovrebbe avviarsi. se lo si fa, è possibile avviare la modalità di ripristino e copiare / bin / bash_old in / bin / bash e copiare / bin / sh_old in / bin / sh.

La mia versione di bash in brew è la 4.3.27, quindi funzionerà per me:

$ sudo ln -s /usr/local/Cellar/bash/4.3.27/bin/bash / bin / bash

$ sudo ln -s /usr/local/Cellar/bash/4.3.27/bin/bash / bin / sh

    
risposta data 29.09.2014 - 09:57
fonte
-1

Non buono, ancora vulnerabile!

bash-4.3 $ brew upgrade bash Errore: bash-4.3.25 già installato

bash-4.3 $ /usr/local/Cellar/bash/4.3.25/bin/bash bash-4.3 $ env x = '() {:;}; echo vulnerabile 'bash -c "echo questo è un test"

vulnerabili

questo è un test

    
risposta data 26.09.2014 - 22:21
fonte

Leggi altre domande sui tag