CoinMiner Zararlı Yazılımı ve Uygulanabilecek SIEM Kuralları
Genel bakış
Başta
Bitcoin olmak üzere Ethereum, Ripple, Monero gibi çeşitli kripto
paralar, yükselen değerleri nedeniyle tüm dünyada büyük bir
talep görmektedir. Bu paraların üretilmesini ifade eden “kripto
para madenciliği“ de son dönemin en popüler iş kolu haline
geldi. Ancak bu kripto paraların üretilmesi için yüksek miktarda
bilgisayar işlemci gücüne ihtiyaç olduğu için bu durum
COINMINER olarak bilinen pek çok kötü amaçlı yazılım
türlerinin ortaya çıkmasına neden oldu. Saldırganlar, bu yüksek
işlemci gücünü, başkalarının sistemlerinde bu kötü amaçlı
yazılımları çalıştırarak elde ediyorlar.
Eğer
yüksek CPU ve GPU kullanımına sahipseniz, bilgisayarınız aşırı
ısınıyor, crash oluyor veya kendini yeniden başlatıyorsa, tepki
verme süresi gittikçe azalıyorsa ve olağan dışı ağ etkinliği
gözlemliyorsanız siz de bu zararlının kurbanlarından biri olmuş
olabilirsiniz.
Farklı
varyantlara sahip olan bu zararlı yazılımlar başta tek bir
sisteme bulaşırken, sonrasında wannacry ve petya gibi fidye
yazılımlarının uyguladığı yöntemlere yönelerek farklı
sistemlere bulaşmakta ve bu sistemlerde kalıcı hale gelmektedir.
Bu fidye yazılımlarının aksine bulaştığı sistemlerdeki
dosyaları şifreleyip kullanıcıdan fidye istemek yerine mevcut
sistem üzerinden coin mining yapılmasına neden olmaktadır.
Bulaştığı sistemlerde CPU kullanımı normal değerlerinin çok
üzerinde olduğu için bu sistemler bir süre sonra normal
fonksiyonlarını yerine getirememektedir.
CoinMiner,
kullanıcıların sistemine nasıl girer?
Coin
mining zararlısı, bir uç noktaya erişmek için çoğu kötü
amaçlı yazılımla aynı yöntemleri kullanır. Kötü amaçlı
indirmeler, kötü amaçlı bağlantılara veya eklere sahip
e-postalar ve önceden yüklenmiş kötü amaçlı yazılımlar gibi
teknikler en yaygın ve etkili dağıtım yöntemleridir.
Bu
tür tehditlerin tespit edilmesinin dinamikleri incelenerek,
CoinMiner zararlılarının en azından yakın gelecekte konumlarını
koruyacaklarını ve hatta daha fazla dağıtım elde edecekleri
tahmin edilmektedir[1].
Şekil1:
CoinMiner kötü amaçlı yazılım ailesi dağıtımı
|
Bu
yazımda Coin mining yapan bir zararlıyı analiz etmeye çalışacağım,
inceleyeceğim örnek 32 bitlik bir işlemden 64-bitlik bir işlem
enjekte etmektedir.
Statik
Bakış
MIME:
application/x-dosexec
Dosya
Bilgisi:
PE32
executable (GUI) Intel 80386, for MS Windows
MD5:
ed575ba72ea8b41ac2c31c8c39ce303b
SHA1:
5346de5ddb4aa091e8cd1d57ef6e4b284b2f6da0
SHA256:
98199294da32f418964fde49d623aadb795d783640b208b9dd9ad08dcac55fd5
Exeinfo
PE ile zararlıyı incelediğimizde C++ ile yazıldığını ve
packed işleminin yapılmadğını görmekteyiz.
Packer
bir
programı şifreleme, sıkıştırma yada her iki algoritmayı
kullanarak hem program üzerinde reversing işlemini zorlaştırmayı
hemde antivirüsler tarafından yakalanmasını zorlaştırır[2].
Şekil2:
Exeinfo PE analiz
|
PeStudio
bir dosya üzerinde şüphe etmeye değer olup olmadığını
belirlemek için kullandığı bir gösterge listesine sahiptir. Bu
gösterge sayfasına baktığımızda zararlının kod bütünlüğünü
ve Yapısal İstisna Yönetimini (SEH) yok saydığını görüyoruz.
Yapısal
İstisna Yönetimi(SEH), hem donanım hem de yazılım istisnalarının
ele alınması için bir mekanizmadır. Uygulamalar zaman zaman
çöküyor.Bu çökmeye istisna denir. Çalışma zamanı sırasında
bir istisna olması durumunda uygulamalarımızı başka bir alt
yordam yürütmek için yazabiliriz. Kötü amaçlı yazılım
yazarları bu SEH kodunu kötü niyetli kodlarını gizlemek için
bir mekanizma olarak kullanabilirler[3].
Şekil3:
pestudio genel analiz.
|
Şekilde
görüldüğü üzere zararlı KERNEL32.DLL ve USER32.DLL
kütüphanelerini import etmiştir. Kernel32.dll içerisindeki
VirtualAlloc ve HeapAlloc gibi fonksiyonların kullanıldığı
gözlemlenerek bu zararlı yazılımın sistem üzerinde bellek
bölgesine bir müdahalede bulunduğu çıkarımı yapılabilir.
Şekil5:
Dependency Walker import analiz.
|
Zararlı
içerisinde aşağıdaki bölümleri içermektedir. Bu bölümler bir
dosyanın kötü amaçlı olup olmadığını belirlemeye çalışırken
yararlı bir bilgi parçasıdır. İlk dikkat etmemiz gereken bu
bölümlere verilen okuma,yazma ve çalıştırma izinleri olmalıdır.
Örneğin
text bölümü hiç bir zaman yazma iznine sahip olmamalıdır. Eğer
text bölümüne bir yazma izni atanmışsa zararlı kendini
değiştirebilir. Zararlının her seferinde aynı adreste
yüklenememesi de mümkündür. Bu yüzden yüklenebileceği mutlak
adres bilgilerini reloc bölümünde tutar[3].
Şekil6:
Zararlı bölüm analizi.
|
Dinamik
Bakış
Zararlıyı
çalıştırmadan önce zararlının sistem üzerinde oluşturacağı
değişiklikleri tespit etmek için bazı dinamik analiz araçlarının
ayarlarını yapmamız gerekiyor. Öncelikle Kayıt defteri üzerinde
oluşan değişiklikleri tespit etmek için RegShot aracını
kullanarak sistemin zararlı bulaşmadan önceki halinin shot'ını
alıyorum.
Şekil7:
Sistemin zararlı bulaşmadan önceki shot'ı.
|
Sonrasında,
çalışacak zararlının ağdaki davranışını analiz etmek için
wireshark aracımızı, çalışan processlerin takibi için process
explorer aracımızı, zararlının yapacağı DNS sorgularının
yönlendirilmesi için ApateDNS aracımızı çalışır duruma
alıyoruz.
Şekil8:
Process Explorer ve ApateDNS analiz.
|
Coin
mining zararlısını çalıştırdığımızda LocalAppData'nın
altında klasör oluşturarak klasöre çalıştırılabilir bir
dosya kaydeder.
-a
cryptonight -o stratum+tcp://xmr-usa.dwarfpool.com:8050 -u
4JUdGzvrMFDWrUUwY3toJATSeNwjn54LkCnKBPRzDuhzi5vSepHfUckJNxRL2gjkNrSqtCoRUrEDAgRwsQvVCjZbS3d2ZdUYfaKLkAbBLe
-p x -t 2.
Komut
satırını çalıştırarak Notepad.exe adında bir dosya oluşturur.
İşin garip tarafı 32 bit bir zararlı olmasına rağmen 64 bitlik
bir işletim sisteminde 64 bitlik Notepad.exe dosyası oluşturmuştur.
Oluşturduğu bu exe dosyası CPU'nun %96 sını kullanmaktadır.
Şekil9:
Sistemin zararlı bulaştıktan sonraki shot'ı.
|
Zararlı
bulaşmış sistemin de shot'ı alınarak kayıt defterinin zararlı
bulaşmadan önceki hali ile zararlı bulaştıktan sonraki hali
karşılaştırılır. Karşılaştırmaya göre zararlı görüldüğü
üzere kayıt defterine yeni key değeri yazmıştır. Zararlı çalıştıktan sonra kayıt defterine yazdığı RunOnce reg anahtarını kalıcılık yöntemini sağlamak için kullanır.
Zararlı
aynı zamanda bazı ip ve adreslerle bağlantı kurmuştur. Bunlara
bakarsak;
Şekil10:
Bağlantı kurduğu adresler.
|
Bağlantı
Kurduğu IP Adresleri : Bağlantı
Kurduğu Domain Adresleri:
-111.68.12.204 -miner.baihes.com
-223.4.146.206 -xmr-usa.dwarfpool.com
-66.70.234.210
-144.217.101.20
Bağlantı
Kurduğu Url Adresleri:
-http://miner.baihes.com/miner/Sadats.jpg
-http://223.4.146.206/upload/Usdata.txt
66.70.234.210
adresi zararlının mining yaparken kullandığı adres, diğerleri
ise iletişim için kullandığı adrestir.
Şekil10:
Any.run miner detect.
|
Analiz
edilen zararlı Miltre Attack matrix'de aşağıdaki gibi
tanımlanmıştır.
Şekil11 Mitre Att&ck analiz.
|
Kötü
amaçlı yazılım yazarları her zaman bilgisayarları etkilemenin
yeni yollarını ararlar. Korunmak, verileriniz ve hesaplarınızdaki
tehditleri en aza indirmek için aşağıdaki basit ipuçlarını
izleyebilirsiniz[5].
Öneriler:
- Yazılımlarınızı güncel tutun.
- Bağlantılara ve eklere karşı dikkatli olun.
- Kötü amaçlı veya tehlikeye atılmış web sitelerine dikkat edin .
- Bilmediğiniz çıkarılabilir sürücüleri takmayın.
- İnternetiniz herkese açık olmamalı, servislere gelen tüm bağlantıları engellemek için bir güvenlik duvarı kullanmalısınız.
- Varsayılan olarak, gelen tüm bağlantıları reddetmeli ve yalnızca açıkça dış dünyaya sunmak istediğiniz hizmetlere izin vermelisiniz.
- Bir şifre politikası belirlemeli ve karmaşık şifreleri tercih etmelisiniz.
- Yönetici düzeyinde erişim isteyen bir programın yasal bir program olduğundan emin olun.
CoinMiner
zararlısının tespit edilmesi için kullanılabilecek Yara ve Sigma
kuralları;
Yara
Kuralı:
import
"pe"
rule
CoinMiner {
meta:
description
= "CoinMiner"
author
= "Metin Münüklü"
date
= "2019-02-01"
hash1
= "98199294da32f418964fde49d623aadb795d783640b208b9dd9ad08dcac55fd5"
strings:
$d
=/This program (cannot|will not)/ //Regex
$s0
= "This program cannot" wide ascii nocase
$s1
= "asdf35d.exe" fullword wide
$s2
= "taskman.exe" fullword ascii
$s3
= "xmr-usa.dwarfpool.com:8050" fullword ascii
$s4
= "?<;70<?+ $$*" fullword ascii /* hex encoded string
'p' */
$e0
= ".text"
$e1
= ".rdata"
$e2
= ".reloc"
$e3
= ".rsrc"
condition:
uint16(0)
== 0x5a4d and filesize < 2000KB and
(
(pe.imphash() == "26b219d1dd54c9d6e3ddb575675aafc3") or (3
of ($s*) or $d or 2 of ($e*)))
}
Sigma
kuralı;
title:
CoinMiner
status:
experimental
description:
Detect malicious activities that is used by CoinMiner
-
attack.execution
author:
Metin Münüklü
date:2019/02/05
detection:
condition:
1 of them
logsource:
category:
firewall
detection:
outgoing:
dst:
- 'http://miner.baihes.com/miner/Sadats.jpg'
- 'http://223.4.146.206/upload/Usdata.txt'
-
'111.68.12.204'
-
'223.4.146.206'
-
'66.70.234.210'
-
'144.217.101.20'
incoming:
src:
- 'http://miner.baihes.com/miner/Sadats.jpg'
- 'http://223.4.146.206/upload/Usdata.txt'
-
'111.68.12.204'
-
'223.4.146.206'
-
'66.70.234.210'
-
'144.217.101.20'
logsource:
product:
windows
service:
sysmon
detection:
selection1:
EventID:
5
TargetFileName:
-
'\Windows\System32\notepad.exe'
- '\Windows\System32\conhost.exe'
- '\Windows\System32\wuapp.exe'
- '\Windows\System32\svchost.exe'
- '*\taskman.exe'
- '\Windows\System32\svchost.exe'
- '*\taskman.exe'
selection2:
EventID:
1
CommandLine:
'-a cryptonight -o stratum+tcp://xmr-usa.dwarfpool.com:8050*'
selection3:
EventID:
1
Image:
- '*\conhost.exe'
- '*\notepad.exe'
- '*\wuapp.exe'
-'*\svchost.exe'
- '*\wuapp.exe'
-'*\svchost.exe'
fields:
-
EventID
-
CommandLine
-
Image
falsepositives:
-
unknown
level:
high
mitre-attack:
-Registry
Run Keys/Start
-Process
Injection
-Modify
Registry
-Process
Discovery
-Query
Registry
-Remote
Desktop Protocol
-Email
Collection
-Data
Compressed
-Uncomonly
Used Port
Kaynakça :
Yorumlar
Yorum Gönder