@BGASecurity
Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
- {yara} 2018 -
@BGASecurity
BGA Bilgi Güvenliği A.Ş
BGA Security Hakkında
Siber güvenlik dünyasına yönelik, yenilikçi profesyonel
çözümleri ile katkıda bulunmak amacı ile 2008 yılında
kurulan BGA Bilgi Güvenliği A.Ş. stratejik siber
güvenlik danışmanlığı ve güvenlik eğitimleri
konularında büyük ölçekli çok sayıda kuruma hizmet
vermektedir.
Gerçekleştirdiği vizyoner danışmanlık projeleri ve
nitelikli eğitimleri ile sektörde saygın bir yer kazanan
BGA Bilgi Güvenliği, kurulduğu günden bugüne kadar
alanında lider finans, enerji, telekom ve kamu
kuruluşları ile 1.000'den fazla eğitim ve danışmanlık
projelerine imza atmıştır.
ARGE
EĞİTİM
MSSP
PENTEST
SOME / SOC
SECOPS
BGA | Hakkında
@BGASecurity
Samet Sazak
Siber Güvenlik Araştırmacısı
R&D Engineer @belleveben
@BGASecurity
YARA NEDİR?
Virustotal, tarafından geliştirilen YARA, malware araştırmacılarının malware örneklerini tanımlamasına ve
sınıflandırmasına yardımcı olmayı amaçlayan (ancak bunlarla sınırlı olmayan) açık kaynak kodlu bir araçtır.
BGA | Webinar
@BGASecurity
YARA NASIL ÇALIŞIR?
YARA ile, metinsel (textual) veya binary pattern’lere dayalı olarak malware
ailelerinin kurallarını oluşturabilirsiniz.
Bir dosya içinde belirli bir text string aramak gibi temel YARA kuralları veya
çalışan bir processin belirli bir sanal bellek adresindeki verileri arama yapan
daha gelişmiş YARA kuralları bulunmaktadır.
BGA | Webinar
@BGASecurity
YARA NE DEĞİLDİR?
• Anti-virüs yazılımı değildir.
• Korelasyon motoru değildir
BGA | Webinar
@BGASecurity
YARA NASIL YARDIMCI OLUR?
• Şahane bir pattern matching engine.
• Malware analizi sürecini sizin için kolaylaştırır, tespit etmenizi sağlar ve
kategorize etmenizi sağlar ancak bunlarla sınırlı kalmayan bir uygulamadır.
BGA | Webinar
@BGASecurity
KİMLER KULLANIYOR? BGA | Webinar
@BGASecurity
YARA KURULUMU
Windows, Linux ve Mac OS X üzerinde çalışan multi platform bir yazılımdır.
En son sürümü: https://github.com/VirusTotal/yara/releases adresinde
edinebilirsiniz.
BGA | Webinar
@BGASecurity
YARA KURULUMU
Windows için : Yara.exe indirebilirsiniz.
Mac OS X için : brew install yara
Linux için: Kaynak koddan derleyebilir ya da kullandığınız dağıtıma göre paket
yöneticisi ile kurulum sağlanabilir.
Detay : (https://yara.readthedocs.io/en/v3.7.0/gettingstarted.html#compiling-
and-installing-yara)
BGA | Webinar
@BGASecurity
TEMEL BİLGİLER
Malware, malicious ve software
kelimelerinin kısaltılmış bir
kombinasyonudur. Bu terim, zarar
vermek amacıyla ya da kötü niyet
içeren tüm yazılımlar için geçerlidir.
BGA | Webinar
@BGASecurity
MALWARE TİPLERİ
Virüsler, program dosyalarını ve / veya kişisel dosyaları enfekte eder.
Spyware(Casus yazılım): kişisel bilgileri toplar.
Worm(solucan): kendisini bir ağ üzerinde çoğaltıp dağıtabilen yazılımdır.
Trojan: Normal bir program olarak görünür ama aslında değildir. (Truva atı)
Browser Hijacker: web tarayıcınız üzerinde değişiklikler yapan zararlı yazılımdır.
Rootkit: Yönetimsel hakları ele geçirir
Malwertising: zararlı yazılımları yaymak için reklamcılık kullanan zararlılardır.
BGA | Webinar
@BGASecurity
ZARARLI YAZILIM ANALİZİ
Zararlı yazılımları algılama ve önlemek için
davranışlarını analiz etme tekniklerine zararlı
yazılım analizi denir.
Örneğin, Antivirüs şirketleri imzaları
güncellemek ve böylece karantinaya
alınabilmeleri için sürekli zararlı yazılım analizi
yaparlar.
BGA | Webinar
@BGASecurity
ZARARLI YAZILIM ANALİZİ ÇEŞİTLERİ
Zararlı Yazılım Analizi İkiye Ayrılır
Statik Analiz: Zararlı yazılımın çalışmasını
anlamak için reverse engineering(tersine
mühendislik) yapmaktır. Bu, sisteminizde
herhangi bir hasara yol açmaz, ancak yapmak
oldukça bilgi gerektirir.
BGA | Webinar
@BGASecurity
ZARARLI YAZILIM ANALİZİ ÇEŞİTLERİ
Zararlı Yazılım Analizi İkiye Ayrılır
Dinamik Analiz: Göreceli olarak daha kolay
ama statik analizden daha risklidir. Gelişmiş
zararlı yazılımlarda çok etkili değildir. Bu
teknik, zararlı yazılımın davranışını
tanımlamak için yalıtılmış bir ortamda
çalıştırılmasını içerir. Davranış çeşitli
kategorilere ayrılabilir:
BGA | Webinar
@BGASecurity
ZARARLI YAZILIM ANALİZİ ÇEŞİTLERİ
Örnek;
Örneğin bir zararlının: Ağ davranışı Dosya
sistemi davranışı Kayıt defteri değişiklikleri
Sistem değişiklikleri gibi davranışları analiz
edilir.
BGA | Webinar
@BGASecurity
SIGNATURE-BASED KORUMA YETERLİ DEĞİL!
Bizde hash var, ne işimize yarayacak Yara kuralı?
- Sadece imza tabanlı korumayı kullanmak artık yeterli değil. Bu yöntemleri
atlamak için kullanabilecekleri karşı önlemler geliştirilmektedir.
Çeşitli şifreleme hizmetleri, paketleyiciler(packers) ve polimorfizm kullanımıyla,
artık mevcut imzalarla eşleşmeyecek kadar farklı olan zararlı yazılımlar
oluşturuluyor.
Siber güvenlik topluluğu yeni tehdit göstergelerini(IOC) paylaşmada güçlüdür,
bu nedenle Yara gibi araçlar cephaneliğiniz için önemli olmaktadır.
BGA | Webinar
@BGASecurity
BİR YARA KURALININ ANATOMİSİ
rule Kural_İsmi
{
meta:
author = “samet sazak”
description = “bga security @ webinar”
strings:
$a = “zararlı yazılım” wide ascii nocase
$b = “yara kuralları” wide ascii nocase
condition:
$a or $b
}
BGA | Webinar
@BGASecurity
TÜM YARA KEYWORDLERİ
all, and, any, ascii, at, condition, contains, entrypoint, false, filesize, fullword, for, global, in,
import, include, int8, int16, int32, int8be, int16be, int32be, matches, meta, nocase, not, or, of,
private, rule, strings, them, true, uint8, uint16, uint32, uint8be, uint16be, uint32be, wide
BGA | Webinar
@BGASecurity
YARA STRINGS
Bu bölüm, bir dosyayla eşleşmemiz gereken strings(karakter dizileri) / desen / imzaları içerir. Strings
bölümü isteğe bağlıdır ve gerekirse çıkarılabilir. YARA'da 3 tip string vardır:
Text Strings
Hexadecimal Strings
Regex
BGA | Webinar
@BGASecurity
TEST STRINGS; KEYS
Text Strings: Daha sonra "condition" kümesiyle eşleştirilen ASCII metni biçimindedir.
Büyük / Küçük Harfe Duyarlı Dizeler:
Örnek = $ text_case_example = ”Test”
Büyük / Küçük Harfe Duyarsız Dizeler:
Örnek = $ text_nocase_example = ”test” nocase
BGA | Webinar
@BGASecurity
TEST STRINGS; WIDE
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.
rule OrnekWide
{
strings:
$a = "Samet" wide nocase
condition:
$a
}
BGA | Webinar
@BGASecurity
TEST STRINGS; FULLWORD
rule OrnekFullWord
{
strings:
$a = "bgasecurity" fullword
condition:
$a
}
Yakalar:
www.bgasecurity.com
www.blog.bgasecurity.com
Yakalamaz:
www.bgaasecurity.com
www.blog.bgasecurityy.com
BGA | Webinar
@BGASecurity
TEST STRINGS; KOŞULLU STRINGLER
rule KosulluString
{
strings:
$a = { AA 20 ( DB BC | C1 ) AA }
condition:
$a
}
Yakalar:
AA 20 DB BC AA
AA 20 C1 AA
BGA | Webinar
@BGASecurity
TEST STRINGS; HEXADECIMAL STRINGLER
Hexadecimal stringler, çıktı dosyasındaki hex karakterlerle eşleşecektir. Hex string kullanmanın bazı avantajları vardır.
Wildcard karakter:
Bu bir "?" ile gösterilir ve kalıptaki bazı baytların bilinmediğini ve herhangi bir şeyle eşleşmesi gerektiğini belirtir.
Örneğin:
$ hex_example = {B1 B2? ? B8}
Jumps:
Kalıbın değerlerini bildiğimiz halde uzunlukları değiştiğinde, atlamayı kullanabiliriz.
Örneğin:
$ jump_example = {F1 F2 [4-6] 24};
Bu, 4 bayttan 6 bayta olan herhangi bir keyfi dizinin olduğunu gösterir.
BGA | Webinar
@BGASecurity
HEXADECIMAL ÖRNEK
rule HexOrnek
{
strings:
$hex_string = { AA 41 ?? D8 A? FB }
condition:
$hex_string
}
AA 41 01 D8 AA FB (01 olsa da kural match edecektir)
AA 41 AA D8 AB FB (AA olsa da kural match edecektir)
BGA | Webinar
@BGASecurity
STRINGS; REGULAR EXPRESSION
Düzenli İfadeler:
v2.0'dan başlayarak YARA, çoğunlukla PCRE'ye benzeyen kendi düzenli ifade motoruna sahiptir.
Düzenli ifadeler, YARA'nın en güçlü özelliklerinden biridir. Stringler ile aynı şekilde tanımlanırlar, ancak Perl programlama dilinde olduğu gibi çift
tırnak işaretleri yerine eğik çizgilerle kapatılırlar.
BGA | Webinar
@BGASecurity
REGEX ÖRNEK
MD5 Hash: 2e47d7f81970b3bb09d249a7de385dbc
String: samet
rule md5Ornek
{
strings:
$re1 = /md5: [0-9a-fA-F]{32}/
condition:
$re1
}
BGA | Webinar
@BGASecurity
CONDITIONS
Koşullar:
Koşul kümeleri, Bool ifadelerini değerlendirir. Örneğin, yukarıdaki ana örnekte, $ a veya $ b öğesinin true olmasını değerlendirir.
Koşul kümesi altında yapılabilecekler >
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; STRINGS SAYISI
String sayısı
Örneğin,
$test_string = a
$test_string2 = b
$test_string1 = 2 and $test_string2 <10
Yakalar:
aabbbbb, aabbb, aabbbbbbb
Yakalamaz:
aaabbbbbb, bbbbbbbbbbbbbbbbbbbbbaa
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; OFFSET
String Ofsetleri: bir Condition içerisinde kullanıldığında, ilişkili string'in string'in dosya içerisinde belirli bir ofsette veya process
memory'nin herhangi bir yerinde olup olmadığını bilmek istediğimi zaman kullanırız.
Örneğin:
$a at 200 and $b at 500;
Bu $a string’in çalışan processin process memory space’i içerisinde virtual adress(sanal adress) 200'ünde ve $b'nin bir dosyanın
offset 500'de olup olmadığını bulacaktır: (ikisi için de geçerli)
Offsetler decimaldir.
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; OFFSET
rule Offset
{
strings:
$a = "encrypted"
$b = “bitcoin"
condition:
$a at 0x64 and $b at 0xC8
}
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; FILESIZE
Dosya boyutunu kontrol etmek için: Örnek = filesize> 100KB
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; STRING KÜMELERİ
Dizeler kümesi:
Örneğin
2 of ($test_string1, $test_string2, $test_string3);
Bu, eklenen dizgenin en az iki tanesiyle eşleşmesi gerektiğini söylemektedir.
BGA | Webinar
@BGASecurity
DEMO
Buraya kadar anlattıklarımızı ufak bir demo ile gösterelim.
BGA | Webinar
@BGASecurity
PE DOSYA FORMATI
Portable Executable (PE) Windows’un çalıştırılabilir dosya
formatıdır.
Portable Executable .acm, .ax, .cpl gibi pek çok uzantının
yanı sıra herkes tarafından çokca bilinen .exe uzantılarını
kapsamaktadır.
MS-DOS stub'ından sonra, ofset 0x3c'de dosyayı bir PE
dosyası olarak tanımlayan 4 baytlık bir imza vardır. Bu imza
"PE00" ("P" ve "E" harfleri ve ardından iki tane null bayttır).
BGA | Webinar
@BGASecurity
PE DOSYA FORMATI BGA | Webinar
@BGASecurity
HATIRLATMA!
Big Endian vs Little Endian
Bir bayt dizisinin bilgisayar belleğinde
saklandığı sırayı tanımlayan terimlerdir.
Örneğin : 0x01234567
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; OFFSET 2
/*
* Match any file containing "MZ" (not zero terminated) at offset 0.
*/
rule OffsetExample {
strings:
$mz = "MZ"
condition:
$mz at 0
}
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; OFFSET 3
/*
* Match any file containing "PE" anywhere between offsets 32-100 (decimal)
*/
rule RangeExample {
strings:
$pe = "PE"
condition:
$pe in (32..100)
}
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; ADRESİ BELİRLİ YERLERİ OKUMAK
intXX fonksiyonları <offset veya virtual address> içerisinde 8, 16 ve 32 bit signed
integer değerleri okurken, uintXX fonksiyonları unsigned integer değerleri okur.
Örnek olarak PE dosyalarını ayırt etmek için bir kural görelim:
rule IsPE
{
condition:
// MZ signature at offset 0 and ...
uint16(0) == 0x5A4D and
// ... PE signature at offset stored in MZ header at 0x3C
uint32(uint32(0x3C)) == 0x00004550
}
BGA | Webinar
@BGASecurity
CONDITION SEÇENEKLERİ; DİĞER KURALI REFERANS VERMEK
rule Rule1
{
strings:
$a = "dummy1"
condition:
$a
}
rule Rule2
{
strings:
$a = "dummy2"
condition:
$a and Rule1
}
BGA | Webinar
@BGASecurity
YARA MODÜLLERİ
Örneğin, PE ve Cuckoo gibi modüller yara ile birlikte kullanılabilir.
Python dilindeki gibi içe aktarılabilir, ancak çift tırnak işareti eklenebilir.
import "pe"
import “cuckoo"
pe.entry_point == 0x1000
cuckoo.http_request(/someregexp/)
BGA | Webinar
@BGASecurity
PE MODÜLÜ
PE modülü, PE dosya formatının niteliklerini ve özelliklerini kullanarak PE dosyaları için daha ayrıntılı
kurallar oluşturmanızı sağlar.
Bu modül, bir PE başlığında bulunan alanların çoğunu bulmanızı sağlar ve daha etkileyici ve
hedeflenmiş kurallar yazmak için kullanılabilecek işlevler sağlar.
Bazı örnekler görelim: https://yara.readthedocs.io/en/v3.7.0/modules/pe.html
BGA | Webinar
@BGASecurity
CUCKOO MODÜLÜ
Cuckoo sandbox tarafından oluşturulan davranış bilgilerine dayanarak YARA kurallarını oluşturmanızı sağlar.
BGA | Webinar
@BGASecurity
CUCKOO ÖRNEK
import "cuckoo"
rule Test
{
condition:
cuckoo.network.http_request(/http://bgasecurity.com/)
}
 = > escape
/ = > regex begin-end
BGA | Webinar
@BGASecurity
MAGIC MODÜLÜ
Magic modül, dosyanın tipini, standart Unix "file" komutunu temel alarak dosyanın türünü tanımlamanızı
sağlar.
mime_type() Function returning a string with the MIME type of the file. Example:
magic.mime_type() == “application/pdf”
BGA | Webinar
@BGASecurity
HASH MODÜLÜ
Hash modülü, dosyaların hashlerini (MD5, SHA1, SHA256) hesaplamanıza ve imza oluşturmanıza olanak tanır.
Örneğin:
import "hash"
rule WannaCry {
meta:
description = "WannaCry"
condition:
hash.md5(0, filesize) == "db349b97c37d22f5ea1d1841e3c89eb4"
}
BGA | Webinar
@BGASecurity
HASH MODÜLÜ 2
import "hash"
rule MSFT_WHITELIST {
meta:
description = "Genuine Microsoft"
condition:
uint16(0) == 0x5A4D and
filesize < 1MB and
hash.md5(0, filesize) == "e30299799c4ece3b53f4a7b8897a35b6" or
hash.md5(0, filesize) == "897a35b6e30299799c4ece3b53f4a7b8" or
hash.md5(0, filesize) == "6462c8c3b51e302997897a35ba7b8846" or
hash.md5(0, filesize) == "e30f4a7b8897219799c4ece3b4ece377" or
hash.md5(0, filesize) == "9c4ece3b53f4a7b8897e3063379a35b6" or
hash.md5(0, filesize) == "a45f7fcc14b9b6462c8c3b51623c4301"
}
BGA | Webinar
@BGASecurity
DOTNET MODÜLÜ 2
Dotnet modülü, .NET dosyalarının niteliklerini ve özelliklerini kullanarak daha ince kurallar oluşturmanıza
olanak tanır.
Örneğin:
dotnet.version == “v2.0.50727”
BGA | Webinar
@BGASecurity
DİĞER KURALLARI DAHİL ETMEK
include "cerber.yar"
include “../ransomware.yar"
C tipi include:)
BGA | Webinar
@BGASecurity
KURAL GELİŞTİRMEDE YARDIMCI ARAÇLAR
Florian Roth tarafından geliştirilen : YaraGen
(https://github.com/Neo23x0/yarGen)
AlienVault tarafından geliştirilen: Yabin
https://github.com/AlienVault-OTX/yabin
Xen0ph0n tarafından geliştirilen: YaraGenarator
https://github.com/Xen0ph0n/YaraGenerator
https://github.com/techbliss/Yara_Mailware_Quick_menu_scanner
BGA | Webinar
@BGASecurity
YEXTEND BGA | Webinar
@BGASecurity
YABIN BGA | Webinar
@BGASecurity
YARAGEN BGA | Webinar
@BGASecurity
Xen0ph0n YARAGENERATOR BGA | Webinar
@BGASecurity
PASTE HUNTER BGA | Webinar
@BGASecurity
PASTE HUNTER BGA | Webinar
@BGASecurity
HYBRID ANALYSIS BGA | Webinar
@BGASecurity
HYBRID ANALYSIS BGA | Webinar
@BGASecurity
YARAGUARDIAN BGA | Webinar
@BGASecurity
B!nalyze - IREC BGA | Webinar
IREC, tek bir fare tıklamasıyla canlı bir sistemden
kritik kanıtlar toplamanızı sağlayan bütün bir
araçtır. (Powered By Yara <3)
İndir: https://binalyze.com/products/irec-free/
@BGASecurity
IREC NELER YAPAR? BGA | Webinar
• RAM Imajı, $MFT olarak CSV, Hibernation Info, DNS Önbelleği ve daha fazlasını toplar.
• Taşınabilir. Kurulum gerektirmez,
• Uyumludur. XP'den başlayan tüm 32 ve 64 bit Windows sürümlerini destekler,
• Kullanıcı dostu. HTML ve JSON raporlarını paylaşmaktadır,
• Hızlı! Hepsini birkaç dakika içinde toplar!
• Scriptable Yara Desteklemektedir <3
@BGASecurity
IREC YARA EDİTÖRÜ BGA | Webinar
@BGASecurity
PROCESS
Binalyze Process Module Extension for YARA
BGA | Webinar
Process.name
Process.ID
Process.Parent
Process.Name
Process.Path
Process.CommandLine, DLLS
@BGASecurity
PEID İLE YARA KULLANIMI BGA | Webinar
PEiD kurallarını Yara kurallarına kolayca dönüştürebiliriz ve Yara'yı kullanarak hangi
packer/encoder'ı zararlı dosyayı derlemek için kullandıklarını kontrol edebiliriz.
Daha sonra dosyayı normal formuna yeniden dönüştürmek için kullanabileceğimiz
kullanılmış packer / encoder'ı belirlemede çok yardımcı olabilir.
https://raw.githubusercontent.com/Yara-Rules/rules/master/Packers/peid.yar
@BGASecurity
VOLATILITY ve YARA ile MEMORY DUMP İÇERİSİNDE
MALWARE ARAMAK!
BGA | Webinar
Stuxnet Memory Dump : https://cdn.andreafortuna.org/stuxnet.vmem.zip
@BGASecurity
VOLATILITY ve YARA ile MEMORY DUMP İÇERİSİNDE
MALWARE ARAMAK!
BGA | Webinar
@BGASecurity
YARA ENDPOINT BGA | Webinar
https://github.com/Yara-Rules/yara-endpoint
@BGASecurity
ETKİN YARA KULLANIMI BGA | Webinar
Tersine mühendislik, zararlı yazılımlara uygulanacak en pahalı analiz şeklidir. Bununla birlikte, analiz süreci çok
pahalı olduğu için, bu maliyeti düşürülmesini isteriz.
Bu nedenle, zararlı yazılımları sınıflandırırken ve tanımlarken, ilgili dosyaların bir araya getirilerek analiz süresinin
kısaltılması gerekmektedir. Bir dosya aslında birçok dosyayı etkilemektedir.
Dosyalar arasındaki bu ilişkileri ifade etmek için, “belirli nesnel ölçütlerle kendisinden türetilen” olarak
tanımlanan "zararlı yazılım ailesi" kavramını kullanırız.
Bu tanımı kullanarak, bir aile oluşturmak için farklı dosya gruplarına farklı kriterler uygulayabiliriz.
Örneğin, Cryptolocker Family
@BGASecurity
ETKİN YARA KULLANIMI BGA | Webinar
YARA'nın bir başka etkin kullanımı, zararlı yazılımlarda bulunan kaynakları tespit edip kurallara
eklemektir.
Bu kaynaklar, ayırt edici simgeler (icon), konfigürasyon bilgileri, diğer dosyalar ve fonksiyonlar gibi
şeyleri içerir.
Bu kaynakları YARA imzaları olarak yazmak için, öncelikle kaynakları (Örneğin, resource hacker gibi
herhangi bir araç kullanarak) çıkarırız ve daha sonra kaynağın baytını (veya bir kısmını) doğrudan
YARA'da temsil edilebilen onaltılık (hexadecimal) bir stringe dönüştürürüz.
@BGASecurity
ETKİN YARA KULLANIMI BGA | Webinar
YARA kurallarının en etkin kullanımı, zararlı yazılım tarafından çağrılan fonksiyonları temsil eden
baytları yazmaktır.
Fonksiyonlar, zararlı yazılım ailelerini tanımlamak için önemli unsurlardır.
Bir zararlı yazılımı tanımlamak için tespit edebileceğiniz en iyi faktör, zararlı yazılımın genel
karakterini gösteren eylemleri gerçekleştiren fonksiyonlardır.
@BGASecurity
POWERSHELL ÖRNEĞİ BGA | Webinar
@BGASecurity
KRİPTO ÖRNEĞİ BGA | Webinar
@BGASecurity
WANNACRY DROPPER WORM BGA | Webinar
@BGASecurity
ANTİ VM ÖRNEĞİ BGA | Webinar
Grafik Kartını WMI aracılığıyla sorgulayarak sanal makinede olduğu anlayan zararlı yazılımları tespit etmek için kullanılır.
@BGASecurity
ARAMIZDA ANALİZCİ VAR MI? BGA | Webinar
@BGASecurity
UAC ve FIREWALL DISABLE BGA | Webinar
@BGASecurity
HIJACKING NETWORK CONFS BGA | Webinar
@BGASecurity
DOSYA İÇERİSİNDEN DOSYA ÇIKMASI BGA | Webinar
@BGASecurity
IMAJ DOSYASI İÇERİSİNDEKİ WEBSHELL BGA | Webinar
@BGASecurity
PHISHING BGA | Webinar
@BGASecurity
BAŞKA YARA KURALLARI OLUŞTURMAK BGA | Webinar
https://github.com/InQuest/awesome-yara
@BGASecurity
ARA BAŞLIKALT BAŞLIK Hamza Şamlıoğlu
BÖLÜM SLAYTI
Ürün Bağımsız
Güvenlik Yaklaşımı”
BGA Security, deneyimli ve uzman kadrosu ile siber saldırılara karşı kurumların ihtiyaç duyacağı desteği, “ürün bağımsız
güvenlik yaklaşımı” vizyonu ile sağlama adına her zaman yanınızda…
Dinlediğiniz için teşekkürler:)
github: @sametsazak
twitter: @belleveben
linkedin: @sametsazak
@BGASecurity
-Teşekkürler-
bgasecurity.com | @bgasecurity
github: @sametsazak
twitter: @belleveben
linkedin: @sametsazak

More Related Content

PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
PDF
Yazılım Güvenliği Temelleri
PDF
Web Servislerine Yönelik Sızma Testleri
DOCX
GÜVENLİK SİSTEMLERİNİ ATLATMA
PDF
Metasploit Framework Eğitimi
PDF
Metasploit El Kitabı
PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Yazılım Güvenliği Temelleri
Web Servislerine Yönelik Sızma Testleri
GÜVENLİK SİSTEMLERİNİ ATLATMA
Metasploit Framework Eğitimi
Metasploit El Kitabı
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19

What's hot (20)

PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
PDF
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
DOCX
SIZMA TESTLERİNDE BİLGİ TOPLAMA
PDF
Uygulamalı Ağ Güvenliği Eğitim Notları
PDF
Siber Tehdit Avcılığı (Threat Hunting)
PDF
Kali ile Linux'e Giriş | IntelRAD
PDF
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
PDF
Arp protokolu ve guvenlik zafiyeti
DOCX
PORT TARAMA ve KEŞİF ÇALIŞMALARI
DOCX
PAROLA KIRMA SALDIRILARI
PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
DOCX
VERİTABANI SIZMA TESTLERİ
PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
DOCX
Hacking'in Mavi Tarafı -1
PPTX
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
PDF
Siber Güvenlik ve Etik Hacking Sunu - 1
PDF
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
DOCX
Sızma Testine Giriş - Fuat Ulugay
PDF
İleri Seviye Ağ Güvenliği Lab Kitabı
PDF
Snort IPS(Intrusion Prevention System) Eğitimi
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
SIZMA TESTLERİNDE BİLGİ TOPLAMA
Uygulamalı Ağ Güvenliği Eğitim Notları
Siber Tehdit Avcılığı (Threat Hunting)
Kali ile Linux'e Giriş | IntelRAD
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
Arp protokolu ve guvenlik zafiyeti
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PAROLA KIRMA SALDIRILARI
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
VERİTABANI SIZMA TESTLERİ
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Hacking'in Mavi Tarafı -1
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Siber Güvenlik ve Etik Hacking Sunu - 1
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
Sızma Testine Giriş - Fuat Ulugay
İleri Seviye Ağ Güvenliği Lab Kitabı
Snort IPS(Intrusion Prevention System) Eğitimi
Ad

Similar to Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı (20)

PPTX
YARA KURALLARI
PDF
Windows 7 Ortamında Zararlı Yazılım Analizi
PDF
Zararlı Yazılım Analizi (ÖZET)
PPTX
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
PDF
Malware Analizi eğitimi,11 15 mart 2013
PDF
Binary Hacking Hakkında Herşey
PDF
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
PDF
Sysmon İle Siber Tehdit Avcılığı (Threat Hunting)
PPTX
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
PDF
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
PDF
Beyaz Şapkalı Hacker CEH Eğitimi - Parola Kırma Saldırıları
PPTX
Ransomware Nedir, Nasıl Korunulur?
DOCX
EXPLOIT POST EXPLOITATION
PPTX
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
PDF
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
PDF
2017 Siber Olayları ve Güvenlik Değerlendirmesi
PDF
Metasploit Framework ile Exploit Gelistirme
ODP
Metasploit framework ile exploit gelistirme 2013 1.5
PDF
Ozgur Yazilimlar ile Saldiri Yontemleri
ODT
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
YARA KURALLARI
Windows 7 Ortamında Zararlı Yazılım Analizi
Zararlı Yazılım Analizi (ÖZET)
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
Malware Analizi eğitimi,11 15 mart 2013
Binary Hacking Hakkında Herşey
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Sysmon İle Siber Tehdit Avcılığı (Threat Hunting)
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
Beyaz Şapkalı Hacker CEH Eğitimi - Parola Kırma Saldırıları
Ransomware Nedir, Nasıl Korunulur?
EXPLOIT POST EXPLOITATION
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
2017 Siber Olayları ve Güvenlik Değerlendirmesi
Metasploit Framework ile Exploit Gelistirme
Metasploit framework ile exploit gelistirme 2013 1.5
Ozgur Yazilimlar ile Saldiri Yontemleri
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
Ad

More from BGA Cyber Security (20)

PDF
WEBSOCKET Protokolünün Derinlemesine İncelenmesi
PDF
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
PDF
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
PDF
3. parti firma risklerinden nasıl korunulur?
PDF
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
PDF
Webinar: Popüler black marketler
PDF
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
PDF
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
PDF
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
PDF
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
PDF
Open Source Soc Araçları Eğitimi 2020-II
PDF
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
PDF
Hacklenmiş Windows Sistem Analizi
PDF
Open Source SOC Kurulumu
PDF
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
PDF
Siber Fidye 2020 Raporu
PDF
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
PDF
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
PDF
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
PDF
SSL Sertifikalarından Phishing Domain Tespiti
WEBSOCKET Protokolünün Derinlemesine İncelenmesi
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
3. parti firma risklerinden nasıl korunulur?
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Webinar: Popüler black marketler
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Open Source Soc Araçları Eğitimi 2020-II
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Hacklenmiş Windows Sistem Analizi
Open Source SOC Kurulumu
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
Siber Fidye 2020 Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
SSL Sertifikalarından Phishing Domain Tespiti

Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı

  • 1. @BGASecurity Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı - {yara} 2018 -
  • 2. @BGASecurity BGA Bilgi Güvenliği A.Ş BGA Security Hakkında Siber güvenlik dünyasına yönelik, yenilikçi profesyonel çözümleri ile katkıda bulunmak amacı ile 2008 yılında kurulan BGA Bilgi Güvenliği A.Ş. stratejik siber güvenlik danışmanlığı ve güvenlik eğitimleri konularında büyük ölçekli çok sayıda kuruma hizmet vermektedir. Gerçekleştirdiği vizyoner danışmanlık projeleri ve nitelikli eğitimleri ile sektörde saygın bir yer kazanan BGA Bilgi Güvenliği, kurulduğu günden bugüne kadar alanında lider finans, enerji, telekom ve kamu kuruluşları ile 1.000'den fazla eğitim ve danışmanlık projelerine imza atmıştır. ARGE EĞİTİM MSSP PENTEST SOME / SOC SECOPS BGA | Hakkında
  • 3. @BGASecurity Samet Sazak Siber Güvenlik Araştırmacısı R&D Engineer @belleveben
  • 4. @BGASecurity YARA NEDİR? Virustotal, tarafından geliştirilen YARA, malware araştırmacılarının malware örneklerini tanımlamasına ve sınıflandırmasına yardımcı olmayı amaçlayan (ancak bunlarla sınırlı olmayan) açık kaynak kodlu bir araçtır. BGA | Webinar
  • 5. @BGASecurity YARA NASIL ÇALIŞIR? YARA ile, metinsel (textual) veya binary pattern’lere dayalı olarak malware ailelerinin kurallarını oluşturabilirsiniz. Bir dosya içinde belirli bir text string aramak gibi temel YARA kuralları veya çalışan bir processin belirli bir sanal bellek adresindeki verileri arama yapan daha gelişmiş YARA kuralları bulunmaktadır. BGA | Webinar
  • 6. @BGASecurity YARA NE DEĞİLDİR? • Anti-virüs yazılımı değildir. • Korelasyon motoru değildir BGA | Webinar
  • 7. @BGASecurity YARA NASIL YARDIMCI OLUR? • Şahane bir pattern matching engine. • Malware analizi sürecini sizin için kolaylaştırır, tespit etmenizi sağlar ve kategorize etmenizi sağlar ancak bunlarla sınırlı kalmayan bir uygulamadır. BGA | Webinar
  • 9. @BGASecurity YARA KURULUMU Windows, Linux ve Mac OS X üzerinde çalışan multi platform bir yazılımdır. En son sürümü: https://github.com/VirusTotal/yara/releases adresinde edinebilirsiniz. BGA | Webinar
  • 10. @BGASecurity YARA KURULUMU Windows için : Yara.exe indirebilirsiniz. Mac OS X için : brew install yara Linux için: Kaynak koddan derleyebilir ya da kullandığınız dağıtıma göre paket yöneticisi ile kurulum sağlanabilir. Detay : (https://yara.readthedocs.io/en/v3.7.0/gettingstarted.html#compiling- and-installing-yara) BGA | Webinar
  • 11. @BGASecurity TEMEL BİLGİLER Malware, malicious ve software kelimelerinin kısaltılmış bir kombinasyonudur. Bu terim, zarar vermek amacıyla ya da kötü niyet içeren tüm yazılımlar için geçerlidir. BGA | Webinar
  • 12. @BGASecurity MALWARE TİPLERİ Virüsler, program dosyalarını ve / veya kişisel dosyaları enfekte eder. Spyware(Casus yazılım): kişisel bilgileri toplar. Worm(solucan): kendisini bir ağ üzerinde çoğaltıp dağıtabilen yazılımdır. Trojan: Normal bir program olarak görünür ama aslında değildir. (Truva atı) Browser Hijacker: web tarayıcınız üzerinde değişiklikler yapan zararlı yazılımdır. Rootkit: Yönetimsel hakları ele geçirir Malwertising: zararlı yazılımları yaymak için reklamcılık kullanan zararlılardır. BGA | Webinar
  • 13. @BGASecurity ZARARLI YAZILIM ANALİZİ Zararlı yazılımları algılama ve önlemek için davranışlarını analiz etme tekniklerine zararlı yazılım analizi denir. Örneğin, Antivirüs şirketleri imzaları güncellemek ve böylece karantinaya alınabilmeleri için sürekli zararlı yazılım analizi yaparlar. BGA | Webinar
  • 14. @BGASecurity ZARARLI YAZILIM ANALİZİ ÇEŞİTLERİ Zararlı Yazılım Analizi İkiye Ayrılır Statik Analiz: Zararlı yazılımın çalışmasını anlamak için reverse engineering(tersine mühendislik) yapmaktır. Bu, sisteminizde herhangi bir hasara yol açmaz, ancak yapmak oldukça bilgi gerektirir. BGA | Webinar
  • 15. @BGASecurity ZARARLI YAZILIM ANALİZİ ÇEŞİTLERİ Zararlı Yazılım Analizi İkiye Ayrılır Dinamik Analiz: Göreceli olarak daha kolay ama statik analizden daha risklidir. Gelişmiş zararlı yazılımlarda çok etkili değildir. Bu teknik, zararlı yazılımın davranışını tanımlamak için yalıtılmış bir ortamda çalıştırılmasını içerir. Davranış çeşitli kategorilere ayrılabilir: BGA | Webinar
  • 16. @BGASecurity ZARARLI YAZILIM ANALİZİ ÇEŞİTLERİ Örnek; Örneğin bir zararlının: Ağ davranışı Dosya sistemi davranışı Kayıt defteri değişiklikleri Sistem değişiklikleri gibi davranışları analiz edilir. BGA | Webinar
  • 17. @BGASecurity SIGNATURE-BASED KORUMA YETERLİ DEĞİL! Bizde hash var, ne işimize yarayacak Yara kuralı? - Sadece imza tabanlı korumayı kullanmak artık yeterli değil. Bu yöntemleri atlamak için kullanabilecekleri karşı önlemler geliştirilmektedir. Çeşitli şifreleme hizmetleri, paketleyiciler(packers) ve polimorfizm kullanımıyla, artık mevcut imzalarla eşleşmeyecek kadar farklı olan zararlı yazılımlar oluşturuluyor. Siber güvenlik topluluğu yeni tehdit göstergelerini(IOC) paylaşmada güçlüdür, bu nedenle Yara gibi araçlar cephaneliğiniz için önemli olmaktadır. BGA | Webinar
  • 18. @BGASecurity BİR YARA KURALININ ANATOMİSİ rule Kural_İsmi { meta: author = “samet sazak” description = “bga security @ webinar” strings: $a = “zararlı yazılım” wide ascii nocase $b = “yara kuralları” wide ascii nocase condition: $a or $b } BGA | Webinar
  • 19. @BGASecurity TÜM YARA KEYWORDLERİ all, and, any, ascii, at, condition, contains, entrypoint, false, filesize, fullword, for, global, in, import, include, int8, int16, int32, int8be, int16be, int32be, matches, meta, nocase, not, or, of, private, rule, strings, them, true, uint8, uint16, uint32, uint8be, uint16be, uint32be, wide BGA | Webinar
  • 20. @BGASecurity YARA STRINGS Bu bölüm, bir dosyayla eşleşmemiz gereken strings(karakter dizileri) / desen / imzaları içerir. Strings bölümü isteğe bağlıdır ve gerekirse çıkarılabilir. YARA'da 3 tip string vardır: Text Strings Hexadecimal Strings Regex BGA | Webinar
  • 21. @BGASecurity TEST STRINGS; KEYS Text Strings: Daha sonra "condition" kümesiyle eşleştirilen ASCII metni biçimindedir. Büyük / Küçük Harfe Duyarlı Dizeler: Örnek = $ text_case_example = ”Test” Büyük / Küçük Harfe Duyarsız Dizeler: Örnek = $ text_nocase_example = ”test” nocase BGA | Webinar
  • 22. @BGASecurity TEST STRINGS; WIDE 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. rule OrnekWide { strings: $a = "Samet" wide nocase condition: $a } BGA | Webinar
  • 23. @BGASecurity TEST STRINGS; FULLWORD rule OrnekFullWord { strings: $a = "bgasecurity" fullword condition: $a } Yakalar: www.bgasecurity.com www.blog.bgasecurity.com Yakalamaz: www.bgaasecurity.com www.blog.bgasecurityy.com BGA | Webinar
  • 24. @BGASecurity TEST STRINGS; KOŞULLU STRINGLER rule KosulluString { strings: $a = { AA 20 ( DB BC | C1 ) AA } condition: $a } Yakalar: AA 20 DB BC AA AA 20 C1 AA BGA | Webinar
  • 25. @BGASecurity TEST STRINGS; HEXADECIMAL STRINGLER Hexadecimal stringler, çıktı dosyasındaki hex karakterlerle eşleşecektir. Hex string kullanmanın bazı avantajları vardır. Wildcard karakter: Bu bir "?" ile gösterilir ve kalıptaki bazı baytların bilinmediğini ve herhangi bir şeyle eşleşmesi gerektiğini belirtir. Örneğin: $ hex_example = {B1 B2? ? B8} Jumps: Kalıbın değerlerini bildiğimiz halde uzunlukları değiştiğinde, atlamayı kullanabiliriz. Örneğin: $ jump_example = {F1 F2 [4-6] 24}; Bu, 4 bayttan 6 bayta olan herhangi bir keyfi dizinin olduğunu gösterir. BGA | Webinar
  • 26. @BGASecurity HEXADECIMAL ÖRNEK rule HexOrnek { strings: $hex_string = { AA 41 ?? D8 A? FB } condition: $hex_string } AA 41 01 D8 AA FB (01 olsa da kural match edecektir) AA 41 AA D8 AB FB (AA olsa da kural match edecektir) BGA | Webinar
  • 27. @BGASecurity STRINGS; REGULAR EXPRESSION Düzenli İfadeler: v2.0'dan başlayarak YARA, çoğunlukla PCRE'ye benzeyen kendi düzenli ifade motoruna sahiptir. Düzenli ifadeler, YARA'nın en güçlü özelliklerinden biridir. Stringler ile aynı şekilde tanımlanırlar, ancak Perl programlama dilinde olduğu gibi çift tırnak işaretleri yerine eğik çizgilerle kapatılırlar. BGA | Webinar
  • 28. @BGASecurity REGEX ÖRNEK MD5 Hash: 2e47d7f81970b3bb09d249a7de385dbc String: samet rule md5Ornek { strings: $re1 = /md5: [0-9a-fA-F]{32}/ condition: $re1 } BGA | Webinar
  • 29. @BGASecurity CONDITIONS Koşullar: Koşul kümeleri, Bool ifadelerini değerlendirir. Örneğin, yukarıdaki ana örnekte, $ a veya $ b öğesinin true olmasını değerlendirir. Koşul kümesi altında yapılabilecekler > BGA | Webinar
  • 30. @BGASecurity CONDITION SEÇENEKLERİ; STRINGS SAYISI String sayısı Örneğin, $test_string = a $test_string2 = b $test_string1 = 2 and $test_string2 <10 Yakalar: aabbbbb, aabbb, aabbbbbbb Yakalamaz: aaabbbbbb, bbbbbbbbbbbbbbbbbbbbbaa BGA | Webinar
  • 31. @BGASecurity CONDITION SEÇENEKLERİ; OFFSET String Ofsetleri: bir Condition içerisinde kullanıldığında, ilişkili string'in string'in dosya içerisinde belirli bir ofsette veya process memory'nin herhangi bir yerinde olup olmadığını bilmek istediğimi zaman kullanırız. Örneğin: $a at 200 and $b at 500; Bu $a string’in çalışan processin process memory space’i içerisinde virtual adress(sanal adress) 200'ünde ve $b'nin bir dosyanın offset 500'de olup olmadığını bulacaktır: (ikisi için de geçerli) Offsetler decimaldir. BGA | Webinar
  • 32. @BGASecurity CONDITION SEÇENEKLERİ; OFFSET rule Offset { strings: $a = "encrypted" $b = “bitcoin" condition: $a at 0x64 and $b at 0xC8 } BGA | Webinar
  • 33. @BGASecurity CONDITION SEÇENEKLERİ; FILESIZE Dosya boyutunu kontrol etmek için: Örnek = filesize> 100KB BGA | Webinar
  • 34. @BGASecurity CONDITION SEÇENEKLERİ; STRING KÜMELERİ Dizeler kümesi: Örneğin 2 of ($test_string1, $test_string2, $test_string3); Bu, eklenen dizgenin en az iki tanesiyle eşleşmesi gerektiğini söylemektedir. BGA | Webinar
  • 35. @BGASecurity DEMO Buraya kadar anlattıklarımızı ufak bir demo ile gösterelim. BGA | Webinar
  • 36. @BGASecurity PE DOSYA FORMATI Portable Executable (PE) Windows’un çalıştırılabilir dosya formatıdır. Portable Executable .acm, .ax, .cpl gibi pek çok uzantının yanı sıra herkes tarafından çokca bilinen .exe uzantılarını kapsamaktadır. MS-DOS stub'ından sonra, ofset 0x3c'de dosyayı bir PE dosyası olarak tanımlayan 4 baytlık bir imza vardır. Bu imza "PE00" ("P" ve "E" harfleri ve ardından iki tane null bayttır). BGA | Webinar
  • 38. @BGASecurity HATIRLATMA! Big Endian vs Little Endian Bir bayt dizisinin bilgisayar belleğinde saklandığı sırayı tanımlayan terimlerdir. Örneğin : 0x01234567 BGA | Webinar
  • 39. @BGASecurity CONDITION SEÇENEKLERİ; OFFSET 2 /* * Match any file containing "MZ" (not zero terminated) at offset 0. */ rule OffsetExample { strings: $mz = "MZ" condition: $mz at 0 } BGA | Webinar
  • 40. @BGASecurity CONDITION SEÇENEKLERİ; OFFSET 3 /* * Match any file containing "PE" anywhere between offsets 32-100 (decimal) */ rule RangeExample { strings: $pe = "PE" condition: $pe in (32..100) } BGA | Webinar
  • 41. @BGASecurity CONDITION SEÇENEKLERİ; ADRESİ BELİRLİ YERLERİ OKUMAK intXX fonksiyonları <offset veya virtual address> içerisinde 8, 16 ve 32 bit signed integer değerleri okurken, uintXX fonksiyonları unsigned integer değerleri okur. Örnek olarak PE dosyalarını ayırt etmek için bir kural görelim: rule IsPE { condition: // MZ signature at offset 0 and ... uint16(0) == 0x5A4D and // ... PE signature at offset stored in MZ header at 0x3C uint32(uint32(0x3C)) == 0x00004550 } BGA | Webinar
  • 42. @BGASecurity CONDITION SEÇENEKLERİ; DİĞER KURALI REFERANS VERMEK rule Rule1 { strings: $a = "dummy1" condition: $a } rule Rule2 { strings: $a = "dummy2" condition: $a and Rule1 } BGA | Webinar
  • 43. @BGASecurity YARA MODÜLLERİ Örneğin, PE ve Cuckoo gibi modüller yara ile birlikte kullanılabilir. Python dilindeki gibi içe aktarılabilir, ancak çift tırnak işareti eklenebilir. import "pe" import “cuckoo" pe.entry_point == 0x1000 cuckoo.http_request(/someregexp/) BGA | Webinar
  • 44. @BGASecurity PE MODÜLÜ PE modülü, PE dosya formatının niteliklerini ve özelliklerini kullanarak PE dosyaları için daha ayrıntılı kurallar oluşturmanızı sağlar. Bu modül, bir PE başlığında bulunan alanların çoğunu bulmanızı sağlar ve daha etkileyici ve hedeflenmiş kurallar yazmak için kullanılabilecek işlevler sağlar. Bazı örnekler görelim: https://yara.readthedocs.io/en/v3.7.0/modules/pe.html BGA | Webinar
  • 45. @BGASecurity CUCKOO MODÜLÜ Cuckoo sandbox tarafından oluşturulan davranış bilgilerine dayanarak YARA kurallarını oluşturmanızı sağlar. BGA | Webinar
  • 46. @BGASecurity CUCKOO ÖRNEK import "cuckoo" rule Test { condition: cuckoo.network.http_request(/http://bgasecurity.com/) } = > escape / = > regex begin-end BGA | Webinar
  • 47. @BGASecurity MAGIC MODÜLÜ Magic modül, dosyanın tipini, standart Unix "file" komutunu temel alarak dosyanın türünü tanımlamanızı sağlar. mime_type() Function returning a string with the MIME type of the file. Example: magic.mime_type() == “application/pdf” BGA | Webinar
  • 48. @BGASecurity HASH MODÜLÜ Hash modülü, dosyaların hashlerini (MD5, SHA1, SHA256) hesaplamanıza ve imza oluşturmanıza olanak tanır. Örneğin: import "hash" rule WannaCry { meta: description = "WannaCry" condition: hash.md5(0, filesize) == "db349b97c37d22f5ea1d1841e3c89eb4" } BGA | Webinar
  • 49. @BGASecurity HASH MODÜLÜ 2 import "hash" rule MSFT_WHITELIST { meta: description = "Genuine Microsoft" condition: uint16(0) == 0x5A4D and filesize < 1MB and hash.md5(0, filesize) == "e30299799c4ece3b53f4a7b8897a35b6" or hash.md5(0, filesize) == "897a35b6e30299799c4ece3b53f4a7b8" or hash.md5(0, filesize) == "6462c8c3b51e302997897a35ba7b8846" or hash.md5(0, filesize) == "e30f4a7b8897219799c4ece3b4ece377" or hash.md5(0, filesize) == "9c4ece3b53f4a7b8897e3063379a35b6" or hash.md5(0, filesize) == "a45f7fcc14b9b6462c8c3b51623c4301" } BGA | Webinar
  • 50. @BGASecurity DOTNET MODÜLÜ 2 Dotnet modülü, .NET dosyalarının niteliklerini ve özelliklerini kullanarak daha ince kurallar oluşturmanıza olanak tanır. Örneğin: dotnet.version == “v2.0.50727” BGA | Webinar
  • 51. @BGASecurity DİĞER KURALLARI DAHİL ETMEK include "cerber.yar" include “../ransomware.yar" C tipi include:) BGA | Webinar
  • 52. @BGASecurity KURAL GELİŞTİRMEDE YARDIMCI ARAÇLAR Florian Roth tarafından geliştirilen : YaraGen (https://github.com/Neo23x0/yarGen) AlienVault tarafından geliştirilen: Yabin https://github.com/AlienVault-OTX/yabin Xen0ph0n tarafından geliştirilen: YaraGenarator https://github.com/Xen0ph0n/YaraGenerator https://github.com/techbliss/Yara_Mailware_Quick_menu_scanner BGA | Webinar
  • 62. @BGASecurity B!nalyze - IREC BGA | Webinar IREC, tek bir fare tıklamasıyla canlı bir sistemden kritik kanıtlar toplamanızı sağlayan bütün bir araçtır. (Powered By Yara <3) İndir: https://binalyze.com/products/irec-free/
  • 63. @BGASecurity IREC NELER YAPAR? BGA | Webinar • RAM Imajı, $MFT olarak CSV, Hibernation Info, DNS Önbelleği ve daha fazlasını toplar. • Taşınabilir. Kurulum gerektirmez, • Uyumludur. XP'den başlayan tüm 32 ve 64 bit Windows sürümlerini destekler, • Kullanıcı dostu. HTML ve JSON raporlarını paylaşmaktadır, • Hızlı! Hepsini birkaç dakika içinde toplar! • Scriptable Yara Desteklemektedir <3
  • 65. @BGASecurity PROCESS Binalyze Process Module Extension for YARA BGA | Webinar Process.name Process.ID Process.Parent Process.Name Process.Path Process.CommandLine, DLLS
  • 66. @BGASecurity PEID İLE YARA KULLANIMI BGA | Webinar PEiD kurallarını Yara kurallarına kolayca dönüştürebiliriz ve Yara'yı kullanarak hangi packer/encoder'ı zararlı dosyayı derlemek için kullandıklarını kontrol edebiliriz. Daha sonra dosyayı normal formuna yeniden dönüştürmek için kullanabileceğimiz kullanılmış packer / encoder'ı belirlemede çok yardımcı olabilir. https://raw.githubusercontent.com/Yara-Rules/rules/master/Packers/peid.yar
  • 67. @BGASecurity VOLATILITY ve YARA ile MEMORY DUMP İÇERİSİNDE MALWARE ARAMAK! BGA | Webinar Stuxnet Memory Dump : https://cdn.andreafortuna.org/stuxnet.vmem.zip
  • 68. @BGASecurity VOLATILITY ve YARA ile MEMORY DUMP İÇERİSİNDE MALWARE ARAMAK! BGA | Webinar
  • 69. @BGASecurity YARA ENDPOINT BGA | Webinar https://github.com/Yara-Rules/yara-endpoint
  • 70. @BGASecurity ETKİN YARA KULLANIMI BGA | Webinar Tersine mühendislik, zararlı yazılımlara uygulanacak en pahalı analiz şeklidir. Bununla birlikte, analiz süreci çok pahalı olduğu için, bu maliyeti düşürülmesini isteriz. Bu nedenle, zararlı yazılımları sınıflandırırken ve tanımlarken, ilgili dosyaların bir araya getirilerek analiz süresinin kısaltılması gerekmektedir. Bir dosya aslında birçok dosyayı etkilemektedir. Dosyalar arasındaki bu ilişkileri ifade etmek için, “belirli nesnel ölçütlerle kendisinden türetilen” olarak tanımlanan "zararlı yazılım ailesi" kavramını kullanırız. Bu tanımı kullanarak, bir aile oluşturmak için farklı dosya gruplarına farklı kriterler uygulayabiliriz. Örneğin, Cryptolocker Family
  • 71. @BGASecurity ETKİN YARA KULLANIMI BGA | Webinar YARA'nın bir başka etkin kullanımı, zararlı yazılımlarda bulunan kaynakları tespit edip kurallara eklemektir. Bu kaynaklar, ayırt edici simgeler (icon), konfigürasyon bilgileri, diğer dosyalar ve fonksiyonlar gibi şeyleri içerir. Bu kaynakları YARA imzaları olarak yazmak için, öncelikle kaynakları (Örneğin, resource hacker gibi herhangi bir araç kullanarak) çıkarırız ve daha sonra kaynağın baytını (veya bir kısmını) doğrudan YARA'da temsil edilebilen onaltılık (hexadecimal) bir stringe dönüştürürüz.
  • 72. @BGASecurity ETKİN YARA KULLANIMI BGA | Webinar YARA kurallarının en etkin kullanımı, zararlı yazılım tarafından çağrılan fonksiyonları temsil eden baytları yazmaktır. Fonksiyonlar, zararlı yazılım ailelerini tanımlamak için önemli unsurlardır. Bir zararlı yazılımı tanımlamak için tespit edebileceğiniz en iyi faktör, zararlı yazılımın genel karakterini gösteren eylemleri gerçekleştiren fonksiyonlardır.
  • 76. @BGASecurity ANTİ VM ÖRNEĞİ BGA | Webinar Grafik Kartını WMI aracılığıyla sorgulayarak sanal makinede olduğu anlayan zararlı yazılımları tespit etmek için kullanılır.
  • 78. @BGASecurity UAC ve FIREWALL DISABLE BGA | Webinar
  • 83. @BGASecurity BAŞKA YARA KURALLARI OLUŞTURMAK BGA | Webinar https://github.com/InQuest/awesome-yara
  • 85. BÖLÜM SLAYTI Ürün Bağımsız Güvenlik Yaklaşımı” BGA Security, deneyimli ve uzman kadrosu ile siber saldırılara karşı kurumların ihtiyaç duyacağı desteği, “ürün bağımsız güvenlik yaklaşımı” vizyonu ile sağlama adına her zaman yanınızda…
  • 86. Dinlediğiniz için teşekkürler:) github: @sametsazak twitter: @belleveben linkedin: @sametsazak
  • 87. @BGASecurity -Teşekkürler- bgasecurity.com | @bgasecurity github: @sametsazak twitter: @belleveben linkedin: @sametsazak