Bu blog yazı serisinin ilk yazısında Linux Forensics başlamadan önce linux sistem temellerine giriş sağlayacağız. Bu ilk yazısı bazıları için önemsiz gibi düşünülsede temelleri bilmeyen veya eksik bilenler için forensics aşamasında zorlanacakları gerçek bir vakada fark edeceklerdir 🙂
Blog yazısında aşağıdaki başlıkları işleyeceğim.
- Linux
- En çok kullanılan Linux Dağıtımları (Popüler Linux dağıtımlarını)
- Linux sistemlerinin Yapısı
- Linux Forensics
- Linux Forensics Önemi
- Forensics Açısından Linux Dağıtımları Arasındaki Farklar
- Önemli log Dosyaları
- Linux tabanlı genel aritfackler
- Linux Dosya Sistemin Yapısı
- Önemli Dizinler ve Dosyalar
- Kullanıcı etkinliklerinin izlenmesi
- Disk İmajı Alma
- Linux Live Forensics
- Linux sistemlerde triyaj toplama
Linux Nedir
1991 Yılında Linus Torvalds tarafından geliştirilmiş açık kaynaklı, özgür yazılım felsefesini benimsemiş işletim sistem çekirdek dağıtımıdır. Linux özelliklerini ve çalışma prensiplerini anlayarak, forensics süreçlerini sistemin nasıl izlenip analiz edileceğini öğrenmek çok önemlidir. Linux sistemler Ext4, Btrgs, XFS dosya sistemlerine sahiptir.
Linux dağıtımların ana özellikleri;
- Açık kaynak koduna sahip olması. Bu sayede herkes kodlara erişebilir ve değiştirebilir.
- Linux, çekirdek (kernel) ve kullanıcı alanı (user space) olarak iki temel kısımdan oluşur. Çekirdek, donanım ve yazılım arasında köprü görevi görür.
- Çoklu kullanıcı ve görev sağlar. Aynı anda birden fazla kullanıcının sisteme erişebilmesini ve birden fazla işlemin (process) çalışmasını destekler.
- Dosya sistem hiyerarşisine sahiptir. Linux dosya sistemi, kök (root) dizin “/” ile başlayan hiyerarşik bir yapıya sahiptir. Dosyalar ve dizinler organize bir şekilde düzenlenmiştir.
- Linux bir işletim sistemi çekirdeği olduğundan optimize edilmiş birçok dağıtım içerisinde barındırır. (Ubuntu, CentOS, Debian …)
Linux genellikle Unix sistemler ile karıştırılmaktadır. Birbirine benzer yapı taşları üzerinde gelişmiş olsalar da temel farklar taşır. UNIX 1960 yılında AT&T’nin Bell Laboratuvarı’nda ticari amaçlarla geliştirilmiş kapalı kaynaklı bir işletim sistemidir ve genellikle büyük kurumsal sistemlerde kullanılır. Linux, UNIX tasarım prensiplerinden ilham almıştır. UNIX sistemler genellikle belirli donanımlarla özelleştirilmiş ve lisanslı sistemler sunmaktadır. UNIX sistemler daha çok kritik görev sistemlerinde tercih edilmektedir.
Popüler Linux Server Dağıtımlar:
Linux dağıtımları, kararlılık, güvenlik ve performans gibi faktörler göz önüne alınarak tercih edilmektedir. Server Ortamlarında yaygın olarak kullanılan popüler Linux dağıtımları şu şekildedir;
| Taban | Açıklama | Örnek Dağıtımlar |
| Debian Tabanlı | Geniş topluluk desteği, kararlı ve kullanıcı dostu. | Ubuntu, Kali Linux, Linux Mint, Parrot OS, Pop!_OS |
| RHEL Tabanlı | Kurumsal kullanımda güvenilir ve desteklenebilir yapı. | CentOS, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux |
| Arch Linux Tabanlı | Minimalist, özelleştirilebilir, rolling release modeliyle sürekli güncel. | Manjaro, ArcoLinux, Garuda Linux, EndeavourOS |
| SUSE Tabanlı | Kurumsal odaklı, ticari çözümler ve SAP için optimize edilmiş. | openSUSE Leap, openSUSE Tumbleweed |
| Slackware Tabanlı | Basitlik ve minimalizm, eski bir Linux dağıtımı temeli. | Salix OS, Zenwalk, Slackel |
| Gentoo Tabanlı | Kaynak kod tabanlı, yüksek özelleştirme imkânı sağlar. | Sabayon Linux, Calculate Linux |
| Independent | Herhangi bir dağıtımdan türetilmemiş, sıfırdan geliştirilmiş. | Void Linux, Solus, NixOS, Clear Linux |
| Android Tabanlı | Mobil cihazlar için Linux çekirdeği tabanlı dağıtımlar. | LineageOS, Replicant |
| Chromium OS Tabanlı | Hafif, bulut odaklı, Google Chrome OS’un açık kaynaklı sürümü. | Chromium OS |
| Gaming (Oyun) | Oyun platformları için optimize edilmiş Linux dağıtımları. | SteamOS |
| Privacy-Focused | Gizlilik ve anonimlik için geliştirilmiş özel dağıtımlar. | Tails |
Bu Linux dağıtımlarına benzer çok fazla dağıtımlar ile karşılaşılabilir. Fakat bu dağıtımlar dünya üzerinde en yaygın server Linux işletim sistemine sahip işletim sistemleridir. Debian ve Ubuntu Server, genellikle Avrupa’da tercih edilirken, CentOS, RHEL ve türevleri, Kuzey Amerika’da popülerdir. Amazon Linux, AWS müşterileri arasında yaygındır. SLES, özellikle SAP HANA kullanan şirketlerde öne çıkar.
Bu dağıtımlar, sunucu ortamında iş yüküne, işletim politikalarına ve destek ihtiyaçlarına göre tercih edilmektedir.
Linux Sistemlerin Yapısı
Linux Sistemlerin yapısı; Kernel (Çekirdek), Kullanıcı Alanı (User Space), Servisler (Services) olmak üzere üç ana bileşenden oluşur. Bu bileşenler, Linux işletim sisteminin doğru şekilde çalışmasını sağlar ve her biri belirli bir işlevi yerine getirir.
Kernel (Çekirdek): çekirdek, donanım ile yazılım arasındaki etkileşimi yönetir ve sistemin en alt seviyesindeki işlemleri kontrol eder. Çekirdek, tüm sistemin stabil çalışmasını sağlayan kritik bir katmandır.
- Donanım ile iletişim: kernel, sistemin donanım bileşenleriyle (işlemci, RAM, diskler, ağ cihazları vb.) doğrudan iletişim kurar.
- Proses yönetimi: çekirdek, çalışan uygulamaları ve prosesleri yönetir. Bu proseslerin zamanlaması ve işleme öncelikleri de kernel tarafından belirlenir.
- Bellek yönetimi: kernel, sistemi kullanan programların belleği etkin bir şekilde kullanmasını sağlar. Ayrıca, bellek sızıntılarını önler ve bellek ayırma işlemleri yapar.
- Ağ yönetimi: kernel, sistemi kullanan programların belleği etkin bir şekilde kullanmasını sağlar. Ayrıca, bellek sızıntılarını önler ve bellek ayırma işlemleri yapar.
- Ağ yönetimi: çekirdek, ağ protokollerini yönetir ve ağ üzerinden veri iletimi işlemlerini gerçekleştirir.
- Dosya sistemi yönetimi: dosya sistemlerinin yönetilmesi, veri okuma ve yazma işlemleri, dosya erişim izinlerinin kontrolü kernel tarafından yapılır.
- Sistem çağırıları: kullanıcı alanındaki programlar, kernel ile etkileşime girmek için sistem çağrılarını (syscalls) kullanır. Örneğin, dosya okuma ve yazma işlemleri kernel tarafından yönetilir.
Kullanıcı Alanı (User Space): Kullanıcı alanı, sistemin kullanıcı tarafından etkileşimde bulunan kısmıdır. Kernel dışında kalan tüm uygulamalar ve hizmetler bu alanda çalışır. Kullanıcı alanındaki yazılımlar, kernel ile etkileşim için sistem çağrılarını kullanır.
- Uygulama programları: Linux işletim sisteminde çalışan kullanıcı uygulamaları, masaüstü programları, sunucu yazılımları ve komut satırı araçları bu alanda yer alır. Bu programları genellikle bir kullanıcı tarafından başlatılır ve kernel ile etkileşime girmek için API’ler kullanır.
- Kütüphaneler ve sistem yazılımları: kullanıcı alanındaki yazılımlar genellikle C kütüphaneleri (glibc gibi) sistem kütüphanelerini kullanarak kernel ile iletişim kurar.
- Terminal ve komut satırı: kullanıcılar, terminal veya komut satırı arayüzü aracılığıyla kernel’e ile etkileşimde bulunabilir. Bu etkileşim, komutları kullanıcı alanındaki uygulamalar aracılığıyla kernel’e iletilmekten ibarettir.
- Çalışsan prosesler: kullanıcı alanındaki uygulamalar, çalışan proseslerdir. Bu prosesler kernel tarafından yönetilen kaynakları kullanarak işlevselik sağlar.
Servisler (Services): Servisler, Linux sisteminde çalışan ve genellikle arka planda sürekli aktif olan programlardır. Bu servisler, sistemin çeşitli işlevlerini yerine getirir ve genellikle daemons (arka plan işlemleri) olarak adlandırılır.
- Systemd: modern Linux dağıtımlarının çoğu, sistem başlatıldığında hizmetleri yönetmek için systemd’yi kullanır. Bu hizmet, sistemin başlatılması sırasında gerekli olan tüm servisleri başlatır ve izler.
- Network Services: ağ ile ilgili servisler, DNS, DHCP, Apacahe (web sunucusu), FTP ve daha fazlası gibi ağ protokollerini sağlayan hizmetlerdir.
- Veritabanı Servisleri: MySQL, PostfreSQL gibi veritabanı sistemleri, Linux sistemlerinde hizmetler olarak çalışır.
- Güvenlik Servisleri: SELinux, AppArmor gibi güvenlik modülleri, servisler olarak kernel’e ek güvenlik sağlamak için çalışır.
- Log Servisleri: ryslog veya journald gibi log yönetim servisleri, sistemdeki olayları kaydeder.
Linux Sistemi Yapısının Etkileşimi:
- Kernel ve Kullanıcı Alanı: kullanıcı alanındaki yazılımlar, kernel ile etkileşimde bulunak için sistem çağırılarını (syscalls) kullanır. Bu etkileşim, uygulamaların donanım kaynaklarına erişmesini sağlar. Kernel, bu sistem çağrılarını işler ve geri döner.
- Kernel ve servisler: kernel, arka planda çalışan servislerin her birini yönetir ve bu servislerin sistem kaynaklarına erişmesini sağlar. Örneğin bir ağ servisi başlatıldığında kernel bu servisin ağ arabirimiyle iletişim kurmasını sağlar.
- Kullanıcı alanı ve servisler: kullanıcı alanındaki prosesler olarak başlar ve çalışırlar. Kullanıcılar tarafından başlatılan uygulamalar bu servislerle etkileşime girer. Örneğin bir web tarayıcısı, Apacahe servisi üzerinden bir web sayfasına erişebilir.
Linux işletim sistemi, kernel, kullanıcı alanı ve servisler arasında sıkı bir iş birliği ile çalışır. Kernel, sistemin temel işlevlerini yönetirken, kullanıcı alanı ve servisler, uygulama düzeyindeki işlevselliği sağlar. Bu yapı, Linux’un verimli, güvenli ve esnek bir işletim sistemi olmasına olanak tanır.
Linux Forensics Nedir?
Linux forensics, bir Linux tabanlı sistemde yapılan dijital adli bilişim (forensics) analizidir. Bu süreç bir Linux işletim sistemi üzerinde gerçekleştirilen suç teşkil eden ya da siber saldırı faaliyetleri tespit etmek, bu faaliyetlerin izlerini incelemek ve bu bulguları raporlamak için yapılan çalışmaları kapsar. Linux sistemler, genellikle web sitelerinden bulut hizmetlerine kadar dünya çapında birçok kritik sistemin omurgasıdır. Güvenilirliği, güvenliği ve performansı onu bilgi işlem ortamları için tercih edilen bir seçenek haline getirir. Ancak, bu önemi onu siber saldırılar için de birincil hedef haline getirir.
Trend Micro’nun “Linux Threat Report 2021 1H: Bulutta Linux Tehditleri ve Güvenlik Önerileri” başlıklı raporu, 2021’in ilk yarısında Linux tabanlı bulut ortamlarını hedef alan siber tehditleri ve güvenlik önerilerini ele almaktadır. Rapora göre, bu dönemde Linux sistemlerine yönelik 13 milyondan fazla malware yazılım etkinliği tespit edilmiştir. Bu saldırıların büyük bir kısmı, kullanımı sona ermiş Linux dağıtımlarını çalıştıran sistemlerden kaynaklanmıştır; örneğin, tespitlerin yaklaşık %44’ü CentOS 7.4 ile 7.9 sürümlerinden gelmiştir. (https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/linux-threat-report-2021-1h-linux-threats-in-the-cloud-and-security-recommendations)
Raporda öne çıkan tehdit türleri arasında fidye yazılımları, kripto madencileri, rootkit’ler, scriptler ve web shell’ler bulunmaktadır. Özellikle, “Coinminer.Linux.MALXMR.SMDSL64” ve “Coinminer.Linux.MALXMR.PUWELQ” gibi kripto madencileri ile Backdoor.PHP.WEBSHELL.SBJKRW ve Backdoor.PHP.WEBSHELL.SMMR gibi web shell’ler en yaygın tespit edilen malware aileleridir. Ayrıca, rapor, Apache Struts2 ve Drupal Core gibi popüler uygulamalarda bulunan ve aktif olarak istismar edilen 200 farklı güvenlik açığını vurgulamaktadır. Bu durum, saldırganların güncellenmemiş yazılımlardaki yamalanmamış güvenlik açıklarından yararlandığını göstermektedir.
Bundan dolayı gerçekleşebilecek herhangi bir vakanın daha doğru aydınlatılabilmesi ve ana neden olarak adlandırdığımız root cause bulmamız için Linux Forensics temellerine ihtiyaç duymaktayız.
Güvenliği sürdürmek için gelişen tehditlere karşı dikkatli olmak esastır. Bir güvenlik ihlalinde bu sistemlerin, ne, ne zaman, nasıl, kim gibi önleyici tedbirleri almak adına forensics çalışmaları sağlanmalıdır. Linux sistemlerinde yapılan forensics analizleri, windows forensics’ten farklıklar gösterebilir çünkü Linux sistemler farklı dosya sistemleri kullanır ve çeşitli güvenlik yapılandırmalarına sahiptir. Daha detaylı farkları görmek Windows Forensics vs Linux Forensics isimli yazıma göz atabilirsiniz.
Linux Forensics’in öne çıkan Zorlukları:
- Farklı Linux tabanlı işletim sistemleriyle karşılaşılabilir. Bu durum her tabana göre bazı farklılıklar gösterebilir.
- Farklı Dosya Sistemleri: Linux, farklı dosya sistemlerini destekler (ext4, XFS, Btrfs) her dosya sisteminin kendine özgü özellikleri ve analiz yöntemleri bulunur.
- Hızlı veri yazma: Linux sistemlerinde zaman içinde çok fazla verinin yazılması geçmiş verilere ulaşmayı zorlaştırabilir.
- Gelişmiş güvenlik sistemleri: SELinux, AppArmor gibi güvenlik mekanizmaları, sistemdeki olayları daha karmaşık hale getirebilir.
Linux tabanlarının forensics (adli bilişim) açısından karşılaştırmasını içeren tabloyu bulabilirsiniz. Tablo, her tabanın adli bilişim analizinde sunduğu avantajlar, zorluklar ve araç desteği gibi temel farklılıkları içerir:
| Taban | Forensics Avantajları | Zorluklar | Araç Desteği |
| Debian Tabanlı | – Geniş topluluk desteği sayesinde çok sayıda belge ve rehber bulunabilir. | – Paket yönetiminde bağımlılıklar bazen karmaşıklaşabilir. | – Autopsy, Volatility, TSK gibi araçlar varsayılan olarak çalışır. |
| – Forensics araçları (ör. Autopsy, Sleuth Kit) için hazır depolar. | – Varsayılan loglama eksikliği olabilir. | ||
| RHEL Tabanlı | – Kurumsal odaklı, güvenilir ve düzenli loglama. | – Özelleştirme ihtiyacında zorluklar yaşanabilir. | – Auditd, SELinux logları forensics analizde büyük fayda sağlar. |
| – SELinux ve auditd gibi güçlü güvenlik araçları mevcut. | – Özel yazılım lisanslaması gerekebilir. | ||
| Arch Linux Tabanlı | – Minimalist yapı sayesinde sistem analizi daha kolaydır. | – Belgelendirme eksiklikleri ve topluluk desteğinin göreceli olarak az olması. | – Herhangi bir aracı hızlıca derleyerek özelleştirebilme imkanı sağlar. |
| – Rolling release ile güncel araçlara erişim. | |||
| SUSE Tabanlı | – Ticari destek ile güçlü loglama ve sistem izleme yetenekleri. | – Daha az topluluk desteği ve forensics araçlarının sınırlı entegrasyonu. | – openSUSE araçları, audit ve log izleme açısından güçlüdür. |
| – SAP gibi uygulamalar için özelleştirilmiş forensics rehberleri. | |||
| Slackware Tabanlı | – Minimalist yapı sayesinde olay analizi sırasında sistem yükü azdır. | – Varsayılan araç desteği sınırlıdır. | – Manuel forensics araçları ve log analiz yöntemleri ile çalışılabilir. |
| – Geleneksel yapı nedeniyle adli incelemelerde manuel kontroller daha kolaydır. | – Topluluk desteği ve dökümantasyon eksikliği. | ||
| Gentoo Tabanlı | – Yüksek özelleştirme sayesinde forensics araçları optimize edilebilir. | – İnceleme ve analiz süreçleri uzun sürebilir. | – Volatility, TSK ve diğer kaynak tabanlı araçların özelleştirilmesi kolaydır. |
| – Kaynak kod tabanlı analizlerde esneklik sağlar. | – Sistem konfigürasyonu karmaşıktır. | ||
| Independent | – Dağıtım bağımsızlığı sayesinde tamamen özgün forensics yöntemleri uygulanabilir. | – Özel araçlar ve topluluk desteği sınırlı olabilir. | – Void Linux ve Solus, basit loglama sistemleriyle hızlı analiz yapılmasına olanak sağlar. |
| – Belgelendirme eksiklikleri mevcut. | |||
| Android Tabanlı | – Mobil cihaz forensics incelemeleri için özelleştirilmiş araçlar (ör. Cellebrite) uygundur. | – Linux tabanına rağmen mobil cihazlara özel sistem farklılıkları ve korumaları mevcut. | – Mobil forensics araçları, LineageOS gibi sistemlerle iyi çalışır. |
Farklı Linux tabanlı dağıtımlar için forensics işlemleri açısından karşılaşabileceğiniz farklılıkları özetleyen bir tabloyu sunuyorum:
| Kriter | Debian Tabanlı | RHEL/CentOS Tabanlı | Arch Linux | SUSE/openSUSE | Gentoo Tabanlı | Slackware Tabanlı | Void Linux |
| Dosya Sistemi Türü | ext4 (varsayılan) | XFS (varsayılan) | ext4 veya kullanıcı seçimi | Btrfs veya XFS (varsayılan) | ext4, XFS veya btrfs | ext4 (varsayılan) | ext4 (varsayılan) |
| Log Konumları | /var/log/ | /var/log/ + /var/log/audit/ | /var/log/ | /var/log/ ve journald | /var/log/ | /var/log/ | /var/log/ |
| Varsayılan Güvenlik | AppArmor | SELinux | Yok (kullanıcı ekler) | AppArmor veya SELinux | SELinux veya kullanıcı eklemeli | Yok (kullanıcı ekler) | Runit ve musl libc |
| Paket Yönetimi | APT | YUM/DNF | Pacman | Zypper | Portage | Slackpkg | XBPS |
| Güncelleme Döngüsü | Point release (kararlı) | Point release (kararlı) | Rolling release (güncel) | Rolling veya kararlı | Rolling release (güncel) | Point release (kararlı) | Rolling release (güncel) |
| Araç Uyumluluğu | Geniş depo desteği, araçlar kolay | Kararlı ve güvenilir araç çalıştırma | En güncel araçlar | SAP uyumlu ticari araçlar | Geniş araç uyumluluğu | Sınırlı araç uyumluluğu | Geniş araç uyumluluğu |
| Topluluk Desteği | Çok geniş ve aktif | Kurumsal destek sağlanabilir | Geliştirici odaklı | Orta | Geniş ve aktif | Sınırlı, eski bir topluluk | Küçük topluluk |
| Performans | Orta-Yüksek | Çok yüksek | Yüksek | Yüksek | Yüksek | Orta | Yüksek |
| Kullanıcı ve Grup | İlk kullanıcı sudo grubunda | Root erişimi sıkı denetimlidir | Root ve kullanıcı seçimi | Root erişimi denetimli | Root erişimi ve özelleştirilmiş | Root erişimi sıkı denetimlidir | Kullanıcı ve root erişimi |
| Journaling | rsyslog | rsyslog veya journald | journald | journald | rsyslog veya journald | syslog | Runit |
| Özelleştirme | Orta | Sınırlı | Çok yüksek | Orta | Çok yüksek | Yüksek | Orta |
- Dosya Sistemi Türü: Her bir dağıtımda kullanılan varsayılan dosya sistemi, performansı ve dosya yönetimi üzerinde farklı etkiler yaratabilir.
- Log Konumları: Log dosyalarının konumları, forensics analizinde sistemin izlenmesini ve analiz edilmesini etkiler.
- Varsayılan Güvenlik: Güvenlik sistemleri, Linux dağıtımlarında kullanıcıların izinlerini ve erişim denetimlerini yönetir. Bu, forensics incelemelerinde önemli bir faktördür.
- Paket Yönetimi: Paket yöneticisi, forensics araçlarının yüklenmesi ve sistemin yönetimi açısından farklılıklar yaratabilir.
- Güncelleme Döngüsü: Güncellemeler, sistemdeki güvenlik açıklarını ve hataları gidermek için önemli olabilir. Rolling release dağıtımları, en güncel araçları sağlar, ancak stabiliteyi etkileyebilir.
- Araç Uyumluluğu: Forensics araçlarının dağıtımlar ile uyumluluğu, adli inceleme süreçlerinde önemli bir faktördür.
- Topluluk Desteği: Geniş topluluklar daha fazla kaynak, rehber ve forum desteği sağlar. Bu, çözüm bulmayı kolaylaştırır.
- Performans: Yüksek performans, forensics araçlarının daha hızlı çalışmasına olanak tanır, ancak bazı dağıtımlar daha fazla kaynak gerektirir.
- Kullanıcı ve Grup: Kullanıcı ve grup yönetimi, root erişimi ve denetimleri adli analizlerin doğruluğu açısından önemlidir.
- Journaling: Log yönetim sistemi, olayların izlenmesi ve incelemesi için önemlidir.
Bu tür zorluklarla karşılaşılabilir.
Linux Sistemlerde Bulgular
Bir Linux sisteminde gerçekleşen siber saldırının root cause (kök nedeni) tespit edilesi için aşağıdaki adımları ve incelecek alanları değerlendirebiliriz. Bu süreç, sistemin farklı katmanlarında logları izleme, incelemeyi ve anormal aktiviteleri belirlemeyi içerir.
Genel Linux Forensics’in Temel Bileşenleri şu şekildedir;
- Sistem İncelemesi:
Sistem yapılandırmaları, kullanıcı hesapları, dosya izinleri ve grup ayarları gözden geçirilir.
Ubuntu/Debian, CentOS/RHEL, Arch Linux, SUSE/openSUSE tabanlı sistemlerde;
- /etc/passwd: Sistemdeki tüm kullanıcıların bilgilerini içerir. (Kullanıcı adı, UID, GID, ev dizini, login shell gibi bilgiler).
- /etc/shadow: Kullanıcıların hashlenmiş parolalarını saklar. Yalnızca root yetkisiyle erişilebilir.
- /etc/group: Sistem gruplarını ve grup üyeliklerini içerir.
Dosyaları analiz edilir.
ls -l /etc/passwd /etc/shadow /etc/group
dosyalarının yetkisiz değişikliklere uğrayıp uğramadığını doğrulamak için komut kullanılır.
- Normal şartlarda shadow dosyasının sadece root tarafından erişilebilir olması gerekir.
- Şüpheli izinler ve değişiklikler araştırılmalıdır.
stat /etc/passwd /etc/shadow /etc/group
- Dosyaların ne zaman değiştirildiğini kontrol etmek için kullanılır.
- shadow dosyasındaki hashlenmiş parolalar saldırganlar tarafından ele geçirilmişse, saldırıyı analiz etmek için hashleri incelemek önemlidir.
- Dosya Sistemi Analizi:
Sistemdeki dosya sistemi türleri (örneğin ext4, XFS, Btrfs) ve bu dosya sistemleri üzerinde yapılan değişiklikler incelenir. Silinmiş dosyaların kurtarılması, gizli dosyaların tespiti ve dosya bütünlüğü kontrolleri yapılır.
- Log Analizi:
/var/log/ dizininde yer alan log dosyaları, şüpheli etkinliklerin izini sürmek için dikkatlice incelenir. Bu loglar, sistem olaylarını, uygulama hatalarını, güvenlik uyarılarını ve kullanıcı girişlerini içerir. syslog, auth.log, dmesg gibi log dosyaları, sisteme girişler, yetkisiz erişimler veya hatalı işlem girişimleri için analiz edilir.
- Servisler ve Çalışan Prosesler:
Sistemdeki çalışan hizmetler ve süreçler, şüpheli yazılımlar veya kötü niyetli hizmetlerin varlığını tespit etmek amacıyla analiz edilir. ps, top, systemctl komutları kullanılarak süreçler izlenir. Bu tür analizler, güvenlik ihlali sonrası delil toplamak, saldırganın hareketlerini izlemek ve olayın etkilerini anlamak için kritik öneme sahiptir.
Linux Sistemlerde Analiz Esnasında Dikkat Edilecek Genel Hususlar
Bu liste, dağıtım farkları gözetilerek forensics süreçlerine yön verecek şekilde hazırlanmıştır. Sisteme özel araçlarla detaylı incelemeler yapılabilir.
- Dosya Bütünlüğü Kontrolü:
- Sistem dosyalarının hash değerleri karşılaştırılmalı (örn.
sha256sum,md5sum).
- Binary dosyalarda beklenmeyen değişiklikler aranmalı.
- Sistem dosyalarının hash değerleri karşılaştırılmalı (örn.
- Zaman Bilgileri:
- Dosya zaman bilgileri (
MAC Times) incelenmeli: Erişim, değiştirme ve durum değişikliği tarihlerindeki tutarsızlıklar kontrol edilmeli.
- Dosya zaman bilgileri (
- Yetkisiz Değişiklikler:
/etcaltındaki yapılandırma dosyaları değiştirilmiş mi incelenmeli.
- Kullanıcı oluşturma ve root yetkisi veren yapılandırmalara dikkat edilmeli.
- Log Analizi:
- Şüpheli IP adresleri, başarısız oturum açma girişimleri ve beklenmeyen process çalıştırmaları aranmalı.
- Log dosyalarının silinmiş veya değiştirilmiş olup olmadığı kontrol edilmeli.
- Geçici Dosyalar:
/tmp,/var/tmpgibi dizinlerde saldırganların kullandığı exploit veya scriptler aranmalı.
- Sistem Bileşenleri:
- Çekirdek modülleri (
/lib/modules/) incelenmeli.
- Şüpheli yüklemeler ve izinsiz değişiklikler araştırılmalı.
- Çekirdek modülleri (
- Yetkisiz Değişiklikler:
- .bashrc ve .bash_history gibi dosyalarda yetkisiz değişiklikler aranmalıdır. Özellikle ortam değişkenlerinde (örneğin
PATH,LD_PRELOADgibi) yapılan değişiklikler, saldırganların kötü amaçlı yazılımlar yüklemek için kullandığı yaygın bir tekniktir.
- Kullanıcıların
~/.bashrcdosyasını değiştirmeleri, özellikle kök erişim kazanmayı amaçlayan saldırılarda dikkat edilmesi gereken bir durumdur.
- .bashrc ve .bash_history gibi dosyalarda yetkisiz değişiklikler aranmalıdır. Özellikle ortam değişkenlerinde (örneğin
- Şüpheli Komutlar:
- .bash_history dosyasındaki komut geçmişi incelenmelidir. Saldırganlar, komut geçmişini temizlemeye veya değiştirmeye çalışabilir. Ayrıca, geçmişte root yetkisiyle çalıştırılan komutlar veya şüpheli komutlar aranmalıdır.
- SSH Anahtarları:
- ~/.ssh/authorized_keys dosyasında, kullanıcının uzak erişimini sağlayan SSH anahtarları bulunur. Bu dosya, yetkisiz erişimi engellemek için dikkatlice incelenmelidir.
- Şüpheli veya bilinmeyen anahtarlar, saldırganlar tarafından kullanılmış olabilir. Ayrıca, bu dosyanın değiştirilip değiştirilmediği kontrol edilmelidir.
- SSH Bağlantıları:
- ~/.ssh/known_hosts dosyasındaki, daha önce bağlanılan sunucuların SSH anahtarları dikkate alınmalıdır. Bilinmeyen anahtarlar veya yeni eklenen sunucular, kötü niyetli bir bağlantı girişiminin belirtisi olabilir.
- ~/.ssh/config dosyasındaki bağlantı ayarları da kontrol edilmelidir. Proxy veya şüpheli uzak sunuculara yapılan yönlendirmeler, saldırganların kullandığı teknikler olabilir.
- Loglar ve Komut Geçmişi:
- /var/log/auth.log, /var/log/secure gibi log dosyalarında SSH ile yapılan bağlantılar ve oturum açma etkinlikleri incelenmelidir. Burada, şüpheli giriş denemeleri veya başarılı root erişimleri tespit edilebilir.
- ~/.bash_history dosyasındaki silinen komutlar veya dosya tarihleri değiştirilmiş komutlar, saldırganın komut geçmişini temizleme girişimini gösterebilir.
- Komut Temizliği: Kullanıcı komut geçmişi temizlenmiş veya değiştirilmişse, bu genellikle kötü amaçlı etkinlikleri gizlemeye çalışan bir saldırganın işaretidir. Komut geçmişini kaydeden başka sistem araçları kullanılabilir (örneğin, syslog).
- Anahtar ve Erişim Kontrolü: SSH anahtarlarının, özel anahtarlar yerine genel anahtarlar kullanılarak şüpheli bağlantıların engellenmesi sağlanabilir.
- Yetkisiz Konfigürasyon Değişiklikleri: .bashrc veya /etc/bash.bashrc gibi dosyaların değiştirilmesi, saldırganın yetkisiz şekilde ortamı değiştirmeye çalıştığının bir göstergesi olabilir.
- Ağ yapılandırma ayrıntılarına ve bağlantılarına bakın; anormal ayarlara, oturumlara veya bağlantı noktalarına dikkat edin.
- Ait olmayan veya devre dışı bırakılması gereken hesaplar için kullanıcı listesine bakın.
- Oraya ait olmayanlar için çalışan processler veya zamanlanmış processler listesine bakın.
- ARP ve DNS ayarlarını kontrol edin; oraya ait olmayan girdiler için ana bilgisayar dosyasının içeriğine bakın.
- Olağandışı dosyaları arayın ve işletim sistemi ve uygulama dosyalarının bütünlüğünü doğrulayın.
- Son zamanlarda bildirilen sorunları inceleyin,



