Bashdoor

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. március 2-án felülvizsgált verziótól ; az ellenőrzések 6 szerkesztést igényelnek .

A Bashdoor (más néven Shellshock [  1] ) a GNU Bash programban 2014 szeptemberében felfedezett és szeptember 24-én nyilvánosan közzétett szoftversérülékenységek sorozata [2] . Számos internetes szolgáltatás , beleértve a webszervereket is, használhatja a Bash-t bizonyos kérések feldolgozására, például CGI - szkriptek futtatásakor. A biztonsági rés lehetővé teszi a támadók számára, hogy tetszőleges parancsokat hajtsanak végre, így illetéktelenül hozzáférjenek számítógépes rendszerekhez [3] .

A sebezhetőség abban rejlik, hogy a Bash a deklarált képességekkel ellentétben parancsokat hajt végre, amikor a környezeti változók nem szabványos értékét kapja ( környezet ) [1] [4] . Néhány nappal az eredeti sérülékenység közzététele után több hasonló hibát fedeztek fel, amelyek megakadályozták a javított verzió gyors megjelenését.

Az eredeti hibát Stéphane Chazelas [1] ( francia  Stéphane Chazelas ) fedezte fel 2014. szeptember 12-én [1] , aki azt javasolta, hogy nevezzék "bashdoor"-nak (mássalhangzó a hátsó ajtóval ) [1] . A sérülékenység a CVE-2014-6271 számot kapta a MITER adatbázisban , és szeptember 24-én 14:00 UTC-ig publikálatlan maradt ( embargó alá került ), hogy a program készítői, a disztribúciók készítői és más érdekelt szervezetek átvehessék a szükséges intézkedések [5] .

A Bash forráskód elemzése azt mutatja, hogy a biztonsági rést az 1.13-as verzió környékén vezették be a kódba 1992-ben vagy korábban [6] , és a nagyközönség nem észlelte, és azóta sem jelentették be [4] . A Bash szerzői csapatának nehézséget okoz a hiba pontos bevezetésének időpontjának meghatározása a nem kellően részletes változásnapló ( changelog ) [1] miatt .

2014. szeptember 25-én a sérülékenység alapján már botneteket hoztak létre DoS és DDoS támadások végrehajtására , valamint a sebezhetőségek átvizsgálására [7] [8] . Becslések szerint több millió rendszer sebezhető. A hiba a súlyossági skálán a maximális értékelést kapta, és értékét összehasonlítják a Heartbleeddel  – ez az OpenSSL hibája (2014. április) [9] [10] .

Leírás

A Shellshock sebezhetősége (bashdoor) a bash programra vonatkozik (amelyet a GNU projekt fejlesztett ki ), amelyet számos Unix -szerű operációs rendszerben és disztribúcióban használnak parancssori értelmezőként és shell szkriptek végrehajtására. Gyakran alapértelmezett rendszerértelmezésként beállítva.

Unix-szerű és más bash-támogatott operációs rendszereken minden program rendelkezik név-érték párok listájával, amelyeket környezeti változóknak nevezünk .  Amikor egy program elindít egy másikat, a környezeti változók kezdeti listája is átadásra kerül [11] . A bash a környezeti változókon kívül egy belső függvénylistát is karbantart, elnevezett szkripteket, amelyek egy futtatható bash szkriptből hívhatók [12] . Új bash-példányok indításakor egy meglévő bash-ből lehetőség van a meglévő környezeti változók és függvénydefiníciók értékeinek átadására ( exportálására ) a létrehozott folyamatnak [13] . A függvénydefiníciók exportálása speciális formátumú új környezeti változókként történik, üres zárójelekkel kezdődő "()" karakterlánccal, majd a függvénydefinícióval. A bash új példányai indításkor minden környezeti változót átvizsgálnak, felismerik az adott formátumot és visszakonvertálják belső függvénydefinícióvá [14] . Ez az átalakítás úgy történik, hogy a környezeti változó értéke alapján létrehozunk egy bash kódrészletet, és végrehajtjuk azt, azaz „on-the-fly”-ként. A bash érintett verziói nem ellenőrzik, hogy a végrehajtható fájl csak függvénydefiníciót tartalmaz-e [14] . Így, ha egy támadó képes tetszőleges környezeti változót adni a bash indításához, akkor lehetségessé válik tetszőleges parancsok végrehajtása.

Szeptember 27-én megjelent egy minőségi javítás, amely egy speciális előtagot ad minden exportált és importált függvényhez, amikor azokat környezeti változókká konvertálják, és fordítva [15] .

A bash exploitation későbbi epizódjai

Ugyanazon a napon, amikor az eredeti sérülékenységről és az azt javító javításokról szóló információk megjelentek, Tavis Ormandy egy új, kapcsolódó hibát fedezett fel, a CVE-2014-7169 [3] . A frissített javítások szeptember 26-án váltak elérhetővé [3] [16] [17] [18] [19] [20] .

Miközben az eredeti Shellshock hiba kijavításán dolgozott, Florian Weimer, a Red Hat kutatója további két hibát fedezett fel: CVE-2014-7186 és CVE-2014-7187 [21] [22] .

2014. szeptember 26-án két nyílt forráskódú fejlesztő, David A. Wheeler és Norihiro Tanaka észrevette, hogy vannak további problémák, amelyeket az akkoriban elérhető javítások még mindig nem javítottak ki. Wheeler az "oss-sec" és a "bash bug" levelezőlistáknak küldött e-mailjében ezt írta:

Ez a javítás csak folytatja az "öld meg a vakondot" ( whac-a-mole ) [23] a különféle elemzési hibák kijavítására irányuló, az első javítással megkezdett munkát. A bash elemző természetesen sok sok-sok más sebezhetőséget is tartalmaz.

Eredeti szöveg  (angol)[ showelrejt] Ez a javítás csak folytatja az első javítással megkezdett értelmezési hibák kijavításának „hack-a-mole” munkáját. A Bash elemzője bizonyosan sok sok más sebezhetőséget tartalmaz — [24]

2014. szeptember 27-én Michal Zalewski bejelentette, hogy számos egyéb hibát fedezett fel a bash-ban [25] [26] , amelyek közül az egyik azt a tényt használja ki, hogy a bash-t gyakran az ASLR ( Address Space Layout Randomization ) védelmi technika használata nélkül fordítják [27] ] . Zalewski sürgős foltot kért Florian Weimertől [25] [26] [27] .

A sebezhetőségek listája

CVE-2014-6271

Az eredeti bashdoor: Egy speciális környezeti változó egy exportált függvény definíciójából, majd tetszőleges parancsokból áll. A Bash sebezhető verziói ezeket az önkényes parancsokat hajtják végre indításkor [28] . Példa hibára:

env x = '() { :;}; echo Vulnerable' bash -c "echo Tesztnyomtatás"

Sebezhető rendszereken ez a teszt a "Sebezhető" kifejezést írja ki az x környezeti változóból származó parancs végrehajtásával [29] .

CVE-2014-6277

Szeptember 29-ig a sebezhetőség részleteit nem hozták nyilvánosságra [25] [27] [30] .

CVE-2014-6278

Szeptember 29-ig a sebezhetőség részleteit nem hozták nyilvánosságra [25] [31] .

CVE-2014-7169

Tavis Ormandy fedezte fel, miközben a CVE-2014-6271-en dolgozott :

env X='() { (a)=>\' sh -c "echo date"; cat echo

A teszt hatására az "echo" lesz a kimenet átirányításának fájlneve, és a "dátum" lesz végrehajtva. A hiba a CVE-2014-7169 [3] számot kapta .

Példa a 7169-es hibára egy olyan rendszeren, amely megkapta a CVE-2014-6271 hiba javítását, de a CVE-2014-7169 hibát nem [32] $ X = '() { (a)=>\' bash -c "echo date" bash: X: 1. sor : szintaktikai hiba a váratlan token közelében ` = ' bash: X: 1. sor: `' bash: hiba az importálás során ` X ' definíciója [ root@ ec2-user ] # cat echo Fri Sep 26 01:37:16 UTC 2014

A CVE-2014-6271 és a CVE -2014-7169 javítása megszakítja a tesztet:

$ X = '() { (a)=>\' bash -c "echo date" dátum $ macska visszhang cat: echo: Nincs ilyen fájl vagy könyvtár

CVE-2014-7186

A hibát a [33] Bash kód hasonló problémái okozzák, de az ismétlődő "<<EOF" befolyásolja.

Teszt bash -c 'igaz <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "Vulnerable by CVE-2014-7186, redir_stack" Az érintett rendszer a „Vulnerable by CVE-2014-7186, redir_stack” szöveget jeleníti meg.

CVE-2014-7187

A hibát a Bash kód [33] hasonló problémái okozzák , azonban a „kész” szó többszöri ismétlése is hatással van rá.

Teszt ( for x in { 1 ..200 } ; do echo " for x $x in ; do :" ; done ; for x in { 1 ..200 } ; do echo done ; done ) | bash || echo "Vulnerable by CVE-2014-7187, word_lineno" Az érintett rendszer a „Vulnerable by CVE-2014-7187, word_lineno” szöveget jeleníti meg.

Támadásvektorok

A Bash sebezhetőségének közzététele után egy órán belül számítógépes rendszerek feltöréséről érkeztek jelentések. Szeptember 25-én számos „in the wild” támadást erősítettek meg, az egyszerű DoS támadásoktól kezdve a parancsnoki és vezérlőszerverek telepítéséig a rosszindulatú „BASHLITE” rendszeren keresztül [34] [35] . A Kaspersky Labs jelentése szerint a fertőzött számítógépek egy része három célpont ellen indított DDoS-támadást [8] . Szeptember 26-án egy „wopbot” botnetet fedeztek fel, amely bashdoor-on keresztül fertőzött szerverekből áll, és amelyet az Akamai Technologies CDN-ek elleni DDoS-ben és az Egyesült Államok Védelmi Minisztériumának hálózatainak átvizsgálására használnak [7] .

Számos lehetséges módja van, amellyel a támadó tetszőleges környezeti változókat adhat át a megtámadott szerveren futó bash-nek:

CGI támadás webszerverek ellen

A Common Gateway Interface (CGI) szkripteket végrehajtó webszerverek a felhasználói kérések részleteit olyan környezeti változókon keresztül továbbítják, mint a HTTP_USER_AGENT. Ha a kérést a Bash program vagy egy másik program dolgozza fel, amely belsőleg hívja meg a bash-t, akkor a támadó saját parancsainak hozzáadásával lecserélheti a http-n keresztül továbbított User-Agent karakterláncot egy Shellshock támadásindítóra [36] . Például a támadó címét tartalmazó "ping" utasítás megadható ilyen parancsként. A bejövő ping kérések alapján a támadó tudni fogja, hogy a támadás működött-e.

Bár a CGI egy örökölt interfész más biztonsági kockázatokkal [37] , még mindig használatban van. Például az egyik szabványos cPanel szkript sebezhető [38] , a becslések szerint a sebezhető cPanel a webhelyek 2-3%-án használható [39] .

SSH szerver támadás

Az OpenSSH SSH-kiszolgáló lehetővé teszi a felhasználó korlátozását az elérhető parancsok rögzített készletére ("ForceCommand" opció). A rögzített parancs akkor is végrehajtásra kerül, ha a felhasználó egy másik parancs végrehajtását kérte. A kért parancs ebben az esetben az "SSH_ORIGINAL_COMMAND" környezeti változóban van tárolva. Ha egy Bash parancsértelmezőben rögzített parancsot hajtanak végre (ha a felhasználó értelmezője Bash-ra van állítva), a GNU Bash felismeri a környezetbe ágyazott SSH_ORIGINAL_COMMAND értékeket indításkor, és Bashdoor sebezhetőség esetén végrehajtja a az ott beágyazott parancsokat. Így az a támadó, aki csak egy korlátozott shellhez fér hozzá, korlátlan hozzáférést kap [3] .

DHCP kliens támadás

A DHCP -kliensek általában IP-címet kérnek egy DHCP-kiszolgálótól. A szerver azonban több további opciót is küldhet, amelyek környezeti változókba írhatók, és a Shellshock kihasználását okozhatják a helyi hálózathoz csatlakoztatott számítógépen vagy laptopon [40] [41] .

A jogosultságok kiterjesztése setuid programokon keresztül

A setuid bitkészlettel rendelkező programok közvetlenül vagy közvetetten hívhatják meg a bash-t a system(3) , popen és egyebek segítségével, a környezeti változók alaphelyzetbe állítása nélkül. A Shellshock támadás ilyen esetekben lehetővé tenné a helyi felhasználó számára, hogy saját jogosultságait a setuid-szerű program tulajdonosára emelje, gyakran egészen a root (szuperfelhasználó)ig.

Offline rendszerek sebezhetősége

A hiba potenciálisan olyan rendszereket is elérhet, amelyek nem csatlakoznak az internethez a bash [42] offline feldolgozása során .

Jegyzetek

  1. 1 2 3 4 5 Perlroth, Nicole . Biztonsági szakértők arra számítanak, hogy a Bash „Shellshock” szoftverhibája jelentős lesz , New York Times  (2014. szeptember 25.). Archiválva az eredetiből 2019. április 5-én. Letöltve: 2014. szeptember 25.
  2. Személyzet. Mit érint a "Shellshock" hiba? . A biztonságos Mac (2014. szeptember 25.). Letöltve: 2014. szeptember 27. Az eredetiből archiválva : 2014. szeptember 29..
  3. 1 2 3 4 5 A sebezhetőség törvényei (a link nem érhető el) . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. október 6.. 
  4. 1 2 Leyden, John Patch Bash MOST: A „Shell Shock” hibaüzenetet okoz az OS X-ben, a Linux rendszerekben . A nyilvántartás (2014. szeptember 24.). Letöltve: 2014. szeptember 25. Az eredetiből archiválva : 2014. október 16..
  5. oss-security - Re: CVE-2014-6271: távoli kódfuttatás bash segítségével . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 28..
  6. bash – Mikor jelent meg a shellshock (CVE-2014-6271/7169) hiba, és melyik az a javítás, ami teljesen kijavítja? Archiválva : 2014. október 14. a Wayback Machine  - Unix és Linux Stack Exchange webhelyen
  7. 12 Saarinen , Juha . Az első Shellshock botnet az Akamai, amerikai DoD hálózatok és iTnews ellen támad  (2014. szeptember 26.). Az eredetiből archiválva : 2014. szeptember 29. Letöltve: 2014. szeptember 26.
  8. 1 2 Greenberg, Andy hackerek már használják a Shellshock hibát botnet támadások indítására . Vezetékes (2014. szeptember 25.). Hozzáférés dátuma: 2014. szeptember 28. Az eredetiből archiválva 2017. január 1-jén.
  9. A legveszélyesebb biztonsági rést több száz millió számítógépen találták , WG (2014.09.25.). Archiválva az eredetiből 2014. szeptember 27-én. Letöltve: 2014. szeptember 29.
  10. A Bash shell hibája veszélyeztette a Linux és OS X rendszerű számítógépeket , RBC (2014. szeptember 25.). Az eredetiből archiválva : 2014. szeptember 28. Letöltve: 2014. szeptember 29.
  11. Open Group Base Specifikáció: exec . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. október 9..
  12. Bash Reference Manual: Shell funkciók . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. szeptember 28..
  13. Bash Reference Manual: Bourne Shell Builtins . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. szeptember 28..
  14. 1 2 Bash 4.3 forráskód, változók.c fájl, 315-388. sor . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2017. április 21..
  15. Steven J. Vaughan-Nichols . Shellshock: Jobb „bash” javítások már elérhetőek  (angol nyelven) , ZDNet (2014. szeptember 27.). Az eredetiből archiválva : 2014. szeptember 29. Letöltve: 2014. szeptember 29.
  16. Ubuntu . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 28..
  17. Red Hat (downlink) . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 26.. 
  18. Red Hat 2 . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. október 6..
  19. CentOS 5.10 . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 28..
  20. CentOS 7 . Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 28..
  21. GYIKShellshock (2014. szeptember 26.). Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 29..
  22. GYIKShellshock2 (2014. szeptember 26.). Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. október 6..
  23. A ' whack-a-mole ' egy népszerű nyerőgép, átvitt értelemben egy ismétlődő, nyeretlen kihívás
  24. Gallagher, Sean Még több sebezhetőség a bash-ban? A Shellshock-ból egy vakond lesz . Arstechnica (2014. szeptember 26.). Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2017. január 8..
  25. 1 2 3 4 Saarinen, Juha További hibák hatástalanná teszik a Shellshock javítást . iTnews (2014. szeptember 29.). Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. szeptember 29..
  26. 1 2 lcamtuf. Bash hiba: alkalmazza Florian javítását most (CVE-2014-6277 és CVE-2014-6278) . lcamtuf blogja (2014. szeptember 27.). Letöltve: 2014. szeptember 29.
  27. 1 2 3 Személyzet. Shellshock, 3. rész: Három további biztonsági probléma a Bash-ban (németül) . Heise Online (2014. szeptember 28.). Letöltve: 2014. szeptember 28. Az eredetiből archiválva : 2014. szeptember 29..
  28. NVD - Detail . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. szeptember 25..
  29. Bash speciálisan kialakított környezeti változók kód injekciós támadás | Red Hat Security . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. szeptember 25..
  30. Személyzet. National Cyber ​​​​Awareness System sebezhetőségi összefoglaló a CVE-2014-6277-hez . Nemzeti Szabványügyi és Technológiai Intézet (2014. szeptember 27.). Letöltve: 2014. szeptember 28. Az eredetiből archiválva : 2014. október 5..
  31. Személyzet. CVE jelentés - CVE-2014-6278 . Gyakori sebezhetőségek és kitettségek (2014. szeptember 9.). Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2015. május 23.
  32. Nyitott vagy a Shell-sokkolásra? (nem elérhető link) . házigazda. Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. október 9.. 
  33. 1 2 Sidhpurwala, Huzaifa; Weimer, Florian Nem upstream foltok a bash-hoz . oss-security levelezőlisták . Openwall. — „A belső elemzés két határon kívüli tömbhozzáférést tárt fel a bash elemzőben. Ezt Todd Sabin <[email protected]> is önállóan és magánjellegűen jelentette be." Letöltve: 2014. szeptember 27. Az eredetiből archiválva : 2014. szeptember 28..
  34. Különféle. Shellshock frissítések: BASHLITE C&C-k láthatók, Shellshock Exploit Attempts Brazíliában . Trend Micro (2014. szeptember 26.). Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 28..
  35. Különféle. A webes támadások a Shellshock hibára épülnek . BBC (2014. szeptember 26.). Letöltve: 2014. szeptember 26. Az eredetiből archiválva : 2014. szeptember 29..
  36. Különféle. CVE-2014-6271: Távoli kódvégrehajtás bash-en keresztül . Reddit (2014. szeptember 24.). Letöltve: 2014. szeptember 26.
  37. Apache HTTP Server 2.2 dokumentáció: Biztonsági tippek . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. október 9..
  38. A Bash sebezhetőség kihasználja a DDoS-botok eldobását | Fenyegetőoszlop | A biztonsági hírek első állomása . Letöltve: 2014. szeptember 29. Az eredetiből archiválva : 2014. október 6..
  39. Webhelybiztonság – A Bash "Shell Shock" sebezhetősége hatással van a CPANEL felhasználókra | Sucuri Blog . Letöltve: 2014. szeptember 30. Az eredetiből archiválva : 2014. szeptember 29..
  40. "Shellshock DHCP RCE Proof of Concept" archiválva 2014. szeptember 25-én a Wayback Machine -nél , Geoff Walton, TrustedSec
  41. Shellshock exploit DHCP-kiszolgálóhoz , Xakep.ru (2014. szeptember 26.). Az eredetiből archiválva : 2014. szeptember 29. Letöltve: 2014. szeptember 30.
  42. "Különféle támadások gyűjteménye" Archiválva : 2014. szeptember 27., a Wayback Machine , Daniel Fox Franke, Akamai

Linkek