A mai posztot Lovas Endre küldte nekünk, a Parkolás app készítője. Fontos tanácsok vannak benne, érdemes megfontolni.

## Shellshock hiba (CVE-2014-6271)
Nem vagyunk biztonsági szakértők, ne is kérdezzétek, hogy hogyan lehet a hibát kihasználni, de állítólag felfedeztek egy 10-es skálán 11-et érő biztonsági hibát. Biztonsági szakértők szerint a hiba súlyosabb, mint az OpenSSL hiba volt fél évvel ezelőtt. Olyan hiba, ami minden OSX felhasználó érint, szóval érdemes tovább olvasnod.

## Mi is a hiba
Állítólag egy érintett számítógépen tetszőleges kód lefuttatható, amennyiben az bash shellen futó szolgáltatást futtat, mindenféle jogosultság, bejelentkezés, jelszó, vagy bármi más nélkül, akár távolról, a felhasználó tudta nélkül. Mi nem tudjuk, hogy hogyan lehet kihasználni, de azért az elég világos, hogy ha a gépeden tetszőleges kód futtatható, az nem kedvező rád nézve. Higgyük el, hogy így van.

## Kit érint?
Gyakorlatilag minden 20 évnél fiatalabb (!!!) *nix alapú rendszer érintett, ami bash shellt futtat. Unix, Linux, BSD, OSX és sorolhatnánk. Milliónyi internetre kapcsolt router, tűzfal, számítógép, okostelefon, videkonferencia rendszer, szerver, vasúti jelzőlámpa, épületgépészet felügyelet stb. Szóval a lista nagyon hosszú. Állítólag annyira hosszú a lista, hogy soha, de soha nem lesz az összes kijavítva.

## Van-e rá javítás?
Apple még nem adott ki hivatalos frissítést. Kézzel a hiba javítható. A probléma az, hogy a jelenleg elérhető javítás nem lett tökéletes, így létrejött egy másik hiba (CVE-2014-7169), amire tegnap jelent meg a javítás.

## Én érintett vagyok a Macemmel?
Egyszerű kideríteni. Nyisd meg a terminált és add ki a következő parancsot:
env x='() { :;}; echo sebezheto' bash -c "echo ez csak egy teszt"
Ha megjelenik, hogy “sebezheto”, akkor a rendszered sebezhető.

## Ok, hogy javítsam meg?
Ez már igényel némi tornát. Ha nem tudod, hogy hogyan kell a terminált használni, akkor javasoljuk, hogy kérj segítséget. Mi innen vettük a megoldást, amit leírunk nektek magyarul.

1) Töltsd le és telepítsd az XCode-ot az App Store-ból. Ingyenes.

2) Indítsd el és fogadd el a licencmegállapodást. Kiléphetsz belőle

3) Indítsd el a terminált

4) Add ki a következő parancsokat:
cd /tmp
mkdir bash-fix
cd bash-fix
curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
(ha SSL miatt nyafog, akkor írd a curl után a —insecure kapcsolót
cd bash-92/bash-3.2
curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0
cd ..
xcodebuild

5) Ellenőrizd, hogy ami létrejött, az a megfelelő verzió-e az alábbi parancsokkal:
build/Release/bash --version
build/Release/sh --version
Ha azt kapod vissza, hogy 3.2.52, akkor jól állsz.

6) Most megcsináljuk a második javítást is a 7169-hez.
mv build/bash.build/Release/bash.build/DerivedSources/y.tab.* bash-3.2/
cd bash-3.2
curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0
cd ..
xcodebuild

7) Ellenőrizd, hogy ami létrejött, az a megfelelő verzió-e az alábbi parancsokkal:
build/Release/bash --version
build/Release/sh --version
Ha 3.2.53, akkor minden hibát javítottál. Most bemásolunk mindent a helyére

8) Biztonsági mentést csinálunk a régi bash-ről:
sudo cp /bin/bash /bin/bash.old
sudo cp /bin/sh /bin/sh.old

9) Végül az új javított bash-t bemásoljuk a helyére:
sudo cp build/Release/bash /bin
sudo cp build/Release/sh /bin

10) Indítsd újra a gépedet!

## Ez megvéd?
Elvileg igen. A CVE-2014-6271 számú alaphibától igen. A CVE-2014-7169 számútól szintén. Teszteld le a javítást a terminálból:

env x='() { :;}; echo sebezheto' bash -c "echo ez csak egy teszt"

Itt nem jelenhet meg a “sebezheto” szó.

És nézd meg, hogy a 7169 hiba ellen is védett vagy-e:

cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo

Ha utóbbi kiírja az aktuális dátumot, akkor a 7169-es hibát nem javítottad ki és valamit elszúrtál a fent leírtakkal.

A posztban lévő parancsokat mindenki a saját felelősségére futtatja.