Szerver hoszting csomagjaink
Bevezetés
2014. szeptember 24-én napvilágra kerül a GNU Shellshocknak vagy Bash Bugnak nevezett sebezhetőség. Ez a sebezhetőség lehetővé teszi a távoli támadóknak, hogy megfelelő körülmények között tetszőleges kódokkal támadjanak olyan módon, hogy átadják a karakterláncokat, amelyek ezt követően megváltoztatják az adott környezetet.
A Bash Linux, BSD és Mac OS X operációs rendszereken való jelenléte miatt a felhasználók nagy része ki van téve a Shellshocknak. Tulajdonképpen az 1.14 és 4.3 közötti hibajavító csomag nélküli Bash verziók veszélynek vannak kitéve. A Shellshock sebezhetőség bármely olyan rendszert érinthet, amely olyan szolgáltatásokat vagy alkalmazásokat futtat, amelyek lehetővé teszik, hogy nem hitelesített felhasználók változókat adjanak hozzá a Bash környezethez.
Ilyen rendszerek például:
- Olyan Apache HTTP szerverek, amelyek CGI scripteket alkalmaznak ( mod_cgi-t és mod_cgid-t használva) és Bash-sal lettek írva vagy Bash alparancsvezérlőt indítanak el
- Meghatározott DHCP kliensek
- OpenSSH szerverek amelyek a ForceCommand képességet használják
- Néhány olyan hálózatnak kitett szolgáltatás, amely Bash-t alkalmaz
Mivel a Shellshock nagyon széles körben terjedt el – még az OpenSSL bugnál is szélesebb körben-, és különösen egyszerű kihasználni, nagyon tanácsos a szóban forgó rendszerek megfelelő frissítéséről gondoskodni a lehető leghamarabb, így javítva vagy enyhítve a sebezhetőség kockázatát.
Ebben a cikkben bemutatjuk, hogy hogyan tesztelhetjük gépeinket, és amennyiben szükséges, hogyan frissítsük a Bash-t a Shellshock eltávolítása érdekében.
A rendszer sebezhetőségének ellenőrzése
Tanácsos a Shellshock sebezhetőséget minden egyes rendszeren ellenőriznünk. Ezt a Bash-ban a következő paranccsal egyszerűen megtehetjük:
env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"
A kiemelt parancs ‘echo Bash is vulnerable (sebezhető)’ része bemutatja, hogy a távoli támadó hol tud ártalmas kódot beilleszteni, amelyet a kapcsos zárójelen belül láthatunk a Function definíció után.
Tehát, ha a következő kimenetet látjuk, akkor a jelenlegi Bash verziónk sebezhető, és frissítenünk kell!
Bash is vulnerable!
Bash Test
Amennyiben a kimenetünk nem tartalmazza a fenti szöveget, úgy védve vagyunk az első sebezhetőség ellen, de ettől függetlenül még a később felfedezett verziók ellen nem biztos, hogy védve vagyunk. Ha bármilyen figyelmeztető üzenetet kapunk, úgy tanácsos a Bash újabb verziójára frissíteni. Ennek menetét a következő részben leírjuk.
Amennyiben biztonságos a Bash, úgy a következő üzenetet fogjuk kapni:
Bash Test
Távoli oldalak tesztelése
Amennyiben csak távoli weboldalakat vagy meghatározott CGI scripteket akarunk ellenőrizni, úgy az megtehetjük ezen a linken: [‘ShellShock’ Bash Vulnerability CVE-2014-6271 Test Tool]. Egyszerűen csak írjuk be a weboldal URL-jét vagy a CGI scriptet megfelelő formában és küldjük el (submit).
A sebezhetőség javítása: a Bash frissítése
A sebezhetőség javításának legegyszerűbb módja az alapértelmezett csomagvezérlő használata a Bash frissítéséhez. A következő alpontok a Linux disztribúciókon való frissítéseket mutatják be (Ubuntu, Debian, CentOS, Red Hat és Fedora).
APT-GET (Ubuntu/Debian)
A jelenleg támogatott Ubuntu és Debian verziók esetében az apt-get-en keresztül tudjuk a Bash-t frissíteni:
sudo apt-get update && sudo apt-get install --only-upgrade bash
Ezt követően teszteljük le az előző pont alapján, hogy a rendszerünk még mindig ki van-e téve a sebezhetőségnek.
Az Ubuntu/Debian régebbi kiadásai
Amennyiben az Ubuntunak/Debiannak egy régebbi verzióját futtatjuk, úgy egy támogatott csomagvezérlőt kell frissítenünk ahhoz, hogy magát a Bash-t is frissíteni tudjuk. A következő parancsot használhatjuk arra, hogy frissítsünk egy újabb kiadásra (tanácsos előtte a szerverről és a fontos információkról egy biztonsági másolatot készíteni, nehogy esetleg hibába ütközzünk a frissítés során).
sudo do-release-upgrade
Miután megvagyunk vele, bizonyosodjunk meg róla, hogy a Bash-t frissítettük!
YUM (CentOS/Red Hat/Fedora)
Frissítsünk a Bash legújabb verziójára a yum segítségével:
sudo yum update bash
Ezt követően teszteljük le az előző pont alapján, hogy a rendszerünk még mindig ki van-e téve a sebezhetőségnek!
A CentOS/Red Hat/Fedora régebbi kiadásai
Amennyiben a CentOS-nek, Red Hat-nek vagy Fedora-nak egy régebbi verzióját futtatjuk, úgy egy támogatott csomagvezérlőt kell frissítenünk ahhoz, hogy magát a Bash-t is frissíteni tudjuk. A következő parancsot használhatjuk arra, hogy frissítsünk egy újabb kiadásra (tanácsos előtte a szerverről és a fontos információkról egy biztonsági másolatot készíteni, nehogy esetleg hibába ütközzünk a frissítés során, és adataink elvesszenek).
sudo yum update
Miután megvagyunk a frissítéssel, bizonyosodjunk meg róla, hogy a Bash-t frissítettük.
Összegzés
Nagyon fontos, hogy minden érintett szervert a legújabb elérhető verzióra frissítsünk! Ezen felül bizonyosodjunk meg arról is, hogy a legújabb biztonsági védelemmel láttuk el a szervereinket.