Turla’nın Peşinde: Ermeni web sitelerini hedefleyen “su kaynağı” saldırısı

Sonraki hikaye
Matthieu Faou

Eski bir APT yeni numaralar öğrenebilir mi? Turla’nın TTP’leri büyük bir bölümü aynı ama grup kısa bir süre önce bir Python arka kapısı ekledi.

ESET araştırmacıları çok sayıda üst düzey Ermeni web sitesini hedef alan bir su kaynağı (stratejik web güvenlik ihlali olarak da bilinir) operasyonu saptadı. Sahte bir Adobe Flash güncellemesi tuzağına dayanıyor ve bizim NetFlash ve PyFlash adını verdiğimiz, daha önce belgelendirilmemiş kötü amaçlı yazılım gönderiyor.

Bu kampanyanın çeşitli özellikleri, bu operasyonu on yılı aşkın bir süredir aktif olan, kötü şöhretli bir casus grup olan Turla ile ilişkilendirmemize neden olmaktadır. Asıl hedefleri arasında devlet kuruluşları ve askerî kurumlar yer alıyor. Daha önce bu grubun, aralarında Mosquito ve LightNeuron kampanyalarının da yer aldığı birden fazla kampanyasını rapor etmiştik.

Bu son operasyon, geçtiğimiz yıllarda izini sürdüğümüz Turla’ya ait çok sayıda su kaynağı kampanyasıyla benzerlikler taşıyor. Çalışma tarzları özellikle 2017 yılında açığa çıkardığımız bir kampanyanın çalışma tarzı ile oldukça benzer. Orada kullanılan çeşitli JavaScript parçaları bu kampanyada kullanılan parçalarla neredeyse aynı, ancak hedefler ve yükler farklı.

Hedef alınan web siteleri

Bu operasyonda Turla, iki tanesi devlete ait olmak üzere, en az dört Ermeni web sitesinin güvenliğini ihlal etmiştir. Bundan dolayı, hedeflerin arasında devlet görevlilerinin ve politikacıların yer alması ihtimali kuvvetlidir.

ESET telemetrisine göre, şu web sitelerinin güvenliği ihlal edilmiştir:

·         armconsul[.]ru: Rusya’daki Ermeni Konsolosluğunun Konsolosluk Bölümü

·         mnp.nkr[.]am:  Artsakh Cumhuriyeti Doğayı Koruma ve Doğal Kaynaklar Bakanlığı

·         aiisa[.]am: Ermeni Uluslararası İlişkiler ve Güvenlik İşleri Enstitüsü

·         adgf[.]am: Ermeni Mevduat Garanti Fonu

Elimizde bu web sitelerinin güvenliğinin 2019’un başından beri ihlal edildiğine ilişkin bulgular var. Ermeni ulusal CERT’i (Bilgisayar Acil Durum Müdahale Ekibi) bilgilendirdik ve yayınlamadan önce analizlerimizi onlarla paylaştık.

Turla operatörleri kötü amaçlı JavaScript kodu eklemek için bu web sitelerine bilinmeyen erişim yöntemleri kullanmışlardır. Örneğin Şekil 1’de de görüldüğü üzere, mnp.nkr[.]am için jquery-migrate.min.js’nin (yaygın bir JavaScript kitaplığı) sonuna karartılmış kod eklemişler.

 

Bu kod skategirlchina[.]com/wp-includes/data_from_db_top.php adresinden harici bir JavaScript yüklüyor. Bu kodu bir sonraki bölümde analiz ediyoruz.

2019 yılı Kasım ayının sonundan beri, skategirlchina[.]com adresinin artık kötü amaçlı komut dizileri göndermediğini fark ettik. Bu yüzden, Turla operatörlerinin bu su kaynağı operasyonunu askıya almış olmaları ihtimali vardır.

Parmak izlerini alma ve kötü amaçlı yazılım gönderme

Güvenliği ihlal edilmiş bir web sayfasını ziyaret ettikten sonra, ikinci aşamada skategirlchina[.]com adresi tarafından kötü amaçlı JavaScript gönderilir ve ziyaretçinin tarayıcısının parmak izi alınır. Şekil 2’de bu komut dizisinin ana işlevi görülmektedir.

Kullanıcının tarayıcısı komut dizisini ilk kez yürütüyorsa, komut dizisi sunucu tarafından sağlanan, rastgele gibi görünen bir MD5 değerine sahip bir evercookie (yapışkan çerez) ekleyecek ve komut dizisi her yürütüldüğünde, farklı bir MD5 değeri sağlanacaktır. Evercookie’nin uygulanması GitHub’da bulunan koda dayalıdır. Çerez değerini depolamak için yerel veritabanı, yerel paylaşılan nesneler (Flash çerezleri), Silverlight depolama alanı vb. gibi birden fazla depolama alanını kullanır. Normal bir çerez ile kıyaslandığında, kullanıcı tarayıcıdaki çerezleri silse bile silinmeyeceği için çok daha kalıcı olacaktır.

Bu evercookie, kullanıcının güvenliği ihlal edilmiş web sitelerinden birini ziyaret edip etmediğini takip etmek için kullanılacaktır. Kullanıcı ikinci kez geri geldiğinde, kullanıcıyı teşhis etmek için daha önce depolanan MD5 değeri kullanılacaktır.

Daha sonra bu, tarayıcının eklenti listesi, ekran çözünürlüğü ve çeşitli işletim sistemi bilgileri de dahil olmak üzere birçok bilgi toplar. Bunlar bir POST talebi içinde Komuta ve Kontrol sunucusuna gönderilir. Bir yanıt olursa bunun JavaScript kodu olduğu varsayılır ve eval işlevi kullanılarak yürütülür.

Ziyaretçinin ilginç olduğu düşünülürse sunucu bir iframe oluşturan bir JavaScript kodu ile yanıt verir. ESET telemetrisinden gelen veriler, bu kampanyada Turla operatörlerinin sadece çok sınırlı sayıda ziyaretçiyi ilginç bulduklarını göstermektedir. Bu iframe, kullanıcıyı kötü amaçlı Flash kurulum dosyasını indirmeye kandırmak için Şekil 3’te de görülen sahte bir Adobe Flash güncellemesi ile ilgili açılan bir pencere uyarısı görüntüler.

 

Tarayıcı zayıflıklarının kullanıldığını gözlemlemedik. Güvenlik ihlali girişimi sadece bu sosyal mühendislik tuzağına bel bağlamış durumda. Kötü amaçlı yürütülebilir dosya iframe’in JavaScript’i ile aynı sunucudan indirildikten sonra kullanıcı bunu manuel olarak başlatırsa kötü amaçlı bir Turla yazılımı türevi ve yasal Adobe Flash programı kurulur.

Şekil 4’te güvenliği ihlal edilmiş Ermeni web sitelerinden birini ziyaret etmekle başlayıp kötü amaçlı yükün gönderilmesine kadar uzanan güvenlik ihlali süreci genel olarak görülmektedir.

 

Kötü Amaçlı Yazılım

Kullanıcı sahte kurulum dosyasını yürüttükten sonra, bu hem kötü amaçlı bir Turla yazılımı türevini hem de yasal Adobe Flash kurulum dosyasını yürütecektir. Bu sayede, kullanıcı büyük olasılıkla güncelleme uyarısının yasal olduğuna inanacaktır.

Eylül 2019’dan önce: Skipper

2019 yılı Ağustos ayı sona ermeden önce, kurban içerisinde yasal bir Adobe Flash v14 kurulum dosyası ve ikinci bir RAR-SFX arşiv dosyasının bulunduğu bir RAR-SFX arşiv dosyası alır. İkinci arşiv dosyasında daha önce Turla ile ilişkilendirilen ve Skipper adı ile bilinen bir arka kapının çeşitli bileşenleri yer alır. 2017 yılında Bitdefender, araştırmacıları tarafından ve daha yeni bir sürümü de, Mayıs 2019’da Telsy tarafından belgelendirilmiştir.

Belgelendirilen sürümler ile en yeni sürümler arasında sadece ufak değişiklikler olduğu düşünüldüğünde, burada ayrıntılı bir analiz sağlamayacağız.

İlginç bir değişiklik ise, Skipper’in Komuta ve Kontrol sunucusu için bu kampanyanın uzak JavaScript’lerini ve kötü amaçlı ikili değerlerini barındıran sunucuyu (özellikle skategirlchina[.]com/wp-includes/ms-locale.php) kullanmasıdır.

Eylül 2019’dan itibaren: NetFlash ve PyFlash

2019 yılı Ağustos ayının sonunda, skategirlchina[.]com tarafından gönderilen yükün değiştiğini fark ettik.

NetFlash (.NET downloader)

Yeni yük %TEMP%\adobe.exe klasörüne Adobe Flash v32 kurulum dosyası bırakan bir .NET uygulaması ve %TEMP%\winhost.exe klasörüne bir NET indirme uygulaması bırakan bir NetFlash uygulamasıydı.

Derleme zaman bilgilerine göre, kötü amaçlı yazılım örnekleri, su kaynağının Komuta ve Kontrol sunucusuna yüklenmeden hemen önce 2019 yılı Ağustos ayının sonlarında ve 2019 yılı Eylül ayının başlarında derlenmiştir.

NetFlash ikinci aşama kötü amaçlı yazılımını doğrudan programın içine gömülü bir URL’den indirir ve Windows zamanlanmış görevi kullanarak bu yeni arka kapının kalıcı olmasını sağlar. Şekil 5’te PyFlash adlı ikinci aşama kötü amaçlı yazılımı indiren NetFlash işlevi görülmektedir. Büyük olasılıkla 2019 yılı Ağustos ayı sonunda derlenen ve doğrudan programın içine gömülü farklı bir Komuta ve Kontrol sunucusuna sahip başka bir NetFlash örneğiyle de karşılaştık.  134.209.222[.]206:15363.

 

PyFlash

İkinci aşama arka kapısı yürütülebilir bir py2exe dosyasıdır. py2exe Python komut dizisini bağımsız bir yürütülebilir Windows dosyasına dönüştürmek için kullanılan bir Python uzantısıdır. Bildiğimiz kadarıyla, Turla geliştiricileri bir arka kapıda Python dilini ilk kez kullanıyorlar.

Arka kapı doğrudan programa gömülü Komuta ve Kontrol sunucusuyla HTTP aracılığıyla iletişim kuruyor. Komuta ve Kontrol sunucusu URL’si ve tüm ağ iletişimlerini şifrelemek için kullanılan AES anahtarı ve IV gibi diğer parametreler, Şekil 6’da görüldüğü gibi, komut dizisinin başında belirtilir.

 

Komuta ve Kontrol sunucusu arka kapı komutlarını JSON formatında da gönderebilir. PyFlash’ın bu sürümünde kullanılan komutlar şunlardır:

·         Verilen bir HTTP(S) bağlantısından ek dosyalar indirme.

·         subprocess32.Popen Python işlevini kullanarak bir Windows komutu yürütme.

·         Yürütme gecikmesine değiştirme: kötü amaçlı yazılımı düzenli olarak (her X dakikada bir; varsayılan olarak 5) başlatan Windows görevinde değişiklik yapar.

·         Kötü amaçlı yazılımı öldürme (kaldırma). Bu yönergeyi doğrulamak için kötü amaçlı yazılım Komuta ve Kontrol sunucusuna içerisinde şu dizenin bulunduğu bir POST talebi gönderir:

Ölüyorum :(
Karıma onu sevdiğimi söyleyin...

Daha sonra, bir POST talebi aracılığıyla AES ile birlikte şifrelenen komutun çıkışı operatörlere geri gönderilir.

Sonuç

Turla hâlâ ilk erişim taktiklerinden biri olarak su kaynağı saldırılarını kullanıyor. İlginç bir şekilde, kampanya kullanıcıyı kötü amaçlı yazılımı indirip kurmaya kandırmak için bilindik bir sosyal mühendislik numarasına - sahte bir Adobe Flash güncelleme uyarısı - bel bağlamış durumda.

Öte yandan, Skipper çok uzun yıllardır bilindiği için büyük olasılıkla algılanmaktan kaçınmak amacıyla yük değiştirildi. PyFlash adını verdiğimiz ve Python dilinde geliştirilen bir arka kapı yükleyen NetFlash’a geçiş yaptılar.

Yeni Turla etkinliklerini takip etmeye devam edeceğiz ve blog’umuzda ilgili bilgileri yayınlayacağız. Sorularınız için bizimle threatintel@eset.com adresinden iletişim kurun. Tehlike Göstergeleri GitHub kaynağımızda da bulunmaktadır.

Tehlike Göstergeleri

Güvenliği ihlal edilmiş web siteleri

·         www.armconsul[.]ru/user/themes/ayeps/dist/js/bundle.0eb0f2cb2808b4b35a94.js

·         mnp.nkr[.]am/wp-includes/js/jquery/jquery-migrate.min.js

·         aiisa[.]am/js/chatem/js_rA9bo8_O3Pnw_5wJXExNhtkUMdfBYCifTJctEJ8C_Mg.js

·         adgf[.]am

Komuta ve Kontrol sunucuları

·         skategirlchina[.]com/wp-includes/data_from_db_top.php

·         skategirlchina[.]com/wp-includes/ms-locale.php

·         37.59.60[.]199/2018/.config/adobe

·         134.209.222[.]206

·         http://85.222.235[.]156:8000  

Örnekler

SHA-1

Zaman bilgisi

Açıklama

ESET Algılama Adı

973620A7AB28A2CBA82DC2A613CD24ED43734381

29 Ağustos Perşembe 04:14:46 UTC 2019

NetFlash Dropper

MSIL/Turla.D

B6567F988C9ACC5DF3CBD72409FC70D54EA412BB

3 Eylül Salı 11:12:04 UTC 2019

NetFlash

MSIL/Turla.D

9F81710B85AA7088505C1EECCE9DA94A39A2DC06

29 Ağustos Perşembe 04:12:33 UTC 2019

NetFlash

MSIL/Turla.F

32430B11E42EDEB63A11E721927FFBABE7C9CFEA

Yok

PyFlash

Win32/Turla.EM

620A669EC0451C9F079FB4731F254AC577902E5E

29 Ağustos Çarşamba 09:43:18 UTC 2018

Skipper iletişim DLL’si

Win32/Turla.EJ



MITRE ATT&CK teknikleri

Taktik

Kimlik

Ad

Açıklama

İlk Erişim

T1189

Ziyaretçi Saldırısı

Turla ziyaretçilere kötü amaçlı yazılım göndermek için yüksek değerli web sitelerinin güvenliğini ihlal etti.

Yürütme

T1204

Kullanıcı Tarafından Yürütülme

Kullanıcıyı kötü amaçlı yazılımı başlatması için kandırmak üzere sahte bir Flash kurulum dosyası kullanılır.

Kararlılık

T1053

Zamanlanmış Görev

NetFlash ve PyFlash zamanlanmış görevleri kullanarak kalıcı olurlar.

Keşfetme

T1016

Sistem Ağ Yapılandırması Keşfi

PyFlash executes ipconfig /all, getmac and arp -a

T1057

Süreç Keşfetme

PyFlash tasklist’i yürütür

T1082

Sistem Bilgileri Keşfetme

PyFlash systeminfo’yu yürütür

Komuta ve Kontrol

T1032

Standart Kriptografik Protokol

PyFlash Komuta ve Kontrol iletişimlerini şifrelemek için CBC moduna AES-128’i kullanır.

T1043

Sık Kullanılan Bağlantı Noktası

NetFlash 80 numaralı bağlantı noktasını kullanır.

T1065

Sık Kullanılmayan Bağlantı Noktası

PyFlash 8.000 numaralı bağlantı noktasını kullanır.
NetFlash örneği 15.363 numaralı bağlantı noktasını kullanır.

T1071

Standart Uygulama Katmanı Protokolü

NetFlash ve PyFlash HTTP protokolünü kullanır.

Sızma

T1041

Komuta ve Kontrol Kanalı Üzerinden Sızma

PyFlash gözetiminin çıkışı ve Komuta ve Kontrol komutları, Komuta ve Kontrol protokolü kullanılarak sızdırılır.