Linux Forensics
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen otomatik iş akışları oluşturun ve otomatikleştirin. Bugün Erişim Alın:
Başlangıç Bilgi Toplama
Temel Bilgiler
Öncelikle, iyi bilinen ikili ve kütüphanelere sahip bir USB'ye sahip olmanız önerilir (sadece ubuntu alabilir ve /bin, /sbin, /lib ve /lib64 klasörlerini kopyalayabilirsiniz), ardından USB'yi bağlayın ve çevresel değişkenleri değiştirerek bu ikilileri kullanın:
Bir kez sistemi iyi ve bilinen ikili dosyaları kullanacak şekilde yapılandırdığınızda, bazı temel bilgileri çıkartmaya başlayabilirsiniz:
Şüpheli bilgiler
Temel bilgileri elde ederken şunlar gibi garip şeyleri kontrol etmelisiniz:
Root işlemleri genellikle düşük PIDS ile çalışır, bu yüzden büyük bir PID'ye sahip bir root işlemi bulursanız şüphelenebilirsiniz
/etc/passwd
içinde kabuğu olmayan kullanıcıların kayıtlı girişlerini kontrol edin/etc/shadow
içinde kabuğu olmayan kullanıcılar için şifre hash'lerini kontrol edin
Bellek Dökümü
Çalışan sistemin belleğini elde etmek için LiME kullanmanız önerilir. Bunu derlemek için, kurban makinenin kullandığı aynı çekirdeği kullanmanız gerekmektedir.
Unutmayın ki kurban makineye LiME veya başka bir şey kuramazsınız çünkü bu makinede birçok değişiklik yapacaktır
Bu yüzden Ubuntu'nun aynı sürümüne sahipseniz apt-get install lime-forensics-dkms
komutunu kullanabilirsiniz.
Diğer durumlarda, LiME'ı github'dan indirip doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin tam çekirdek başlıklarını elde etmek için sadece /lib/modules/<çekirdek sürümü>
dizinini kopyalayarak, ardından bunları kullanarak LiME'ı derleyebilirsiniz:
LiME, 3 formatı destekler:
Ham (her segment bir araya getirilir)
Dolgulu (ham ile aynı, ancak sağ bitlerde sıfırlarla)
Lime (metadata ile birlikte önerilen format)
LiME ayrıca, dump'ı sistemde depolamak yerine ağ üzerinden göndermek için şöyle bir şey kullanılabilir: path=tcp:4444
Disk Görüntüleme
Kapatma
Öncelikle, sistemi kapatmanız gerekecek. Bu her zaman bir seçenek olmayabilir çünkü sistem bazen kapatılamayacak bir üretim sunucusu olabilir.
Sistemi kapatmanın 2 yolu vardır, normal kapatma ve "fişi çekme" kapatma. İlk yöntem, işlemlerin normal şekilde sonlandırılmasına ve dosya sisteminin senkronize edilmesine izin verecektir, ancak aynı zamanda olası zararlı yazılımın delilleri yok etmesine de izin verecektir. "fişi çekme" yaklaşımı, bazı bilgi kaybı taşıyabilir (belleğin bir görüntüsünü zaten aldığımız için çok fazla bilgi kaybolmayacak) ve zararlı yazılımın buna karşı bir şey yapma fırsatı olmayacak. Bu nedenle, eğer bir zararlı yazılım olabileceğinden şüpheleniyorsanız, sadece sistemde sync
komutunu çalıştırın ve fişi çekin.
Diskten bir görüntü almak
Bilgisayarınızı dava ile ilgili herhangi bir şeye bağlamadan önce, bilginin değiştirilmesini önlemek için salt okunur olarak bağlanacağınızdan emin olmanız önemlidir.
Disk Görüntüsü Ön Analizi
Daha fazla veri olmadan bir disk görüntüsü oluşturma.
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen otomatikleştirilmiş iş akışları oluşturun ve yönetin. Bugün Erişim Alın:
Bilinen Kötü Amaçlı Yazılımları Arayın
Değiştirilmiş Sistem Dosyaları
Linux, potansiyel sorunlu dosyaları tespit etmek için kritik sistem bileşenlerinin bütünlüğünü sağlama konusunda araçlar sunar.
RedHat tabanlı sistemler: Kapsamlı bir kontrol için
rpm -Va
kullanın.Debian tabanlı sistemler: İlk doğrulama için
dpkg --verify
kullanın, ardındandebsums | grep -v "OK$"
(apt-get install debsums
iledebsums
'ı yükledikten sonra) ile herhangi bir sorunu belirlemek için kullanın.
Kötü Amaçlı Yazılım/Rootkit Tespitçileri
Kötü amaçlı yazılımları bulmada faydalı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun:
pageMalware AnalysisYüklenen Programları Arayın
Debian ve RedHat sistemlerinde yüklenen programları etkili bir şekilde aramak için sistem günlüklerini ve veritabanlarını, yaygın dizinlerde manuel kontrollerle birlikte kullanmayı düşünün.
Debian için, paket yüklemeleri hakkında ayrıntıları almak için
/var/lib/dpkg/status
ve/var/log/dpkg.log
dosyalarını inceleyin, belirli bilgileri filtrelemek içingrep
kullanın.RedHat kullanıcıları, yüklü paketleri listelemek için
rpm -qa --root=/mntpath/var/lib/rpm
ile RPM veritabanını sorgulayabilir.
Bu paket yöneticileri dışında manuel olarak veya bunların dışında yüklenen yazılımları bulmak için /usr/local
, /opt
, /usr/sbin
, /usr/bin
, /bin
ve /sbin
gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarla birleştirerek, bilinen paketlerle ilişkilendirilmemiş yürütülebilir dosyaları belirleyerek tüm yüklenen programları arama sürecinizi geliştirin.
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen otomatik iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Edinin:
Silinen Çalışan İkili Dosyaları Kurtarın
/tmp/exec dizininden çalıştırılan ve daha sonra silinen bir işlemi hayal edin. Onu çıkarmak mümkündür
Otomatik başlatma konumlarını inceleyin
Zamanlanmış Görevler
Hizmetler
Bir kötü amaçlı yazılımın hizmet olarak kurulabileceği yollar:
/etc/inittab: rc.sysinit gibi başlangıç betiklerini çağırır, daha sonra başlangıç betiklerine yönlendirir.
/etc/rc.d/ ve /etc/rc.boot/: Hizmet başlatma betiklerini içerir, ikincisi eski Linux sürümlerinde bulunur.
/etc/init.d/: Debian gibi belirli Linux sürümlerinde başlangıç betiklerini depolamak için kullanılır.
Hizmetler ayrıca /etc/inetd.conf veya /etc/xinetd/ üzerinden etkinleştirilebilir, Linux varyantına bağlı olarak değişir.
/etc/systemd/system: Sistem ve hizmet yöneticisi betikleri için bir dizin.
/etc/systemd/system/multi-user.target.wants/: Çoklu kullanıcı çalışma düzeyinde başlatılması gereken hizmetlere bağlantıları içerir.
/usr/local/etc/rc.d/: Özel veya üçüncü taraf hizmetleri için.
~/.config/autostart/: Kullanıcıya özgü otomatik başlatma uygulamaları için, kullanıcı odaklı kötü amaçlı yazılımların gizlenmesi için bir saklanma noktası olabilir.
/lib/systemd/system/: Kurulu paketler tarafından sağlanan sistem genelinde varsayılan birim dosyaları.
Çekirdek Modülleri
Kötü amaçlı yazılımlar tarafından kök kiti bileşeni olarak sıkça kullanılan Linux çekirdek modülleri, sistem başlangıcında yüklenir. Bu modüller için kritik olan dizinler ve dosyalar şunlardır:
/lib/modules/$(uname -r): Çalışan çekirdek sürümü için modülleri içerir.
/etc/modprobe.d: Modül yüklemeyi kontrol etmek için yapılandırma dosyalarını içerir.
/etc/modprobe ve /etc/modprobe.conf: Genel modül ayarları için dosyalar.
Diğer Otomatik Başlatma Konumları
Linux, kullanıcı oturum açtığında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve potansiyel olarak kötü amaçlı yazılım barındırabilir:
/etc/profile.d/*, /etc/profile ve /etc/bash.bashrc: Herhangi bir kullanıcı oturumu için çalıştırılır.
~/.bashrc, ~/.bash_profile, ~/.profile ve ~/.config/autostart: Kullanıcıya özgü dosyalar, kullanıcı oturum açtığında çalıştırılır.
/etc/rc.local: Tüm sistem hizmetleri başladıktan sonra çalışır, çoklu kullanıcı ortamına geçişin sonunu işaretler.
Günlükleri İncele
Linux sistemleri, çeşitli günlük dosyaları aracılığıyla kullanıcı etkinliklerini ve sistem olaylarını izler. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım bulaşmalarını ve diğer güvenlik olaylarını tanımlamak için hayati öneme sahiptir. Önemli günlük dosyaları şunları içerir:
/var/log/syslog (Debian) veya /var/log/messages (RedHat): Sistem genelindeki mesajları ve etkinlikleri yakalar.
/var/log/auth.log (Debian) veya /var/log/secure (RedHat): Kimlik doğrulama denemelerini, başarılı ve başarısız oturum açmalarını kaydeder.
İlgili kimlik doğrulama olaylarını filtrelemek için
grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log
komutunu kullanın./var/log/boot.log: Sistem başlangıç mesajlarını içerir.
/var/log/maillog veya /var/log/mail.log: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri izlemek için faydalıdır.
/var/log/kern.log: Hata ve uyarıları içeren çekirdek mesajlarını saklar.
/var/log/dmesg: Aygıt sürücüsü mesajlarını tutar.
/var/log/faillog: Güvenlik ihlali soruşturmalarına yardımcı olan başarısız oturum açma denemelerini kaydeder.
/var/log/cron: Cron işi yürütmelerini kaydeder.
/var/log/daemon.log: Arka planda çalışan hizmet etkinliklerini izler.
/var/log/btmp: Başarısız oturum açma denemelerini belgeler.
/var/log/httpd/: Apache HTTPD hata ve erişim günlüklerini içerir.
/var/log/mysqld.log veya /var/log/mysql.log: MySQL veritabanı etkinliklerini kaydeder.
/var/log/xferlog: FTP dosya transferlerini kaydeder.
/var/log/: Burada beklenmeyen günlükleri kontrol etmek her zaman önemlidir.
Linux sistem günlükleri ve denetim alt sistemleri, bir ihlal veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerinde günlükler genellikle kötü amaçlı faaliyetler hakkında en kullanışlı bilgileri içerdiğinden, saldırganlar genellikle bunları siler. Bu nedenle, mevcut günlük dosyalarını inceleyerek, silinme veya oynama belirtisi olabilecek boşlukları veya sırasız girişleri aramak önemlidir.
Linux, her kullanıcı için bir komut geçmişini saklar, şurada depolanır:
~/.bash_history
~/.zsh_history
~/.zsh_sessions/*
~/.python_history
~/.*_history
Ayrıca, last -Faiwx
komutu bir kullanıcı oturumunu listeler. Bilinmeyen veya beklenmeyen oturum açmaları için kontrol edin.
Ek ayrıcalıklar sağlayabilecek dosyaları kontrol edin:
Beklenmeyen kullanıcı ayrıcalıklarını belirlemek için
/etc/sudoers
dosyasını inceleyin.Beklenmeyen kullanıcı ayrıcalıklarını belirlemek için
/etc/sudoers.d/
dizinini inceleyin.Olağandışı grup üyeliklerini veya izinleri belirlemek için
/etc/groups
dosyasını inceleyin.Olağandışı grup üyeliklerini veya izinleri belirlemek için
/etc/passwd
dosyasını inceleyin.
Bazı uygulamalar kendi günlüklerini oluşturur:
SSH: Yetkisiz uzak bağlantılar için ~/.ssh/authorized_keys ve ~/.ssh/known_hosts dosyalarını inceleyin.
Gnome Masaüstü: Gnome uygulamaları aracılığıyla son erişilen dosyalar için ~/.recently-used.xbel dosyasına bakın.
Firefox/Chrome: Şüpheli etkinlikler için ~/.mozilla/firefox veya ~/.config/google-chrome dizinlerinde tarayıcı geçmişini ve indirmeleri kontrol edin.
VIM: Erişilen dosya yolları ve arama geçmişi gibi kullanım detayları için ~/.viminfo dosyasını inceleyin.
Open Office: Kompromize uğramış dosyaları gösterebilecek son belge erişimlerini kontrol edin.
FTP/SFTP: Yetkisiz dosya transferlerini belirlemek için ~/.ftp_history veya ~/.sftp_history günlüklerini inceleyin.
MySQL: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek ~/.mysql_history dosyasını inceleyin.
Less: Görüntülenen dosyaları ve yürütülen komutları içeren ~/.lesshst dosyasını analiz edin.
Git: Depolardaki değişiklikler için ~/.gitconfig ve proje .git/logs dosyalarını inceleyin.
USB Günlükleri
usbrip, USB olay geçmişi tabloları oluşturmak için Linux günlük dosyalarını (/var/log/syslog*
veya dağıtıma bağlı olarak /var/log/messages*
) ayrıştıran saf Python 3 dilinde yazılmış küçük bir yazılımdır.
Kullanılan tüm USB'leri bilmek ilginç olacaktır ve "ihlal olaylarını" bulmak için yetkilendirilmiş USB'lerin bir listesine sahipseniz daha da faydalı olacaktır.
Örnekler
Daha fazla örnek ve bilgi için github içine bakın: https://github.com/snovvcrash/usbrip
Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen otomatikleştirilmiş iş akışları oluşturun ve yönetin. Bugün Erişim Alın:
Kullanıcı Hesaplarını ve Oturum Etkinliklerini İnceleme
Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları incelemek için /etc/passwd, /etc/shadow ve güvenlik günlüklerini kontrol edin. Ayrıca, olası sudo kaba kuvvet saldırılarını kontrol edin. Ayrıca, kullanıcılara verilen beklenmeyen ayrıcalıkları kontrol etmek için /etc/sudoers ve /etc/groups gibi dosyaları kontrol edin. Son olarak, şifresiz hesapları veya kolayca tahmin edilebilen şifreleri olan hesapları arayın.
Dosya Sistemi İnceleme
Kötü Amaçlı Yazılım İncelemesinde Dosya Sistemi Yapılarını Analiz Etme
Kötü amaçlı yazılım olaylarını araştırırken, dosya sistemi yapısı bilgi kaynağı olarak hayati öneme sahiptir, olayların sırasını ve kötü amaçlı yazılımın içeriğini ortaya çıkarır. Bununla birlikte, kötü amaçlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolamak için dosya sisteminden kaçınma gibi analizi engellemek için teknikler geliştirmektedir.
Bu anti-forensik yöntemlere karşı koymak için şunlar önemlidir:
Olay zaman çizelgesi analizi yapmak için Autopsy gibi araçları kullanarak olay zaman çizelgelerini görselleştirmek veya ayrıntılı zaman çizelgesi verileri için Sleuth Kit's
mactime
kullanmak.Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek sistem $PATH'indeki beklenmedik betikleri inceleyin.
/dev içindeki tipik olmayan dosyaları inceleyin**, genellikle özel dosyalar içerir, ancak kötü amaçlı yazılımla ilişkili dosyaları barındırabilir.
".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi adlara sahip gizli dosyaları veya dizinleri arayın, kötü amaçlı içeriği gizleyebilirler.
find / -user root -perm -04000 -print
komutunu kullanarak setuid root dosyalarını tanımlayın. Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur.İşlem tablolarındaki silme zaman damgalarını inceleyin, kök kiti veya truva atları varlığını gösterebilecek toplu dosya silmelerini belirlemek için.
Bir tane tanımladıktan sonra yakındaki kötü amaçlı dosyaları belirlemek için ardışık inode'leri inceleyin.
Son zamanlarda değiştirilmiş dosyaları kontrol etmek için yaygın ikili dizinleri (/bin, /sbin) inceleyin, çünkü bunlar kötü amaçlı yazılım tarafından değiştirilmiş olabilir.
Saldırganın dosyaları görünüşte meşru hale getirmek için zamanı değiştirebileceğini, ancak inode'u değiştiremeyeceğini unutmayın. Eğer bir dosyanın, aynı klasördeki diğer dosyalarla aynı zamanda oluşturulduğunu ve değiştirildiğini gösterdiğini fakat inode'un beklenmedik şekilde daha büyük olduğunu fark ederseniz, o dosyanın zaman damgalarının değiştirildiğini anlarsınız.
Farklı dosya sistem sürümlerini karşılaştırın
Dosya Sürümü Karşılaştırma Özeti
Değişiklikleri belirlemek ve dosya sistem sürümlerini karşılaştırmak için basitleştirilmiş git diff
komutlarını kullanırız:
Yeni dosyaları bulmak için iki dizini karşılaştırın:
Değiştirilmiş içerik için, belirli satırları yok sayarak değişiklikleri listeleyin:
Silinmiş dosyaları tespit etmek için:
Filtre seçenekleri (
--diff-filter
), eklenen (A
), silinen (D
) veya değiştirilen (M
) dosyalar gibi belirli değişikliklere odaklanmanıza yardımcı olur.A
: Eklenen dosyalarC
: Kopyalanan dosyalarD
: Silinen dosyalarM
: Değiştirilen dosyalarR
: Yeniden adlandırılan dosyalarT
: Tür değişiklikleri (ör. dosya simge bağlantısına)U
: Birleştirilmemiş dosyalarX
: Bilinmeyen dosyalarB
: Bozuk dosyalar
Referanslar
Kitap: Malware Forensics Field Guide for Linux Systems: Dijital Adli Bilişim Alan Kılavuzları
Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:
Last updated