CyberFlow Logo CyberFlow 📚 Blog

strings - Malware string analizi

✍️ Ahmet BİRKAN 📂 kali_tools_zararli_yazilim_analizi
strings - Malware string analizi Giriş Giriş Siber güvenlik dünyasında, zararlı yazılımların (malware) tespiti ve analiza yöntemleri, sürekli olarak evrilmekte…
strings - Malware string analizi

strings - Malware string analizi

Giriş

Giriş

Siber güvenlik dünyasında, zararlı yazılımların (malware) tespiti ve analiza yöntemleri, sürekli olarak evrilmekte ve gelişmektedir. Bu bağlamda, "string analizi" olarak adlandırılan bir teknik, kötü amaçlı yazılımları tanımlamak ve analiz etmek için önemli bir araç haline gelmiştir. String analizi, zararlı yazılımların içindeki metin dizilerini incelemeyi öneren bir yöntemdir. Bu metin dizileri, yazılımın davranışı, ilişkileri veya potansiyel hedefleri hakkında değerli bilgi sağlayabilir.

Zararlı Yazılımların Doğası

Zararlı yazılımlar, bir bilgisayar sistemine veya ağa izinsiz erişim sağlamak veya zarar vermek amacıyla tasarlanmış yazılımlardır. Bu yazılımlar, virüsler, solucanlar, truva atları ve daha fazlası şeklinde karşımıza çıkarlar.

Zararlı yazılımların analizi, siber güvenliğin temel taşlarından biridir. Güvenlik uzmanları, sistemleri tehditlerden korumak için zararlı yazılımları anlamak, tanımlamak ve etkilerini minimize etmek zorundadırlar. String analizi bu süreçte kritik öneme sahiptir, çünkü kötü amaçlı yazılımların kodunda yer alan metinler, programın işlevselliği ve amacını ortaya koyar.

Neden String Analizi?

String analizi sırasında, zararlı yazılımların kodlarında sıkça karşılaşılan anahtar kelimeler, URL’ler, dosya yolları, IP adresleri ve diğer metin dizileri ortaya çıkarılabilir. Bu tür bilgiler, zararlı yazılımın kimliğini belirlemede, neden olduğu hasarın boyutunu tahmin etmede ve daha geniş bir saldırı bağlamının analiz edilmesinde yardımcı olabilir. Ayrıca, bu yöntem, güvenlik uzmanlarının potansiyel tehditleri öngörmesine ve maalesef bir saldırının gerçekleşmeden önce müdahale etmesine olanak tanır.

Bir örnek vermek gerekirse, bir kötü amaçlı yazılım analizi sırasında aşağıdaki gibi bir string tespiti yapılabilir:

C:\Users\Public\Documents\malicious.exe

Bu tür bir dizenin ortaya çıkması, zararlı yazılımın belirli bir dosya sistemi yolu kullanarak sistemde yer edinmeye çalıştığını gösterir. Dolayısıyla, sistem yöneticileri bu bilgiyi değerlendirerek, potansiyel bir tehdit hakkında hızlı bir şekilde harekete geçebilirler.

Kullanım Alanları

String analizi, yalnızca zararlı yazılımların tespitinde değil, aynı zamanda virüs tarifleri oluşturma, zararlı yazılımların davranışları hakkında bilgi toplama ve test süreçlerinin hızlandırılmasında da kritik rol oynar. Özellikle, siber güvenlik uzmanları tarafından kötü amaçlı yazılımların davranışlarını anlamak için kullanılan analiz araçları, genellikle string analizi yöntemleriyle entegre edilmiştir.

Sonuç olarak, string analizi, siber güvenlik alanında önemli bir yere sahiptir. Zararlı yazılımların daha hızlı ve etkili bir şekilde tanımlanması ve analiz edilmesi, güvenlik uzmanlarına sistemlerini koruma konusunda büyük avantaj sağlar. Her ne kadar yeni başlayanlar için karmaşık gibi görünse de, bu teknik ve araçların öğrenilmesi, siber güvenlik becerilerini güçlendirecek önemli bir adımdır.

Teknik Detay

Strings Nedir?

Malware analizi bağlamında "strings", bir dosya veya veri kümesindeki okunabilir karakter dizileri anlamına gelir. Bu karakter dizileri, kötü amaçlı yazılımın içindeki belirli bilgi parçalarını ortaya çıkarabilir. Genellikle bir vareletin veya dosyanın içindeki şifreli URL'ler, dosya yolları veya komutlar gibi bilgiler bu dizilerde bulunabilir.

Temel İşleyiş Mantığı

Malware analizi süreci genellikle iki aşamadan oluşur: statik ve dinamik analiz. Statik analiz kısmında kötü niyetli yazılımların dosyaları üzerinde süreli incelemeler gerçekleştirilirken, dinamik analiz gerçek zamanlı olarak çalıştırılan yazılım üzerindeki etkilerin incelenmesini içerir. Strings analizi, statik analiz aşamasında önemli bir yere sahiptir; çünkü sadece dosya içeriğinin incelenmesi ile kritik bilgiler elde edilebilir.

Kötü amaçlı yazılım dosyalarını analiz ederken, genellikle strings komutu kullanılarak dosyadaki okunabilir dize dizileri tespit edilir. Örneğin, Unix tabanlı sistemlerde aşağıdaki gibi bir komut kullanılabilir:

strings -a malicious_file.exe

Bu komut, malicious_file.exe dosyasında okunabilir tüm karakter dizilerini bulur. -a seçeneği, tüm dosyanın analiz edilmesini sağlarken, bazı durumlarda bu, dosyanın sadece belirli bir kısmına odaklanmak yerine faydalıdır.

Kullanılan Yöntemler

Strings analizi sırasında birkaç temel yöntem uygulanabilir:

  1. Dosya Analizi: Kötü amaçlı yazılım dosyalarının içindeki dizelerin incelenmesi. Bu aşamada, özellikle kullanılan URL'ler, IP adresleri, ve komutlar dikkat çekmektedir.

  2. İlişkilendirme: Bulunan dizelerin bağlamına göre düzenlenmesi. Örneğin, bir dosyadaki diziler, başka bir benzer dosyayla karşılaştırılarak veya bilinen kötü niyetli yazılım veritabanlarına göre sorgulanarak anlamlandırılabilir.

  3. Filtreleme: Elde edilen dize listelerinin içinden tekrarlayan veya gereksiz olanların elenmesi. Bu işlem, analizin netliğini artırır.

Analiz Bakış Açısı

Dizelerin analizi geniş bir perspektiften ele alınmalıdır. Neutralize edici öğeler, yazılımcıların kötü niyetli yazılımcıları bilgilendirme amaçlı kullanabileceği belirli dize dizilerine karşılık gelecektir. Örneğin, bir malware dosyası içindeki malware_command.exe ifadesi, bu yazılımın belirli bir işlevini gerçekleştirmek için ne kadar önemli bir dize olduğunu ortaya koyar.

Dikkat Edilmesi Gereken Noktalar

Sonuç

Strings analizi, malware tespitinde kritik bir adımdır. Kötü niyetli yazılımların içindeki bilgileri gün yüzüne çıkarmak için statik analiz sürecinin ilk adımlarından biri olarak değerlendirilmektedir. Bu süreçte elde edilen bulgular, kötü niyetli yazılımın işlevlerini, amaçlarını ve potansiyel etkilerini anlamada yardımcı olur. Doğru teknikler ve yöntemlerle bu analiz işlemi, siber güvenlik camiasında önemli bir yer edinmektedir.

İleri Seviye

Strings Kullanarak Malware Analizi

Malware analizi, zararlı yazılımların tespit edilmesi ve incelenmesinde hayati bir rol oynar. Özellikle "strings" aracı, bu tür analizlerde oldukça etkilidir. İleri seviye kullanım konusunda, "strings" komutu ile zararlı yazılım örneklerini etkili bir şekilde analiz etmek için birkaç teknik ve ipucu paylaşacağız.

Strings Komutu ile Temel Kullanım

strings komutu, ikili dosyalar dahil olmak üzere bir dosya içerisindeki ASCII ve Unicode metinleri ayıklamak için kullanılır. Bu, bir zararlı yazılımın içindeki komutları, URL'leri veya diğer önemli metin parçalarını bulmamıza yardımcı olur.

Basit bir kullanım örneği:

strings malware_sample.exe > extracted_strings.txt

Yukarıdaki komut, "malware_sample.exe" dosyasındaki metinleri alır ve "extracted_strings.txt" dosyasına yazar.

İleri Seviye Analiz Teknikleri

Hedef Belirleme

Malware analizi sırasında, öncelikle zararlı yazılımın hedefini belirlemek önemlidir. Bu aşama genellikle, zararlının içindeki URL ve IP adreslerinin analizi ile gerçekleştirilir. String ayıklama işleminden sonra, bu bilgilerin bir listesine ulaşırız.

strings malware_sample.exe | grep -i "http"

Bu komut, dosyada bulunan HTTP URL'lerini filtreler, böylece zararlının muhtemelen bağlantı kurduğu sunucuları belirleyebiliriz.

Regex Kullanımı

Strings çıktısını daha verimli bir şekilde analiz etmek için düzenli ifadeler (regex) kullanabilirsiniz. Örneğin, IP adreslerini ayıklamak için aşağıdaki komutu çalıştırabilirsiniz:

strings malware_sample.exe | grep -P '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'

Bu komut, dosyadaki tüm IP adreslerini listeleyecektir. Regex, tespit ettiğimiz verilere dayanan daha karmaşık sorgular oluşturmanıza olanak tanır.

Payload ve Sızma Testi

Bir zararlı yazılımın içindeki payload'ları anlamak, sızma testi sırasında kritik öneme sahiptir. Genelde, malware içindeki şifrelenmiş veya gizlenmiş bileşenlerin analizi, analistlerin zararlı etkinlikleri ortaya çıkarmasına olanak tanır. Örneğin, bir dosyanın içinde potansiyel bir payload’u ayıklamak için şu adımları izleyebilirsiniz:

  1. String'leri Ayıkla: İlk adım olarak, strings komutunu kullanarak potansiyel payload'ları alın.
  2. Analiz Et: Elde edilen çıktıyı daha detaylı incelemek için bir analiz aracı kullanın veya kendi Python script'inizi yazın.

Örnek bir Python script'i ile payload analizi:

import re

def extract_payloads(file_path):
    with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
        data = f.read()
        # Basit bir payload regex'i
        payloads = re.findall(r"(?<=PAYLOAD\s:)[\s\S]*?(?=\s*;)", data)
        return payloads

payloads = extract_payloads("malware_sample.txt")
for payload in payloads:
    print(payload)

Bu script, "malware_sample.txt" dosyasındaki belirli bir formatta payload'ları aracılığı ile çıkarır. Regex ile birlikte bu tür scriptler, zararlı yazılımların içeriklerini daha hızlı ve etkili bir şekilde analiz etmenize yardımcı olur.

Uzman İpuçları

  1. Dosya Türlerini Bilin: Farklı dosya türleri (yürütülebilir dosyalar, dokümanlar vb.) farklı analiz teknikleri gerektirir. Doğru araçları ve yöntemleri seçmek önemlidir.
  2. Heuristic Analiz: String analizi, heuristic yöntemlerle birleştirildiğinde, daha derinlemesine sonuçlar sunar. Anormal string dizelerini değerlendirerek, zararlı etkinlikleri tespit etmek için bu yöntemleri uygulayın.
  3. Sürekli Eğitim: Malware teknikleri sürekli gelişmektedir. En yeni teknikler ve araçlar hakkında bilgi sahibi olmaya çalışın.

Sonuç olarak, strings komutu, zararlı yazılım analizinin temeli olsa da, onu daha etkili kılacak birçok ileri seviye teknik ve yaklaşım mevcuttur. Bu tekniklerle donanmak, bir siber güvenlik uzmanının en büyük avantajlarından biridir.