Legalább olyan – ha nem súlyosabb – hibát fedeztek fel a napokban a unixos és linuxos rendszerekben, mint április elején az OpenSSL-t veszélyeztető Heartbleed volt. A Shellshocknak nevezett sérülékenységről a fontos tudnivalókat – és teendőket – a Biztonságportál foglalta össze olvasóinknak.
A Shellshock is olyan súlyos, kritikus veszélyességi besorolású hiba, amely szinte beláthatatlanul széles körű problémákhoz vezethet. Ráadásul egyszerűbben kihasználható, mint a Heartbleed, és jóval több eszközt érinthet.
Egy adminisztrátor bukkant rá
A sebezhetőséget a múlt héten fedezte fel az Akamai egyik, UNIX és Linux rendszerekért felelős adminisztrátora, Stephane Chazelas. (A cég a világ egyik legnagyobb, elosztott számítási platformot nyújtó szolgáltatója.) A vizsgálatok során gyorsan kiderült: a hiba nagyon veszélyes minden olyan rendszerre, amelyen a Bash shell elérhető. És ezt nem csak a Unixok és a Linuxok használják, hanem – a unixos múlt, a BSD miatt – a Mac OS X is.
Az már csak ha a tortán, hogy a sérülékenység 22 éve jelen van a UNIX és a Linux rendszerekben. A több mint két évtized alatt annak ellenére nem tűnt fel senkinek, hogy nagyon egyszerűen kihasználható arra, hogy a támadó parancsokat hajtson végre jogosulatlanul. Kihasználási módjának csak a támadók fantáziája szabhat határt, akár teljes mértékben át lehet venni az irányítást az érintett rendszerek felett.
Forgatókönyvek a Red Hattől
A Red Hat felvázolt néhány forgatókönyvet a hiba lehetséges kihasználására. A legveszélyesebb lehetőség, amikor CGI scriptek felhasználásával, webszervereken okoznak károkat. A Shellshock lehetőségei azonban olyan széles körben használatos technikákon, funkciókon és szoftvereken keresztül is kiaknázhatóvá válhatnak, mint például az SSH, a dhclient (DHCP), a CUPS vagy a Postfix.
A sérülékenységet az okozza, hogy a Bash nem megfelelően kezeli a környezeti változókat, és az azokba elhelyezett értékeket esetenként szó nélkül lefuttatja. A támadónak gyakorlatilag nincs más dolga, mint létrehozni egy speciálisan összeállított környezeti változót, amit aztán a Bash feldolgoz, és a benne foglalt értéket parancsként végrehajtja. Így akár Bash függvényeket is meg lehet hívni. A kártékony célokra felhasznált környezeti változóknak a neve bármi lehet, csupán azok értéke számít.
Hogyan deríthető ki, hogy sebezhető-e a rendszerem?
Annak kiderítéséhez, hogy egy rendszer sebezhető-e vagy sem, többféle módszer is létezik. Ezek közül a legegyszerűbb a következő parancs lefuttatása:
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Ha ennek kimenete a következő eredményt adja, akkor az adott számítógép sérülékeny a Shellshock-kal szemben:
vulnerable
this is a test
Ha viszont a következő kimenet generálódik, akkor nincs szükség óvintézkedésekre:
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Ugyanez Mac OS X alatt így fest:
A biztonsági rés befoltozását a Linux disztribúciók fejlesztői már megkezdték, és néhányuk már ki is adta azokat a csomagokat, amelyek telepítésével egyszerűen megszüntethető a hiba. Csakhogy van egy kis gond!
A frissítéseket körültekintően, megfelelő tesztelést követően érdemes csak telepíteni, mert egyelőre nehéz megjósolni, hogy a rohamtempóban kiadott patchek nem okoznak-e fennakadásokat. A Bash ugyanis olyan széles körben használatos, hogy nehéz megbecsülni: egyes alkalmazásokban milyen kompatibilitási problémák merülnek majd fel.
Lesznek olyan (régi) rendszerek is, melyekhez nem készült javítás. Azokon különféle kockázatcsökkentő lépésekkel lehet védekezni. Segíthet például a mod_security gondos konfigurálása vagy speciális Iptables szabályok felállítása. Ezek ugyan viszonylag könnyen megkerülhető módszerek, de legalább az automatizált támadások többsége ellen védelmet nyújtanak.
Eltart egy ideig, amíg helyreáll a rend
A Bash hibája rendkívül sok rendszert érint, köztük sok olyant, amelyekhez már nincs támogatás. Különösen problémás lehet a helyzet a Linux-alapú hálózati eszközök, otthoni adattárolók (NAS-ok), kamerák stb. esetében, amelyek támogatását a gyártók már befejezték, és egyébként is: a felhasználók csak ritkán frissítik ezek szoftvereit.
"Ez a sebezhetőség nagyon komoly potenciális veszélyforrás. A maximális, 10-es veszélyességi besorolást kapta, ami maximális ütőerőt jelent, miközben a kihasználása korántsem bonyolult. A Bash ráadásul széles körben használatos, így a támadók a hibát számos eszközön vagy akár webszervereken is a saját javukra fordíthatják. Átvehetik a hatalmat az operációs rendszer felett, bizalmas információkhoz férhetnek hozzá, manipulálhatják a rendszereket stb. Aki olyan számítógépet, eszközt használ, amelyen a Bash is megtalálható, rögtön frissítsen" – nyilatkozta Tod Beardsley, a Rapid7 vezető rendszermérnöke.
Nyílt forráskód: valóban ingyenes, de használatának szigorú szabályai vannak