shellshock-commandd

ShellShock temel olarak nasıl çalışır…


Steve Gibson

 

GNU tabanlı olan ve Linux işletim sistemlerinde varsayılan olarak kullanılan, Bash komut satırı kabuğunda 24 Eylül 2014 tarhinde ciddi bir zaafiyet ortaya çıktı, Zaafiyet saldırganın bash üzerinden sistem üzerinde işlem yürütmesine izin vermekte.

Açıklık,  Linux, Unix tabanlı çok sayıda sistemi etkilemekte, açıklığın ana nedeni Bash’ın ortam değişkenlerinin belirli tipdeki komutları işlemesine izin verilmesinden kaynaklı. Saldırgan ortam değişkenleri üzerinden sistemde çalışan uygulamalar üzerinden komut yürütebiliyor.

Örneğin Apache Web Server üzerindeki CGI (Common Gateway Interface) bash üzerinden derlendiği için zararlı kod; apache > cgi > bash üzerinden işlem gerçekleştirilebilmekte.

Bunun için değişkenin içerisine aşağıda belirtilen örnek parametrenin girilmesi yeterli. Şayet apache (+cgi) ve ilgili servis root olarak çalıştırılıyorsa sistem üzerinde herşeyi yapmak mümkün hale gelmektedir…

Örnek değişken atamaları;

Ortam değişkeninin çalıştığı dizini listeler (ls)

Dosyayı okuyabilir (cat)

Dosyayı silebilir (rm)

Kısacası değişkene bash üzerindeki (servis üzerindeki) yetki ile istediğiniz komutu gönderebilirsiniz…

Önemli olan ortam değişkeni sizden bir veri alması (input…), bash’ın yamasız sürümünü kullanması, ortam değişkenlerini filtrelenmemesi…

Diğer etkilenebilir üst sistemler; httpd, SSH, dhclient,… (Bash ile ilişkili diğer sistemler.)

Ayrıca ilgili servis seviyesinde ek güvenlik önlemleri de alabilirsiniz (Firewall, IPS, WAF,…) ancak en iyi çözümün güncelleme olacağını unutmamak lazım.

Bu açıklıktan MacOS, iphone, Linux tabanlı Router, Modem, Firewall’lar, (servisler, servisler…) etkilenebilmektedir. Bu zayıflığın etkisi ve yol  açacağı problemlerin üstel oranda artacağını tahmin etmek oldukça kolaydır…

Örneğin DHCP sunucusuna hizmet durdurma yapılabilir (DoS);
Örnek Perl Kodu: http://pastebin.com/S1WVzTv9

Şuan için güncelleme yayınlayan işletim sistemleri;

Debian—https://www.debian.org/security/2014/dsa-3032
Ubuntu—http://www.ubuntu.com/usn/usn-2362-1/
Red Hat—https://access.redhat.com/articles/1200223
CentOS—http://centosnow.blogspot.com/2014/09/critical-bash-updates-for-centos-5.html
Novell/SUSE— http://support.novell.com/security/cve/CVE-2014-6271.html

İşletim sisteminizi veya linux tabanlı sistemlerinizi güncellemenizi öneririz.

Sisteminizde zayıflık bulunduğunu nasıl anlarsınız?

Temel olarak sistemin bash kabuğunu kullanması ve sürümünün güncel olmaması yeterli ancak aşağıdaki komut ile anlayabilirsiniz;

“aciklik_mevcut” yanıtını alıyorsanız, sisteminizde zayıflık var.

ancak aynı komutu uyguladığınızda;

uyarısını alıyorsanız sisteminizde ilgili zayıflık bulunmamaktadır.

Web sitenizin etkilenip etkilenmediğini hızlı bir şekilde test edebilirsiniz;
http://check.shellshock.info/ (False negatif verebilir daha detaylı inceleme öneririz…)

Ayrıca deneyimli ağ ve sistem yöneticileri ActiveScan betiğini kullabilirler;
https://github.com/ctxis/ActiveScanPlusPlus

Saldırı ve Denemeleri temel olarak nasıl anlarsınız?

İlgili servis loglarında bash değişkeni için değiştirilmiş, değişkenleri yakalayarak, örneğin apache’de;

benzeri ortam değişkenine değer atayan satırları görüyorsanız…

log dosyalarınızı SIEM sisteminiz veya log inceleme yazılımı ile gözden geçirebilirsiniz.

—-

Zaafiyet ID: CVE-2014-6271
Çıkış tarihi: 24/09/2014

Etkisi;
CVSS v2 Taban Skor: 10.0 (Yüksek) (AV:N/AC:L/Au:N/C:C/I:C/A:C)
Etkilenme Alt Skor: 10.0
Exploit edilebilirlik alt skor: 10.0

Erişim Vektörü: Ağ arayüzü üzerinden (+Internet)
Erişim karmaşıklığı: Düşük
Yetkilendirme: Exploit gereksinimi yok
Etki tipi: Yetkisiz olarak bilginin ortaya çıkartılması, Yetkisiz değişiklik yapabilme, Servisin etkilenmesi (DoS…)

Etkilenen sürümler: 1.13.- 4.3 sürümleri.

Kaynak:
https://access.redhat.com/articles/1200223

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271

http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html?m=1

http://www.symantec.com/connect/blogs/shellshock-all-you-need-know-about-bash-bug-vulnerability

 

STANDART REFERANS: ISO 27001:2013

A.9.1.1
A.12.2.1
A.12.4.1
A.12.4.3
A.14.2.1
A.14.2.2
A.14.2.4
A.14.2.5
A.14.2.8

 

—- 27/09/2014

Apple’dan gelen açıklamada “OS X varsayılan ayarlar ile etkilenmediği ancak gelişmiş ayarlarda (bash ile ilgili servis ayarlarında) değişiklik yapılmış ise etkilenebileceği” ifade edilmiş,
Apple konu ile ilgili yamayı hazırladığını da eklemiş.

http://thehackernews.com/2014/09/apple-most-mac-os-x-users-not_26.html

—- 27/09/2014

Web sitenizi test etmek için bir seçenek daha, (Tarama için .cgi dosya adresini tam yazmanız gerekli)  http://bashsmash.ccsir.org/

—- 27/09/2014

Shellshock / Bash Bug üzerinden botnet saldırıları kolaylıkla gerçekleştirilebilir.

Burada apache, üzerinde, cgi kullanılarak sistemde root izni olmadan çeşitli paketlerin ağ ve internet üzerine gönderilmesi yatıyor…
Bu sayede hedef sistemlere çeşitli tiplerde dağıtık hizmet durdurma saldırıları düzenlenebilir (DDoS)…
Basit bir şelikde ping’in kullanılması gibi…

http://www.troyhunt.com/2014/09/everything-you-need-to-know-about.html

Bununla birlikte Oracle’ın 32 adet ürününde shellshock açığının olduğu biliniyor, ancak yama henüz hazır değil (27/09/2014)

http://thehackernews.com/2014/09/Shellshock-Bash-Vulnerability-exploit.html

—-29/09/2014

Peki saldırganlar servisleri nasıl bulur?

Çok sayıda metot olmakla birlikte en kolayı google’ı kullanmak;

Örnek arama ifadesi (Bash scriptleri aramak için -sh- hazırlanan)

Erişim örnekleri;

User-Agent kullanarak perl box kurulması;

nc ile port açılması

Bunun için Apache üzerinden cgi-bin aktif olmalı ve nc’nin varsayılan olarak yüklü olması gerekli (Apache’nin root yetkisi yoksa…)

bu komut 10 adet ICMP paketini hedef IP’ye sunucu üzerinden gönderilmesini sağlar.

nc 3333 portu dinler,

İstemci tarafında “nc sunucu_IP 3333” komutu ile sunucuya erişim sağlanabilir!

 

Not: Örnekler, mülkiyeti size ait olan sistemleri test etmeniz için paylaşılmıştır. Bunun dışındaki sistemlerde kullanmanız sonucunda doğacak yasal ve teknik sorumluluk size aittir.
Kendi sistemlerinizde kullanırken sistemde neden olabilecek aksaklıkları da dikkate alarak kritik sistemlerde denememenizi öneririz.