İçeriğe geç

5.6 · Seviye 0 · Dijital Dünyanın Temelleri

Kayıt dosyalarını okumak

sistem günlüğünde bir olayı aramak ve süzmek

Siber Güvenlik Akademisi — M05, Komut Satırına Giriş · 1.921 kelime · 3 saha durumu · ≈ 9 dk okuma · 13 dk dinleme

Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Bu akademi savunma odaklıdır: saldırılar mekanizma düzeyinde anlatılır, adım adım saldırı tarifi verilmez. Uygulamalar yalnız kendi cihazında, kendi hesabında ya da yalıtılmış bir laboratuvarda yapılır; başkasının sistemine izinsiz erişim suçtur. Dersler hukuki danışmanlığın yerini tutmaz.

Açılış

Duru tez yazıyordu. Bir gece yarısı dizüstünü açık bırakıp yattı; sabah kapağı kaldırdığında ekranda giriş sayfası duruyordu ve kaydetmediği iki sayfa gitmişti. İlk düşüncesi korkuydu: biri mi girmişti? Ev arkadaşı Ece'yi uyandırdı.

Ece, Duru'nun izniyle onun bilgisayarında Olay Görüntüleyicisi'ni açtı. Sistem günlüğünde son bir haftada kırk binden fazla satır vardı; çoğu anlamsız görünen kısa mesajlardı. Ece listeyi gece ikiyle sabah beş arasındaki kayıtlara daralttı, sonra yalnız uyarı ve hata düzeyindekileri bıraktı. Geriye on iki satır kaldı.

Saat üçü on iki geçe, güncelleme hizmeti yeni bir güncellemeyi kurmak için bilgisayarı yeniden başlatmıştı. İki gün önce de "yeniden başlatma planlandı" diye bir kayıt düşülmüştü; Duru o bildirimi görmüş ama kapatmıştı. Kimse girmemişti. Ama bu sonuca varmak için kırk bin satırın içinden doğru on ikisini bulmak gerekiyordu. Bu ders bir bilgisayarın tuttuğu günlükleri okumayı ve binlerce satırı, aradığın birkaç satıra kadar süzmeyi öğretiyor.

Tek fikir

İşletim sistemi olan biteni durmadan yazar, ama bu yazı bir hikâye değil bir yığındır. Günlükten cevap almanın yolu, okumadan önce sormaktır: ne zaman, ne kadar önemli ve hangi kaynaktan?

Nasıl çalışır

Bir bilgisayarda her şey iz bırakır. Bir hizmet başlar ya da durur, bir sürücü hata verir, bir kullanıcı oturum açar, bir güncelleme kurulur, bir disk dolmaya yaklaşır. İşletim sistemi ve programlar bu olayları kısa satırlar hâlinde bir yere yazar.

Windows günlükleri Olay Görüntüleyicisi'nde ayrı kanallar hâlinde tutulur: Sistem günlüğü işletim sisteminin ve sürücülerin olaylarını, Uygulama günlüğü programların olaylarını, Güvenlik günlüğü ise oturum açma gibi denetim olaylarını tutar. Güvenlik günlüğünü okumak yönetici yetkisi ister; bu derste ona dokunmayacağız, Windows olay günlüklerine ayrılan modülde ayrıntısıyla döneceğiz. Linux'ta günlüklerin büyük kısmı systemd günlüğünde toplanır ve journalctl komutuyla okunur; bazı sistemlerde /var/log dizinindeki düz metin dosyaları da kullanılır. macOS'ta birleşik günlük vardır ve log komutuyla ya da Konsol uygulamasıyla okunur.

Bir günlüğü okumak, onu baştan sona okumak demek değildir. Duru'nun bilgisayarındaki kırk bin satırı kimse okuyamaz. Okumak, süzmek demektir ve süzmenin üç temel ekseni vardır: zaman, önem ve kaynak.

İlk eksen zamandır.

İkinci eksen önemdir. Her günlük kaydı bir önem düzeyi taşır ve bu düzeyler neredeyse her sistemde benzer bir merdiven oluşturur.

Windows'ta da benzer bir sayısal karşılık vardır: düzey bir kritik, iki hata, üç uyarı, dört bilgi anlamına gelir. Önem düzeyine göre süzmek, gürültünün büyük kısmını bir hamlede atar. Ama dikkat: önem düzeyini olayı yazan program belirler ve programlar her zaman doğru karar vermez. Güvenlik açısından önemli bazı olaylar, Duru'nun bilgisayarındaki "yeniden başlatma planlandı" kaydı gibi, yalnız bilgi düzeyinde yazılır.

Üçüncü eksen kaynaktır, yani olayı hangi programın ya da hizmetin bildirdiği. "Güncelleme hizmeti" ya da "ağ yöneticisi" gibi bir kaynağa daraltmak, belirli bir soruya cevap ararken en hızlı yoldur. Bunlara bir dördüncüsü eklenir: anahtar kelime. Komut satırı dersinde Kaan'ın otuz günlük kayıtta bir adresi saniyeler içinde bulmasını sağlayan şey de bu kelimeyle süzmeydi.

Bir de günlüğün kendisine dair bir olay türü vardır. Günlükler, bir saldırganın izlerini silmek için temizlemek isteyeceği ilk yerlerdendir; işletim sistemleri bu yüzden günlüğün temizlenmesini de kaydeder.

Sahada

Savunma

Günlüklerin savunmadaki değeri, olaydan önce verilmiş üç karara bağlıdır: günlüğün tutulması, saklanması ve okunması.

İlk karar tutulmasıdır. Günlüğe yazılmayan olay geriye dönük olarak bulunamaz. İşletim sistemlerinin varsayılan günlükleri çoğu sorunu yakalar, ama bazı önemli kayıtlar, örneğin komut satırında çalıştırılan betiklerin içeriği, ancak açıkça etkinleştirildiğinde tutulur; komut satırı modülünün ilk dersinde PowerShell'in betik bloğu kaydından söz etmiştik.

İkinci karar saklanmasıdır. Günlüklerin bir boyut sınırı vardır ve dolduğunda en eski kayıtlar silinir. Bir saldırı genellikle fark edilmeden önce günlerce, bazen haftalarca sürer; günlük iki gün sonra kendini siliyorsa olayın başlangıcı kaybolur. Kurumlar bu yüzden günlükleri bilgisayarın dışında, merkezi bir yerde toplar: günlük bilgisayarda temizlense bile kopyası başka yerde durur ve 1102 gibi bir olay merkezde alarm üretir. Bu, Seviye 8'deki günlük yönetimi modülünün konusu olacak.

Üçüncü karar okunmasıdır ve en sık ihmal edilen budur. Bora'nın sunucusu üç hafta boyunca uyarı yazdı; kayıt vardı, okuyan yoktu. Ev kullanıcısı için düzenli okuma ayda bir, son haftanın hata ve kritik kayıtlarına göz atmak kadar basit olabilir. Kurumda ise kimin hangi günlüğe ne sıklıkla bakacağı yazılı olmalıdır.

Son olarak, günlüğe ne yazıldığı da bir güvenlik sorusudur. Selin'in bulduğu gibi parolalar, sıfırlama kodları, oturum çerezleri ya da gereksiz kişisel veriler günlüğe yazılmamalıdır; aksi hâlde günlüğü okuyabilen herkes o bilgiye ulaşır ve günlük, korumaya çalıştığın sistemin en zayıf noktası olur.

Uygulama

Kendi bilgisayarının sistem günlüğünü açacak, onu zamana ve öneme göre süzecek ve bulduğun bir kaydın ne anlattığını araştıracaksın. Yalnız okuyacaksın; hiçbir günlüğü temizlemeyecek ya da ayarını değiştirmeyeceksin.

Hata kayıtlarının çoğu zararsız çıkacak; sürücüler ve hizmetler sık sık küçük hatalar yazar ve bilgisayar yine de sorunsuz çalışır. Amaç her hatayı düzeltmek değil, bilgisayarının olağan gürültüsünü tanımak.

Defter: İzleme bölümüne her cihaz için günlüğün nerede okunduğu ve hangi komutla süzüldüğü. Olağan gürültü: en sık hata yazan iki kaynak ve bunların zararsız olduğuna dair notun. Aylık güvenlik turuna bir madde: son yedi günün hata ve kritik kayıtlarına bak, yeni bir kaynak belirdiyse araştır.

Hata köşesi

Yaygın yanlış"Günlükte kırmızı hata işaretleri var, bilgisayarım saldırı altında."
Doğrusu

Sağlıklı bir bilgisayarın günlüğü bile hata kayıtlarıyla doludur; zamanında yanıt vermeyen bir hizmet, bulunamayan bir sürücü, geçici bir ağ kesintisi. Hata düzeyi bir arızayı bildirir, kötü niyeti değil. Önemli olan, olağan gürültüden farklı olanı fark etmektir.

Yaygın yanlış"Önemli bir şey olsaydı hata düzeyinde yazılırdı."
Doğrusu

Önem düzeyini olayı yazan program seçer. Duru'nun bilgisayarındaki planlanmış yeniden başlatma bilgi düzeyindeydi; bazı güvenlik olayları da bilgi düzeyinde yazılır. Yalnız önem düzeyine göre süzmek hızlıdır ama tek başına yetmez; zaman ve kaynakla birlikte kullanılmalıdır.

Yaygın yanlış"Günlükler zaten tutuluyor, gerektiğinde bakarız."
Doğrusu

Günlükler boyut sınırına ulaşınca en eski kayıtları siler ve bir saldırgan onları temizleyebilir. Gerektiğinde bakılacak günlüğün o gün hâlâ orada olması için saklama süresine ve kopyasına önceden karar verilmesi gerekir.

Etik ve sınırlar

Günlükler bir insanın bilgisayarda ne zaman ne yaptığını gösterir: ne zaman oturum açtığını, hangi ağa bağlandığını, hangi programı çalıştırdığını. Bu yüzden başkasının günlüklerini okumak, onun gününü okumak gibidir. Ece, Duru'nun günlüğünü onun izniyle ve yanında açtı ve yalnız o geceye baktı. Bir kurumda günlükleri okuyan kişi de bunu görevinin verdiği yetkiyle ve görevin gerektirdiği ölçüde yapar; bir çalışanın günlüğünü merak yüzünden karıştırmak, yetkili bir analistin bile yapmaması gereken bir şeydir. Günlüğü silmek ya da değiştirmek ise kendi bilgisayarında bile bir olayı incelenemez hâle getirebilir; bir şüphe varsa önce günlüğü olduğu gibi bırak ve gerekirse bir kopyasını al.

Kapanış

  1. Günlük, bir sistemde olan olayların sırayla tutulan kaydıdır ve her kayıt ne olduğunu, ne zaman olduğunu, kimin bildirdiğini ve ne kadar önemli olduğunu söyler.
  2. Bir günlüğü okumak onu süzmektir; zaman damgası, önem düzeyi, kaynak ve anahtar kelime binlerce satırı birkaç satıra indirir, ama saat dilimi ve programların seçtiği önem düzeyi göz önünde tutulmalıdır.
  3. Günlüklerin savunma değeri, tutulmalarına, yeterince uzun ve bilgisayarın dışında saklanmalarına ve düzenli okunmalarına bağlıdır; günlüğe parola ve gizli kod yazılmaz.

Üç soru

  1. Ece, Duru'nun bilgisayarındaki kırk bin kaydı on iki satıra nasıl indirdi ve bu satırlar neyi gösterdi?
  2. Kaan'ın gördüğü imkânsız olay sırasının sebebi neydi?
  3. Bora'nın sunucusu üç hafta boyunca uyarı yazdığı hâlde disk neden doldu ve Bora bunun için ne değiştirdi?

Yanıtlar

  1. Önce zamana göre süzdü ve yalnız gece ikiyle beş arasındaki kayıtları bıraktı, sonra öneme göre süzüp yalnız uyarı ve hata düzeyindekileri tuttu. Kalan kayıtlar, güncelleme hizmetinin saat üçü on iki geçe bilgisayarı bir güncelleme için yeniden başlattığını ve bunun iki gün önce planlandığını gösterdi; kimse bilgisayara girmemişti.
  2. İki sunucu zaman damgalarını farklı saat dilimlerinde yazıyordu: biri eşgüdümlü evrensel saatle, diğeri Türkiye saatiyle. Aradaki üç saatlik fark, olayları yanlış sıraya diziyordu. Zaman damgası, saat dilimi bilinmeden okunursa yanıltır.
  3. Kayıtlar tutuluyordu ama kimse okumuyordu; uyarı düzeyindeki kayıtlara bakan bir düzen yoktu. Bora, her pazartesi sunucuların son yedi günlük hata ve uyarı kayıtlarını süzen kısa bir kontrolü haftalık turuna ekledi.

Sonraki derse köprü

Bu modülde altı ders boyunca komut satırında gezindik: dizinleri, izinleri, süreçleri, ağ tablolarını ve günlükleri okuduk. Komutların sayısı arttı ve her işletim sisteminde başka bir adla karşımıza çıktılar. Ders 5.7 bu komutları tek yerde topluyor: üç işletim sisteminin en sık kullanılan okuma komutlarını aynı satırda karşılaştıran, defterinin arka kapağında duracak bir başvuru kartı.

Anlamadığın bir yer mi var?

Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.