Siber güvenlik araştırmacıları, Japonya’da bulunan otomotiv, ilaç ve mühendislik, yönetilen hizmet sağlayıcıları gibi faaliyet gösterenlerin de dahil olduğu birden çok sektörde şirketleri hedefleyen APT kampanyaları gözlemlendi.
Kaspersky araştırmacıları tarafından, ilk bulaşmada kullanılan saldırganın sisteminden “DESKTOP-A41UVJV” ana bilgisayar adından türetilen kampanyaya A41APT (APT41 değil) adını verdi. “A41APT” olarak adlandırılan bulgular, APT10 diğer adıyla Stone Panda olarak bilinen APT grubu tarafından, SodaMaster, P8RAT ve FYAnti gibi önceden belgelenmemiş zararlı yazılımları kullanılarak gerçekleştirilen yeni bir saldırı yelpazesini araştırıyor. Kaspersky tarafından ortaya çıkarılan yeni saldırıların Ocak 2021’de meydana geldiği söyleniyor. Saldırının ise SSL-VPN’in zero day güvenlik açıkları kullanılarak veya çalınan kimlik bilgilerinde yararlanarak kötüye kullanılması yoluyla gerçekleştiğidir.
DESKTOP-A41UVJV’den ele geçirilen VPN oturumunun logları
Saldırı kampanyasında 4 dosyasız yükleyici modülünü arka arkaya yüklemek ve şifresini çözmek için dört dosyadan yararlanılır. Birbiri ardına dört dosyasız yükleyici modülünü yüklemek ve şifresini çözmek için dört farklı dosyadan yararlanarak karmaşık yükleme şeması (complicated loading schema) yönetimi kullanılmaktadır.
Ecipekac Teknik Analizi
Saldırganlar tarafından özel olarak kullanılan ve Ecipekac yükleyicinin ikinci katmanında bulunan benzersiz bir dizeden sonra Ecipekac olarak adlandırılan çok katmanlı bir x64 yükleyici gözlemlendi. Dize, ters yönde “Ecipekac” dır.
Sabit kodlu benzersiz dize “ecipekac”
Ecipekac, yeni ve karmaşık bir yükleme şeması kullanır. Son olarak belleğe son yükü yüklemek için dört dosyasız yükleyici modülünü birbiri ardına yüklemek ve şifresini çözmek için aşağıda listelenen dört dosyayı kullanır.
Ecipekac enfeksiyon akışı
Dosyalar şunlardır:
Dosya adı | MD5 Hash | Açıklama |
policytool.exe | 7e2b9e1f651fa5454d45b974d00512fb | DLL yüklemesi için exe |
jli.dll | be53764063bb1d054d78f2bf08fb90f3 | Ecipekac Layer I yükleyici |
vac.dll | f60f7a1736840a6149d478b23611d561 | Şifreli Ecipekac Layer II yükleyici (shellcode) |
pcasvc.dll | 59747955a8874ff74ce415e56d8beb9c | Şifreli Ecipekac Layer IV yükleyici (shellcode) |
P8RAT ve SodaMaster’ın temel amacı, saldırgan tarafından kontrol edilen bir sunucudan alınan yükleri indirmek ve yürütmek olsa da Kaspersky’nin araştırması, hedef Windows sistemlerinde sağlanan kötü amaçlı yazılımın tam olarak ne olduğuna dair herhangi bir ipucu vermedi.
İlginç bir şekilde üçüncü yük olan FYAnti, QuasarRAT (veya xRAT) olarak bilinen son aşama uzaktan erişim Trojan’ı (Truva Atı) dağıtmak için birbirini takip eden iki katmandan geçen çok katmanlı bir yükleyici modülüdür.
Ecipekac: Katman I yükleyici
Ecipekac enfeksiyon akışının I. Katmanı
Ecipekac I .katman yükleyicisi, DLL yandan yükleme tekniği aracılığıyla geçerli dizine “jli.dll” adlı kötü amaçlı bir DLL’i yüklemek için normalde Eclipse için IBM geliştirme paketinde paketlenen yasal bir uygulama olan policytool.exe’yi zararlı bir şekilde kullanır. ‘Jli.dll’ dosyası, Ecipekac yükleyicinin ilk katmanı olarak hareket eder. Bu DLL dosyasının birkaç dışa aktarma işlevi vardır ancak bunların tümü, ana yükleme özelliğini taşıyan benzer bir işleve atıfta bulunur. Yükleyici, başka bir DLL’in (‘vac.dll’) sonundan 0x40408 bayt veri okur. 0x40408 veri boyutu sabit kodlanmış bir değer olan 0x40405’ten türetilir ve sekize bölünene kadar artırılır.
MD5 | f60f7a1736840a6149d478b23611d561 |
SHA1 | 5eb69114b2405a6ea0780b627cd68b86954a596b |
SHA256 | 3b8ce709fc2cee5e7c037a242ac8c84e2e00bd597711093d7c0e85ec68e14a4c |
Bağlantı süresi | 2033-11-13 08:50:03 |
Dosya tipi | MS Windows için PE32 + çalıştırılabilir (DLL) (GUI) x86-64 |
Derleyici | Bağlayıcı Sürümü: 14.13, İşletim Sistemi Sürümü: 10.0 |
Dosya boyutu | 681544 (666KB) |
Dosya adı | vac.dll |
0x66240’ta gömülü veriler (boyut: 0x40405) |
00066240: febe d990 66de 1bc9 75b7 dc2c 3e1f 3ef2 00.066.250: 78d0 0005 5c27 A511 C122 bdf4 15e7 052c 00.066.260: af72 7e08 064c f7b9 70f0 57bf 250a 3b4d [..skipped ..] 000a6630: ee4b b1f2 294d eea1 290E aba2 6954 130 ° F ‘ 000a6640: 1267 9ab3 f8 00 0000 |
Dosyada değişmiş olmasına rağmen ‘vac.dll’ DLL dosyası geçerli ve meşru bir dijital imza ile imzalanmıştır. İlk bakışta dijital imzanın geçerli olması, dosyanın dijital olarak imzalandıktan sonra değiştirilmediğini gösterir.
Dijital olarak imzalanan ‘vac.dll’deki sertifika tablosunun yeniden boyutlandırması ve dijital imzayı etkilememesi için kendi verilerini sertifika tablosuna eklemesidir. Bu teknik, BlackHat 2016’da MS13-098 olarak yayınlandı. I. katman yükleyici, II katman yükleyici kabuk kodunun ‘vac.dll’deki gömülü verilerden şifresini çözer. XOR, AES ve DES gibi çeşitli kripto algoritmaları kullanılmaktadır. Algoritmaların sırası ve kombinasyonu ile şifre çözme anahtarları bir örnekten diğerine farklıdır.
İlk yükleyicide şifre çözme akışı
Örneğin, yukarıda gösterilen örnekte, şifreleme algoritmalarının sırası, ‘0x9F’ sabit kodlu anahtarını kullanan tek baytlık bir XOR, ardından AES anahtarı ’83H4uREKfFClDH8ziYTH8xsBYa32p3wl’ ve IV anahtarı ’83H4uREKfFClD . Ecipekac’ın ilginç bir özelliği, saldırganların bu şifreleme algoritmalarını Windows API kullanmak yerine kendi kodlarında uygulamış olmalarıdır. Saldırganlar, orijinal uygulamaya kıyasla küçük değişiklikler de yaptı. Örneğin, AES algoritmasıyla ilgili işlevde aşağıdaki kodda gösterildiği gibi AES anahtarının üçüncü baytına kasıtlı olarak başvurdular.
AES işlevinde küçük bir değişiklik
Saldırganlar, bahsedilen AES algoritmasının yanı sıra DES algoritmasını da değiştirdiler.
Ecipekac: Layer II Yükleyici Shellcode
Ecipekac kullanarak enfeksiyon akışının Katman II’si
Ecipekac Layer II yükleyici, düzensiz parçalarda bir sonraki katman DLL’inin verilerini içeren basit bir kabuk kodudur. İlk olarak kabuk kodu, bu veri kümesindeki “ecipekac” dizesini kontrol eder. Daha sonra aşağıda gösterildiği gibi DLL’in orijinal kodunu oluşturmak için gömülü verilerin her bir parçasını doğru sırada tahsis edilmiş belleğe yeniden yapılandırır ve yükler.
Hafızada bölünmüş PE BLOB için yeniden yapılandırma
Daha sonra Ecipekac’ın üçüncü katmanı olan yüklenen DLL’in giriş noktasını çağırır. Araştırmamıza göre bu modülde kullanılan sihirli dizi, her durumda yalnızca “ecipekac” değildir. Bunun yerine birkaç örnekte “9F 8F 7F 6F” ve “BF AF BF AF” kullanıldığını da gözlemlenmiştir.
Ecipekac Layer III yükleyici DLL
Ecipekac kullanarak enfeksiyon akışının Katman III’ü
Üçüncü katmanın bir sonraki katmanı yükleme yöntemi ilk katmanı andırır. ‘vac.dll’de olduğu gibi dijital bir sertifika kullanılarak imzalanan ‘pcasvc.dll’in sonundan şifrelenmiş verileri okur.
MD5 | 59747955a8874ff74ce415e56d8beb9c |
SHA1 | 0543bfebff937039e304146c23bbde7693a67f4e |
SHA256 | a04849da674bc8153348301d2ff1103a7537ed2ee55a1588350ededa43ff09f6 |
Bağlantı süresi | 2017-02-24 15:47:04 |
Dosya tipi | MS Windows için PE32 + çalıştırılabilir (DLL) (konsol) x86-64 |
Derleyici | Bağlayıcı Sürümü: 14.13, İşletim Sistemi Sürümü: 10.0 |
Dosya boyutu | 733232 (717KB) |
Dosya adı | pcasvc.dll |
0x87408’de gömülü veriler (boyut: 0x2BC28) | 00087408: 98e4 1def 8519 d194 3c70 4e84 458a e34c 00087418: b145 74da c353 8cf8 1d70 d024 8a54 8bde [.. atlanan ..] 000b3010: 2c1b 6736 8935c d55d 08090 0829 5dfc 735bd35 9000b000 : 44bd35000b30000 |
Kripto algoritmaları yine tek baytlık XOR ve AES CBC modudur. Bu sefer ‘pcasvc.dll’in gömülü verilerinden dördüncü yükleyici kabuk kodunun şifresini çözmek için kullanılır. Bununla birlikte algoritma dizisi ilk katmana göre ters sıradadır. Sabit kodlanmış anahtarlar da farklıdır. XOR anahtarı olarak “0x5E” kullanılırken, AES anahtarı ve IV sırasıyla “K4jcj02QSLWp8lK9gMK9h7W0L9iB2eEW” ve “K4jcj02QSLWp8lK9” şeklindedir.
Ecipekac: Katman IV Yükleyici Shellcode
Ecipekac kullanarak enfeksiyon akışının Katman IV’ü
Araştırmalar sırasında, Ecipekac’ın dördüncü katmanı olarak kullanılan üç farklı türde kabuk kodu bulundu.
Katman IV yükleyici shellcode – birinci tip ilk shellcode türünün prosedürü, Ecipekac Layer II shellcode ile aynı şekilde davranır. tek fark, bu durumda Ecipekac’ın son yükü olan gömülü PE’dir. Birinci tip kabuk kodunun yükü ya “P8RAT” ya da “FYAnti yükleyici”dir. Bu raporun sonraki bölümlerinde bu yüklerin bir analizi sunulmaktadır.
Katman IV yükleyici shellcode – ikinci tip ikinci tür kabuk kodu, diğer yükleyici türlerinden tamamen farklıdır. Bu kabuk kodunun aşağıdaki tabloda gösterilen benzersiz bir veri yapısı vardır.
Ofset | Örnek Veriler | Açıklama |
0x000 | 90 90 90 90 90 90 90 90 | Veri işlemeye geçmeden önce kontrol edilecek sayı. |
0x008 | 0x11600 | Şifrelenmiş verilerin boyutu |
0x00C | A9 5B 7B 84 9C CB CF E8 B6 79 F1 9F 05 B6 2B FE | 16 bayt RC4 anahtarı |
0x01C | C7 36 7E 93 D3 07 1E 86 23 75 10 49 C8 AD 01 9F 6E D0 9F 06 85 97 B2 [atlandı] |
RC4 tarafından şifrelenmiş yük (SodaMaster) |
Bu kabuk kodu, “A9 5B 7B 84” 16 baytlık anahtar ile RC4 kullanarak 0x01C ofsetinde bir yükün şifresini çözmeye başlamadan önce bu veri yapısının başlangıcında “90 90 90 90 90 90 90 90” sihirli numarasının varlığını doğrular. “9C CB CF E8 B6 79 F1 9F 05 B6 2B FE ”. Şifresi çözülen yük “SodaMaster” dır.
Katman IV yükleyici shellcode – üçüncü tip Son Shell kodu türü bir Cobalt Strike aşamalandırıcıdır. Ekim 2019’dan bu yana birkaç farklı Cobalt Strike aşamalı kabuk kodunun kullanıldığı doğrulandı. Ek olarak, gözlemlenen Cobalt Strike aşamalandırıcı örneklerinden bazıları, güvenlik ürünleri tarafından algılanmadan kaçınmak için bunları ortak jQuery isteği olarak gizlemek için kötü amaçlı iletişimlerinin HTTP başlığında bir ayar içeriyor.
JQuery isteğinin kimliğine bürünmek için sabit kodlanmış HTTP başlığı
JQuery isteklerini taklit eden C2 iletişimi için HTTP başlığında kullanılan gerçek kodlanmış C2, ilgili bağlantı noktası 443 ile “51.89.88 [.] 126” idi.
Saldırıyı İlişkilendirme:
Araştırmacıların yapmış olduğu araştırmalara dayanarak, APT10 tehdit aktörünün “A41APT” kampanyasının arkasında olduğunu büyük bir güvenle değerlendirilmektedir.
Bu atıf aşağıdaki noktalara dayanmaktadır;
İlk olarak, bir x86 SodaMaster örneğinden sabit kodlu “www.rare-coisns [.] com” URL’i, APT10’un Türkiye’nin finans ve telekomünikasyon sektörlerini hedefleyen etkinliği ile ilgili olarak, VirusTotal göndericisinin coğrafi konumuna da uygun olarak belirtildi.
İkinci olarak, A41APT kampanyasının bir Cylance blog yayınında açıklanan APT10 etkinlikleriyle benzerliği bulunmaktadır. Bunlar arasında CppHostCLR tekniğini kullanan FYAnti yükleyicinin Ecipekac Loader ve FYAnti’nin son yükü olarak kullanılan QuasarRAT bulunmaktadır. Ayrıca, Symantec blog gönderisinde belirtildiği gibi , FYAnti yükleyici .NET yükleyicinin enjeksiyonu için CppHostCLR tekniği ve QuasarRAT, BlackBerry tarafından keşfedilen APT10 grubunun faaliyetlerine benzerdi.
Cylance tehdit araştırma ekibi. Son olarak, APT10 etkinlikleri hakkındaki önceki TIP raporunda özetlenenlerle bazı benzerlikler ve ortak TTP’ler vardır bunlar;
- Karma veya kripto algoritmalarının Windows API’leri yerine kötü amaçlı yazılım geliştiricileri tarafından bazı değişikliklerle manuel olarak uygulanması.
- Kripto anahtarları, kripto anahtarlarının bir kısmı, anahtar üretimi, muteks adları vb. Gibi bazı özellikler için hesaplanan karma değerlerin (tamamen veya kısmen) kullanılması.
- Bellekte bir yük çalıştırmak için DLL yan yükleme tekniğinin kullanması.
- Kalıcılık ve ayrıca yanal hareket için PowerShell betiklerini kullanması.
- Etkinliklerini gizlemek için günlükleri kaldırmak için exe kullanması.
- Kullanıcı adı, ana bilgisayar adı, PID, şimdiki zaman ve diğer özellikler gibi kurban makine verilerinin gönderilmesi. (APT10 arka kapılarına özgü değildir ve çoğu arka kapı ailesinde oldukça yaygındır.)
- İmplantları, güvenlik araştırmacıları aktörün faaliyetleri ve TTP’leri ile ilgili analizlerini yayınladıktan kısa bir süre sonra değiştirmesi.
- Japonya ile ilişkili denizaşırı şubeler veya kuruluşların yanı sıra esas olarak Japonya’yı hedefliyor olması
Ancak, A41APT kampanyasında ve önceki etkinliklerde bazı ilginç farklılıklar gözlemlenmiştir bu gözlemler;
- LilimRAT, Lodeinfo ve ANEL gibi APT10 tarafından kullanılan önceki kötü amaçlı yazılım örneklerinin aksine P8RAT ve SodaMaster bir kötü amaçlı yazılım sürüm numarası içermemesi.
- Virüs bulaşma vektörüne gelince, APT10 saldırılarında oldukça yaygın olan bu A41APT kampanyasında herhangi bir öncü kimlik avı e-postası belirleyememesi.
Genel olarak, APT10, birden çok eşzamanlı kampanya yürüten büyük bir APT grubu olarak kabul edilir ve anlaşılır bir şekilde TTP’ler bir kampanyadan diğerine farklılık gösterir. Burada A41APT kampanyası için bahsedilen farklılıkların, bu kadar büyük bir APT grubu durumunda beklenebilecek normal bir TTP varyasyonunu temsil ettiği düşünülmektedir.
Sonuçlar
A41APT kampanyasını APT10’un uzun süredir devam eden etkinliklerinden biri olarak görülmekte. Bu saldırı kampanyası, P8RAT ve SodaMaster gibi farklı benzersiz dosyasız kötü amaçlı yazılımları içeren Ecipekac adlı çok katmanlı kötü amaçlı yazılım ve yüklerini tanıttı.
Ecipekac kötü amaçlı yazılımının en önemli yönü, çok sayıda katman dışında şifrelenmiş shell kodlarının dijital imzanın geçerliliğini etkilemeden dijital olarak imzalanmış DLL’lere ekleniyor olmasıdır. Bu teknik kullanıldığında bazı güvenlik çözümleri bu implantları tespit edemez. P8RAT ve SodaMaster arka kapılarının ana özelliklerinden yola çıkarak bu modüllerin, maalesef araştırmalar sonucunda şimdiye kadar elde edilemeyen başka kötü amaçlı yazılımları indirmekten sorumlu indiriciler olduğu düşünülmektedir.
Kaspersky araştırmacısı Suguru Ishimaru; “Kampanyanın operasyonları ve implantları son derece gizli olduğundan, tehdit aktörünün faaliyetlerini takip etmeyi zorlaştırıyor,” dedi.
Kaynakça:
symantec-enterprise-blogs.security.com
Siber Güvenlik, Dijital Dönüşüm, MSSP, Sızma Testi, KVKK, GDPR, ISO 27001, ISO 27701 ve DDO Bilgi ve İletişim Güvenliği Rehberi başlıklarıyla ilgili teklif almak için lütfen tıklayın.