Shellshock

Autor: Petar Simović

Nije prošlo mnogo posle katastrofe zvane Heartbleed bug (OpenSSL ranjivosti), a evo nas opet: ostali smo zatečeni pred novom ranjivošću zvanom Shellshock i kodnim imenom CVE-2014-6271. Ovaj bag je zapravo ranjivost u Bash programu, koji svakodnevno koristimo direktno ili indirektno, a da toga nismo ni svesni.

Bash (Bourne-again shell) je standardni program otvorenog koda star preko dvadeset godina koji je podrazumevano instaliran uz većinu *nix operativnih sistema. On je command-line based program koji služi za izvršavanje komandi i skripata od strane korisnika ili programa upućenih operativnom sistemu, odnosno mašini koju korisnik upotrebljava. Problem se javlja u svim verzijama ovog programa do verzije 4.3. Možete proveriti svoju verziju sledećom komandom:

bash -version

Da li je vaš Bash ranjiv, možete proveriti pokretanjem sledeće komande, nakon čega bi trebalo da ispiše samo drugi komentar, tj. u našem primeru tekst Bash is not vulnerable.

env VAR='() { :;}; echo Bash is EXPLOITABLE!' bash -c "echo Bash is not vulnerable"

Ukoliko vam je Bash ranjiv, trebalo bi samo da ažurirate verziju komandom za debian korisnike:

sudo apt-get update && sudo apt-get install

ili ukoliko imate instaliran aptitude:

aptitude update; aptitude safe-upgrade -y; reboot

ili za Red-Hat korisnike:

sudo yum update bash

Kao što ste možda mogli da primetite iz test primera ranjivosti, problem je u tome što Bash dozvoljava u određenim situacijama izvršavanje prosleđene mu proizvoljne komande bez ikakvih provera. Naime, poznato je da se zahtevi koje veb serveri dobijaju, obrađuju lokalno na mašini na kojoj je server. U takvim slučajevima se obrada zahteva prepušta lokalnom CLI-u (eng. command-line interface) koji izvršava zahtev na mašini. U većini slučajeva podrazumevani cli je baš Bash. Specifično, Apache serveri koji imaju mod_cgi i mod_cgid module omogućene ili openSSH serveri koji imaju sshd omogućen, jesu ranjivi, a takođe i DHCP klijenti ukoliko su povezani sa zlonamernim DHCP serverom, zatim qmail serveri i IBM-ov restricted shell za koji je izbačen patch : http://goo.gl/AHS2gh, i mnogi drugi. Zanimljivo je recimo da su OpenVPN ( http://goo.gl/GbOzJ2 ) i VMWare ( http://goo.gl/U2w9p7 ) takođe ranjivi, a NGiNX serveri su ostali imuni i bezbedni. Cela situacija podseća mnogo na skorašnji famozni Heartbleed bug, baš zbog velike rasprostranjenosti programa koji se oslanjaju na Bash i broja uređaja koji ga koriste. Kao i kod Heartbleed bug-a, konačna lista ranjivih uređaja i softvera se ne zna jer je broj uređaja koji koriste Linux u nekom obliku veoma veliki i verovatno se broji u hiljadama miliona.

Mada ovakva ranjivost sama po sebi nije nova ni napredna, lako je rešiva, šta više, problem se lako rešava u jednom do dva koraka, bilo na desktop računarima, bilo na serverima. Problem je u rasprostranjenosti i veoma širokoj upotrebi. Problem nemogućnosti krpljenja (eng. patching) je u samoj velikoj rasprostranjenosti uređaja tzv. embedded devices, za koje ažuriranje ne bi bilo ni lako ni jednostavno, a da ne govorimo o firmware-u. Takvi uređaji možda nikada neće biti zakrpljeni, kao što ni u ovom trenutku posle šest meseci nije otklonjena Heartbleed ranjivost sa svih uređaja, i možda nikad neće, jer je potrebno da se u svakoj firmi i kući u svetu ažurira softver na svakom računaru ili uređaju, što nije baš izvodljivo. Alternativa ažuriranju je zamena uređaja za novije, što je svakako finansijski izdatak koji se ne odobrava baš olako.

Ostavite odgovor

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *

Time limit is exhausted. Please reload CAPTCHA.