CyberFlow Logo CyberFlow 📚 Blog

strace - Zararlı sistem çağrıları izleme

✍️ Ahmet BİRKAN 📂 kali_tools_zararli_yazilim_analizi
strace - Zararlı sistem çağrıları izleme Giriş Giriş Günümüz siber dünyasında, yazılımların ve uygulamaların nasıl çalıştığını anlamak, güvenlik tehditlerine k…
strace - Zararlı sistem çağrıları izleme

strace - Zararlı sistem çağrıları izleme

Giriş

Giriş

Günümüz siber dünyasında, yazılımların ve uygulamaların nasıl çalıştığını anlamak, güvenlik tehditlerine karşı önlemler almak için son derece önemlidir. Bu noktada, sistem çağrılarının izlenmesi, geliştiricilerin ve güvenlik uzmanlarının önemli bir aracı olan strace programı devreye girmektedir. Strace, bir uygulamanın sistemle nasıl etkileşimde bulunduğunu detaylı bir şekilde izlemenizi sağlar; bu, zararlı etkinliklerin tespit edilmesi açısından kritik bir öneme sahiptir.

strace Nedir?

Strace, Linux ve UNIX benzeri işletim sistemlerinde kullanılan bir komut satırı aracıdır. Uygulamalardan kaynaklanan sistem çağrılarını ve sinyalleri takip ederek, geliştiricilere ve güvenlik araştırmacılarına uygulama davranışını analiz etme imkanı sunar. Teknik olarak, bir programın her çağrısını (örneğin, dosya okuma/yazma, ağ bağlantıları, bellek yönetimi) kayıt altına alarak, uygulamanın ne yaptığını anlamaya yardımcı olur.

Neden Önemli?

Zararlı yazılımlar genellikle sistem seviyesinde çeşitli sistem çağrıları yaparak hedef makinelerde çeşitli işlemleri gerçekleştirmeye çalışırlar. Strace'in sunduğu detaylı analiz, bu tür davranışları tespit etmede kritik bir rol oynar. Örneğin, eğer bir uygulama beklenmedik bir sistem çağrısı yapıyorsa, bu durum potansiyel bir tehdit olduğunu işaret edebilir.

Bu bağlamda strace, şu alanlarda önemli bir kullanım sağlar:

Nerelerde Kullanılır?

Strace, siber güvenlik alanında zararlı yazılım analizi dışında birçok alanda da kullanılabilir. Örneğin:

Sonuç

Sonuç olarak, strace, hem yazılım geliştirme süreçlerinde hem de siber güvenlik alanında güçlü bir izleme aracı olarak öne çıkmaktadır. Kullanımı, sistem çağrılarının ve uygulama davranışlarının anlaşılmasına olanak tanırken, potansiyel güvenlik tehditlerini tespit etmede de kritik bir rol oynar. Bu nedenle, strace gibi araçlar, siber güvenlik uzmanlarının ve geliştiricilerin arsenalinde vazgeçilmez bir yer tutmaktadır.

Teknik Detay

strace Nedir ve Neden Kullanılır?

strace, bir Linux sistem aracıdır ve programların sistem çağrılarını ve sinyallerini izlemek için kullanılır. Genellikle, sistem programlarının nasıl çalıştığına dair derin bir anlayış elde etmek için kullanılır. Yazılımcılar ve sistem yöneticileri tarafından performans sorunlarını analiz etmek, hataları teşhis etmek ve zararlı yazılımların davranışlarını gözlemlemek amacıyla tercih edilir.

Kavramsal Yapı

strace aracı, bir programın çalıştığı sırada sistemle etkileşimlerini kayıt altına alır. Bu etkileşimler, dosya okuma/yazma, ağ iletişimi, bellek yönetimi, süreç yönetimi gibi çeşitli sistem çağrılarıyla temsil edilir. strace, dinamik bir analiz aracı olup, programın kodunu değiştirmeden çalışır.

İşleyiş Mantığı

strace, ptrace sistem çağrısını kullanarak çalışır. ptrace, bir işlem üzerinde kontrol sağlamaya ve sistem çağrılarını izlemeye imkân tanır. strace, hedef işlem başlatıldığında, bu işlem üzerindeki sistem çağrılarını yakalar ve bunları terminalde ya da bir dosyada kaydedebilir.

Kullanılan Yöntemler

  1. Temel Kullanım: strace, bir programın başlatılması ile birlikte çalıştırılabilir. Aşağıdaki komut, ls komutunu izler:

    strace ls
    
  2. Çıktıyı Dosyaya Kaydetme: Çıktıyı daha sonraki analiz için bir dosyaya yönlendirmek için -o seçeneği kullanılabilir:

    strace -o output.txt ls
    
  3. Belirli Sistem Çağrılarına Odaklanma: Eğer sadece belirli sistem çağrılarını izlemek istiyorsanız, -e seçeneği ile filtreleme yapabilirsiniz:

    strace -e trace=open,read,write ls
    
  4. Sistem Çağrılarına Jenerik Bakış: Tüm sistem çağrılarını izlemek yerine, belirli bir sistem çağrısını izlemek için şu komut kullanılabilir:

    strace -e trace=all ls
    

Analiz Bakış Açısı

strace kullanarak elde edilen bilgilerin analizi, sistem çağrılarının hızı ve sıklığına odaklanmayı gerektirir. Örneğin, bir dosya açma ve okuma işlemi, programın toplam çalışma süresinin büyük bir kısmını kaplayabilir. Buradan hareketle, gereksiz dosya açma çağrılarının veya ağ isteklerinin azaltılmasına yönelik optimizasyonlar yapılabilir.

Dikkat Edilmesi Gereken Noktalar

Sonuç

strace, zararlı sistem çağrılarının izlenmesi ve analiz edilmesinde etkili bir araçtır. Kullanıcıların ve güvenlik uzmanlarının, sistem etkileşimlerini derinlemesine anlayarak, potansiyel tehditleri tespit etmelerine ve sistem güvenliğini artırmalarına olanak tanır. Doğru kullanıldığında, sistem çağrılarının analizi yazılım geliştirme ve sistem yönetimi süreçlerinde vazgeçilmez bir yere sahiptir.

İleri Seviye

İleri Seviye strace Kullanımı

strace, Linux tabanlı sistemlerde uygulamaların gerçekleştirdiği sistem çağrılarını izlemek için güçlü bir araçtır. Ancak, ileri seviye kullanıcılar için strace'nin sunduğu imkanlar sadece temel izleme ile sınırlı değildir. Zararlı yazılımlar ve kötü niyetli saldırganların eylemlerini analiz etmek adına, strace'yi daha ileri düzeyde kullanan yöntemleri ve taktikleri keşfetmek önemlidir.

Sızma Testi Yaklaşımı

Sızma testleri sırasında, bir uygulamanın davranışlarını ve sistem çağrılarını izlemek, saldırgan profilini anlamak açısından kritik öneme sahiptir. strace kullanarak, özellikle zararlı uygulamaların arka planda ne tür sistem çağrıları yaptığını gözlemleyebilirsiniz. Bu, tespit edilmemek için gizli çalışan kötü niyetli yazılımları anlamada faydalıdır.

Diyelim ki bir zararlı yazılımın belirli bir dosya üzerinde işlem yaptığını tespit ettiniz. Bu durumda strace komutunu bu dosyaya müdahale eden uygulama üzerine uygulayarak hangi sistem çağrılarının yapıldığını inceleyebilirsiniz.

Kullanım Örneği

Örneğin, belirli bir uygulamanın çalışması sırasında ne tür sistem çağrıları yaptığını takip etmek için aşağıdaki gibi bir komut kullanabilirsiniz:

strace -f -e trace=open,read,write,close -o output.txt ./zararlisal

Bu komut, zararlisal uygulamasının başlatılmasını sağlar. -f seçeneği, alt süreçlerin de izlenmesine olanak tanır. -e trace=open,read,write,close ifadesi ise yalnızca dosya ile ilgili olan sistem çağrılarını izleyecektir. Çıktı, output.txt dosyasına yönlendirilecektir. Böylelikle, dosya okumaları, yazmaları ve açmalarıyla ilgili detaylı bir kayıt tutulacaktır.

Örnek Çıktı Analizi

output.txt içeriğinde şu şekilde bir çıktı görebilirsiniz:

open("/etc/passwd", O_RDONLY) = 3
read(3, "root:x:0:0:root:/root:/bin/bash\n...", 1024) = 1024
close(3) = 0
open("/var/log/syslog", O_WRONLY|O_CREAT|O_APPEND, 0644) = 5
write(5, "[ZARARLI YAZILIM] Günlük kaydı\n", 30) = 30
close(5) = 0

Bu çıktıda, zararlı yazılımın /etc/passwd dosyasını okuduğu ve /var/log/syslog dosyasına yazma gerçekleştirdiği tespit edilmektedir. Bu tür bilgiler, yazılımın potansiyel tehditlerini anlamak ve analiz etmek açısından oldukça değerlidir.

İleri Düzey Filtreleme ve Analiz

strace ile detaylı analiz yapabilmek için özel filtreleme kriterleri oluşturabilirsiniz. Örneğin, belirli bir hata kodunu veya belirli bir dosya yoluna odaklanarak çıktı alabilirsiniz. Aşağıdaki komut, yalnızca ENOSPC hata koduna (disk alanı yetersiz) odaklanarak sistem çağrılarını izlemektedir:

strace -e trace=%sys -e fault=ENOSPC ./zararlisal

Bu işlem, zararlı yazılımın diske yazma girişimlerinde bir yetersizlik yaşayıp yaşamadığını anlamanızı sağlar. Böylece, uygulamanın davranışlarını derinlemesine inceleme fırsatı bulursunuz.

Uzman İpuçları

strace -f -o output.txt -e trace=file ./zararlisal | grep "dosyaadi"

Bu teknikler, zararlı yazılımlar dahil olmak üzere sistem üzerinde çalışan süreçlerin daha derinlemesine anlaşılmasını sağlar. strace'nin bu tür gelişmiş kullanımları, siber güvenlik uzmanlarının analiz yeteneklerini önemli ölçüde artırır.