Cyber Security Academy · Ders

Dizeler ve Onaltılık Değerlerle Avcılık

Kötücül yazılım izlerini eşleştirme.

3. ders / 413 adım

Dizeler ve Onaltılık Değerlerle Avcılık, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.

Örnekten rule'a

Avcılık bir örnekle başlar. Ayırt edici bulguları çıkarır, hangilerinin kalıcı olduğuna karar verir ve bunları temiz dosyaları işaretlemeden aileyi yakalayan bir rule'a dönüştürürsünüz.

İş akışı şöyledir: örneği ilk incelemeden geçirmek, dizeleri ve yapısal özellikleri çıkarmak, sinyali gürültüden ayırmak, rule taslağı hazırlamak ve ardından dağıtımdan önce hem aileye hem de temiz bir veri derlemine karşı sınamak.

Aday Dizeleri Çıkarma

Yazdırılabilir dizileri listelemek için strings yardımcı programıyla başlayın; hem ASCII hem de UTF-16 (geniş) metni yakalayın. Windows kötü amaçlı yazılımları dizeleri genellikle geniş biçimde depolar.

Çıktıyı C2 URL'leri, karşılıklı dışlama nesnesi adları, kayıt defteri yolları, özel hata iletileri, PDB yolları ve alışılmadık derecede özgül metinler açısından tarayın. Genel çalışma zamanı ve derleyici dizelerini göz ardı edin.

strings -a sample.bin > ascii.txt
strings -e l sample.bin > wide.txt   # UTF-16LE
grep -iE 'http|mutex|\\\\pipe\\\\|\.pdb' ascii.txt wide.txt

Kalıcı Dizeleri Seçme

Her dize bir rule'a ait değildir. Yazarın ciddi çaba harcamadan değiştiremeyeceği bulguları tercih edin:

  • Aileye özgü sabit kodlanmış karşılıklı dışlama nesnesi veya boru adları
  • Özel protokol işaretleri veya yapılandırma anahtarları
  • Alışılmadık hata ayıklama veya panik iletileri
  • Derleme ortamını ortaya çıkaran gömülü PDB yolları

Yanlış pozitif üreten kitaplık şablon kodlarından, yaygın API adlarından ve meşru yazılımlarla paylaşılan sürüm dizelerinden kaçının.

strings:
  $mutex = "Global\\Zx7yQ_lock" wide
  $cfgkey = "x0r_cfg_begin" ascii
  $pdb = "C:\\build\\loader\\release\\loader.pdb"

Basit Gizlemeyi Aşma

Birçok aile dizeleri XOR ile veya başka yöntemlerle hafifçe kodlar. Açık metin dizeleri azsa kodlanmış biçimi veya çözücü yordamını arayın.

Bilinen bir açık metnin XOR ile kodlanmış baytlarını hesaplayıp bunlarla eşleşebilir ya da YARA'nın xor değiştiricisini kullanarak bir dizeyi tek baytlık herhangi bir XOR anahtarı altında otomatik olarak eşleştirebilirsiniz.

strings:
  // matches "http://" under any single-byte XOR key
  $u = "http://" xor
  // or a fixed key range
  $k = "config" xor(0x01-0xff)

Onaltılık Örüntülerle Avcılık

Dizeler gizlenmiş ancak kod gizlenmemişse, kötü amaçlı yazılımın kendi mantığından alınan bayt örüntüleriyle eşleşme yapın: bir şifre çözme gövdesi, paket açma döngüsü veya benzersiz bir sabit.

Örneği ayrıştırın, ayırt edici bir komut dizisi bulun ve işlem kodlarını bir onaltılık dizeye dönüştürün. Örüntünün yeniden derleme sonrasında da çalışması için değişen baytları (adresler, sabit değerler) joker karakter yapın.

strings:
  // XOR decrypt loop with wildcarded counter/address
  $decrypt = { 8A ?? 34 ?? 88 ?? 4? 4? 75 ?? }

Joker Karakterler ve Atlamalar Uygulamada

Onaltılık avcılığın ustalığı, hangi bölümlerde joker karakter kullanacağınızı seçmektir. Fazla katı olursa yeniden derleme rule'ı bozar; fazla gevşek olursa her şeyle eşleşir.

  • Derleyicinin değiştirdiği göreli ofsetleri ve sabit değerleri joker karakter yapın
  • Algoritma kararlı olduğundan işlem kodlarını sabit tutun
  • Komut uzunluklarının değiştiği yerlerde [n-m] atlamalarını kullanın

Örüntüyü benzersiz olacak kadar uzun (genellikle 8 veya daha fazla anlamlı bayt) tutun, ancak gerektiği yerlerde esnek bırakın.

strings:
  $stub = { 55 8B EC 83 EC [1-4] E8 ?? ?? ?? ?? 33 C0 }

Yapısal ve PE Göstergeleri

Ham baytların ötesindeki statik özellikler, güçlü ve düşük gürültülü koşullar oluşturur. pe modülünü kullanarak şunlarla eşleşebilirsiniz:

  • imphash — bir ailenin derlemeleri arasında genellikle kararlı olan içe aktarma tablosu özeti
  • bölüm adları — özel paketleyiciler belirgin bölümler ekler
  • belirli imports — VirtualAllocEx + WriteProcessMemory + CreateRemoteThread, enjeksiyona işaret eder
import "pe"
condition:
  pe.imphash() == "4e3a9f..." or
  for any s in pe.sections : ( s.name == ".x0rsec" )

Sinyal Olarak entropy

Paketlenmiş veya şifrelenmiş bölgeler yüksek entropy değerine sahiptir. math modülü bunu ölçerek yük bölümü şifrelenmiş görünen örnekleri işaretlemenizi sağlar; bu, paketleyicilerin tipik bir göstergesidir.

Tek başına entropy gürültülüdür (sıkıştırılmış yükleyiciler de yüksek entropy değerine sahiptir), bu nedenle yalnızca buna göre uyarı üretmek yerine başka göstergelerle birleştirin.

import "math"
condition:
  math.entropy(0, filesize) >= 7.2 and $loader_stub

Göstergeleri Birleştirme

En güçlü rule'lar, tek bir tesadüfün eşleşmeyi tetiklememesi için birden çok bağımsız gösterge gerektirir. Bir dizeyi, bir kod örüntüsünü ve bir yapısal özelliği birleştirin.

Bu katmanlı condition, hem yanlış pozitiflere (tüm parçalar uyuşmalıdır) hem de kaçınma girişimlerine (yazar aynı anda birkaç özelliği değiştirmelidir) karşı direnç gösterir.

condition:
  uint16(0) == 0x5A4D and
  filesize < 800KB and
  $mutex and
  $decrypt and
  pe.imports("kernel32.dll", "CreateRemoteThread")

Adlandırma, Meta ve Sürümleme

Bir avcılık rule'ı ancak başkaları ona güvenebilir ve bakımını yapabilirse yararlıdır. Her rule'a açık, ad alanı içeren bir ad ve eksiksiz bir meta verin.

  • Rule'ın oluşturulmasında kullanılan örnek özetlerini kaydedin
  • Aileyi, yazarı, tarihi ve bir başvuruyu belirtin
  • Mantığı geliştirdiğinizde bir sürüm alanını artırın

Rule aylar sonra tetiklendiğinde bu üstveri, müdahale eden kişiye ne anlama geldiğini ve ona ne ölçüde güvenebileceğini anlatır; böylece tek seferlik bir avcılığı kalıcı ve paylaşılabilir bir tespite dönüştürür.

meta:
  family = "X0rLoader"
  author = "ir-team"
  date = "2026-06-04"
  hash = "9f1c...e2"
  version = "2"

Güvenmeden Önce Sınayın

Yeni bir rule'ı her zaman iki veri derlemine karşı doğrulayın:

  • Gerçek pozitifler — ailenin bilinen her örneği eşleşmelidir
  • Temiz yazılımlar — büyük ve temiz bir küme (sistem ikilileri, yaygın uygulamalar) eşleşmemelidir

Bir Windows DLL dosyasındaki tek bir yanlış pozitif, kurum genelindeki kritik dosyaları karantinaya alabilir. Çalıştırın, sayın, kaçırılanları ve eşleşmeleri inceleyin; ardından geniş kapsamlı dağıtımdan önce iyileştirin.

yara -r family.yar /malware_corpus/   # expect all to hit
yara -r family.yar /clean_corpus/     # expect zero hits

Hızlı Denetim

En dayanıklı göstergeyi seçin.

Özet

Uçtan uca uygulamalı YARA avcılığı:

  • ASCII ve geniş dizeleri çıkarın; kalıcı bulguları (karşılıklı dışlama nesneleri, yapılandırma anahtarları, PDB yolları) koruyun
  • XOR değiştiricisi veya kodlanmış örüntülerle hafif gizlemeyi aşın
  • Dizeler gizlendiğinde kod baytı örüntüleriyle (şifre çözme/paket açma gövdeleri) eşleşin
  • Değişken baytları joker karakter yapın, işlem kodlarını sabit tutun ve değişken uzunluklar için atlamaları kullanın
  • Yapısal sinyaller olarak PE imphash, bölümler, imports ve entropy kullanın
  • Yanlış pozitiflere ve kaçınma girişimlerine direnmek için birden çok göstergeyi birleştirin
  • Dağıtımdan önce her zaman aile ve temiz yazılım veri derlemlerine karşı sınayın

Sıradaki konu: bu rule'ları kurumun tamamında çalıştırmak.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Cyber Security Academy öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
76
Dersler
303

Sıkça Sorulan Sorular

“Dizeler ve Onaltılık Değerlerle Avcılık” dersi ücretsiz mi?

Evet — “Dizeler ve Onaltılık Değerlerle Avcılık” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.

“Dizeler ve Onaltılık Değerlerle Avcılık” dersinde ne öğreneceğim?

Kötücül yazılım izlerini eşleştirme. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dizeler ve Onaltılık Değerlerle Avcılık” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. YARA Ne İçin Kullanılır
  2. YARA Kuralı Söz Dizimi
  3. Dizeler ve Onaltılık Değerlerle Avcılık
  4. Taramaları Ölçeklendirme ve Otomatikleştirme
← Cyber Security Academy Sayfasına Dön