Linux Log Analizi
Sistem güvenliğinin ve olay müdahalesinin kritik bileşenlerinden biri olan log analizi, Linux forensics sürecinde önemli bir yer tutar. Bir saldırı sonrası veya güvenlik ihlali durumunda, sistem kayıtları (log dosyaları) olayın nasıl gerçekleştiğini, sistemde ne tür faaliyetlerin yapıldığını ve saldırganın izlerini nasıl bıraktığını ortaya çıkarma konusunda karar verici ipuçları sağlar. Bu blog yazısında Linux log analizinin temelleri, forensics sürecindeki yeri ve kullanılabilecek modern araçlar ele alınacaktır.
Linux forensics, Linux tabanlı sistemlerde meydana gelen güvenlik olaylarının, ihlallerin ve saldırıların analizini yapmak için kullanılan yöntemlerin bütününü ifade eder. Bu inceleme sürecinde, saldırı sonrası sistemde oluşan izler, kalıntılar ve kayıtlar detaylıca değerlendirilir. Çoğu durumda, saldırıların kaynağı, kullanılan teknikler ve saldırı sırasında sistemde yapılan değişiklikler log dosyaları aracılığıyla anlaşılır.
Forensics Sürecinde Logların Rolü
- Olay tespiti: Log dosyaları, anormal davranışları veya olağan dışı aktiviteleri kaydeder. Örneğin, olağan dışı giriş denemeleri, yanlış konfigürasyonlar, veya sistem bileşenlerinin beklenmedik şekilde kapanıp açılması gibi durumlar.
- İz sürme (Chain of Custody): Loglar, olayın tam zaman çizelgesini belirleyerek, saldırı sürecinde hangi işlemlerin gerçekleştirildiğini adım adım takip etme imkanı sağlar.
- Adli kanıt: Hukuki süreçlerde, log dosyaları saldırı kanıtı olarak kullanılabilir. Doğru şekilde toplanıp saklanan loglar, olayın sebebinin belirlenmesine yardımcı olabilir.
Linux Log Dosyalarının Genel Yapısı ve Türleri
Linux sistemlerinde logların tutulduğu dizin ve dosyalar genellikle /var/log altında yer alır. Ancak bu sadece bir konvansiyondur; loglar dosya sisteminin herhangi bir yerine yazılabilir ve farklı Unix benzeri işletim sistemlerinde başka konumlarda bulunabilir. Herhangi bir sistem olayı için ayrıntılı bilgi sunan log dosyaları, farklı sistem bileşenleri için özel olarak oluşturulmuştur. Loglar çoğunlukla metin formatındadır. Kolayca değiştirilebilir ve manipüle edilebilir. Log kaydı tutmak isteğe bağlıdır. Logların miktarı ve formatı geliştiricilere bağlıdır. Unix logları genellikle basit metin dosyalarıdır. Yönetici erişimi elde eden saldırganlar, bu log dosyalarını kolayca düzenleyebilir veya tamamen silebilir. Hatta saldırganlar, yaygın Linux ikili log formatlarını değiştirmek için özel araçlar geliştirmiştir. Bu nedenle, sistem loglarının korunmuş bir başka depolama alanına kopyalanması iyi bir güvenlik önlemidir. Linux’ta log kaydı isteğe bağlıdır; yazılım geliştiriciler hangi olayları loglayacaklarını ve hangi formatta kayıt tutacaklarını kendileri belirler. Bu durum, logların serbest formatta olmasından dolayı otomatik analiz süreçlerini zorlaştırabilir. Ayrıca, saldırganların kullandığı araçlar herhangi bir faydalı log kaydı bırakmayacaktır, çünkü böyle bir zorunlulukları yoktur.
Temel Log Dosyaları
Linux sistemlerinde olaylarla ilgili en değerli bilgi kaynaklarıdır. Aşağıdaki log dosyalarını kontrol edin:
Log Dosyası | Konumu | İçerik |
Syslog | /var/log/syslog veya /var/log/messages | Sistem genelindeki olaylar, kernel mesajları, servis uyarıları ve hata kayıtları. Sistem genelinde meydana gelen tüm aktivitelerin merkezi bir kaydı olarak değerlidir. Genel sistem olayları ve servis bilgileri. (Debian/Ubuntu: syslog, RHEL: messages) |
Authentication Logs | /var/log/auth.log veya /var/log/secure | Kullanıcıların en son giriş zamanlarını kontrol edilir. Yetkisiz veya şüpheli giriş denemelerini analiz edin. Kullanıcı giriş çıkışları, SSH girişimleri, yetkilendirme olayları. SSH başarısız giriş denemelerini ve yetkisiz bağlantıları kontrol edin. /var/log/auth.log veya /var/log/secure Sudo loglarını, kullanıcıların ayrıcalıklarıyla komutları yürütmesine izin veren sudo komutunun kullanımını izler. Bu loglar, komutu yürüten kullanıcı, yürütüldüğü zaman ve komutun kendisi hakkında ayrıntılar içerir. Kullanıcı doğrulama olayları, SSH giriş denemeleri, sudo kullanımı gibi güvenlik ile ilişkili aktiviteler. Sistem güvenliği açısından kritik; yetkisiz erişim girişimlerinin tespitinde önemli rol oynar. |
Kernel Logs | /var/log/kern.log | Kernel seviyesindeki olaylar ve hata mesajları. Donanım ve çekirdek hatalarını analiz etmek ve sistemin kararlılığını değerlendirmek açısından kullanılır. |
Audit Logs | /var/log/audit/audit.log | SELinux ve sistem çağrılarıyla ilgili detaylı olay kayıtları. |
Systemd Logs | journalctl komutu ile erişim | Systemd tarafından yönetilen servisler ve süreçlerin olay kayıtları. |
Cron Logs | /var/log/cron veya /var/log/syslog | Zamanlanmış görevler ve çalıştırılan komutlar. |
Boot Logs | /var/log/boot.log | Sistem açılış sürecindeki aktiviteler ve servis başlatma bilgileri. Sistem açılış hatalarının veya olağan dışı durumların tespiti için referans sağlar. |
Nginx | Access Logs: /var/log/nginx/access.log Error Logs: /var/log/nginx/error.log | |
Apache | Access Logs: /var/log/apache2/access.log Error Logs: /var/log/apache2/error.log | |
Databases MySQL | Error Logs: /var/log/mysql/error.log | |
Databases PostgreSQL: | Error and Activity Logs: /var/log/postgresql/postgresql-{version}-main.log | |
Web Applications PHP | Error Logs: /var/log/php/error.log | |
Firewall Logs | /var/log/ufw.log veya /var/log/iptables.log | Güvenlik duvarı olayları ve bağlantı denemeleri. netstat -tulnp veya ss -tuln komutlarıyla açık portları ve aktif bağlantıları izleyin. Şüpheli IP adreslerini ve portları kontrol edin. |
Web Server Logs | /var/log/httpd/ | Web sunucusuna yapılan istekler, hatalar ve erişimler. |
Samba (SMB) | Kayıt yapılandırması genellikle şu dosyada tanımlanır: » /etc/samba/smb.conf Kayıtların tutulduğu yer: » /var/log/samba/log.[hostname|IPadresi] | Samba, Linux/Unix sunucularının Windows tabanlı istemcilerle dosya, yazıcı ve diğer kaynakları paylaşmasına olanak tanımak için SMB protokolünü kullanır. Samba, çalışma sürecindeki önemli olayları (kullanıcı kimlik doğrulama girişimleri ve sunucu durum değişiklikleri gibi) kaydeder. |
Linux Tabanlarına Göre Önemli Log Dosyaların konumları;
Kategori | Log Dosyası | Ubuntu/Debian Tabanlı | RHEL/CentOS Tabanlı | Arch Linux | SUSE/openSUSE | İşlevi |
Yetkilendirme ve Güvenlik | /var/log/auth.log | Kullanılır | /var/log/secure | /var/log/auth.log | /var/log/secure | Yetkilendirme işlemleri, SSH giriş denemeleri ve kimlik doğrulama hataları bu dosyada saklanır. |
/var/log/faillog | Kullanılır | Kullanılır | Kullanılır | Kullanılır | Başarısız giriş denemelerinin kaydedildiği bir log dosyasıdır. | |
Sistem Olayları | /var/log/syslog | Kullanılır | /var/log/messages | /var/log/journal/ | /var/log/messages | Çeşitli sistem olaylarının genel loglarını içerir. Sistem çalışması ve hata ayıklama için önemlidir. |
/var/log/messages | Çoğu zaman kullanılmaz (syslog yerine) | Kullanılır | /var/log/messages | Kullanılır | Sistem hizmetlerinden gelen genel loglar ve olay kayıtlarını içerir. | |
Kernel Logları | /var/log/kern.log | Kullanılır | /var/log/messages | /var/log/journal/ | /var/log/messages | Kernel seviyesindeki olayların ve hataların kaydedildiği dosyadır. |
Systemd Logları | journalctl | Kullanılır (systemd tabanlıdır) | Kullanılır (systemd tabanlıdır) | Kullanılır | Kullanılır | Sistem loglarinin bir araya getirildiği bir araçtır. journalctl ile hem kullanıcı hem sistem loglarına kolayca erişilebilir. |
Ağ Aktiviteleri | /var/log/daemon.log | Kullanılır | /var/log/messages | /var/log/journal/ | /var/log/messages | Ağ servislerine ilişkin loglar içerir. Örneğin, DHCP, DNS veya proxy logları. |
/var/log/iptables.log | Kullanılır | Kullanılır | Kullanıcı tarafından eklenir | Kullanıcı tarafından eklenir | İptables firewall loglarını kaydetmek için kullanılan dosyadır. Firewall kurallarının izlendiği logları içerir. | |
Giriş ve Çıkış | /var/log/wtmp | Kullanılır | Kullanılır | Kullanılır | Kullanılır | Kullanıcı giriş/çıkış kayıtlarını saklar. last komutu ile bu dosya görüntülenebilir. |
/var/log/btmp | Kullanılır | Kullanılır | Kullanılır | Kullanılır | Başarısız giriş denemelerinin kaydedildiği dosyadır. lastb komutu ile analiz edilebilir. | |
Uygulama Logları | /var/log/apache2/ | Kullanılır (varsa Apache kurulumu) | /var/log/httpd/ | /var/log/apache2/ | /var/log/apache2/ | Web sunucusu loglarıdır. Hangi IP adreslerinin bağlandığı ve yapılan HTTP isteklerini analiz etmek için kullanılır. |
/var/log/mysql/ | Kullanılır (varsa MySQL kurulumu) | Kullanılır (varsa MySQL kurulumu) | Kullanılır (varsa MySQL kurulumu) | Kullanılır (varsa MySQL kurulumu) | Veritabanı erişim hataları ve işlem loglarını içerir. |
Tablodan kısaca özetle, Ubuntu/Debian Tabanlı sistemlerde loglar daha çok /var/log/syslog kullanılırken, yetkilendirme logları için /var/log/auth.log önemlidir. RHEL/CentOS Tabanlı sistemlerde /var/log/messages ve /var/log/secure dosyaları öne çıkar. Arch Linux sistemler daha esnek bir yapıdadır ve journalctl sıklıkla kullanılır. Log konumları, kullanıcı tercihlerine göre değişebilir. SUSE/openSUSE tabanlı sistemlerde ise journalctl ve /var/log/messages temel kaynaklardır.
Log Toplama ve Analiz Süreçleri
Log analizinin temel adımları, verilerin toplanması, normal aktivitelerin belirlenmesi ve sonrasında anormali tespitidir. İşte detaylı adımlar:
1. Log Verilerinin Toplanması
- Manuel Toplama: Geleneksel yöntemle, sistem yöneticileri belirli dosyaları kopyalayarak analiz eder. Bu yöntem zaman alıcı olabilir, ancak acil durumlarda hızlı müdahale için yeterli olabilir.
- Otomatik Toplama Araçları: Logwatch, OSSEC, Splunk gibi araçlar, log verilerini merkezi bir sunucuda toplayıp analiz edilmesi için depolar. Özellikle büyük ölçekli sistemlerde bu araçlar kritik önem taşır.
- Log Rotasyonu: Log dosyalarının boyutunu yönetmek ve arşivlemek için logrotate gibi araçlar kullanılır. Bu araçlar sayesinde eski log dosyalarına erişim sağlanır, olayların zaman içindeki değişimi daha net gözlemlenebilir.
2. Log Analizi Teknikleri
- Manuel İnceleme: Komut satırı araçları (grep, awk, sed) kullanılarak log dosyalarının belirli kalıplar açısından incelenmesi. Örneğin, belirli bir tarih aralığındaki giriş denemeleri veya hata mesajları filtrelenebilir.
- Otomatik Uyarılar: Sistem davranışında ani artışlar veya şüpheli aktiviteler gözlemlendiğinde, otomatik olarak uyarı veren log analiz sistemleri kullanılır.
- Zaman Serisi Analizi: Log verilerinin zamana göre dağılımını inceleyerek, saldırı anı veya olayın başladığı zamanı kesin olarak tespit etmek.
- Anormallik Tespiti: Normalde sistemde olup biten olayların dışındaki aktiviteler, kritik güvenlik ihlallerinin veya saldırı girişimlerinin belirlenmesinde kullanılır. Makine öğrenmesi tabanlı yöntemler, anormallik tespitinde yeni bir yaklaşım olarak öne çıkmaktadır.
3. Sorgulama ve Raporlama
- Sorgulama Dilleri: Log verilerinin daha sistematik analizinde SQL benzeri sorgulama dilleri veya ElasticSearch gibi araçlar kullanılır.
- Rapor Oluşturma: Toplanan ve analiz edilen verilerin grafikler ve tablolar ile görselleştirilmesi, olayın kronolojik sırası ve etkilerini daha kolay değerlendirmeyi sağlar.
- Olay Müdahale Süreci: Analiz sonuçlarına dayanarak, anında müdahale planları oluşturulur. Bu aşamada, saldırının kaynağı, kullanılan yöntemler ve izlenmesi gereken adımlar netleştirilir.
Örnek Bir Vaka İncelemesi
Senaryo: SSH Brute-Force Saldırısı
Olayın Tespiti:
- Sistem yöneticileri, /var/log/auth.log dosyasında olağan dışı çok sayıda başarısız SSH giriş denemesi tespit eder.
- Grep komutu ile “Failed password” içeren satırlar filtrelenir.
Analiz Adımları:
- Kronolojik sıralama: Log kayıtlarının tarih ve saat bilgileri incelenir. Saldırının hangi zaman diliminde yoğunlaştığı belirlenir.
- IP Adresi İzleme: Başarısız denemelerin geldiği IP adresleri listelenir. Birçok farklı IP’den gelen denemelerin ortak noktaları araştırılır.
- Coğrafi Analiz: IP adreslerinin hangi ülkelerden geldiği tespit edilerek, saldırganın potansiyel lokasyonu hakkında ipuçları elde edilir.
- Otomatik Engelleme: Uygulanabilir durumlarda, saldırı girişiminde bulunan IP adresleri sistemden geçici olarak engellenir (fail2ban gibi araçlar ile).
Sonuç ve Rapor:
- Saldırı kaynağı, büyük ihtimalle botnet’ler kullanılarak gerçekleştirilen otomatik brute-force saldırısıdır.
- Olay raporu, saldırı detaylarını, kullanılan IP’leri, saldırının zaman çizelgesini ve uygulanan müdahale adımlarını kapsamlı bir şekilde belgeleyen bir rapor haline getirilir.
Kullanılan Araçlar ve Teknolojiler
Linux log analizi sürecinde pek çok araç ve teknoloji kullanılır. İşte bunlardan bazıları:
- Logwatch: Sistem loglarını özetleyerek günlük raporlar sunar. Basit kullanım yapısıyla, geniş sistemlerin günlük aktivitelerini gözden geçirmek için idealdir.
- OSSEC: Açık kaynaklı güvenlik izleme aracı olarak, sistem loglarını merkezi bir sunucuda toplayıp korelasyon yaparak olay müdahalesini kolaylaştırır.
- Splunk: Geniş veri kümelerinin gerçek zamanlı analizinde güçlü bir araçtır. Büyük ölçekli sistemlerin log yönetimi ve analizi için tercih edilir.
- ELK Stack (Elasticsearch, Logstash, Kibana): Logların toplanması, işlenmesi ve görselleştirilmesi için kurumsal düzeyde kullanılan bir çözüm sunar. Özellikle log verilerinin zaman serisi analizi için esnek raporlama olanakları sağlar.
- Fail2ban: Güvenlik ihlali durumlarında, belirli IP adreslerine karşı otomatik önlemler alınmasını sağlayan bir araçtır. Özellikle SSH gibi servislerde brute-force saldırılara karşı etkili müdahaleler sunar.
Analiz Sonuçlarının Değerlendirilmesi ve Raporlama
İstatistiksel Analiz
Log verilerinin istatistiksel dağılımı, anormal yoğunluk noktalarının belirlenmesinde yardımcı olur. Örneğin, belirli saat dilimlerinde ani artış varsa, bu durum saldırının yoğunlaştığı zaman dilimini işaret edebilir.
Raporlama ve Görselleştirme
Analiz sonuçlarının grafiksel raporları, yöneticilere anlaşılması kolay ve eyleme geçilebilir bilgiler sunar. Matplotlib, Grafana gibi araçlar kullanılarak, log verileri üzerinden zaman serileri, histogramlar veya ısı haritaları oluşturulabilir.
Güvenlik ve Hukuki Boyutlar
Linux forensics sürecinde, logların manipülasyona uğraması veya silinmesi gibi sorunlar yaşanabilir. Bu nedenle, logların güvenli bir şekilde arşivlenmesi, erişim kontrollerinin sıkılaştırılması ve olay sonrası adli kanıt olarak kullanılabilmesi için verilerin bütünlüğünün korunması kritik öneme sahiptir.
- Zincirleme Delil (Chain of Custody): Log dosyalarının toplanması, depolanması ve aktarılması süreçlerinde yetkisiz müdahaleyi önlemek için sıkı prosedürler uygulanmalıdır.
- Şifreleme ve İmzalama: Log verilerinin manipülasyonunun önlenmesi için, dijital imza ve şifreleme yöntemleri kullanılabilir. Bu yöntemler, verilerin kaynağının doğrulanmasına ve güvenliğinin sağlanmasına yardımcı olur.
Sonuç
Linux log analizi, sistem güvenliği ve olay müdahalesi açısından vazgeçilmez bir süreçtir. Log dosyalarının doğru ve etkili bir şekilde toplanması, analiz edilmesi ve raporlanması; saldırıların izinin sürülmesi, ihlallerin tespit edilmesi ve adli süreçlerde kanıt oluşturulması açısından kritik rol oynar. Gelişen teknoloji ile birlikte, otomatik analiz araçlarının ve yapay zeka tabanlı anormallik tespiti yöntemlerinin kullanılması, Linux forensics alanında güvenlik süreçlerini daha etkin hale getirmiştir.
Sistem yöneticileri ve güvenlik uzmanları, Linux forensics sürecinde log analizi konusunda sürekli olarak bilgi ve becerilerini güncellemeli; olaylar karşısında hızlı ve etkili müdahale stratejileri oluşturmalıdır. Böylece hem sistem güvenliği sağlanır hem de olası saldırı durumlarında iz süreci kesintisiz ve güvenilir bir şekilde yönetilebilir.
Bu yazıda, Linux forensics çerçevesinde log analizinin neden kritik olduğu, hangi log dosyalarının hangi durumlarda değerlendirildiği, analiz süreçlerinin nasıl işlediği ve kullanılan araçların neler olduğu detaylı bir şekilde ele alındı. Güvenlik alanında yetkin kalabilmek için, güncel teknolojileri takip etmek, sistem loglarının düzenli arşivlenmesini sağlamak ve olay sonrası raporlamada titiz olmak gerekmektedir.
Linux log analizi, sadece teknik bir süreç olmaktan öte, sistemde meydana gelen olayların arkasındaki nedenleri anlamaya yönelik bütünsel bir yaklaşım gerektirir. Bu kapsamda hem otomatik araçların sunduğu imkanlardan faydalanmak hem de manuel analiz ve adli bilişim prensiplerine hakim olmak, güvenliğin sağlanması açısından temel taşlar arasında yer alır.