Yara, zararlı yazılım analizinde ve tespitinde kullanılan bir araçtır. Genellikle Yara ile zararlı yazılım hakkında hızlı bir şekilde bilgi toplamak için kullanılır. Açık kaynak kodlu bir araçtır.
Yara kuralı, zararlı yazılım dosyasını Hxd, 010 Editor gibi araçlarla açtıktan sonra, içerisindeki şüphelendiğimiz kısımlar ile oluşturduğumuz kuraldan ibarettir.
Yara kurallarını GitHub üzeriden hazır olarak bulmak mümkündür. Örnek vermek gerekirse https://github.com/Yara-Rules/rules/tree/master/malware adresinde birçok APT grubunun kullanmış olduğunu zararlı yazılımlar üzerinde oluşturulmuş kurallar mevcuttur.
Yara Kuralı Nasıl Yazılır ?
Yazmış olduğum örnek gibi yazılmak zorundadır. İlk olarak rule ile yazılacak yara kuralıda isim verilmektedir. Meta kısmında yazan yerde ise kural hakkında bilgiler verilmektedir. Strings kısmında bahsetmiş olduğum, Hxd veya 010 Editor içerisinden zararlı yazılım ile ilgili şüpheli kısımlar yazılacaktır. Condition kısmında ise strings kısmında yazılmış olan kurala göre şartların yerine getirilmesi sağlanmaktadır.
Not olarak Strings bölümündeki değişken kısımlar $ ile başlamak zorundadır. açıklama kısmında yara ile tarama yapılacak kısımda hex değeri var ise { } içerisinde yazmak zorunludur.
wide: Karakter başına iki bayt ile kodlanmış dizeleri aramak için kullanılabilir, genellikle birçok çalıştırılabilir binary dosyada kullanılmaktadır.
nocase: Büyük-küçük harfe duyarsız olmasını sağlamaktadır.
Yara Parametreleri
Yara Kuralı ile Stuxnet Analizi
https://github.com/Yara-Rules/rules/blob/master/malware/APT_Stuxnet.yar adresinden mevcut bir yara kuralını kullanacağım. Kali linux işletim sisteminde yazılmış olan yara ile Stuxnet zararlısının analizini gerçekleştireceğim. Terminale yara stuxnet.yar ( GitHub’tan indirdiğim açık kaynak kodlu kod ile) stuxnet.vmem (stuxnet zararlısının imajı) karşılaştırarak içerisinde zararlı bir kodun bulunup bulunmadığını kontrol ediyorum.
Yazılmış olan kuralın içerisindeki tagların birkaçında eşleştiğini görüyoruz.
Burada ise -s parametresi ile stuxnet yara kuralındaki tagların içinden strings kısmında yazılmış olan kısımları ile listelemiş oluyor.
-n parametresinde ise stuxnet yara kuralı içindeki eşlenmemiş tagları gösteriyor.
-m parametresi ile stuxnet için metadata bilgileri ile bizlere vermiş oluyor. Buradan yola çıkarak zararlı yazılım analizinde kolaylık sağladığını anlayabiliriz.
Kaynak
https://www.bgasecurity.com/makale/zararli-yazilim-analizi-ve-tespitinde-yara-kullanimi/
http://www.halilozturkci.com/adli-bilisim-incelemelerinde-yara-ile-zararli-kod-tespiti/