Shellshock: Vulnerabilitate Bash (GNU Bourne Again Shell) cu impact ridicat

Articol postat de:

Shell-shock

Recent a fost raportată o vulnerabilitate critică a GNU Bourne Again Shell (Bash), interfaţa uzuală de tip „command-line shell” utilizată de marea majoritate a sistemelor de operare de tip Linux şi Mac OS X.

Versiunile GNU Bash 1.14 până la 4.3 conţin o vulnerabilitate care permite procesarea de comenzi injectate în cadrul variabilelor de tip environment (environment variables), imediat după definirea funcţiilor.

Sistemele afectate de această vulnerabilitate sunt:

  • GNU Bash până la versiunea 4.3.
  • Distribuţiile de Linux, BSD şi UNIX, incluzând dar nelimitându-se la:
    • CentOS 5 până la versiunea 7;
    • Debian;
    • Mac OS X;
    • Red Hat Enterprise Linux versiunea 4 până la 7;
    • Ubuntu 10.04 LTS, 12.04 LTS şi 14.04 LTS.

Această vulnerabilitate este catalogată în baza de date CVE (Common Vulnerabilities and Exposures) prin CVE-2014-6271 şi CVE-2014-7169.

Descriere

O funcţionalitate a interfeţei Bash este aceea că permite exportul de funcţii shell către alte instanţe bash prin intermediul variabilelor de tip environment. Variabila environment este denumită după numele funcţiei exportate, iar valoarea variabilei începe cu „() {”. Atunci când interfaţa Bash ajunge la finalul definirii funcţiei, în loc să oprească execuţia, continuă să proceseze comenzile shell scrise după funcţie (cu roşu în exemplul de mai jos).

Un exemplu relevant îl constituie testul propus de compania Red Hat pentru a verifica dacă sistemul este vulnerabil, prin rularea următoarei comenzi:

$ env x='() { :;}; echo vulnerable’ bash -c „echo this is a test”

Astfel, utilizând această vulnerabilitate, un atacator poate executa cod maliţios folosind privilegiile/drepturile de acces ale aplicaţiei care accesează instanţa Bash.

Impact

Această vulnerabilitate a fost clasificată de către industria de standardizare ca fiind critică şi având un impact ridicat. Acest fapt se datorează în mod special faptului că interfaţa Bash este larg răspândită pe multe dispozitive/sisteme informatice (sisteme de operare UNIX-linux şi Mac OS X) şi poate fi accesată de o aplicaţie în multe moduri. Mai mult, având în vedere că multe servicii de reţea utilizează Bash, această vulnerabilitate poate fi exploatată la nivel de reţea.

Printre scenariile critice în care această vulnerabilitate poate fi exploatată se regăsesc:

  • Server HTTP Apache care utilizează script-uri mod_cgi scrise în bash sau în „spawn subshells”;
  • Ocolirea facilităţii ForceCommand din OpenSSH sshd şi o protecţie limitată pentru câteva instalări de Git şi Subversion utilizate pentru restricţionarea interfeţelor shell şi care permit execuţia de cod maliţios;
  • Permite rularea de comenzi arbitrare în cadrul unei maşini DHCP client, diferite Daemon-uri şi programe privilegiate (SUID);
  • Exploatarea serverelor şi a altor dispozitive care rulează UNIX/Linux prin intermediul cererilor web, „secure shell”, sesiunilor telnet, sau a altor programe care utilizează Bash pentru execuţia de script-uri.

Diagnostic şi măsuri de soluţionare

Pentru o diagnosticare rapidă a sistemului se poate executa următoarea comandă:

$ env x='() { :;}; echo vulnerable’ bash -c „echo this is a test”

Dacă rezultatul execuţiei comenzii de mai sus arată astfel:

vulnerable

this is a test

înseamnă că sistemul respectiv utilizează o versiune vulnerabilă de Bash.

După aplicarea patch-urilor recomandate mai jos va trebui executată încă odată comanda respectivă. Dacă vulnerabilitatea a fost remediată ar trebui ca rezultatul să arate de forma:

bash: warning: x: ignoring function definition attempt

bash: error importing function definition for `x’

this is a test

Majoritatea companiilor care susţin distribuţiile de Linux au creat patch-uri de securitate pentru remedierea acestei vulnerabilităţi în cadrul versiunilor afectate. Totuşi, soluţiile care adresează CVE-2014-6271 nu remediază în totalitate problema. Vulnerabilitatea existentă după aplicarea patch-ului adresat CVE-2014-6271 este descrisă prin CVE-2014-7169, astfel că se impune şi aplicarea patch-urilor aferente celei din urmă.

Vă recomandăm contactarea companiei ce susţine distribuţia de Linux/UNIX utilizată de sistemele dumneavoastră pentru a obţine informaţii despre patch-urile existente şi indicaţiile de remediere a vulnerabilităţii descrise în această alertă. Pentru Red Hat se poate consulta ghidul de la pagina https://access.redhat.com/articles/1200223.

Pentru actualizarea versiunii de Bash, în funcţie de distribuţia de Linux utilizată, trebuie rulate următoarele comenzi:

  • RedHat, CentOS, Fedora:

    “yum update bash –y”

  • Ubuntu, Debian:

    “apt-get update; apt-get install –only-upgrade bash”

  • Arch Linux:

    “pacman –Syu”

Pentru sistemul de operare Mac OSX (versiunile Mavericks, Mountain Lion şi Lion) au fost lansate patch-uri oficiale de către compania Apple:

Sursa foto: www.nettitude.co.uk
Sursa articolului: www.cert-ro.eu


Add Comment Register



Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *


*

Poți folosi aceste etichete HTML și atribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>