YARA Rules & TryHackMe Çözümleri

Aslıhan Kuzucu
4 min readAug 25, 2023

--

YARA (Yet Another Recursive Acronym), kötü amaçlı yazılım analizi ve tehdit istihbaratı alanında kullanılan bir açık kaynaklı araçtır. YARA, belirli desenler ve kurallar kullanarak dosya içeriğini veya bellek görüntülerini taramak ve belirli kalıpları veya belirteçleri tanımlamak için kullanılır. Bu, zararlı yazılım tespiti, tehdit istihbaratı analizi ve güvenlik uzmanlarının siber tehditleri hızla belirlemelerine yardımcı olur.

YARA, genellikle YARA kuralları olarak adlandırılan metin tabanlı kuralları kullanır. Bu kurallar, özel bir dizi belirteç (pattern) veya dize deseni içerir. Bu desenler, zararlı yazılım örneklerinin veya tehdit gruplarının belirli davranışlarını veya karakteristik özelliklerini tanımlamak için oluşturulur. Örneğin, belirli bir zararlı yazılım ailesinin kullandığı dosya adları, bellek bölgesi adları, kod imzaları veya dize içerikleri gibi özellikler bu desenlere dahil edilebilir.

Bir YARA kuralı genellikle şu unsurlardan oluşur:

  • Kural Başlığı: Kuralın adını ve opsiyonel bir etiketi içerir.
  • Meta Veriler: Kural hakkında ek açıklamalar ve bilgiler içerebilir.
  • Strings: Belirli bir dosya veya bellek görüntüsünde aranacak dize desenlerini içerir.
  • Özellikler ve Koşullar: Desenlerin eşleşme koşullarını ve daha fazla ayrıntıyı tanımlar.

YARA kuralları, güvenlik uzmanlarının önceden belirlenmiş belirteçlere veya desenlere dayalı olarak zararlı yazılım örneklerini veya tehdit gruplarını tanımlamasını ve analiz etmesini sağlar. Bu, bilgisayar ağlarının ve sistemlerinin güvenliğini artırmak ve siber tehditlere daha etkili bir şekilde karşı koymak için önemlidir.

YARA RULE Nasıl Yazılır?

Yukarıdaki örnekte, bir YARA kuralının temel unsurları bulunmaktadır:

  • Kural Başlığı: rule ExampleRule ile başlar. “ExampleRule” adı kurala bir isim verir.
  • Meta Veriler: meta bölümünde bulunur ve kural hakkında açıklamalar veya bilgiler içerebilir. description ve author gibi örnek meta veriler eklenmiştir.
  • Strings: strings bölümünde tanımlanır. Bu bölümde, aranacak dize desenleri ve bunlara atanan adlar bulunur. Örnekte, $string1 ve $string2 adında iki desen tanımlanmıştır.
  • Koşul (Condition): condition bölümünde belirli desenlerin veya özelliklerin bir kombinasyonunu içeren bir koşul belirtilir. Örnekte, $string1 veya $string2'nin varlığı bir eşleşmeyi tetikler.

META (Meta Veriler):

meta: bölümü, YARA kuralının kendisi hakkında ek açıklamalar, bilgiler veya etiketler içermek için kullanılır. Bu bölüm, kuralın amacını, oluşturan kişiyi, tarihini, kaynaklarını ve diğer ilgili meta bilgilerini içerebilir. Meta veriler, kuralı anlamayı ve yönetmeyi kolaylaştırmak için kullanılır. Aynı zamanda kuralın belgelendirilmesi ve izlenebilmesi için de faydalıdır.

STRINGS (Dize Desenleri):

strings: bölümü, YARA kuralında tespit etmek istediğiniz belirli desenleri (dizeleri) tanımlamak için kullanılır. Bu desenler, zararlı yazılımın veya tehdidin karakteristik özelliklerini yansıtarak, dosya içeriği veya bellek görüntüsündeki belirli dize parçalarını temsil eder. Dizelerin başına $ işareti koyarak, desenlere ad atayabilirsiniz. Bu adlar daha sonra kuralın koşul bölümünde kullanılabilir.

CONDITION (Koşul):

condition: bölümü, belirli desenlerin veya özelliklerin bir kombinasyonunun, kuralın uygulandığı dosya veya bellek görüntüsü üzerinde eşleşme sağlayıp sağlamadığını belirtir. Eğer belirli desenler koşulu karşılarsa, olay tetiklenir. YARA kuralının asıl mantığı bu bölümde ifade edilir. Örneğin, condition: $string1 or $string2 ifadesi, $string1 veya $string2 desenlerinin herhangi birinin varlığında eşleşme sağlandığında kuralın çalışacağını belirtir.

Yukarıdaki üç bileşen bir araya geldiğinde, YARA kuralı belirli bir tehdidi veya zararlı yazılımı tanımlamak için kullanılır. Meta veriler kuralı açıklar, dize desenleri özellikleri belirler ve koşul bölümü ise bu desenlerin varlığında veya belirli durumlarda kuralın tetiklenip tetiklenmeyeceğini belirler. YARA’nın gücü, bu bileşenleri kombinleyerek özelleştirilmiş ve etkili tespit kuralları oluşturabilme yeteneğinden gelir.

from: https://tryhackme.com/room/yara

YARA Tools:

LOKI

THOR

FENRIR

YAYA

TryHackMe Çözümleri:

Link: https://tryhackme.com/room/yara

Task 2:

Task 8:

File2:

Task 9:

YarGen Nedir?

“yarGen,” YARA kuralları oluşturmayı kolaylaştırmak için kullanılan bir araçtır. YARA kuralları, zararlı yazılım analizi ve tehdit tespitinde kullanılan metin tabanlı kurallardır. YARA kuralları, belirli dize desenleri veya özellikleri temsil ederek zararlı yazılımları veya tehditleri tespit etmeyi sağlar.

yarGen, YARA kuralları oluşturmak isteyen kullanıcılara yardımcı olmak için tasarlanmıştır. Bu araç, belirli metin örneklerini veya dosya içeriklerini temel alarak YARA kuralları oluşturmanıza yardımcı olur. Kullanıcılar, yarGen’i kullanarak hızlıca ve kolayca özel YARA kuralları oluşturabilirler.

Genellikle yarGen, kötü amaçlı yazılım örneklerini analiz ederken veya özelleştirilmiş tespit kuralları oluştururken kullanılır. Bu araç sayesinde, kullanıcılar kendi ihtiyaçlarına yönelik YARA kuralları oluşturabilir ve bu kuralları analizlerinde veya güvenlik operasyonlarında kullanabilirler.

Task 10:

--

--

Aslıhan Kuzucu

Curious computer engineer interested in cyber security👩‍💻