Linux işletim sistemleri için olay müdahale rehberi

Giriş

Kullanım oranları gittikçe artan Linux ve macOS işletim sistemlerini hedef alan saldırılar da paralelde her geçen gün artmaktadır. Genelde Windows işletim sistemleri için oluşmuş olan DFIR kültürü, son zamanlarda bu anlamda özellikle Google, Amazon, Facebook gibi şirketlerin öncülüğünde macOS ve Linux'ü de kapsayıcı bir hal almıştır.

Bu yazıda, Linux işletim sisteminin dahil olduğu siber olaylara ilk müdahale anlamında -ek üçüncü parti araçlar kullanmadan- vaka doğrulama amacıyla neler yapılabileceğine yer verilmiştir.

Windows ile bazı temel farklar

  • Windows'tan farklı olarak Linux işletim sisteminde merkezi bir konfigürasyon veritabanı (Windows'taki registry) mevcut değildir

  • Dosyalar silinince metadatalar da genelde sıfırlanmaktadır

  • Konfigürasyon dosya/dizinleri genelde standart metin ifadelerdir. Bu, aramalar için kolaylık sağlar.

Temel kanıt dizinleri

/etc : Konfigürasyonların tutulduğu ana dizindir. Her bir uygulama için konfigürasyonlar ayrı klasörde tutulur. Windows karşılığı olarak SYSTEM, SAM, SECURITY hive'larının tutulduğu C:\Windows\System32\config dizini düşünülebilir

/var/log: İşletim sistemi için birincil loglama dizinidir. Uygualama ve sistem logları saklanır. Windows karşılığı C:\Windows\System32\Winevt\logs olarak düşünülebilir.

/home/$USER: Kullanıcı verisi ve kullanıcıya özel konfigürasyonların saklandığı dizindir. Windows'daki %USERPROFILE% olarak düşünülebilir. root için /root dizinidir.

Temel komutlar ve analiz yöntemleri

Bazı komutların çıktıları normal kullanıcı haklarıyla kısıtlı içerik getirmektedr. Bu sebeple komutların sudo / root yetkisiyle çalıştırılması tavsiye olunur

hostname: Makine adı

cat /etc/timezone: Timezone bilgisini verir

uname -a: Sisteme ait işlemci, çekirdek versiyonu vb. detaylarını getirir

whoami: Login olmuş kullanıcıyı getirir

cat /etc/issue: İşletim sistemi detayını getirir

last -f /var/log/wtmp: Login detaylarını gösterir (IP, user, tarih, bağlantı durumu) who komutu ile benzerdir.

lsmod: Çekirdek modüllerini listeler. Anormal modül isimlerine dikkat edilmelidir (özellikle rootkit tespitlerinde işe yarar) lastlog: Son loginlerde anormal loginler aranır

arp -an: ARP tablosu getirir. Anormal gözüken makine isimleri / MAC adresleri aranır.

route: route tablosunu getirir. Anormal olabilecek route kurallarına bakılır

ifconfig: Beklenmeyen promiscuous (sniffing) moddaki arayüzler aranır

netstat -apetul: Detaylı process ve network faaliyeti dökümü yapar. LISTEN moddaki şüpheli uygulamalar incelenir.

sudo lsof -p <process_id>: Process'e ait detayları getirir

cat /etc/passwd: Şüpheli kullanıcı isimleri incelenir. UID 0 olan hesapların admin yetkileri vardır. (Örn: root) root harici UID 0 olan hesaplar şüphelidir

cat /etc/resolv.conf: DNS nameserver'ları gösterir.

cat /etc/hosts: Host tanımları mevcuttur. Buradaki tanımlar resolv.conf'u ezer.

cat /etc/shadow: Parola hash'leri tutulur

cat /etc/group: Grup üyelikleri listelenir

cat /etc/sudoers: Yönetici haklı kullanıcıları gösterir

$HOME/.bash_history: Son yazılan komutları gösterir. Kullanıcılar tarafından editlenebilir. sudo history'leri için /var/log/auth.log ve /var/log/sudo.log dosyaları incelenebilir

ps aux: Çalışan process'leri listeler. Şüpheli/random isimli process'ler aranır

ls -lat: Son değiştirilen dosya/klasörleri görmek için

. (nokta) ile başlayan dosyalar Linux'te gizli dosyalardır. Özellikle backdoor ve persistence amaçlarla kullanılabilir.

dpkg-query -l: Sistemde kurulu paketleri getirir (Redhat için rpm -Va)

Sistem kurulum tarihine dair çok yakın bir tahmin için /etc/ssh/ssh__host__*_key dosyalarına bakılabilir.

$HOME/.ssh dizininde SSH bağlantı detayları vardır. known_hosts, bu makineden bağlanılan makineler. authorized_keys ise bu makineye yapılan bağlantılar için public key'leri içerir. id_rsa'de ise private key'ler vardır.

Kalıcılık mekanizmaları

Başlangıç script'leri

/etc/inittab, /etc/init.d, /etc/rc.d, /etc/init.conf, /etc/init, /etc/systemd

Zamanlanmış görev (cronjob) dizinleri

/etc/cron*, /var/spool/cron/*

Temel analiz noktaları

  • Sahipsiz suid işaretli dosyalar

  • root harici UID 0 olan user'lar (/etc/shadow ve /etc/password için)

  • . ile başlayan ve yeni değiştirilen dosyalar

  • /dev altında (driver olmayan) sıradan dosyalar

  • Son değiştirilen dosyalar

  • Büyük dosyalar

Web Browser Kanıtları

$HOME/.mozilla/firefox/*.default: Firefox web kanıtları (SQLite veritabanı)

$HOME/.config/chromium/Default: Chromium web kanıtları (SQLite veritabanı)

Furkan ÇALIŞKAN

Read more posts by this author.