CyberFlow Logo CyberFlow BLOG
Soc L1 Log Kaynaklari Veri Turleri

Uygulama Spesifik Logların Derinlemesine İncelenmesi

✍️ Ahmet BİRKAN 📂 Soc L1 Log Kaynaklari Veri Turleri

Uygulama spesifik logların tanımlanması, siber güvenlik alanında kritik bir yere sahiptir. Detayları hüsranı önlemek için keşfedin.

Uygulama Spesifik Logların Derinlemesine İncelenmesi

Uygulama spesifik loglar, güvenlik tehditlerini tespit etmede önemli bir rol oynar. Bu yazıda, custom logların nasıl tanımlanacağı ve analiz edileceği konusunda derinlemesine bilgi verilmektedir.

Giriş ve Konumlandırma

Siber güvenlik alanı, kurumların dijital varlıklarını korumak adına sürekli evrilmekte ve gelişmekte olan bir disiplindir. Bu evrim sürecinin önemli bir parçası, uygulama spesifik logların incelenmesidir. Geliştiriciler tarafından yazılan özel loglar, standart işletim sistemi loglarının gözden kaçırabileceği kritik olayları içerir. Örneğin, bir para transferi veya stok güncellemesi gibi işlemler iş mantığını (business logic) temsil eder ve bu tür logların tanımlanması, olayların izlenmesi ve analiz edilmesi açısından son derece önemlidir. Bu noktada, Security Information and Event Management (SIEM) sistemlerinin bu logları ne kadar verimli bir şekilde işleyebileceği öne çıkar. Eğer özel loglar yeterince tanımlanmamışsa, SIEM sistemleri bu operasyonel risklere karşı çıplak kalabilir ve bu da ciddi güvenlik açıklarına neden olabilir.

Uygulama Spesifik Logların Rolü

Uygulama logları, herhangi bir siber güvenlik stratejisinin temel taşlarından biridir. Standart sistem logları genellikle sınırlı bilgi sunarken, uygulama logları geliştiricilerin uygulamanın iç işleyişini anlamalarına ve saldırganların ataklarını analiz etmelerine yardımcı olan ayrıntılı bilgiler barındırır. Örneğin, kullanıcı işlemlerinin tam olarak hangi uygulama modülünde gerçekleştiğini görmek, sorun gidermeyi kolaylaştırır. Kullanıcının yaptıkları üzerinden gerçekleştirilecek analiz, potansiyel siber saldırı türlerinin tespitini ve sınıflandırılmasını sağlayabilir. Bu nedenle, uygulama loglarının analizi sadece bir güvenlik önlemi değil, aynı zamanda işletmelerin operasyonel etkinliği artıran bir süreç olarak da değerlendirilmelidir.

Logların Analizi: Zorluklar ve Yöntemler

Uygulama loglarının incelenmesi, birçok zorlukla birlikte gelir. Öncelikle, custom loglar genellikle düz metin formatında olduğundan, bu metin içeriği içindeki kritik bilgilerin ayrıştırılması (parsing) için karmaşık desen eşleştirme yöntemlerine ihtiyaç vardır. Bu desen eşleştirme, düzenli ifadeler (regex) kullanılarak gerçekleştirilir. Örneğin, bir log girişinin aşağıdaki gibi olduğunu varsayalım:

2023-10-01 12:30:45, User: john_doe, Action: transaction, Amount: 500 USD

Bu logdan 'Zaman', 'Kullanıcı' ve 'Eylem' gibi alanları çekmek için uygun bir regex tanımı kullanılabilir. Aşağıda basit bir regex örneği gösterilmektedir:

import re

log_entry = "2023-10-01 12:30:45, User: john_doe, Action: transaction, Amount: 500 USD"
pattern = r'(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}), User: (?P<user>.*), Action: (?P<action>.*), Amount: (?P<amount>.*)'

match = re.match(pattern, log_entry)
if match:
    print(match.groupdict())

Bu kod, log dosyasındaki bilgileri anlamak için basit bir yöntem sunarak, analistin eline geçecek verileri net bir şekilde ayırır.

Log Seviyeleri ve Önem Dereceleri

Uygulama loglarının analizi yapılırken, her bir log kaydının önemi değişkenlik gösterebilir. Log seviyeleri, log kayıtlarının önemini belirlemeye yardımcı olan kategorilendirme sistemidir. Örneğin, 'DEBUG' seviyesindeki loglar geliştiriciler için ayrıntılı bilgi sağlarken, 'ERROR' seviyesindeki loglar sistem hatalarını belirtirken, 'FATAL' seviyesindeki loglar uygulamanın tamamen durduğunu ifade eder. Bu çeşitlilik, analistlerin logları filtrelemesine ve kritik olanları önceliklendirerek daha güvenli bir ortam yaratmasına olanak tanır.

Format Belirsizlikleri ile Uğraşma

Her yazılımcının log formatının farklılık göstermesi, bu verilerin otomatik olarak işlenmesini son derece zorlaştırır. Örneğin, bir log kaydında tarih biçimi farklılık gösterebilir, bu tür belirsizlikler SIEM sistemleri için uyum sorunları yaratır. Bu noktada, normalizasyon süreci devreye girer; bu işlem, farklı uygulamalardan gelen verilerin tek bir 'dashboard' üzerinde birleştirilmesi ve korelasyonların kurulmasını sağlar. Normalizasyon, ayrıca genel alan isimlendirmelerini de standart hale getirerek görselliği artırır.

Sonuç olarak, uygulama spesifik logların derinlemesine incelenmesi, siber güvenlikte kritik bir adım olarak ortaya çıkmaktadır. Bu loglar, yalnızca siber tehditleri tespit etmekle kalmaz, aynı zamanda kurumların uygulama güvenliği konusunda daha proaktif adımlar atmasına olanak tanır. Gelecek bölümlerde, uygulama loglarının nasıl analiz edileceği, hangi araçların kullanılacağı ve hackerların kullandığı tekniklerin saptanması konusunu daha derinlemesine inceleyeceğiz.

Teknik Analiz ve Uygulama

Uygulamanın İç Dünyası: Custom Loglar

Geliştirilen yazılımlar, standart işletim sistemi loglarının yakalayamadığı kritik olayları kaydetme yeteneğine sahiptir. Bu noktada, belirli bir uygulamanın özelleştirilmiş logları, uygulamanın iş mantığına dair önemli bilgileri içeren özel loglar olarak karşımıza çıkar. Örneğin, bir para transferi veya stok güncellemesi gibi işlemler, geleneksel loglama sistemleri tarafından yeterince detaylandırılmadığı için bu logların doğru bir şekilde tanımlanması ve analizi kritik bir ihtiyaç haline gelir. Eğer bu özel loglar tanımlanmazsa, merkezi olay yönetim sistemleri (SIEM) bu operasyonel risklere karşı kör kalabilir.

Ayrıştırma Sanatı: Regex

Custom logların analizi sırasında karşılaşılan bir önemli nokta, logların düz metin (plain text) formatında olmasıdır. Bu, standardize edilmemiş veri formatlarıyla çalışmanın zorluklarını beraberinde getirir. Logs verisini anlamak için düzenli ifadeler (regex) kullanılması, SIEM sistemlerinin 'Zaman', 'Kullanıcı' ve 'Eylem' gibi temel alanları ayırmasını ve analiz etmesini sağlar. Örnek bir regex ifadesi şöyle olabilir:

^(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) \[(?P<level>[A-Z]+)\] (?P<user>\S+): (?P<action>.+)$

Yukarıdaki örnekte, log kaydı içindeki tarih, seviye, kullanıcı ve yapılan eylem kolaylıkla ayrıştırılabilir.

Kritik Uygulama Alanları

Uygulama logları incelenirken, analizlerin standart sistem loglarından farklı alanlara odaklanması gerektiği unutulmamalıdır. Örneğin bir oturumun üzerinde dönen tüm aktiviteleri izlemek için Session ID kullanılabilir. Bu, kullanıcının uygulama üzerindeki tüm hareketlerini birbiriyle ilişkilendirmeye yarar.

Log kayıtlarındaki her alanın önemi farklıdır. Örneğin, Module Name hatanın uygulamanın hangi bölümünde meydana geldiğini belirtir. Bu tür bilgiler, analiz sürecini büyük ölçüde hızlandırır ve daha etkili bir müdahale sağlanır.

Önem Derecesi: Log Levels

Logların filtrelenebilmesi için Log Level konsepti önemlidir. Uygulama logları arasında farklı önem derecelerine sahip bilgiler bulunabilir. Örneğin:

  • DEBUG: Geliştiricilere detaylı bilgi verir.
  • INFO: Genel bilgi verir.
  • WARN: Uyarı anlamına gelir.
  • ERROR: Sistem hatasını belirtir.
  • FATAL: Uygulamanın durduğunu ifade eder.

Bu seviyeler, analistin farklı log kayıtlarını sıralama ve filtreleme yapabilmesini sağlar. Her bir log kaydı için önem derecesi belirlemek, olayların önceliğini anlamada yardımcı olur.

Zorluk: Format Belirsizliği

Custom logların en büyük zorluklarından bir diğeri, yazılımcının logları farklı formatlarda kaydedebilmesidir. Bir log kaydında tarih bilgisi başta, diğerinde sonda yer alabilir. Bu belirsizlik, SIEM’in otomatik olarak bu verileri tanımasını imkansız hale getirir. Belirli bir formatta olmayan logları ayrıştırmak ve analiz etmek için özelleştirilmiş yöntemler ve regex ifadeleri kullanmak gerekmektedir.

Uyum Sağlama: Normalizasyon

Çeşitli uygulamalardan gelen farklı logları SIEM içinde anlamlı bir bütün haline getirmek için normalizasyon süreci kritik bir öneme sahiptir. Örneğin, bir uygulamadan gelen usr_name alanını SIEM'deki genel user alanına eşitlemek, veri uyumunu sağlar. Bu işlemin amacı, farklı format ve isimlendirme kullanarak veri kaydeden uygulamaların loglarının tek bir panel üzerinde analiz edilmesini sağlamaktır.

{
  "usr_name": "john_doe",
  "event": "login"
}

Yukarıdaki örneği SIEM'de user alanına normalizasyon ile dönüştürdüğümüzde, daha temiz ve yönetilebilir bir veri setine ulaşırız.

Özet: Uygulama Güvenlik Analizi

Özel uygulama logları, siber güvenlik açısından kritik bir rol oynamaktadır. İçeriden gelen tehditleri yakalamak ve oluşabilecek zararları minimize etmek için bu logların doğru bir şekilde yapılandırılması ve analiz edilmesi gereklidir. Özel logların belirlenmesi, normalizasyonu ve analizi, uygulama güvenliğini artırmanın en etkili yollarından biridir. Bu nedenle, her bir geliştirme sürecinde logların kapsamlı bir şekilde ele alınması ve yapılandırılması kritik bir öneme sahiptir.

Uygulama spesifik logların derinlemesine analizi, güvenlik uzmanlarının yalnızca olayları takip etmesine olanak tanımakla kalmaz, aynı zamanda olası güvenlik açıklarını en aza indirmek için gerekli önlemleri almalarını da sağlar. Verilerin doğru bir biçimde işlenmesi ve analiz edilmesi, organizasyonların siber saldırılara karşı daha dayanıklı hale gelmesine katkıda bulunur.

Risk, Yorumlama ve Savunma

Risk Analizi ve Yorumlama

Uygulama spesifik loglar, sistemlerin iç işleyişini anlatan ve olası güvenlik tehditlerinin tespit edilmesi için kritik öneme sahip veriler sunar. Bu logların incelenmesi sırasında elde edilen bulgular, uygulama üzerinden gelebilecek risklerin anlaşılması açısından büyük bir fırsat sunar. Örneğin, kullanıcı işlemleriyle ilgili kaydedilen bir oturum ID'sinin analizi, belirli bir kullanıcının uygulama üzerindeki hareketlerini izlemenizi sağlar. Bu, potansiyel yetkisiz erişimlerin veya şüpheli işlemlerin tespit edilmesi konusunda önemli bir adımdır.

Session ID: 123456789
User: johndoe
Action: Funds Transfer
Module Name: Payment Module
Input Data: {"amount": 1000, "toAccount": "987654321"}

Yukarıdaki örnekte, oturum ID'si, kullanıcının gerçekleştirdiği işlemlerin kaynağını anlamak için önemli bir bileşendir. Aynı zamanda, belirli bir modülde gerçekleşen işlemler de sistemin hangi alanının hedef alındığını gösterir.

Yanlış Yapılandırma ve Zafiyet Tespiti

Uygulama loglarının detaylı analizi, yanlış yapılandırmalar veya zafiyetlerin ortaya çıkmasını sağlayabilir. Örneğin, bir sistemde kullanıcıların yetkilerinin fazla geniş olması, "Privilege Abuse" durumlarına yol açabilir. Kullanıcılar, kendi yetkileri dışındaki bilgilere erişebilir ve bu durum ciddi bir güvenlik açığı oluşturur.

Özellikle aşağıdaki durumlarda dikkatli olmak gerekmektedir:

  • Yanlış Yetkilendirme: Kullanıcıların yetkilerinin gereğinden fazla tanımlanması.
  • SQL Enjeksiyonu: Kullanıcılardan alınan verilerin yeterince filtrelenmemesi sonucunda, kötü niyetli verilerin sisteme girmesi riski.

Bu gibi durumlar, logların dikkatli bir şekilde değerlendirilmesi ile tespit edilebilir. Örneğin, logda görülen;

Input Data: "SELECT * FROM users WHERE username = 'admin' --"

şeklinde bir sorgu, potansiyel bir SQL enjeksiyonu girişimi olarak değerlendirilmelidir.

Gelir Kaybı ve Veri Sızıntısı

Uygulama logları, sadece bir güvenlik açığını değil, aynı zamanda olası veri sızıntılarını da tespit etme konusunda büyük fayda sağlar. Diğer bir deyişle, "Transaction Fraud" gibi durumlar, log analizi ile ortaya çıkabilir. Normal kullanıcı davranışlarının dışındaki yüksek tutarlı işlemler, anormal bir aktivite olarak değerlendirilmelidir.

Profesyonel Önlemler ve Hardening Önerileri

Uygulama loglarının güvenliğini arttırmak için aşağıdaki önlemler alınmalıdır:

  1. Güvenlik Duvarı ve IDS/IPS Kullanımı: İçeriden gelen tehditlere karşı koymak için güvenlik teknolojilerini kullanmak.
  2. Kullanıcı Erişim Kontrollerinin Sağlanması: Kullanıcıların yetkilerini en alt seviyeye indirmek ve sadece ihtiyaç duyulan erişimleri vermek.
  3. Log Analizi için SIEM: Gelişmiş log analizi araçları kullanarak anormal davranışları tespit etmek.

Hardening Teknikleri

Uygulamanın güvenliğini artırmak için aşağıdaki hardening yöntemleri uygulanabilir:

  • Veritabanı Erişim Kısıtlamaları: Veritabanına doğrudan erişimi kısıtlayarak, yalnızca belirli servisler üzerinden veri alışverişi yapılmasını sağlamak.
  • Şifreleme: Hem log kayıtları hem de veriler üzerinde şifreleme uygulayarak, verilerin ele geçirilmesi durumunda bile güvenliğini sağlamak.
  • Güncelleme Yönetimi: Uygulamaların sürekli güncel tutulması, bilinen zafiyetlerden korunmaya yardımcı olur.

Sonuç

Uygulama spesifik logların derinlemesine incelenmesi, siber güvenlikte önemli bir aşamadır. Elde edilen bulgular, yanlış yapılandırmalar, zafiyetler ve olası tehditlerin tespit edilmesi açısından kritik öneme sahiptir. Bu nedenle, düzenli log analizleri yapmak ve güvenlik önlemlerini sürekli güncel tutmak gereklidir. Uygulama güvenliğinin artırılması, sadece potansiyel tehditleri önlemekle kalmaz, aynı zamanda organizasyonun genel güvenlik yönetimini de yükseltir.