Hacklenmiş, Ele Geçirilmiş UNIX/Linux Sistem Analizi / Bölüm-I

Not:3 bölüm  olarak hazırlanan bu yazı dizisinin ilk bölümünü aşağıdan okuyabilirsiniz.

Internet ortamında altyapı, ağ ve sunucu hizmetlerinde kullanılan işletim sistemleri %70 gibi büyük oranda UNIX/Linux tabanlı sistemlerden oluşmaktadır[1]. Linux sistemlerin yoğun kullanımı saldırganların da hedeflerini bu sistemlere yöneltmesine sebep olmuştur.  Hacklenen sitelerin kaydını tutan Zone-H istatistiklerine göre Son yıllarda en çok Linux sistemler hedef oluyor , ele geçiriliyor.



Linux sistemler genellikle komut satırı kullanarak yönetildiği için sistem üzerindeki anormallikler Windows işletim sistemindeki gibi kolay anlaşılmayabilir.
Bu yazıda internet üzerinde hizmet veren Linux sistemlere yönelik gerçekleştirilen saldırılar sonrası sistemlerin nasıl inceleneceği, canlı analiz yöntemleri ve saldırılar/anormalliklerden haberdar erken haberdar olmak için gerekli adımlara değinilecektir.



Analiz Çalışmasına Başlamadan Kontrol Edilmesi Gereken Ön Hususlar:



Zaman Bilgisi
İncelenecek sistemin saat bilgisinin kontrol edilmesi, saat bilgisi hatalı olan sistem inceleme sonuçlarının da sağlıksız sonuçlanmasına sebep olacaktır. date komutu kullanılarak sisteme ait zaman bilgileri elde edilebilir.



İşletim Sistemi ve Çekirdek Sürüm Bilgisi
İşletim sistemi kernel sürümü ve mimari bilgileri. Aşağıdaki komutla bu bilgiler edinilebilir.



root@bgapentest:~# uname -a
Linux bgapentest 3.12-kali1-amd64 #1 SMP Debian 3.12.6-2kali1 (2014-01-06) x86_64 GNU/Linux



Dosyalara Ait Bütünlük(Hash) Değerleri
Canlı sistem üzerinde çalışma yapılacaksa sistemin yedeğinin ve tüm dosyaların hash bilgilerinin önceden alınmış olması önemlidir. Tüm sistemdeki dosyaların hash değerleri ve boyut bilgisi, sahiplik gibi özelliklerinin



root@bgapentest:~# find /etc -type f -ls
1588664    4 -rw——-   1 root     root         1716 Aug 15 20:05 /etc/shadow-
1570743    4 -rw-r–r–   1 root     root          578 Mar 12  2012 /etc/darkstat/init.cfg
1570628    4 -rw-r–r–   1 root     root          356 Dec 30  2012 /etc/bindresvport.blacklist
1572069    4 -rwxr-xr-x   1 root     root          249 Mar  7  2013 /etc/resolvconf/update-libc.d/avahi-daemon
1571499    4 -rwxr-xr-x   1 root     root         1806 Nov 14  2011 /etc/network/if-post-down.d/ifenslave
1571500    4 -rwxr-xr-x   1 root     root          795 Sep 30  2007 /etc/network/if-post-down.d/vlan
1571501    4 -rwxr-xr-x   1 root     root         1070 Dec 18  2009 /etc/network/if-post-down.d/wireless-tools
1571495    4 -rwxr-xr-x   1 root     root          332 Mar 14  2013 /etc/network/if-down.d/upstart
1571494    4 -rwxr-xr-x   1 root     root          172 Jun 18  2013 /etc/network/if-down.d/openvpn
1571518    4 -rwxr-xr-x   1 root     root         1483 Mar 14  2013 /etc/network/if-up.d/upstart
1571512    4 -rwxr-xr-x   1 root     root         1699 Nov 14  2011 /etc/network/if-up.d/ifenslave
1571517    4 -rwxr-xr-x   1 root     root          173 Jun 18  2013 /etc/network/if-up.d/openvpn
1571516    4 -rwxr-xr-x   1 root     root          849 Feb  8  2013 /etc/network/if-up.d/openssh-server
1571510    4 -rwxr-xr-x   1 root     root          484 Mar  7  2013 /etc/network/if-up.d/avahi-daemon
1571515    8 -rwxr-xr-x   1 root     root         4490 Aug 19  2013 /etc/network/if-up.d/mountnfs
1571511    4 -rwxr-xr-x   1 root     root         1675 Apr 28  2012 /etc/network/if-up.d/ethtool
1571514    4 -rwxr-xr-x   1 root     root          866 Oct 21  2012 /etc/network/if-up.d/miredo
1571513    4 -rwxr-xr-x   1 root     root          578 Sep 30  2007 /etc/network/if-up.d/ip
1571946    4 -rw-r–r–   1 root     root          671 May 24 13:03 /etc/network/interfaces
1571505    8 -rwxr-xr-x   1 root     root         6157 Nov 14  2011 /etc/network/if-pre-up.d/ifenslave



Hash değerleri



root@bgapentest:~# find /etc -type f |xargs md5sum |head
709f91514828bd175ad096bb1437f5fa  /etc/shadow-
caa6f5bd68ec9ecaf917e4f3e572fdca  /etc/darkstat/init.cfg
d2d1b996add35b65f64a22e9c8413632  /etc/bindresvport.blacklist
2cf53ff5a00f9d1fed653a2913de5bc7  /etc/resolvconf/update-libc.d/avahi-daemon
8cc5418ae8f2c12eccc9ee1435a2c35f  /etc/network/if-post-down.d/ifenslave
af8ff6431490f05395844386b1c71210  /etc/network/if-post-down.d/vlan
1f6530d0aee88247fe5001fe2f5f50d0  /etc/network/if-post-down.d/wireless-tools
1a0205ddbc1446782a8d4d818e97d8a5  /etc/network/if-down.d/upstart
6f027552ae527133e46efb9201e0b9fc  /etc/network/if-down.d/openvpn



ek olarak sistemde md5deep yazılımı kurulu ise aşağıdaki komut kullanılarak da alt dizinlerle birlikte tüm dosyalara ait hash bilgileri sistemden alınabilir.



root@bgapentest:~# md5deep  -r /etc/
709f91514828bd175ad096bb1437f5fa  /etc/shadow-
caa6f5bd68ec9ecaf917e4f3e572fdca  /etc/darkstat/init.cfg
d2d1b996add35b65f64a22e9c8413632  /etc/bindresvport.blacklist
2cf53ff5a00f9d1fed653a2913de5bc7  /etc/resolvconf/update-libc.d/avahi-daemon
4c82dbf7e1d8c5ddd70e40b9665cfeee  /etc/network/if-post-down.d/wpasupplicant
8cc5418ae8f2c12eccc9ee1435a2c35f  /etc/network/if-post-down.d/ifenslave
af8ff6431490f05395844386b1c71210  /etc/network/if-post-down.d/vlan
1f6530d0aee88247fe5001fe2f5f50d0  /etc/network/if-post-down.d/wireless-tools
6dbf1a91ab420a99d1205972d6401e67  /etc/network/if-post-down.d/avahi-daemon
1a0205ddbc1446782a8d4d818e97d8a5  /etc/network/if-down.d/upstart



Canlı sistem üzerinde analiz yaparken kullanılacak komutlar sistem üzerindeki komut ve programlar olmamalıdır. Canlı sistem zaten şüphelenilen sistem olduğu için kullanılan komutlar güvenilir değildir. Benzeri bir sistem üzerinde temiz olduğu kesin olan programlar kayıt edilemez/yazılamaz bir aygıt aracılığı ile sisteme bağlanarak kullanılmalıdır. Veya canlı sistem üzerinden komutlar çalıştırılacaksa bu komutların hash değerleri kontrol edilerek arka kapı vs olmadığından emin olunmalıdır.



Olası Sızma Yöntemleri ve Giriş Noktalarının Tespiti



Analiz çalışmasına başlamadan önce sistemi hızlı bir şekilde gözden geçirerek, belki saldırgan gözüyle sisteme yaklaşarak hangi yol ve yöntemlerle bu sisteme sızılmış olabilir sorusunun cevabını bulmak yerinde olacaktır. Aksi halde yoğun kullanıma sahip bir Linux sistemde analiz yapmak samanlıkta saman rengi bir iğne aramaya benzeyecektir.



Not:Bu aşamada sisteme girilen yolun tespit edilebilmesi için Nmap, Nessus, OpenVAS gibi programlar ilk aşamada çalıştırılarak standart, bilinen bir yolla sistem ele geçirilmişse kolay yoldan bilgi edinilebilir.



Genel olarak bir Linux/UNIX sisteme yapılabilecek sızma yöntemlerini aşağıdaki başlıklarda sınıflandırabilir.



  • Parola saldırısı yapılarak http, ftp, telnet ssh veya benzeri bir yolla sisteme erişim.
  • Web uygulamasındaki bir zafiyetin istismar edilerek sisteme erişim
  • Çalışan bir servisteki güvenlik zafiyetinin(tomcat, distcc v.s) istismarı ile sisteme erişim
  • Fiziksel erişim yöntemiyle (sistem boot edilerek vs) ele geçirme
  • Ağ seviyesinde MITM yaparak hassas bilgi elde etme yöntemiyle erişim
  • Kernel sürümündeki açıklık istismar edilerek sistem yetkilerine -root- erişim



Son bir yılda BGA Bilgi Güvenliği olarak incelediğimiz olayların tamamına yakınının sonuçları Linux sistemlere sızmaların Web tabanlı zafiyetlerden kaynaklandığını göstermektedir. Bu yazıda da web tabanlı sızma sonrası sistem analizine özellikle değinilecektir.



Sistem Analizi
İşletim sistemi analiz etmek için birden fazla nokta vardır ve genellikle saldırı sonrası giriş yolu kesin belli değilse analizi yapacak kişi ilk olarak hangi dosyaya, hangi loga bakacağına karar veremez. Bu tip durumlar için analiz yapacak uzmanın önceden hazırlanmış bir kontrol listesinin olmasında fayda vardır. Doğrudan bu kontrol listesi üzerinden ilerleyerek adım adım sistem analizi gerçekleştirilebilir.



Temel olarak incelenmesi gereken maddeler başlıklar halinda aşağıda verilmiştir:

  • Yerel ve uzak bağlantı detayları
  • Olay anına ve sonrasına ait bellek dökümü incelemesi
  • Disk incelemesi
  • Zararlı yazılım analizi
  • Sistemde aktif olarak işlemde bulunan dosyaların analizi
  • Son 3-5 günde değiştirilmiş, yeni eklenmiş dosyaların analizi
  • Dosya izinleri 777 olan dosyaların incelenmesi
  • Sisteme yapılmış başarılı, başarısız giriş denemeleri
  • Sistemde anlık olarak bulunan kullanıcıların ve bağlandıkları ip adreslerinin incelenmesi
  • Sistem üzerinde aktif olarak çalışan ağ servislerinin ve bunları çalıştıran kullanıcıların bilgileri
  • SSH anahtarlarının incelenmesi
  • Zamanlanmış görevlerin incelenmesi
  • Sistem üzerinde paylaşımda dosya olup olmadığının incelenmesi
  • Tüm aktif kullanıcılara ait komut geçmişlerinin incelenmesi
  • Aktif tüm proses ve alt proseslerin incelenmesi
  • Sistemde kurulu olan ve hizmet veren servislere ait log/kayıt dosyalarının incelenmesi