CyberFlow Logo CyberFlow BLOG
Soc L1 Siem Temelleri

Web ve Veritabanı Logları Üzerine Kapsamlı Bir Rehber

✍️ Ahmet BİRKAN 📂 Soc L1 Siem Temelleri

Web ve veritabanı logları, siber güvenlik açısından kritik öneme sahiptir. Bu yazıda, logların analizi ve korelasyonu hakkında bilgiler bulabilirsiniz.

Web ve Veritabanı Logları Üzerine Kapsamlı Bir Rehber

Web sunucuları ve veritabanları, siber saldırılara karşı korunmak için doğru log kaydı tutmalıdır. Bu yazıda, web ve veritabanı loglarının analizi ve güvenliği üzerine derinlemesine bilgiler sunulmaktadır.

Giriş ve Konumlandırma

Günümüzdeki dijital dünyada, web uygulamaları ve veritabanları önemli iş süreçlerinin merkezinde yer almaktadır. Birçok kurum, müşteri bilgilerini, finansal verileri ve diğer kritik bilgileri bu sistemlerde saklamaktadır. Bu nedenle, bu sistemlerin güvenliğini sağlamak, siber güvenlik uzmanları ve bilgi teknolojileri profesyonelleri için öncelikli bir görev haline gelmiştir. İşte bu noktada, web ve veritabanı loglarının rolü oldukça kritik olmaktadır.

Logların Tanımı ve Önemi

Web sunucuları (Apache, Nginx, IIS gibi) ve veritabanları, kullanıcı etkinliklerini ve sistem hatalarını kayıt altına alan log dosyaları üretir. Bu loglar, web erişim kayıtları (access logs) ve hata kayıtları (error logs) olarak iki ana kategoriye ayrılabilir. Erişim logları, bir kullanıcıdan gelen isteği, isteğin hangi sayfayı (URL) hedeflediğini ve isteğin türünü (GET/POST) içerir. Hata logları ise sistemde meydana gelen problemleri belgelemekte, örneğin "Internal Server Error" gibi kritik durumları raporlamaktadır.

Bu loglar, siber güvenlik açısından son derece önemlidir çünkü anormalliklerin tespitinde ve saldırıların tahlilinde anahtar rol oynarlar. Özellikle, bir siber saldırıda log kayıtları, saldırganın izlerini sürmek ve saldırının gerçekleştiği anı belirlemek için kritik bilgi sağlar. Dolayısıyla, güvenlik operasyon merkezleri (SOC) içinde, log analizi, olay müdahale süreçlerinin temelini oluşturmaktadır.

Siber Güvenlik ve Pentest Bağlamında Logların Rolü

Siber saldırılar giderek daha karmaşık hale gelirken, bu tehditlere karşı savunma mekanizmalarının geliştirilmesine büyük ihtiyaç vardır. Logların analizi, bu savunma mekanizmalarının içindeki bir dişli gibi çalışır. Bir web uygulaması pentest süreçlerinde, kullanıcı eylemlerinin ve sistem tepkilerinin izlenmesi, olası zafiyetlerin belirlenmesi açısından hayati öneme sahiptir. Örneğin, potansiyel bir SQL injection saldırısı denemesi, loglarda "UNION SELECT" gibi imzaların tespit edilmesi ile anlaşılabilir.

Log kayıtları yalnızca siber saldırıları tespit etmekle kalmaz, aynı zamanda bu saldırıların arkasındaki metodolojileri anlamak için de kullanılır. Bununla birlikte, bir saldırının gerçekleştirilmesi sırasında sistem hataları loglanır ve bu hatalar, zafiyetlerin ne şekilde exploit edildiğini anlamamızda yardımcı olur.

Okuyucuyu Teknik İçeriğe Hazırlama

Bu blog yazısında, web ve veritabanı loglarının önemli bileşenlerine, bunların nasıl analiz edileceğine ve korelasyon yöntemlerine dair derinlemesine bilgi vereceğiz. Web ve veritabanı loglarının otomatik analizine yönelik araçların, güvenlik tahmin modellerinin ve diğer müdahale eylemlerinin nasıl entegre edileceğine dair önerileri de inceleyeceğiz. Bu içeriği takip ederek, hem teknik hem de pratik becerilerinizi geliştirerek farklı ortamlar ve senaryolar üzerinde haklı çıkarımlar yapma yeteneği kazanacaksınız.

Siber güvenlik alanında profesyonel ve etkili bir analiz geliştirmek için, bu yazıda sunulacak kavramlara ve tekniklere dikkat etmek, sektörde kendinizi geliştirmek için önemli bir adım olacaktır. Şimdi, web loglarına giriş yaparak bu alandaki yolculuğumuza başlayalım.

Teknik Analiz ve Uygulama

Web Loglarına Giriş: Access ve Error Ayrımı

Web sunucuları, internete açık kapılar olarak kritik bir rol oynamaktadır. Bu sunucular, kullanıcıların etkileşimde bulunduğu uygulamaların ana bileşenleridir ve çalıştıkları esnada iki farklı log dosyası üretirler: Erişim Logları (Access Logs) ve Hata Logları (Error Logs). Erişim logları, gelen ziyaretçilerin her bir isteğinin kaydını tutarken, hata logları sistemde meydana gelen sorunları kaydeder.

Erişim logları, ziyaretçinin hangi IP adresinden geldiğini, hangi URL'ye (sayfaya) erişim talep ettiğini ve istek türünü belirtir. İstek türü genellikle GET veya POST gibi HTTP metotlarıyla ifade edilir. Bu loglarda görülen temel bilgiler, analistlerin trafik analizi yapmasında önemli bir başlangıç noktasıdır.

Web Access Log'un Anatomisi

Bir web erişim logu, genellikle aşağıdaki gibi bir formatta görüntülenir:

192.168.1.1 - - [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.png HTTP/1.0" 200 2326

Bu log satırında dikkat edilmesi gereken bazı önemli alanlar:

  • IP Adresi: Ziyaretçinin IP numarası.
  • Tarih ve Saat: İsteğin yapıldığı tarih ve saat.
  • HTTP Metodu: İsteğin tipi (GET, POST vb.).
  • İstenen URL: Hangi sayfanın istendiği.
  • Durum Kodu: Sunucunun isteğe verdiği yanıtın durumu (örneğin, 200, 404, 500 gibi).

Bu bilgilere bakarak, analistler isteklerin başarı durumu ve kaynaklarını inceleyebilirler.

Web Loglarında Saldırı İzi (Payload) Aramak

Siber saldırılar sırasında, saldırganlar zararlı kodlarını genellikle URL'nin veya isteğin parametrelerinin içerisine gizlerler. Örneğin, bir SQL Injection saldırısında loglarda şu gibi kalıplar görülebilir:

"GET /index.php?id=1 UNION SELECT username, password FROM users -- HTTP/1.1" 200

Bu tür kalıpları tespit etmek, analistlerin potansiyel saldırıları belirlemesi için kritik öneme sahiptir. Belirli karakter dizileri, örneğin %27 (tek tırnak), SQL sorgularında yaygın olarak kullanıldığı için loglarda bu tür kalıpları aramak önemlidir.

Error Loglarının Değeri: Hata Kodları

Hata logları, sistemde meydana gelen hataları ve kesintileri kaydeder. Saldırganlar web uygulamalarına saldırırken, çoğu zaman hatalara sebep olurlar. 500 Internal Server Error gibi hata kodları, sistemin beklenmedik bir şekilde çöktüğünü gösterir. Bu tür hata kodlarının analiz edilmesi, olası bir zafiyetin tetiklendiğini anlamak açısından son derece önemlidir.

Veritabanı Loglarına Geçiş

Kurumların en değerli varlıkları, genellikle veritabanlarında (MSSQL, Oracle, MySQL gibi) tutulur. Bu nedenle, veritabanı loglarına erişim sağlamak, özellikle iç tehditlere karşı oldukça önemlidir. Veritabanı sistemlerinin standart ayarları genellikle sadece servis durumlarını ve bağlantı hatalarını loglar. Ancak özel durumların ve sorguların kaydedilmesi için derinlemesine izleme sağlayan audit loglarının aktif edilmesi gereklidir.

-- Örnek bir audit log komutu:
ALTER DATABASE myDatabase SET AUDIT ON;

Bu komut ile belirli eylemler üzerinde izleme yapılması sağlanır. Örneğin, "Hangi kullanıcı hangi tabloya SELECT sorgusu attı?" veya "Veritabanındaki tabloyu kim sildi?" gibi soruların cevabı bu loglarda bulunabilir.

Derinlemesine İzleme: Veritabanı Audit Logları

Veritabanında gerçekleştirilen her bir SQL sorgusu ve eylemi kaydeden audit logları, veritabanı güvenliği açısından kritik bilgiler sunar. Bu loglardan aşağıdaki gibi bilgileri edinebiliriz:

  • Yapılan sorgular (SELECT, INSERT, DELETE)
  • Sorgu tarih ve saat bilgisi
  • Sorguyu gerçekleştiren kullanıcı bilgileri

Örneğin, aşağıdaki SQL sorgusu ile belirli bir tablodaki değişiklikleri izlemek için gereken log kayıtları elde edilebilir:

SELECT * FROM audit_log WHERE table_name = 'users';

Korelasyon: Web ve DB Loglarını Birleştirmek

Başarılı bir güvenlik operasyonunda web logları ve veritabanı loglarının birlikteliği kritik önem taşır. Web sunucusundan gelen talepler, veritabanına yapılan sorgularla ilişkilidir. Bu nedenle, iki sistem arasında korelasyon sağlamak, anomali tespitinde ve olası saldırıların izlenmesinde faydalı olacaktır.

Bir SQL Injection senaryosunun analizinde, önce web logları incelenir. Bu loglardan elde edilen IP adresi, belirli bir zamanda gerçekleşen anormal sorgularla eşleştirilmelidir. Örneğin, şüpheli bir SELECT sorgusu gerçekleştiren bir IP ile o IP'nin web loglarındaki geçmişi sorgulanmalıdır.

Bu korelasyon, saldırganın eylemlerinin daha net anlaşılmasını sağlar ve sistemdeki zayıf noktaların belirlenmesine yardımcı olur. Web ve veritabanı loglarının birleşik analizi, siber güvenlik için büyük bir avantaja dönüşebilir.

Bu yapıda ele alınan teknik detaylar, hem siber güvenliğin geliştirilmesi hem de sistemlerin daha kurumsal bir bakış açısıyla yönetilmesi için gereklidir.

Risk, Yorumlama ve Savunma

Siber güvenlik alanında etkili bir savunma mekanizması oluşturmak için, web ve veritabanı loglarının doğru bir şekilde yorumlanması son derece kritik bir süreçtir. Bu süreç, yalnızca aldatıcı bir güvenlik hissi yaratmaktan öte, gerçek tehditleri tespit etme ve bu tehditlere karşı proaktif yaklaşımlar geliştirme anlamına gelir. Aşağıda bu sürecin önemli bileşenlerini ele alacağız.

Elde Edilen Bulguların Güvenlik Anlamı

Web ve veritabanı logları, sistemdeki anormallikleri ve potansiyel siber saldırıları tespit etmede oldukça değerli bilgiler sunar. Örneğin, Access loglarda yer alan hatalı HTTP istekleri veya Error loglardaki sunucu hataları, sistemin ne tür saldırılara maruz kaldığını anlamak için ilk ipuçlarını sağlar.

Örnek bir log girişi üzerinden değerlendirecek olursak:

192.168.1.1 - - [18/Oct/2023:10:01:00 +0300] "GET /index.php?id=1' OR '1'='1" 500

Bu giriş, bir SQL injection saldırı girişimini göstermektedir. "id=1' OR '1'='1" ifadesi, bir saldırgandan gelen tipik bir SQL injection denemesidir ve sunucu 500 Hatası ile geri dönmüştür. Bu sonuçlar, sistemin zayıflıklarını ve saldırıya açık noktalarını ortaya koyar.

Yanlış Yapılandırma ve Zafiyetlerin Etkisi

Yanlış yapılandırma veya zafiyetler, siber tehditlerin başlıca nedenleridir. Web sunucularında, varsayılan ayarların değiştirilmemesi veya yeterince güçlü kimlik doğrulama mekanizmalarının olmaması, saldırganlara kolay bir zemin sunar. Örneğin, web sunucusu üzerinden yapılan bir kaba kuvvet saldırısı, uygun log kayıtları olmadan tespit edilemeyebilir:

192.168.1.2 - - [18/Oct/2023:10:05:00 +0300] "POST /login HTTP/1.1" 401

Yukarıdaki log girişi, başarısız bir giriş denemesi olduğunu gösteriyor. Eğer bu tür loglar doğru bir şekilde analiz edilmezse, potansiyel bir saldırganın sisteme sızma girişimi göz ardı edilebilir.

Sızan Veri ve Servis Tespiti

Sızan veriler, bir sistemin ne kadar güvenli olduğunu doğrudan etkileyen önemli bir unsurdur. Veritabanı logları, kimlerin hangi verilere eriştiğini net bir şekilde gösterir. Örneğin, bir "audit" log girdisi şöyle olabilir:

2023-10-18 10:10:00 [USER] SELECT * FROM users WHERE id = 1

Bu giriş, bir kullanıcının "users" tablosunu sorguladığını belirtir. Eğer beklenmeyen bir kullanıcı bu sorguyu yapıyorsa, veritabanında veri ihlali gerçekleşmiş olabilir. Bu durumda, kullanıcının kimliği ve sorgunun neden yapıldığı üzerine derinlemesine analiz yapılmalıdır.

Profesyonel Önlemler ve Hardening Önerileri

Siber güvenlik açısından alınabilecek bazı temel önlemler şöyle sıralanabilir:

  1. Logların Yedeklenmesi: Logların belirli aralıklarla yedeklenmesi, olası kayıpların önüne geçer.

  2. Log Analizi Araçlarının Kullanımı: SIEM (Security Information and Event Management) çözümleri, logları gerçek zamanlı olarak inceleyerek anormallikleri tespit etmeye yardımcı olur.

  3. Sistem Güncellemeleri: Yazılım güncellemeleri ve yamaları düzenli olarak yapılmalıdır. Zafiyetlerin kapatılması, saldırganların exploit geliştirmesini zorlaştırır.

  4. Erişim Kontrolü: Kullanıcıların belirli verilere ve fonksiyonlara erişimi kısıtlanmalıdır. Yetkisiz erişimlere karşı güçlü kimlik doğrulama mekanizmaları kullanılmalıdır.

  5. Web ve DB Loglarının Korelasyonu: Web logları ve veritabanı logları arasında korelasyon sağlamak, saldırıların daha iyi analiz edilmesine ve tespit edilmesine olanak tanır.

Sonuç Özeti

Web ve veritabanı logları, güvenlik analistleri için kritik bir bilgi kaynağıdır. Elde edilen bulguların güvenli anlamda yorumlanması, yanlış yapılandırmaların ve zafiyetlerin etkilerinin analiz edilmesi, sızan verilerin tespiti ve profesyonel önlemlerin alınması gibi süreçler, siber tehditlerden korunma adına büyük önem taşır. Bu nedenle, log yönetimi ve analizine gereken önemin verilmesi, etkili bir siber güvenlik stratejisi geliştirmek için elzemdir.