Ryuk, son birkaç yılın en ünlü fidye yazılımı seçeneklerinden biri. İlk kez 2018 yazında ortaya çıktığından beri,
1. Genel bilgiler
Bu belge, Ryuk fidye yazılımı çeşidinin analizinin yanı sıra, kötü amaçlı yazılımın sisteme yüklenmesinden sorumlu yükleyicinin bir analizini içerir.
Ryuk fidye yazılımı ilk olarak 2018 yazında ortaya çıktı. Ryuk ile diğer fidye yazılımları arasındaki farklardan biri de kurumsal ortamlara saldırmayı hedeflemesidir.
2019'un ortalarında siber suçlu grupları bu fidye yazılımını kullanarak çok sayıda İspanyol şirketine saldırdı.
Pirinç. 1: Ryuk fidye yazılımı saldırısıyla ilgili El Confidencial'dan alıntı [1]
Pirinç. 2: Ryuk fidye yazılımı kullanılarak gerçekleştirilen bir saldırı hakkında El País'ten alıntı [2]
Bu yıl Ryuk, çeşitli ülkelerde çok sayıda şirkete saldırdı. Aşağıdaki rakamlarda görebileceğiniz gibi, Almanya, Çin, Cezayir ve Hindistan bu durumdan en çok etkilenenler oldu.
Siber saldırıların sayısını karşılaştırdığımızda Ryuk'un milyonlarca kullanıcıyı etkilediğini ve büyük miktarda veriyi tehlikeye atarak ciddi ekonomik kayıplara yol açtığını görebiliriz.
Pirinç. Şekil 3: Ryuk'un küresel faaliyetinin gösterimi.
Pirinç. 4: Ryuk'tan en çok etkilenen 16 ülke
Pirinç. 5: Ryuk fidye yazılımının saldırısına uğrayan kullanıcı sayısı (milyon olarak)
Bu tür tehditlerin olağan çalışma prensibine göre, bu fidye yazılımı, şifreleme tamamlandıktan sonra kurbana, şifrelenmiş dosyalara erişimi yeniden sağlamak için belirtilen adrese bitcoin cinsinden ödenmesi gereken bir fidye bildirimi gösterir.
Bu kötü amaçlı yazılım ilk piyasaya sürülmesinden bu yana değişti.
Bu belgede analiz edilen bu tehdidin çeşidi, Ocak 2020'deki bir saldırı girişimi sırasında keşfedildi.
Karmaşıklığı nedeniyle bu kötü amaçlı yazılım genellikle APT grupları olarak da bilinen organize siber suçlu gruplarına atfedilir.
Ryuk kodunun bir kısmı, bir dizi aynı işlevi paylaşan, iyi bilinen başka bir fidye yazılımı olan Hermes'in kodu ve yapısıyla gözle görülür bir benzerliğe sahiptir. Bu nedenle Ryuk başlangıçta, o zamanlar Hermes fidye yazılımının arkasında olduğundan şüphelenilen Kuzey Koreli Lazarus grubuyla bağlantılıydı.
CrowdStrike'ın Falcon X hizmeti daha sonra Ryuk'un aslında WIZARD SPIDER grubu tarafından yaratıldığını kaydetti [4].
Bu varsayımı destekleyen bazı kanıtlar var. İlk olarak, bu fidye yazılımının, Rusya'nın tanınmış kötü amaçlı yazılım pazarı olan ve daha önce bazı Rus APT gruplarıyla ilişkilendirilen istismar.in web sitesinde reklamı yapıldı.
Bu gerçek, Ryuk'un Lazarus APT grubu tarafından geliştirilmiş olabileceği teorisini dışlıyor çünkü grubun çalışma şekline uymuyor.
Ayrıca Ryuk'un Rusya, Ukrayna ve Belarus sistemlerinde çalışmayacak bir fidye yazılımı olduğu da duyuruldu. Bu davranış, Ryuk'un bazı sürümlerinde bulunan ve fidye yazılımının çalıştığı sistemin dilini kontrol eden ve sistemde Rusça, Ukraynaca veya Belarusça dili varsa çalışmasını durduran bir özellik tarafından belirlenir. Son olarak, WIZARD SPIDER ekibi tarafından saldırıya uğrayan makinenin uzman analizi, Hermes fidye yazılımının bir çeşidi olarak Ryuk'un geliştirilmesinde kullanıldığı iddia edilen birkaç "yapıyı" ortaya çıkardı.
Öte yandan uzmanlar Gabriela Nicolao ve Luciano Martins, fidye yazılımının APT grubu CryptoTech tarafından geliştirilmiş olabileceğini öne sürdüler [5].
Bu, Ryuk'un ortaya çıkmasından birkaç ay önce bu grubun aynı sitenin forumunda Hermes fidye yazılımının yeni bir sürümünü geliştirdikleri bilgisini yayınlamasından kaynaklanmaktadır.
Birkaç forum kullanıcısı CryptoTech'in gerçekten Ryuk'u yaratıp yaratmadığını sorguladı. Grup daha sonra kendini savundu ve fidye yazılımının %100'ünü geliştirdiklerine dair kanıtları olduğunu belirtti.
2. Özellikler
Ryuk fidye yazılımının “doğru” sürümünün başlatılabilmesi için görevi, bulunduğu sistemi tanımlamak olan önyükleyiciyle başlıyoruz.
Önyükleyici karması aşağıdaki gibidir:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Bu indiricinin özelliklerinden biri, herhangi bir meta veri içermemesidir; Bu kötü amaçlı yazılımın yaratıcıları, içine herhangi bir bilgi eklememiştir.
Bazen kullanıcıyı meşru bir uygulama çalıştırdığını düşünmesi için kandırmak amacıyla hatalı veriler içerirler. Ancak daha sonra göreceğimiz gibi, eğer enfeksiyon kullanıcı etkileşimini içermiyorsa (bu fidye yazılımında olduğu gibi), o zaman saldırganlar meta veri kullanmanın gerekli olduğunu düşünmezler.
Pirinç. 6: Örnek Meta Veriler
Örnek, hem 32 bit hem de 32 bit sistemlerde çalışabilmesi için 64 bit biçiminde derlendi.
3. Penetrasyon vektörü
Ryuk'u indirip çalıştıran örnek, sistemimize uzaktan bağlantı yoluyla girmiş ve erişim parametreleri bir ön RDP saldırısıyla elde edilmiştir.
Pirinç. 7: Saldırı Kaydı
Saldırgan sisteme uzaktan giriş yapmayı başardı. Bundan sonra örneğimizle yürütülebilir bir dosya oluşturdu.
Bu yürütülebilir dosya, çalıştırılmadan önce bir antivirüs çözümü tarafından engellendi.
Pirinç. 8: Desen kilidi
Pirinç. 9: Desen kilidi
Kötü amaçlı dosya engellendiğinde, saldırgan yürütülebilir dosyanın şifrelenmiş bir sürümünü indirmeye çalıştı ancak bu da engellendi.
Pirinç. 10: Saldırganın çalıştırmaya çalıştığı örnek kümesi
Son olarak şifrelenmiş konsol aracılığıyla başka bir kötü amaçlı dosya indirmeye çalıştı.
Antivirüs korumasını atlamak için PowerShell. Ama o da engellendi.
Pirinç. 11: Kötü amaçlı içeriğe sahip PowerShell engellendi
Pirinç. 12: Kötü amaçlı içeriğe sahip PowerShell engellendi
4. Yükleyici
Çalıştırıldığında, klasöre bir Beni Oku dosyası yazar. % Temp%Ryuk için tipik olan bu. Bu dosya, bu kötü amaçlı yazılım ailesinde oldukça yaygın olan protonmail etki alanındaki bir e-posta adresini içeren bir fidye notudur: [e-posta korumalı]
Pirinç. 13: Fidye Talebi
Önyükleyici çalışırken, rastgele adlara sahip birkaç yürütülebilir dosya başlattığını görebilirsiniz. Gizli bir klasörde saklanırlar HALKA AÇIK, ancak seçenek işletim sisteminde etkin değilse "Gizli dosya ve klasörleri göster", o zaman gizli kalacaklar. Üstelik bu dosyalar, 64 bit olan ana dosyanın aksine 32 bittir.
Pirinç. Şekil 14: Örnek tarafından başlatılan yürütülebilir dosyalar
Yukarıdaki görüntüde görebileceğiniz gibi Ryuk, tüm ACL'leri (Erişim kontrol listeleri) değiştirmek için kullanılacak olan icacls.exe'yi çalıştırır, böylece bayraklara erişim ve değişiklik sağlanır.
Hatalardan (/C) bağımsız olarak ve herhangi bir mesaj göstermeden (/Q) cihazdaki tüm dosyalara (/T) tüm kullanıcılar altında tam erişim sağlar.
Pirinç. Şekil 15: Örnek tarafından başlatılan icacls.exe'nin yürütme parametreleri
Ryuk'un hangi Windows sürümünü çalıştırdığınızı kontrol ettiğini unutmamak önemlidir. Bunun için o
kullanarak bir sürüm kontrolü gerçekleştirir GetVersionExWbayrağın değerini kontrol ettiği yer lpVersionBilgisiWindows'un geçerli sürümünün daha yeni olup olmadığını belirten Windows XP.
Windows XP'den sonraki bir sürümü çalıştırıp çalıştırmadığınıza bağlı olarak, önyükleme yükleyicisi yerel kullanıcı klasörüne (bu durumda klasöre) yazacaktır. %Halk%.
Pirinç. 17: İşletim sistemi sürümünün kontrol edilmesi
Yazılmakta olan dosya Ryuk'tur. Daha sonra parametre olarak kendi adresini ileterek onu çalıştırır.
Pirinç. 18: Ryuk'u ShellExecute aracılığıyla yürütün
Ryuk'un yaptığı ilk şey giriş parametrelerini almaktır. Bu sefer kendi izlerini kaldırmak için kullanılan iki giriş parametresi (yürütülebilir dosyanın kendisi ve bırakıcı adresi) vardır.
Pirinç. 19: Bir Süreç Yaratmak
Ayrıca, yürütülebilir dosyalarını çalıştırdıktan sonra kendisini sildiğini ve böylece yürütüldüğü klasörde kendi varlığına dair hiçbir iz bırakmadığını da görebilirsiniz.
Pirinç. 20: Bir dosyayı silmek
5. RYUK
5.1 Mevcudiyet
Ryuk, diğer kötü amaçlı yazılımlar gibi, sistemde mümkün olduğu kadar uzun süre kalmaya çalışır. Yukarıda gösterildiği gibi, bu hedefe ulaşmanın bir yolu, yürütülebilir dosyaları gizlice oluşturup çalıştırmaktır. Bunu yapmak için en yaygın yöntem kayıt defteri anahtarını değiştirmektir. Geçerli SürümÇalıştır.
Bu durumda, bu amaçla başlatılacak ilk dosyanın olduğunu görebilirsiniz. VWjRF.exe
(dosya adı rastgele oluşturulur) başlatılır cmd.exe.
Pirinç. 21: VWjRF.exe'nin çalıştırılması
Daha sonra komutu girin KOŞMAK Adıyla"svcho'lar". Dolayısıyla herhangi bir zamanda kayıt defteri anahtarlarını kontrol etmek isterseniz bu ismin svchost ile benzerliği göz önüne alındığında bu değişikliği kolaylıkla gözden kaçırabilirsiniz. Bu anahtar sayesinde Ryuk sistemdeki varlığını sağlar. Henüz virüs bulaşmamışsa, sistemi yeniden başlattığınızda yürütülebilir dosya tekrar deneyecektir.
Pirinç. 22: Örnek, kayıt defteri anahtarında bulunmasını sağlar
Bu yürütülebilir dosyanın iki hizmeti durdurduğunu da görebiliriz:
"ses uç noktası oluşturucu", adından da anlaşılacağı gibi sistem sesine karşılık gelir,
Pirinç. 23: Örnek sistem ses hizmetini durdurur
и Sams, bir hesap yönetimi hizmetidir. Bu iki hizmeti durdurmak Ryuk'un bir özelliğidir. Bu durumda, eğer sistem bir SIEM sistemine bağlıysa, fidye yazılımı şu adrese gönderimi durdurmaya çalışır:
Pirinç. 24: Örnek Samss hizmetini durdurur
5.2 Ayrıcalıklar
Genel olarak konuşursak, Ryuk ağ içinde yanal olarak hareket ederek başlar veya aşağıdaki gibi başka bir kötü amaçlı yazılım tarafından başlatılır:
Öncesinde uygulama sürecinin başlangıcı olarak süreci yürüttüğünü görüyoruz. Kendini Taklit EtBu, erişim belirtecinin güvenlik içeriğinin akışa aktarılacağı ve burada kullanılarak hemen alınacağı anlamına gelir. GetCurrentThread.
Pirinç. 25: Kendini Taklit Etmeyi Arayın
Daha sonra bir erişim belirtecini bir iş parçacığıyla ilişkilendireceğini görüyoruz. Ayrıca bayraklardan birinin İstenilen Erişim, iş parçacığının sahip olacağı erişimi kontrol etmek için kullanılabilir. Bu durumda edx'in alacağı değer şu olmalıdır: TOKEN_ALL_ACESS ya da - TOKEN_WRITE.
Pirinç. 26: Akış Belirteci Oluşturma
Sonra kullanacak SeDebugAyrıcalığı ve iş parçacığında Hata Ayıklama izinlerini almak için bir çağrı yapacak ve sonuç olarak PROCESS_ALL_ACCESS, gerekli her türlü işleme erişebilecektir. Şimdi, şifreleyicinin zaten hazırlanmış bir akışa sahip olduğu göz önüne alındığında, geriye kalan tek şey son aşamaya geçmektir.
Pirinç. 27: SeDebugPrivilege ve Ayrıcalık Yükseltme Fonksiyonunun Çağrılması
Bir tarafta arttırmak istediğimiz ayrıcalıklar hakkında bize gerekli bilgileri sağlayan LookupPrivilegeValueW var.
Pirinç. 28: Ayrıcalık yükseltme için ayrıcalıklar hakkında bilgi isteyin
Öte yandan elimizde TokenAyrıcalıklarını AyarlaBu, akışımız için gerekli hakları almamızı sağlar. Bu durumda en önemli şey Yeni DurumBayrağı ayrıcalıklar verecek.
Pirinç. 29: Bir belirteç için izinleri ayarlama
5.3 Uygulama
Bu bölümde, örneklemin bu raporda daha önce bahsedilen uygulama sürecini nasıl gerçekleştirdiğini göstereceğiz.
Uygulama sürecinin ve üst kademeye yükseltmenin temel amacı, aşağıdakilere erişim sağlamaktır: gölge kopyalar. Bunu yapmak için yerel kullanıcının haklarından daha yüksek haklara sahip bir iş parçacığıyla çalışması gerekiyor. Bu tür yükseltilmiş hakları elde ettiğinde, işletim sistemindeki daha önceki bir geri yükleme noktasına dönmeyi imkansız hale getirmek için kopyaları silecek ve diğer işlemlerde değişiklikler yapacaktır.
Bu tür kötü amaçlı yazılımlarda olduğu gibi, CreateToolHelp32Anlık Görüntübu nedenle o anda çalışan işlemlerin anlık görüntüsünü alır ve kullanarak bu işlemlere erişmeye çalışır. Açık Süreç. Sürece erişim sağladığında, süreç parametrelerini elde etmek için bilgilerinin bulunduğu bir belirteç de açar.
Pirinç. Şekil 30: Bir bilgisayardan süreçlerin alınması
CreateToolhelp140002Snapshot'ı kullanarak 9D32C rutininde çalışan işlemlerin listesini nasıl aldığını dinamik olarak görebiliriz. Bunları aldıktan sonra listeyi inceler ve başarılı olana kadar OpenProcess'i kullanarak işlemleri tek tek açmaya çalışır. Bu durumda açabildiği ilk süreç şuydu: "görevhost.exe".
Pirinç. 31: Bir Süreci Almak İçin Bir Prosedürü Dinamik Olarak Yürütün
Daha sonra işlem belirteci bilgilerini okuduğunu görebiliriz, bu nedenle çağırır OpenProcessToken " parametresi ile20008"
Pirinç. 32: İşlem belirteci bilgilerini okuyun
Ayrıca enjekte edileceği sürecin uygun olup olmadığını da kontrol eder. csrss.exe, explorer.exe, lsaas.exe veya bir takım haklara sahip olduğunu NT yetkilisi.
Pirinç. 33: Hariç tutulan süreçler
İşlem belirteci bilgilerini kullanarak kontrolü ilk kez nasıl gerçekleştirdiğini dinamik olarak görebiliriz. 140002D9C Bir işlemi gerçekleştirmek için hakları kullanılan hesabın hesap olup olmadığını öğrenmek için NT YETKİ.
Pirinç. 34: NT YETKİLİ kontrolü
Daha sonra prosedür dışında bunun böyle olmadığını kontrol eder. csrss.exe, explorer.exe veya lsaas.exe.
Pirinç. 35: NT YETKİLİ kontrolü
Süreçlerin anlık görüntüsünü aldıktan, süreçleri açtıktan ve hiçbirinin dışlanmadığını doğruladıktan sonra enjekte edilecek süreçleri belleğe yazmaya hazırdır.
Bunu yapmak için öncelikle hafızada bir alan ayırır (VirtualAllocEx), içine yazar (Süreç belleğini yaz) ve bir iş parçacığı oluşturur (Uzak Konu Oluştur). Bu işlevlerle çalışmak için, daha önce kullanarak seçilen süreçlerin PID'lerini kullanır. CreateToolhelp32Anlık Görüntü.
Pirinç. 36: Gömme kodu
Burada fonksiyonu çağırmak için PID prosesini nasıl kullandığını dinamik olarak gözlemleyebiliriz. VirtualAllocEx.
Pirinç. 37: VirtualAllocEx'i arayın
5.4 Şifreleme
Bu bölümde bu örneğin şifreleme kısmına bakacağız. Aşağıdaki resimde "adlı iki alt rutini görebilirsiniz"LoadLibrary_EncodeString"Ve"Kodlama_İşlevi", şifreleme prosedürünü gerçekleştirmekten sorumludur.
Pirinç. 38: Şifreleme prosedürleri
Başlangıçta, daha sonra gerekli olan her şeyin gizliliğini kaldırmak için kullanılacak bir dizeyi nasıl yüklediğini görebiliriz: içe aktarmalar, DLL'ler, komutlar, dosyalar ve CSP'ler.
Pirinç. 39: Gizleme giderme devresi
Aşağıdaki şekil, R4 kaydındaki gizlemeyi kaldırdığı ilk içe aktarmayı göstermektedir. LoadLibrary'ı. Bu daha sonra gerekli DLL'leri yüklemek için kullanılacaktır. Ayrıca kod çözme işlemini gerçekleştirmek için önceki satırla birlikte kullanılan R12 kaydında başka bir satır da görebiliriz.
Pirinç. 40: Dinamik kod çözme
Yedeklemeleri, geri yükleme noktalarını ve güvenli önyükleme modlarını devre dışı bırakmak için daha sonra çalıştıracağı komutları indirmeye devam eder.
Pirinç. 41: Komutların yüklenmesi
Daha sonra 3 dosyayı bırakacağı konumu yükler: Windows.bat, run.sct и Start.bat.
Pirinç. 42: Dosya Konumları
Bu 3 dosya, her konumun sahip olduğu ayrıcalıkları kontrol etmek için kullanılır. Gerekli ayrıcalıklar mevcut değilse Ryuk yürütmeyi durdurur.
Üç dosyaya karşılık gelen satırları yüklemeye devam eder. Birinci, DECRYPT_INFORMATION.html, dosyaları kurtarmak için gerekli bilgileri içerir. Saniye, HALKA AÇIKRSA ortak anahtarını içerir.
Pirinç. 43: ŞİFRE ÇÖZME BİLGİSİ.html satırı
Üçüncü, UNIQUE_ID_DO_NOT_REMOVE, bir sonraki rutinde şifrelemeyi gerçekleştirmek için kullanılacak şifrelenmiş anahtarı içerir.
Pirinç. 44: Satır BENZERSİZ KİMLİĞİ KALDIRILMAZ
Son olarak gerekli içe aktarmalar ve CSP'lerle birlikte gerekli kütüphaneleri de indirir (Microsoft Geliştirilmiş RSA и AES Şifreleme Sağlayıcısı).
Pirinç. 45: Kitaplıkları yükleme
Tüm kod çözme işlemleri tamamlandıktan sonra, şifreleme için gerekli eylemleri gerçekleştirmeye devam eder: tüm mantıksal sürücülerin numaralandırılması, önceki rutinde yüklenenlerin yürütülmesi, sistemdeki varlığın güçlendirilmesi, RyukReadMe.html dosyasının atılması, şifreleme, tüm ağ sürücülerinin numaralandırılması , algılanan cihazlara geçiş ve bunların şifrelenmesi.
Her şey yüklemeyle başlar"cmd.exe" ve RSA ortak anahtar kayıtları.
Pirinç. 46: Şifrelemeye hazırlanıyor
Daha sonra tüm mantıksal sürücüleri kullanarak alır LogicalDrives'ı edinin ve tüm yedeklemeleri, geri yükleme noktalarını ve güvenli önyükleme modlarını devre dışı bırakır.
Pirinç. 47: Kurtarma araçlarını devre dışı bırakma
Daha sonra yukarıda da gördüğümüz gibi sistemdeki varlığını güçlendirerek ilk dosyayı yazar. RyukReadMe.html в TEMP.
Pirinç. 48: Bir fidye bildirimi yayınlamak
Aşağıdaki resimde nasıl dosya oluşturduğunu, içeriği nasıl indirdiğini ve yazdığını görebilirsiniz:
Pirinç. 49: Dosya içeriğini yükleme ve yazma
Aynı eylemleri tüm cihazlarda gerçekleştirebilmek için şunu kullanır:
"icacls.exe", yukarıda gösterdiğimiz gibi.
Pirinç. 50: icalcls.exe'yi kullanma
Ve son olarak “*.exe”, “*.dll” dosyaları, sistem dosyaları ve şifreli beyaz liste şeklinde belirtilen diğer konumlar dışındaki dosyaları şifrelemeye başlar. Bunu yapmak için içe aktarmayı kullanır: CryptAcquireContextW (AES ve RSA kullanımının belirtildiği yerlerde), CryptDeriveKey, CryptGenKey, CryptDestroyKey vesaire. Ayrıca WNetEnumResourceW kullanarak erişimini keşfedilen ağ cihazlarına genişletmeye ve ardından bunları şifrelemeye çalışır.
Pirinç. 51: Sistem dosyalarını şifrelemek
6. İthalatlar ve ilgili işaretler
Aşağıda örnek tarafından kullanılan en alakalı içe aktarmaları ve işaretleri listeleyen bir tablo bulunmaktadır:
7.IOC
referanslar
- kullanıcılarPublicrun.sct
- Başlat MenüsüProgramlarStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- MenüProgramlarBaşlangıçstart.bat
Ryuk fidye yazılımına ilişkin teknik bir rapor, antivirüs laboratuvarı PandaLabs uzmanları tarafından derlendi.
8. Bağlantılar
1. “Everis y Prisa Radio sufren un grave ciberataque que secuestra sus sistemas.”https://www. elconfidencial.com/tecnologia/2019-11-04/everis-la-ser-ciberataque-ransomware-15_2312019/, 04/11/2019 tarihinde yayınlandı.
2. "Un virus de origen ruso ataca a önemli empresas españolas." https: //elpais.com/tecnologia/2019/11/04/actualidad/1572897654_ 251312.html, Publicada el 04/11/2019.
3. “VB2019 makalesi: Shinigami'nin intikamı: Ryuk kötü amaçlı yazılımının uzun kuyruğu.” https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, Publicada el 11 /12/2019
4. “Ryuk ile Büyük Oyun Avcılığı: Başka Bir KazançlıbHedefli Fidye Yazılımı.”https://www. Crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, 10 tarihli yayın.
5. “VB2019 makalesi: Shinigami'nin intikamı: Ryuk kötü amaçlı yazılımının uzun kuyruğu.” https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Kaynak: habr.com