Gáspár
14 °C
30 °C

Az elmúlt 25 év legdurvább bugja

2014.09.30. 17:37
Veszélyben a linuxos rendszerek, nem minden tökéletes az Apple-nél sem: a 25 éve létező Shellshock bugot könnyű kihasználni, és a gyakorlatban sokáig tart majd javítani. Már meg is érkeztek az első robotok, amik automatikusan fésülik át a rendszereket. A routerek, az okosizzók, a webkamerák, a webszerverek – szinte minden potenciális veszélyforrás, ami az internetre csatlakozik. A javítások már érkeznek, de néha elkapkodják, és nem jók; néhány rendszerre pedig lehet, nem is fog jönni soha.

A múlt hét végén sokkolta az internetet az azóta Shellshock Bash bugként emlegetett kritikus sebezhetőség: természete miatt sokkal durvább következményekkel járhat, mint a pár hónappal ezelőtt felfedezett, akkor az internet legnagyobb bugjának kikiáltott Heartbleed. Pedig nem is tipikus bugról van szó, hanem csak egy nem dokumentált, elfelejtett funkcióról.

Egy nem átgondolt fejlesztés miatt a rosszindulatú támadók távolról belenyúlhatnak gépekbe, a webszerverektől a routereken át a gépekhez csatlakozó programok mind kihasználható felületet kínálnak a hibának, amivel a támadó mindenféle azonosítás, kulcs, jelszó, felhasználónév nélkül futtathat káros kódokat. Amíg nem létezett a mai értelmében vett internet, nem volt ezzel baj igazán. De ma már van.

Mi a Bash?

A Bash egy úgynevezett shell (rendszerhéj, neve a  Bourne shellből jön), egy értelmező, amivel szöveges parancsokat lehet kiadni Unix(-alapú) és Linux rendszereken, tipikusan akár távolról is. Ez olyan, mintha távoli asztallal felcsatlakoznánk a windowsos gépünkre, csak itt se asztal, se ikonok, csak szövegek, és mögötte a rendszer. Mint az alábbi képen.

Azonban ennél is többet tud: feldolgozóként működhet webszerverek scriptjeihez, például a legnépszerűbb Apache szervernél is, azaz különböző feladatokat lát el, amik segítik egy weboldal, szolgáltatás megfelelő működését. Az Index mögött is fut hasonló: a cikkek például nem annyi példányban léteznek, ahányszor látjuk őket (kapcsolódóként, címlapon, rovatoldalon, megnyitva), hanem (egyszerűsítve) egyszer eltárolva, dinamikusan jelennek meg, amikor kell. Pont ebből lehet a baj. 

bash-bug.png

A Bash a nyolcvanas évek óta létezik, és rendkívül népszerű. Vannak más alternatívák is, viszont a Bash alapértelmezett a legtöbb Linux és Mac OS X operációs rendszeren. Pont emiatt olyan jelentős ez a sebezhetőség: a program az egyik legtöbbet telepített program a Linuxokon. És lehet, hogy a felhasználók asztali gépein még mindig csak egy-két százalék a Linuxok aránya, a szervereken, különböző eszközökön valójában ez a legnépszerűbb operációs rendszer.

Az internet fele Apache webszervert futtat, amely használhatja a Basht. Ez kicsivel több mint egymilliárd weboldal, és ezek még csak a webszerverek. Vannak más speciális, internetre kötött számítógépek is, amelyek nem a weboldalakat szolgálják ki, de azokon is ott fut a Bash, hiszen rengeteg mindenre használható a weblapoktól a webkamerák, más beépített eszközök vezérléséig.

Mi a baj?

Én is érintett vagyok?

Webszerverét például ezzel az eszközzel ellenőrizheti, helyi gépeken több lehetőség is van, itt érdemes böngészni.

Ezek az ellenőrzések persze nem teljes körűek. Semmit nem mondanak például a beépítetten Basht használó eszközökről (pl. routerekről).

A CVE-2014-6271 sorszámon nyilvántartott bug (amit azóta hozz kapcsolódó újak is kiegészítettek) távoli kódfuttatást tesz lehetővé, ez a legrosszabb, ami történhet: a támadó azonosítás nélkül futtathat káros kódokat, amikből már ebben a pillanatban is tucatszám kering az interneten.

'() { :;}; 

A Bashben beállíthatók úgynevezett környezeti változók: olyan adatok, amiket a rendszer eltárol, és később használhatók újra. Példáu megadhatjuk egy PIZZA nevű változótban hogy a kedvenc pizzánk a hawaii-sonkás-szalámis-paprikás, így ha legközelebb ezt nem akarjuk az egész hosszú karaktersort leírni, elég ennyit írni, helyette, hogy $PIZZA, és a kiírásnál megkapjuk majd, hogy hawaii-sonkás-szalámis-paprikás. 

A gond ott van, hogy ha valaki a '() { :;}; karaktersort írja a $PIZZA kiírása elé, akkor nem azt kapjuk majd, amit szeretnénk, ellenben bármit ír utána, azt a rendszer már parancsként értelmezi, és lefuttatja. Rossz indulatú kóddal így már elég sokat lehet ártani a célpontnak – messze sokkal rosszabbat, mint hogy a kedvencünk helyett szardellás-kapros pizzát kapunk.

A támadó egyik lehetősége például, hogy az egyébként privát fájlokat kirakja az internetre. És itt most nem a celebek pucér képeire kell gondolnunk, hanem felhasználónevekre, jelszavakra, más, nem publikusnak szánt beállításra. Tipikusan tömegesen kihasználható hibáról van szó, a hétvégén már meg is jelent az első féreg (magától terjedő program), amit kifejezetten a Bash-bug kihasználására írtak. 

Több mint 25 év

Az eddigi vizsgálatok alapján egészen a  4.3-as (a hiba felfedezése előtti) verzióig minden korábbi Bash érintett, ami azt jelenti, hogy az elmúlt nagyjából 25 év összes kiadása. Ez hatalmas probléma: a rendszergazdák, felhasználók egy része karbantartja a programjait, mások viszont nem. Frissítenek, de nem a megfelelő ütemben, biztos, hogy rengeteg helyen jó sokáig marad még érintett verzió. 

Összehasonlításul: a Heartbleed-bug körülbelül két évig élt felfedezetlenül, és még most, jó pár hónappal az egész internetet megjárt probléma után is bőven találni nem frissített rendszereket. Arról nem beszélve, hogy a kapkodásban több javítás is valójában nem javította a Bash-bugját. A CentOS, Debian, Redhat és az Ubuntu viszont gyorsan lépett.

Nem is igazán bug

Vannak, akik szerint a Bash-bug igazából nem is hiba. Egyszerűen az a baj, hogy az egészet 25 évvel ezelőtt tervezték. Akkor még nem létezett az Apache nevű webszerver, amin keresztül most a legveszedelmesebb a hiba, alig internetezett valaki, a biztonsággal nem igazán foglalkoztak. A most kihasználható hiba pedig valójában tervezett, egyszerűen nem dokumentálták rendesen, így mindenki elfelejtette. Akkoriban nem számított, a mostani környezetben viszont már könnyen kihasználható.

A Macem vagy a webkamerám veszélyben van?

Nemcsak az elterjedtség, a bug hosszú múltja, hanem az is súlyosbítja a helyzetet, hogy ma már nemcsak a pécénk, az okostelefonunk, a tabletünk, hanem rengeteg, kevésbé karakteres kütyü is csatlakozik az internetre. Ezt hívjuk majd egyszer a Dolgok Internetének (Internet of Things).

Ez alatt érthetünk mindent, ami IP-vel, wifivel, bárhogy az internetre csatlakozik a webkameráktól, az okosizzókon át a digitális ajtózárakig. Sokak rendszere Linuxot futtat, amelyben ott figyel a Bash is. Arról nem beszélve, hogy amúgy is kiforratlan technológiákról van szó, nem igazán volt elsődleges szempont a fejlesztésnél a biztonság, az LIFX okosizzó például nem annyira nehezen kiadta a csatlakozott wifik adatait.

Ismerősebb vizeken is lehet probléma, sok router is futtat Basht, pedig ők aztán tényleg közvetlenül a netre vannak kötve. Ezek az eszközöket mind frissíteni kell majd, néhányuknál viszont ez egyáltalán nem megszokott. Sőt, még a Microsoft rendszerei is veszélyben lehetne: bár Basht nagyon ritkán futtatnak Windowson, egy tipikus hálózatban az is nagyon ritka, hogy ne legyen valamilyen linuxos számítógép, eszköz, ha más nem, a router. Innentől már nem olyan egyértelmű a válasz arra, hogy biztonságban vagyunk-e.

A Macek viszont az Apple hivatalos nyilatkozata szerint „nagyrészt biztonságban vannak”, mivel nem veszélyes módon futtatják a Basht. A tesztek alapján viszont a Mac OS X 10.9.4 érintett. Amint megjönnek bármilyen rendszerre a frissítések, érdemes őket telepíteni, mert a hibát már napok óta kihasználják, létezik már rá robot is, egyből ráküldték az USA védelmi minisztériumára is.

Görög tengerparti nyaralások

Vakító napsütés, kék tenger várja!

Utazás aggodalom nélkül?

Utazása előtt sose feledkezzen el utasbiztosításáról!