Operation Sharpshooter ve Uygulanabilecek SIEM Kuralları
Operation Sharpshooter
Genel bakış
Her geçen gün kabiliyetleri daha da artan siber saldırıların, hayatın her yerine etki ettiğini görüyoruz. McAfee güvenlik araştırmacılarının yayınladıkları rapora [1]göre, 2018’in Ekim ve Kasım aylarında (ilk görülme 25 Ekim 2018) ortaya çıkan Operation Sharpshooter, 87 kurum ve kuruluşu etkiledi. Bu hareketin öncelikli hedefleri nükleer teknoloji, savunma sanayi, enerji ve finansal kuruluşlardır. Bu operasyonun arkasında kimin olduğu bilinmese de, temel bilgiler kısmında da görsellerle desteklendiği üzere ilk gelen zararlı Office dosyasının Kore ile alakalı meta data bilgisi olduğu gözüküyor. Aşağıdaki dünya haritasında[2] bu operasyonun hangi ülkede hangi sektörü daha fazla etkilediğini görebilirsiniz.
Operasyon 4 basamaktan
oluşmaktadır.
- Zararlı .doc dosyasının Dropbox üzerinden dağılımı.
- Dosyanın açılmasıyla beraber içindeki zararlı makronun çalışması.
- Kontrol sunucusuyla haberleşerek, 1 tane daha .doc dosyası ve asıl zararlının indirilmesi
- Asıl zararlının çalışıp, bilgi toplayıp, kontrol sunucuna yollaması.
Bulaşma Yolları
Bu hareketin asıl bulaşma yolu Dropbox ile yayılan .doc dosyasıdır. Bu dosya bütün basamakların tetikleyicisidir. Bundan dolayı güvenmediğiniz dosyaları açmadan önce bir kere daha düşünmeniz gerekmektedir.Temel Bilgiler
Bu bölümdeki verilecek olan bilgiler 3 temel dosyanındır. Bu dosyalar yazının geri kalanında aşağıdaki gibi adlandırılacaktır:- Sharpshooter.doc, bu Dropbox yoluyla bulaşan tetikçi
dosyadır.
- RisingSunImplant, bu dosya asıl işleri yapan
çalıştırılabilir dosyadır.
- Customer
Service Representative.doc,
bu dosya 1.dosyanın içindeki zararlı makronun çalışmasından
sonra sisteme yüklenen dosyadır.
Sharpshooter.doc
MD5 fa27a81d0109653e67019f387bad2494
| |||||||||||||||||||||||||||||||||||||
SHA-1 668b0df94c6d12ae86711ce24ce79dbe0ee2d463
| |||||||||||||||||||||||||||||||||||||
SHA-256 f5d561e80808f32402321ba76cae6b93f8141d152796efacfdae08e94b5b1b11
| |||||||||||||||||||||||||||||||||||||
Boyut 237
KB
| |||||||||||||||||||||||||||||||||||||
Tür MS
Word Document
| |||||||||||||||||||||||||||||||||||||
MIME application/msword
RisingSunImplant.exe
Customer Service Representative.doc
Sistem Üzerinde Neler Yapıyor?Bu hareketin en sonundan başına kadar neler yaptığını açıklamak isterim. Dropbox üzerinden zararlı .doc uzantılı dosya sisteme yüklendikten sonra açılmayı bekliyor. Zararlı dosyayı açmadan önce bu dosyanın analizini yapalım. Olevba aracını kullanarak makronun içeriğini anlamaya çalışalım. olevba.py Sharpshooter.doc komutunu kullanarak genel olarak makronun içeriğini görebiliriz. Stringleri, obfuscate edilmiş kodu görebiliriz.Stringlere baktığımızda genelde zararlı yazılımlarda kullanılan fonksiyonların çağırıldığını görüyoruz. Tekrardan Olevba’yı kullanarak dosyanın içerisindeki makroyu çıkartabiliriz. Çıkan makronun[3] obfuscate edilmiş olduğunu görüyoruz. Makroda gözümüze çarpan stringler ve bazı obfuscate edilen stringlerin tahmini gerçek değerleri: rising_sun (İnen dosyanın ismi bu değişkenden gelmektedir) Sharpshooter llsodiplo => shellcode gzsdfasd => RtlMoveMemory grqwasf => binbuffer dnnaigej => GetProcAddress gweasdf => kernel32 efasdv => VirtualAlloc Ofis dökümanını birde oledumb yardımıyla incelediğiniz aşağıdaki çıktıyı alıyoruz. Makro kodu ofis dosyasından çıkarmak için oledump.py -s 8 -v SharpShooter.doc komutunu kullanıyoruz ( -s 8 kullanmamızın nedeni yukarıdaki ekran görüntüsünde de görüldüğü üzere 8. stream’de zararlı makro var). Makro kodumuz artık elimizde. Makro kodun özetini geçmek gerekirse, 2 boyutlu bir array’de shellcode tutulutor. VirtualAlloc fonksiyonu kullanarak 3224 byte ayırıyor. VirtualAlloc’a verilen &H40 argümanı belirtilen adresin çalıştırılabilir olarak kullanılmasını sağlıyor. İç içe geçen döngülerle shellcode tek boyutlu bir array’e taşınıyor. Bundan sonraki aşamada, shellcode için adresler belirlenip çalıştırılıyor. Bu aşamada shellcode çıkartılabilir[4]. Shellcode çıkarmak için makroda aşağıdaki değişiklikleri yapmak yeterli olacaktır. Shellcode AnaliziMakronun içerisinden shellcode’u çıkarttıktan sonra analizine başlayabiliriz. Kendi içerisinde hardcoded bulunan stringlerle kütüphaneleri ve API’ları oluşturuyor. İçinde gömülü olarak bulunan dll’leri aşağıdaki görsellerde görebilirsiniz.LoadLibraryA ve GerProcAddress fonksiyonlarını kullanarak kontrol sunucusundan dosyaları indirmeye hazır hale geliyor. API ve kütüphaneleri hazırladıktan sonra dosyayı indirmek için işlemlere başlıyor. hxxps://kingkoil.com[nokta]sg/Customer Service Representative.doc ve mssync.exe dosyalarını indirip aynı isimlerle kaydediyor. Mssync.exe dosyasını sistemin her açılışında çalışan “%startup%” klasörüne kaydediyor[1]. Bu şekilde sistem her açıldığında zararlı da çalışmış oluyor. Rising Sun Analiziİlk baştaki zararlı dokümanı açıp makroyu çalıştırdıktan sonra, sistemimize bulaşan zararlıyı (“Rising Sun”) incelemeye başlayabiliriz. En basit tabirle, Rising sun sistemden bilgi toplayıp bu bilgileri kontrol sunucusuna yollayan bir arka kapı programıdır.Zararlı ilk başta kendi API ve kütüphanelerini oluşturuyor. API ve kütüphaneler hardcoded ve XOR’lanmış şekilde zararlının içerisinde bulunuyor. Sade ve basit bir şekilde sadece XOR işlemi kullanılıyor. XOR anahtarı ise 0xC8 olarak gözüküyor. Zararlı ve kontrol sunucusu arasındaki iletişim RC4 algoritması ile şifrelenmektedir. Çalıştığı zaman ayar(config) dosyasını hxxp://34[nokta]214.99.20/view_style.php sayfasından alıp asıl fonksiyonuna başlıyor. Zararlı gerekli ayarları tamamladıktan sonra artık asıl fonksiyonu olan bilgi toplama ve yollama kısmına başlıyor. Burada her komutun bir kodu var ve bu kodlara göre fonksiyonlar çağrılıyor. Örnek vermek gerekirse, Sunucudan gelen 0x0AD005F00A300C7 komutu Disk bilgilerini toplamayı sağlıyor. Fonksiyonlar hakkında genel bilgi vermek istiyorum. Komut çalıştırmaBu fonksiyon 0x6D0017005500F7 kodu ile aktif hale geliyor. Basitçe anlatmak gerekirse, cmd üzerinden komut çalıştırmamızı sağlıyor.Disk Bilgisi AlmaBu fonksiyon 0x0AD005F00A300C7 kodu ile aktif hale geliyor. Sistemdeki her bir diske bakarak, toplam hafızasını, boş hafızasını, format bilgisi hakkında bilgileri topluyor.Process hakkında bilgi toplamaBu fonksiyon 0x62009A001C002B kodu ile aktif hale geliyor. Sistemdeki bütün processler hakkında isim, oluşturulma zamanı vb gibi bilgileri topluyor.Process sonlandırmaBu fonksiyon 0x57001D00E20060 kodu ile aktif hale geliyor. Verilen processi sonlandırmak için kullanıyor. Başarı ile sonlanırsa 0x400 büyüklüğündeki belleği 0x55 ile başarısız olursa 0xAA ile dolduruyor.Dosyaların zaman bilgisini almaBu fonksiyon 0x0A3001A006E00F8 kodu ile aktif hale geliyor. Dosyanın zaman bilgisini getiriyor.Dosya okumaBu fonksiyon 0x98009C0034002D kodu ile aktif hale geliyor. Kontrol sunucusu tarafından belirtilen dosyanın okunmasını sağlıyor.Dosya yazmaBu fonksiyon 0x8D001F00FB0061 kodu ile aktif hale geliyor. Kontrol sunucusu tarafından belirtilen yola (C:\Users\sample.txt gibi) yazmayı sağlıyor. Aynı process sonlandırma fonksiyonundaki gibi başarılı olursa 0x400 büyüklüğündeki bir alana 0x55 başarısız olursa 0xAA yazıyor.Dosya SilmeBu fonksiyon 0x78005D008B00C6 kodu ile aktif hale geliyor. Kontrol sunucusu tarafından verilen dosyanın silinmesi için kullanılıyor. Yine yukarıdaki fonksiyonlar gibi başarılı olursa 0x400 büyüklüğündeki bir alana 0x55 başarısız olursa 0xAA yazıyor.Dosyanın IMAGE_NT_HEADERS bilgisine bakmaBu fonksiyon 0x0D0057005B00C4 kodu ile aktif hale geliyor. Kontrol sunucusu tarafından verilen dosyanın NTHEADER bilgisi alınıyor. Bunu yapmak için SetFilePointer fonksiyonundan yardım alarak File Pointer’ı 0x3C’ye ayarlıyor. IMAGE_NT_HEADERS’ı okuduktan sonra pointera 8 ekleyerek dosyanın hangi tarihte derlendiği bilgisine ulaşıyor.Soket oluşturmak ve test bağlantısıBu fonksiyon 0x0B700150099005C kodu ile aktif hale geliyor. Basitçe anlatmak gerekirse, bir soket oluşturup bağlantı yapmayı deniyor. Diğer fonksiyonlar gibi başarılı olursa 0x400 boyutundaki bir alanı 0x55 ile başarısız olursa 0xAA ile dolduruyor.Dosyanın özelliklerini değiştirmeBu fonksiyon 0x0EC001700B2005D kodu ile aktif hale geliyor. SetFileAttributesW fonksiyonunu kullanarak dosyanın özelliklerini değiştiriyor. Pointer manipülasyonu yaparak istenilen bilgiye ulaşıp, değişiklikleri yapıyor |
Özet
Bu analiz, bilgi toplamak için spesifik olarak belli hedeflere saldırmanın başka bir örneğini göstertiyor. McAfee’nin yayınladığı raporda Operation Sharpshooter ile Lazarus grubunun benzerliklerinin olduğu fakat kesin bir şey söylenemeyeceği belirtiliyor. Operation Sharpshooter, başlangıcın zararlı bir dokümanla olduğu sonrasında içindeki zararlı makronun çalışmasıyla beraber, asıl zararlının bilgisayar yüklendiği bir siber saldırı operasyondur. Asıl zararlının amacı sistemde bilgi toplayıp bunu kontrol sunucuna yollamak diyebiliriz. Aşağıdaki görsel bu bölümü destekler niteliktedir.Öneriler
- Sisteminizi her zaman güncel tutun.
- Bilinçlenmek en büyük önlemlerden biridir. Gündemi takip
edebilecek kadar bilgi çok şey değiştirebilir.
- Bilmediğiniz kaynaklardan gelen dokümanları açmayın.
- Güvenmediğiniz dosyaları çevrimiçi araçlarla(VirusTotal,
hybrid-analysis vb.) kolayca analiz edip, ondan sonra
çalıştırabilirsiniz.
- Güvenilir antivirüs programları kullanabilirsiniz.
- Sadece güvendiğiniz ofis dökümanlarının makrolarını
çalıştırınız.
- Kurumdaki bütün makroları Group Policy kullanarak
kapatabilirsiniz[5].
Operation Sharpshooter’ın Tespit Edilmesi için Kullanılabilecek Sigma Kuralları
title: Operation Sharpshooterdescription: Detect malicious activities that is used by Operation Sharpshooter
author: Burak ÇARIKÇI
references:
https://www.mcafee.com/enterprise/en-us/assets/reports/rp-operation-sharpshooter.pdf
https://www.hybrid-analysis.com/sample/f5d561e80808f32402321ba76cae6b93f8141d152796efacfdae08e94b5b1b11?environmentId=100
date: 2019/01/10
status: testing
detection:
condition: 1 of them
logsource:
category: firewall
detection:
outgoing:
dst:
- kingkoil.com.sg/board.php
- kingkoil.com.sg/Customer Service Representative.doc
- 34.214.99.20/view_style.php
- 137.74.41.56/board.php
- http://208.117.44.112/document/Strategic Planning Manager.doc
- http://208.117.44.112/document/Business Intelligence Administrator.doc
- http://www.dropbox.com/s/2shp23ogs113hnd/Customer Service Representative.doc?dl=1
incoming:
src:
- kingkoil.com.sg/board.php
- kingkoil.com.sg/Customer Service Representative.doc
- 34.214.99.20/view_style.php
- 137.74.41.56/board.php
- http://208.117.44.112/document/Strategic Planning Manager.doc
- http://208.117.44.112/document/Business Intelligence Administrator.doc
- http://www.dropbox.com/s/2shp23ogs113hnd/Customer Service Representative.doc?dl=1
logsource:
product: windows
service: sysmon
detection:
selection1:
#Sysmon process creation
EventID: 1
ParentImage:
- '*\WINWORD.EXE'
Image:
- '*\cmd.exe'
- '*\mssync.exe'
- '*\WINWORD.exe'
selection2:
#Sysmon file creation
EventID: 11
TargetFilename:
- '*\Customer Service Representative.doc'
- '*\Strategic Plannin Manager.doc'
- '*\mssync.exe'
fields:
- Image
- TargetFileName
- CommandLine
- ParentCommandLine
falsepositives:
- unknown
level: high
mitre-attack:
- Account discovery
- File and directory discovery
- Process discovery
- System network configuration discovery
- System information discovery
- System network connections discovery
- System time discovery
- Automated exfiltration
- Data encrypted
- Exfiltration over command and control channel
- Commonly used port
- Process injection
Kaynakça
- Operation Sharpshooter:
https://www.mcafee.com/enterprise/en-us/assets/reports/rp-operation-sharpshooter.pdf
- Operation Sharpshooter’ın dünya çapında ülke ülke en
çok etkilediği sektörler:
https://securingtomorrow.mcafee.com/wp-content/uploads/2018/12/20181210-Sharpshooter-1.png
- SharpShooter.doc’un içindeki obfuscate edilmiş makro:
http://paste.ubuntu.com/p/DSNgN3yT5V/
- Macro Malware Again:
https://www.cyberfox.blog/macro-malware-again/
- Disable all Microsoft Office macros globally for all users:
https://superuser.com/questions/1073060/disable-all-microsoft-office-macros-globally-for-all-users/1073064#1073064
Burak ÇARIKÇI
Yorumlar
Yorum Gönder