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. 
VirusTotalde zararlıya baktığımızda 57/71 lik bir VirusTotal puanına sahip olduğunu, test edildiği anti-virüs ürünlerini ve bu antirüslerin zararlıyı nasıl işaretlediğini görmekteyiz.

Şekil4: VirusTotal 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'
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'
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

Bu blogdaki popüler yayınlar

1. Geleneksel Stajyer CTF Soru ve Cevapları

B*-Tree (BTree, BPlusTree) Veri Yapısı ile Veri İndeksleme

2. Geleneksel Stajyer CTF Soru ve Cevapları - 2017