Gamaredon grubu çıtayı yükseltiyor

Sonraki hikaye
Jean-Ian Boutin

Aktif APT grubu Word ve Excel belgeleri için kötü amaçlı uzak şablon enjektörleri ekledi: benzersiz bir Outlook toplu e-posta makrosu

ESET araştırmaları fazlasıyla aktif Gamaredon tehdit grubu tarafından çeşitli kötü amaçlı kampanyalarda kullanılan, daha önce belgelendirilmemiş sayısız güvenlik ihlali sonrası araç keşfetti. Microsoft Outlook’u hedef alan bir VBA makrosu olan bir araç, kurbanın Microsoft Office adres defterindeki kişilere kimlik avı amaçlı e-postalar göndermek için hedefin e-posta hesabını kullanıyor. Ayrıca mevcut Office belgelerine makrolar ve uzak şablonlar enjekte edebilen Gamaredon araçlarını da daha detaylı bir şekilde analiz ettik.

Bu blog yazısında ele alınan Gamaredon bağlantılı araçlar, ESET ürünleri tarafından MSIL/Pterodo, Win32/Pterodo ya da Win64/Pterodo varyantları olarak algılandı.

Gamaredon grubu en azından 2013 yılından beri aktiftir. Zaman içerisinde CERT-UA ve Ukrayna'daki diğer resmi kurumlar tarafından yayınlanan çok sayıda raporun da gösterdiği üzere, büyük bir bölümü Ukrayna'da bulunan kuruluşlara yönelik çok sayıda saldırıdan sorumludur.

Geçtiğimiz son birkaç ayda, bu grubun faaliyetlerinde, kötü amaçlı e-postaların hedeflerinin posta kutularına aralıksız olarak gönderilmesiyle birlikte bir artış gerçekleşti. Bu e-postaların eklerinde, yürütüldüklerinde çok çeşitli farklı türde kötü amaçlı yazılımlar indirmeye çalışan kötü amaçlı makrolar yer alıyor.

Gamaredon geçtiğimiz birkaç ayda, C#’den VBScript’e, toplu iş dosyalarına ve C/C++’a kadar birçok farklı programlama dilinden faydalanmıştır. Gamaredon tarafından kullanılan araçlar çok basit araçlar olup, güvenliği ihlal edilmiş sistemlerden hassas bilgileri toplayacak ve daha fazla yayılacak şekilde tasarlanmıştır.

Diğer APT gruplarının aksine, Gamaredon grubu fark edilmemeye çalışmak için neredeyse hiç çaba göstermiyor. Araçlarının daha sinsi olabilen rastgele ikili dosyalar indirme ve yürütme kapasitesi olsa da, görünen o ki, bu grubun ana odak noktası, verileri sızdırmaya çalışırken, hedef ağa olabildiğince hızlı bir şekilde yayılmak. Bir şeyleri gözden kaçırıyor olabilir miyiz?

Arkaplan

Şekil 1’de bir Gamaredon kampanyasındaki tipik güvenlik ihlali dizisi görülüyor.

Şekil 1. Tipik Gamaredon güvenlik ihlali zinciri

Son dönemdeki yayınların büyük bölümünde, kimlik avı amaçlı e-postalar ve bunların barındırdıkları indiricilere odaklanılsa da, bu blog yazısında bu sistemlerde kullanılan güvenlik ihlali sonrası araçlar ele alınıyor.

Outlook VBA modülü

Gamaredon grubu, içerisinde özel bir Microsoft Outlook Visual Basic for Applications (VBA) projesi yer alan bir paket kullanıyor. Kötü amaçlı yazılım yaymak için Outlook makrolarının kullanılması, kötü amaçlı yazılım kampanyalarını araştırırken nadiren karşılaştığımız bir durum.

Bu kötü amaçlı kod paketi, çalışıyorsa, ilk olarak Outlook sürecini sonlandıran bir VBSCript ile başlar ve daha sonra, kayıt defteri değerlerini değiştirerek Outlook’ta VBA makro yürütmesi ile ilgili güvenliği ortadan kaldırır. Ayrıca içerisinde bir makro, kötü amaçlı e-posta eki ve bazı durumlarda e-postaların gönderileceği alıcıların listesinin yer aldığı kötü amaçlı OTM dosyasını (Outlook VBS projesi) diske kaydeder.

Daha sonra, Gamaredon VBA projesini yükleyen özel bir seçenekle (/altvba <OTM filename>) Outlook’u tekrar başlatır. Uygulama Başlatma etkinliği alındıktan sonra kötü amaçlı kod yürütülür. Bu modülü kötü amaçlı e-postalar göndermek üzere üç farklı şekilde kullanıyorlar:

 

     
    • Kurbanın adres defterindeki herkes
    • Aynı kuruluş içerisindeki herkes
    • Önceden tanımlanmış hedefler listesi
     

 

Kurbanın izni olmadan kötü amaçlı e-postalar göndermek için güvenliği ihlal edilmiş bir posta kutusunu suistimal etmek yeni bir teknik olmasa da, bunu gerçekleştirmek için bir OTM dosyası ve Outlook makrosu kullanan bir saldırı grubuna ilişkin, resmen belgelendirilmiş ilk vaka olduğuna inanıyoruz.

Şekil 2. Kötü amaçlı e-postayı oluşturan Outlook VBA komut dizisi

Bu kötü amaçlı VBA kodunun “kişi listesindeki herkese gönder” davranışı temelinde bu modülün, sadece ikincil hasarlar olmalarına karşın, bazı kuruluşların Gamaredon tarafından hedef alındıklarını düşünmelerine neden olabileceği inancındayız. Örneğin Japonya gibi geleneksel olarak Gamaredon tarafından hedef alınmayan bölgelerden gelen ve VirusTotal’a yüklenen son dönemdeki örnekler bu modülün eylemleriyle açıklanabilir.

Şekil 2’de de görüldüğü üzere, VBA kodu e-posta gövdesini oluşturuyor ve kötü amaçlı eki e-postaya ekliyor. Hem .docx hem de .lnk dosyalarının ek olarak kullanıldığına şahit oluyoruz. Bunlar Gamaredon’un ilk kimlik avı amaçlı kampanyalarında kullandığı kötü amaçlı eklerin içeriğiyle oldukça benzer. Şekil 3’te bu kötü amaçlı bileşen tarafından oluşturulan bir e-posta görülüyor.

Şekil 3. Outlook VBA modülü tarafından oluşturulan ve içerisinde bir uzak şablon bulunan bir Word belgesi ekine sahip e-posta

E-postada hem İngilizce hem de Rusça metin yer alıyor. Ancak, Şekil 3’te de görüldüğü üzere, Rusça kodlamada bir sorun var. Bu modülün sonraki bir versiyonunda bu sorun giderildi ve bu da, Gamaredon grubunun yüksek geliştirme hızına ve ayrıntılara önem vermeyişine bir başka örnektir.

Office makro enjeksiyon modülü - CodeBuilder

Gamaredon grubu tarafından güvenliği ihlal edilmiş sistemde zaten bulunan belgelere kötü amaçlı makrolar ya da uzak şablonlar enjekte etmek için kullanılan farklı kötü amaçlı modül varyantlarını analiz ettik. Belgeler düzenli olarak meslektaşlar arasında paylaşıldığı için bu, bir organizasyonun ağı içerisinde yanal olarak hareket etmenin çok etkili bir yoludur. Ayrıca bu makrolar belgeler açıldığında çalıştığı ve bu belgelerden bazıları büyük olasılıkla farklı zamanlarda birden fazla kez açılacağı için bu, sistemde kalıcı olmanın da iyi bir yoludur.

Bu makro enjeksiyon modülleri, Microsoft Office makro güvenlik ayarlarını kurcalama özelliğine de sahiptir. Bu nedenle, etkilenen kullanıcıların belgeleri her açışlarında iş istasyonlarının gizliliğinin tekrar ihlal edildiğinden haberi dahi olmuyor. Bu modülün iki farklı dilde uygulamaya konulduğunu gördük: C# ve VBScript.

C#

Diğer birçok araç gibi bu modül de, 7z kendini açabilen arşiv dosyası olarak teslim edildi. İçerisinde birçok dosyanın yer aldığı, parola korumalı bir RAR arşiv dosyası vardı. Biri Word ve biri Excel için olmak üzere ve içerisinde hedeflenen belgelere eklenecek kötü amaçlı makronun VBA kodu ile mevcut belgeleri bulmak ve güvenliklerini ihlal etmekle sorumlu NET derlemesinin yer aldığı iki metin dosyası mevcuttu. Şekil 4’te de görüldüğü üzere, derlemenin adı CodeBuilder’dır.

Şekil 4. CodeBuilder karartılmamış bir versiyonda çalışır

Bu .NET modülü ilk olarak aşağıdaki kayıt defteri değerlerini değiştirerek çeşitli belge türlerinin Office makro güvenlik ayarlarını düşürür:

HKCU\Software\Microsoft\Office\<version>\<product>\Security\VBAWarnings
HKCU\Software\Microsoft\Office\<version>\<product>\Security\AccessVBOM

Hem Word hem de Excel <product> değerleri için olası tüm Office <version> değerlerini yineler. Daha sonra, sisteme bağlı tüm sürücülerde, geçerli Word ya da Excel dosya uzantılarına sahip dosyaları tarar. Windows kurulumunun bulunduğu sürücüde, sadece Desktop ve Downloads klasörlerinin yer aldığı belirli konumları tarar. Diğer sürücülerin tamamını tarar. Kötü amaçlı yazılım bulunan her belgeyi AppData klasörüne taşır, bir Microsoft.Office.Interop nesnesi kullanarak belgeye kötü amaçlı Word ya da Excel makrolarını ekler ve belgeyi asıl klasörüne geri taşır. Analiz ettiğimiz örneklerde, enjekte edilen makrolar basit indiricilerdi.

Toplu iş dosyası/VBScript

Bu modülün VBScript versiyonu, davranış anlamında .Net versiyonuna benzer. Aradaki temel fark, mevcut belgelere kötü amaçlı makro yerleştirmek yerine, bunlara yönelik uzak bir şablona referanslar ekler.

Şekil 5. Mevcut belgelere yönelik uzak bir şablona referans enjekte etmek için Document.AttachedTemplate özelliğini kullanan VBScript

VBScript modülü de, içerisinde bir toplu iş dosyası ve belgeleri yinelemekle ve bunlara uzak şablon referansları eklemekle sorumlu iki VBS dosyasının yer aldığı, kendini açabilen arşiv şeklinde paketlenmiş olarak da gelir.

Modül güncellemeleri

İlginç şekilde, Palo Alto Networks’ün Gamaredon ile ilgili 2017 yılındaki blog yazısında açıklanan özel araçlardan bazıları bugün hala güncelleniyor ve kullanılıyor. Bazıları büyük benzerlikler gösterirken, diğerleri farklı kodlama dillerinde tekrar yazılan versiyonlar. Güvenliği ihlal edilen makinelere en yaygın olarak indirilen ve kurulan araçlar genel olarak iki farklı kategoriye ayrılır: indiriciler ve arka kapılar.

İndiriciler

Birçoğu C# ya da VBScript dillerinde yazılan indiricilerin birçok varyasyonu vardır. Bu bölümde en orijinal varyantlarından sadece iki tanesi ele alınacaktır; çünkü diğerleri pek de fazla değişmemiştir ve oldukça basittir.

C# derleyici modülü

Gamaredon grubu tarafından kullanılan diğer bir çok araca benzeyen bu .NET yürütülebilir dosyası, önemsiz kod ekleme ve komut dizilerini karartma gibi karartma tekniklerini kullanır. Gövdesinde bir indiricinin base64 kodlu kaynak kodu yer alır. Kaynak kodunu çözer ve tümleşik Microsoft.CSharp.CSharpCodeProvider sınıfını kullanarak bunu doğrudan sistem üzerinde derler. Sonuçta ortaya çıkan yürütülebilir dosyayı mevcut bir dizine yerleştirir ve her 10 dakika bir başlatılacak şekilde programlanan bir görev oluşturur. Şekil 6’da da görülebileceği üzere, çözülen kaynak kodunda hala yorumlar var ve bu da, Gamaredon operatörlerinin ne kadar üstünkörü iş yaptıklarının bir göstergesidir.

Şekil 6. C# derleyici modülünde yer alan C# indirici kaynak kodunun bir bölümü

GitHub proje modülü

Şekil 7’de de görüldüğü gibi, bu .NET yürütülebilir dosyası bir indirici edinmek ve yürütmek için GitHub deposunu kullanır. Bu depo artık yok ama hala kullanılırken bir kopyasını indirebilmiştik.

Şekil 7. github.com’da depolanan bir yükü indirmek ve yürütmekle sorumlu .NET modülü

Depoda base64 kodlu yürütülebilir bir .NET indirici dosyası olan tek bir dosya — readme.txt yer alıyordu. GitHub proje modülünün rolü bu dosyayı indirmek, kodunu çözmek ve yürütmektir.

Arka kapılar - dosya çalma araçları

İşlevlerde bazı varyasyonlar olsa da, bu modüllerin asıl amacı, güvenliği ihlal edilmiş bir sistemdeki tüm belgeleri numaralandırmak ve bunları Komuta ve Kontrol sunucusuna yüklemektir. Ayrıca, bu dosya çalma araçları Komuta ve Kontrol sunucusundan rastgele kod indirebilir ve yürütebilir. Gamaredon grubu tarafından kullanılan diğer birçok araçta da olduğu gibi, bunlar dört farklı kodlama dilinde gelir: C/C++, C#, toplu iş dosyası ve VBScript.

C/C++

Bu varyant burada anlatılan USBStealer modülünün ardılıdır. En son versiyonları oldukça farklı olsa da, bu modül örnekleri gelişim sürecinde incelendiğinde, aynı kaynak kodun kullanıldığı görülür.

Bu geçişi açıklayan örneklerden biri de, Harvesterx64.dll dahili adına sahip ve Haziran 2019’da derlenen, 64-bit’lik DLL’dir. Hala daha eski varyantlarda kullanılan birçok komut dizisine sahip ama daha yeni varyantlarda iki özellik geliştirmesi de sergiliyor. İlk olarak, artık ad karması yoluyla Windows API’leri çözüyor ve ikinci olarak, hangi dosyaların Komuta ve Kontrol sunucusuna yüklendiğini takip etmek için SQLite veritabanı yerine basit bir metin dosyası kullanıyor.

Bu modülün davranışı oldukça açıktır: hem yerel hem de çıkarılabilir sürücüler olmak üzere, sistemi yeni Microsoft Office belgeleri için tarar ve bunları Komuta ve Kontrol sunucusuna yükler. Belgenin yeni olup olmadığını anlamak için modül, bir metin dosyasında, sunucuya yüklenen her dosya için bir MD5 karması tutar. MD5 karmaları dosya içeriğine değil, dosya adı, boyutu ve son değiştirilme tarihine dayalı bir komut dizisine dayalıdır. Modülün komut dizileri .data bölümünde depolanır ve basit bir XOR anahtarıyla şifrelenir. Ayrıca, bu Komuta ve Kontrol sunucusundan da rastgele kod indirebilir ve yürütebilir.

C#

Bu C/C++ versiyonunun C#’da yeniden uygulanmasıdır. Aradaki önemli fark, bunun güvenliği ihlal edilmiş bilgisayarda, dakikada bir de ekran görüntüsü almasıdır. Şekil 8’de de görüldüğü üzere, bizim analiz ettiğimiz versiyonda çağrıştırıcı isimlere sahip beş farklı iş parçacığı vardı.

Şekil 8. C# arka kapı iş parçacığı oluşturma rutini

Toplu iş dosyası/VBScript

Bu versiyon hem toplu iş hem de VBScript dilinde yazılmış, çok sayıda komut dizisinden oluşur. Yine de, nihai hedef aynıdır: hassas bilgiler için sistemi taramak. Ana mekanizma sistemde Word belgelerini (*.doc*) arayan ve bunların adlarını bir metin dosyasında depolayan (bkz. Şekil9) bir toplu iş dosyasıdır.

Şekil9.Arka kapının belge dosyası taramasının sonuçlarını içeren, örnek inject.txt dosyası

Pakette ayrıca 1.log, 2.log, 3.log, 4.log ve 5.log adlı şifrelenmiş komut dizisi dosyaları da yer alır. Kodu çözüldükten sonra, bu komut dizileri rastgele kod indirip yürütebilen VBScript indiricileri gizler.

Ağ altyapısı

Gamaredon Komuta ve Kontrol sunucuları için ücretsiz ve ücretli birçok farklı etki alanı adı kullanıyor. Ücretsiz etki alanı adları çoğunlukla No-IP’den alınan hopto.org, ddns.net, myftp.biz uzantılı adreslerken, ücretli etki alanı adları REG.RU tescil kurulu aracılığıyla tescil ettirilmiş olup aralarında .fun, .site, .space, .ru, .website ve .xyz TLD’leri yer alıyor.

Araçları tarafından kullanılan etki alanı adlarını sürekli olarak değiştiriyorlar ama bunu çoğunlukla çok az sayıda bir ASN üzerinde yapıyorlar. Dikkatle yapılan analizler küçük kurban grupları için ayrı etki alanı adları kullandıklarını gösteriyor. Lütfen Gamaredon grubu tarafından kullanılan etki alan adlarının tam listesi için ESET’in GitHub hesabına göz atın.

Yürütme kalitesi

Kampanyaları süresince Gamaredon grubu tarafından kullanılan çok sayıda farklı kötü amaçlı komut dizisi, yürütülebilir dosya ve belge örneği topladık. Özellikle komut dizilerinde olmak üzere, çok sayıda hata olduğu fark ettik. Bu hataların ya da dikkatsizliklerin ardındaki nedeni tam olarak bilmek, elbette imkansız ama bu durum, grubun ürettiği örneklerin hacmi ve yüksek geliştirme hızlarıyla açıklanabilir. Bazı C# derleyici modülü örneklerinde yer alan kaynak kodunda yorumlar kalmış olması ya da Outlook VBA modülü tarafından üretilen e-postada Rusya kodlamanın yanlış oluşu, kendilerine ait birçok aracı yaymadan ve kullanıma sunmadan önce kapsamlı incelemelerden ya da testlerden geçirmediklerini gösteriyor.

Bununla birlikte, bu hatalar araçlarının genel verimliliğini etkileyebilse de, bu grubun hızlı yürütme ve uyarlama becerisinin bazı avantajları da mevcut. Saldırılarının hacmi ve acımasızlığı, hedeflerinde sürekli bir korku durumu yaratabilir. Kod çok basit olsa da, komut dizisi karartma gibi bazı teknikler, analizi tam otomatikleştirme işini zorlaştırıyor ve analistlerin işini zahmetli bir hale getiriyor.

GitHub projeleri hızlı araç geliştirme süreçlerine kısaca göz atabilmemizi sağladı. Orada kullanılan kod, C# indiricinin evrimini net bir şekilde gösterdi. İlk versiyonlarda hiçbir karartma işareti görülmüyordu ve daha sonra, geliştiriciler analizi zorlaştırmak için farklı komut dizisi karartmaları ve önemsiz kod eklediler.

Kalıcı olmak için birçok farklı teknik kullanılıyor ama en yaygın olanlar arasında zamanlanmış görevler, otomatik çalıştırma kayıt anahtarları ve Başlat klasöründen yararlanma yer alıyor. Bu teknikler oldukça basit ve uzun zamandır biliniyor olsa da, Gamaredon grubunun her sisteme birden fazla komut dizisi ve yürütülebilir dosya kurmaya çalışma ve bunları sürekli olarak güncelleme stratejisi, kendilerini korumaya çalışan hedeflerin hayatlarını önemli ölçüde zorlaştırıyor.

Sonuç

Araçlarının büyük bir bölümünün basit olmasına karşın, Gamaredon grubu Outlook VBA modülleri gibi ortaya bazı yenilikler de koyabiliyor. Bununla birlikte, gizli olmaktan çok uzak olduğu için, uzun vadede yetenekli bir organizasyonla boy ölçüşemez. Gamaredon’un elindeki araçların çeşitliliği, bir makinenin parmak izini alma ve hangi hassas verilerin olduğunu anlayıp ağa yayılma konusunda oldukça etkili olabilir. Bu çok daha gizli bir iş yükünü dağıtmanın bir yolu olabilir mi?

Bu araştırmadaki yardımlarından ötürü, Anton Cherepanov’a özellikle teşekkür ediyoruz