Shell Script ile Log Correlation Sistemi

CyberWolf

Astsubay Başçavuş
Admin
Katılım
23 Kasım 2025
Mesajlar
977
Reaksiyon puanı
63

Shell Script ile Log Correlation Sistemi​


Günümüzün karmaşık sistemlerinde, log dosyaları sistem davranışlarını anlamak ve sorunları teşhis etmek için vazgeçilmez bir kaynaktır. Ancak, çok sayıda log dosyasını manuel olarak incelemek zaman alıcı ve yorucu olabilir. Shell script'ler, bu log verilerini otomatik olarak analiz etmek ve korelasyon kurmak için güçlü bir araçtır. Bu sayede, sistem yöneticileri ve güvenlik uzmanları, anormallikleri hızlı bir şekilde tespit edebilir ve gerekli önlemleri alabilir. Shell script'lerin esnekliği ve gücü, log korelasyonu için ideal bir çözüm sunar.

Log Korelasyonunun Önemi​


Log korelasyonu, farklı kaynaklardan gelen log verilerini bir araya getirerek anlamlı ilişkiler kurmayı amaçlar. Bu süreç, sistemdeki olayların sırasını ve neden sonuç ilişkilerini anlamamıza yardımcı olur. Örneğin, bir web sunucusundaki hata mesajı ile bir veritabanı sunucusundaki yavaş yanıt süresi arasında bir bağlantı olabilir. Log korelasyonu, bu tür ilişkileri ortaya çıkararak sorunların kaynağını belirlememizi ve çözüm üretmemizi sağlar. Ayrıca, güvenlik ihlallerini tespit etmek ve önlemek için de kritik bir rol oynar.

Shell Script'lerin Temel Yetenekleri​


Shell script'ler, metin işleme, dosya yönetimi ve sistem komutlarını çalıştırma gibi temel yeteneklere sahiptir. Bu yetenekler, log dosyalarını okuma, filtreleme, düzenleme ve analiz etme süreçlerinde büyük kolaylık sağlar. Örneğin, `grep` komutu ile belirli bir deseni içeren log satırlarını filtreleyebilir, `awk` komutu ile log satırlarından belirli alanları ayıklayabilir ve `sort` komutu ile log verilerini sıralayabiliriz. Shell script'lerin bu temel yetenekleri, log korelasyonu için gerekli olan veri işleme adımlarını otomatik hale getirmemize olanak tanır.

Log Verisi Toplama ve Düzenleme​


Log korelasyonunun ilk adımı, ilgili log verilerini toplamaktır. Bu veriler, farklı kaynaklardan gelebilir ve farklı formatlarda olabilir. Shell script'ler, bu verileri farklı kaynaklardan toplamak ve standart bir formata dönüştürmek için kullanılabilir. Örneğin, `rsync` komutu ile farklı sunuculardan log dosyalarını toplayabilir, `sed` komutu ile log verilerini düzenleyebilir ve `date` komutu ile log kayıtlarına zaman damgaları ekleyebiliriz. Bu sayede, log verilerini analiz için hazır hale getirebiliriz.

Korelasyon Kurallarının Tanımlanması​


Log korelasyonu için, belirli olaylar arasındaki ilişkileri tanımlayan kuralların belirlenmesi gerekir. Bu kurallar, sistem davranışlarını ve olası sorunları yansıtan desenleri içerir. Örneğin, belirli bir IP adresinden gelen çok sayıda başarısız giriş denemesi bir saldırı girişimi olabilir. Shell script'ler, bu tür kuralları otomatik olarak uygulamak ve ihlalleri tespit etmek için kullanılabilir. `if` ve `case` gibi kontrol yapıları ile karmaşık kurallar tanımlanabilir ve `regex` kullanarak desenler eşleştirilebilir.

Alarm Üretimi ve Bildirim Mekanizmaları​


Log korelasyonu sonucunda anormallikler veya güvenlik ihlalleri tespit edildiğinde, otomatik olarak alarm üretilmesi ve ilgili kişilere bildirim gönderilmesi önemlidir. Shell script'ler, bu alarm üretimi ve bildirim mekanizmalarını uygulamak için kullanılabilir. Örneğin, `mail` komutu ile e-posta yoluyla bildirim gönderebilir, `syslog` komutu ile sistem günlüklerine alarm mesajları yazabilir veya özel bir alarm paneline veri gönderebiliriz. Bu sayede, potansiyel sorunlara hızlı bir şekilde müdahale edebiliriz.

Örnek Bir Log Korelasyon Script'i​


Aşağıda, basit bir log korelasyon script'i örneği verilmiştir. Bu script, belirli bir IP adresinden gelen başarısız giriş denemelerini tespit eder ve alarm üretir.

```bash
#!/bin/bash

LOG_FILE="/var/log/auth.log"​

IP_ADDRESS="192.168.1.100"​

THRESHOLD=5​


FAIL_COUNT=$(grep "Failed password" $LOG_FILE | grep "$IP_ADDRESS" | wc -l)​


if [ $FAIL_COUNT -gt $THRESHOLD ]; then
echo "Uyarı: $IP_ADDRESS adresinden $FAIL_COUNT adet başarısız giriş denemesi tespit edildi." | mail -s "Log Korelasyon Alarmı" admin@example.com
fi
```

Bu script, `$LOG_FILE` değişkeninde belirtilen log dosyasını okur, `$IP_ADDRESS` değişkeninde belirtilen IP adresinden gelen başarısız giriş denemelerini sayar ve `$THRESHOLD` değişkeninde belirtilen eşik değerini aşması durumunda e-posta yoluyla alarm gönderir. Bu basit örnek, shell script'lerin log korelasyonu için nasıl kullanılabileceğini göstermektedir.
 
Geri
Üst Alt