« Vissza

Hogyan védjük szervereinket a Bash Shellshock sebezhetősége ellen?

Szerver

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.

Szerver hoszting vagy szerverbérlés érdekli?

A Rackhost kínálatában biztosan megtalálja az Önnek megfelelő szolgáltatást!

Megnézem a lehetőségeket

Kapcsolódó cikkek