YARA Kuralı Nedir? Yara Kuralı Nasıl Yazılır?


 Hepinize selamlar, bu makalemde sizlere Yara kuralı nedir, yara kuralı oluştururken nelere dikkat etmek gerekir, yara kuralı nasıl oluşturulur gibi soruları cevaplamaya çalışacağım. Umarım faydalı olur, şimdiden iyi okumalar.

 

YARA Nedir?

YARA, zararlı yazılımların tespit edilmesine, tanımlanmasına ve sınıflandırılmasına en hızlı şekilde yardımcı olmayı amaçlayan bir tool dur. YARA, VirüsTotal tarafından geliştirilmiş olan açık kaynak bir kaynaktır.

 

YARA Kuralı Nedir?

Yara kuralları ise YARA aracılığıyla oluşturulan kurallar ile malwareların tanınmasında, eşleştirilmesinde ve sınıflandırılmasında kullanılmaktadır. Yara kuralları ile tespit  edilen malwareların ne tür bir malware olduğunu, kimler tarafından oluşturulduğunu, ne amaçla kullanıldığını ve ne gibi zararlar verdiğini öğrenebiliriz. Bunlarla birlikte bu malwareların kodlarını, hangi yazılım dilleri ile yazıldığını da tespit edebiliriz.

Oluşturulmuş olduğumuz bu Yara kurallarını saldırı tespit sistemlerimiz üzerine import ederek sistemler üzerine yapılacak olan saldırıları kolaylıkla tespit edebiliriz. Hatta bu kuralları kullanarak kendi cihazlarımız ve sistemlerimiz üzerinde herhangi bir zararlı yazılım olup olmadığını da taramalar yaparak öğrenebiliriz.

 

Threat Hunting (Tehdit Avcılığı)

Tehdit avcılığı yaklaşımında amaç daha önce sistemler üzerinde tespit edilemeyen zararlı durumları tespit etmektir. SIEM, IDS ve güvenlik duvarları gibi geleneksel yöntemler ile tüm saldırıları durdurmak ya da yakalamak mümkün olmamaktadır. Bu amaçlar doğrultusunda sistemler üzerinde tespit edilemeyen veya sistemler üzerindeki güvenlik sistemlerini atlatan tehditlerin tespit edilmesini Tehdit Avcılığı sağlamaktadır. 


Yara Kurallarının Yazılması

Yara kuralları yazılırken belirli parametreler kullanılmaktadır. Bu parametreleri kullanırken doğru kullanıldıklarından emin olmak gerekmektedir.

Her bir yara kuralı yazılırken “rule” ifadesi ile başlamaktadır. Ardından kurala verilmek istenen isim verilir ve bu şekilde devam edilir. Meta kısmında kural içerisinde yazılmış olan ifadeler ile ilgili bilgiler yer alır.

Bu başlangıç kısımlarının ardından strings ve condition kısımları gelmektedir. Bu kısımlar yara kuralının en temel kısımlarını oluşturur diyebiliriz. Burada herhangi bir malware için yazmış olduğumuz kuralda malware için tespit edilen ve bu zararlı yazılımları tanıyacak olan kendine has özellikleri doğru bir şekilde kurala eklemeliyiz. Bu kısım için zararlı yazılımın kodlarının, hex değerlerinin ve içerisindeki kendine has özelliklerini doğru bir şekilde bilmek ve kurala eklemek gerekmektedir. Ardından kuralı çalıştırdığımız zaman bu kuralla ve özelliklerle eşleşen bir durum olduğu zaman uyarı vermesini beklemekteyiz.

 

String bölümündeki değişkenler $ işareti ile başlamaktadır.

İlgili string değişkenimize atamak istediğimiz değer hex ise {} içerisine yazılmaktadır. Eğer değişkenimiz text formatında ise “” içerisine yazılmaktadır.

 

/* = Bu parametreler ile yorum satırı yapılır ve açıklamalar yazılabilir.

// = Bu parametreler ile tekli yorum satırları yazılabilir.


Yara Kuralı Parametreleri

Yara kuralları yazılırken ya da yazıldıktan sonra bunlar hakkında bilgi edinmek için kullanılan belirli parametreler bulunmaktadır. Bunlardan bazıları şu şekildedir:

·       -h –help -> Yardım menüsünü görüntülemeyi sağlamaktadır.

·       -v –version -> Kullanılan yara sürümü hakkında bilgiler verir.

·       -i <identifier> -> Kuralların ismini yazdırmaktadır.

·       -g –print-tags -> Etiketlenenleri yazdırmaktadır.

·       -n -> Boşa çıkan kuralları yazdırmaktadır.

·       -m –pintt-meta -> Metadata bilgilerini yazdırmaktadır. 

·       -d <identifier> -> Dışarıdan değişken tanımlamayı sağlar.

·       -w –disable-warnings -> Hataları görmezden gelmektedir.


Yara Kuralı Örneği

rule kural_ismi

{

            meta:

            authour= “Mehmet Kadir CIRIK”

            decription=”siberkavram_yara_rule”

            strings:

            $a =”malware” 

            $b=”yara kuralı”

             $c ={65 76 6F 2D 7A 65 75 73 2D 6D 61 73 74 65 72 2F 55 54}

            condition:

            $a or $b or $c

}

 

  1.  Yara kuralını yazarken ilk olarak rule yazarak kural adı yazılmaktadır.
  2. Ardından sırası ile { } parametlerini veriyoruz ve içerisine kuralımızı yazıyoruz.
  3. Authour kısmında kuralı yazan kişinin adını veriyoruz.
  4. Description kısmına yara kuralı hakkında açıklamalar yapıyoruz. Burada yara kuralınızı hangi malware için yazıyorsanız o malware hakkında bilgiler verebilirsiniz.
  5. Son olarak zararlı yazılımımızı analiz ettiğimiz zaman bulmuş olduğumuz hex ve text değerlerini bularak bir string değişkene atıyoruz. 
  6. Ardından condition kısmında string değişkene atadığımız değerlerin aralarında ilişkiyi ve kuralın bunlar arasında neye hit edeceğini belirtiyoruz. Burada ve, veya ifadelerini kullanarak kuralımızı yazıyoruz. 

 

YARA'yı kimler kullanıyor?

Günümüzde YARA'yı kullanan bir çok kurum vardır. Bunlardan bazıları aşağıdaki gibidir:


Yorum Gönder

0 Yorumlar