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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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…