Duqu - kötü niyetli yuvalama bebeği

Giriş

1 Eylül 2011'de Macaristan'dan VirusTotal web sitesine ~DN1.tmp adlı bir dosya gönderildi. O zamanlar dosyanın yalnızca iki antivirüs motoru (BitDefender ve AVIRA) tarafından kötü amaçlı olduğu tespit edildi. Duqu'un hikayesi böyle başladı. İleriye bakıldığında Duqu kötü amaçlı yazılım ailesinin adını bu dosyanın adından aldığını söylemek gerekir. Bununla birlikte, bu dosya, muhtemelen kötü amaçlı bir indirici-damlalık kullanılarak yüklenen, keylogger işlevlerine sahip tamamen bağımsız bir casus yazılım modülüdür ve bir bileşen olarak değil, yalnızca Duqu kötü amaçlı yazılımının çalışması sırasında yüklenen bir "yük" olarak değerlendirilebilir ( Duqu modülü). Duqu bileşenlerinden biri Virustotal hizmetine yalnızca 9 Eylül'de gönderildi. Ayırt edici özelliği, C-Media tarafından dijital olarak imzalanmış bir sürücüdür. Bazı uzmanlar, başka bir ünlü kötü amaçlı yazılım örneği olan ve imzalı sürücüleri de kullanan Stuxnet ile hemen benzetmeler yapmaya başladı. Dünya çapındaki çeşitli antivirüs şirketleri tarafından tespit edilen Duqu bulaşmış bilgisayarların toplam sayısı düzinelercedir. Pek çok şirket İran'ın yine ana hedef olduğunu iddia ediyor ancak enfeksiyonların coğrafi dağılımına bakılırsa bu kesin olarak söylenemez.
Duqu - kötü niyetli yuvalama bebeği
Bu durumda, yalnızca başka bir şirket hakkında yeni çıkmış bir kelimeyle güvenle konuşmalısınız. APT (gelişmiş kalıcı tehdit).

Sistem uygulama prosedürü

Macar kuruluşu CrySyS'den (Budapeşte Teknoloji ve Ekonomi Üniversitesi'ndeki Macar Kriptografi ve Sistem Güvenliği Laboratuvarı) uzmanlar tarafından yürütülen bir araştırma, sisteme virüs bulaşan yükleyicinin (damlalık) keşfedilmesine yol açtı. Bu, TTF yazı tipi oluşturma mekanizmasından sorumlu olan win32k.sys sürücüsü güvenlik açığından (MS11-087, Microsoft tarafından 13 Kasım 2011'de açıklanan MSXNUMX-XNUMX) yararlanan bir Microsoft Word dosyasıydı. İstismarın kabuk kodu, belgeye gömülü 'Dexter Regular' adlı bir yazı tipi kullanıyor ve yazı tipinin yaratıcısı olarak Showtime Inc. listeleniyor. Gördüğünüz gibi Duqu'un yaratıcıları mizah anlayışına yabancı değiller: Dexter, Showtime'ın yapımcılığını üstlendiği aynı isimli televizyon dizisinin kahramanı bir seri katildir. Dexter yalnızca (mümkünse) suçluları öldürür, yani yasallık adına yasayı çiğner. Muhtemelen bu şekilde Duqu geliştiricileri, iyi amaçlar için yasa dışı faaliyetlerde bulunmaları konusunda ironik davranıyorlar. E-posta gönderme bilerek yapıldı. Sevkiyat büyük olasılıkla, takibi zorlaştırmak için aracı olarak güvenliği ihlal edilmiş (saldırıya uğramış) bilgisayarları kullanmıştır.
Dolayısıyla Word belgesi aşağıdaki bileşenleri içeriyordu:

  • Metin içeriği;
  • yerleşik yazı tipi;
  • kabuk kodundan yararlanın;
  • sürücü;
  • yükleyici (DLL kitaplığı).

Başarılı olursa, istismar kabuk kodu aşağıdaki işlemleri gerçekleştirdi (çekirdek modunda):

  • Yeniden enfeksiyon için bir kontrol yapıldı, bunun için 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones4' adresindeki kayıt defterinde 'CF1D' anahtarının varlığı kontrol edildi, eğer bu doğruysa, kabuk kodu yürütülmesini tamamladı;
  • iki dosyanın şifresi çözüldü - sürücü (sys) ve yükleyici (dll);
  • sürücü services.exe sürecine dahil edildi ve yükleyiciyi başlattı;
  • Sonunda kabuk kodu, bellekteki sıfırlarla birlikte kendini sildi.

Win32k.sys'nin ayrıcalıklı 'Sistem' kullanıcısı altında yürütülmesi nedeniyle, Duqu geliştiricileri hem yetkisiz başlatma hem de hakların yükseltilmesi (sınırlı haklara sahip bir kullanıcı hesabı altında çalıştırma) sorununu zarif bir şekilde çözmüştür.
Kontrolü aldıktan sonra yükleyici, bellekte bulunan ve aşağıdakileri içeren üç veri bloğunun şifresini çözdü:

  • imzalı sürücü (sys);
  • ana modül (dll);
  • yükleyici yapılandırma verileri (pnf).

Yükleyici yapılandırma verilerinde bir tarih aralığı belirtildi (iki zaman damgası biçiminde - başlangıç ​​ve bitiş). Yükleyici, geçerli tarihin buna dahil olup olmadığını kontrol etti ve yoksa yürütmeyi tamamladı. Ayrıca yükleyici yapılandırma verilerinde sürücünün ve ana modülün kaydedildiği adlar da vardı. Bu durumda ana modül şifrelenmiş biçimde diske kaydedildi.

Duqu - kötü niyetli yuvalama bebeği

Duqu'yu otomatik olarak başlatmak için, kayıt defterinde saklanan anahtarları kullanarak ana modülün şifresini anında çözen bir sürücü dosyası kullanılarak bir hizmet oluşturuldu. Ana modül kendi konfigürasyon veri bloğunu içerir. İlk başlatıldığında şifresi çözüldü, kurulum tarihi girildi, ardından tekrar şifrelendi ve ana modül tarafından kaydedildi. Böylece, etkilenen sistemde başarılı kurulumun ardından üç dosya (sürücü, ana modül ve yapılandırma verileri dosyası) kaydedilirken, son iki dosya şifrelenmiş biçimde diskte saklandı. Tüm kod çözme prosedürleri yalnızca bellekte gerçekleştirildi. Bu karmaşık kurulum prosedürü, antivirüs yazılımı tarafından tespit edilme olasılığını en aza indirmek için kullanıldı.

Ana modül

Ana modül (kaynak 302), aşağıdakilere göre Bilgi Kaspersky Lab şirketi, MSVC 2008'i saf C kullanarak, ancak nesne yönelimli bir yaklaşım kullanarak yazdı. Bu yaklaşım, kötü amaçlı kod geliştirirken karakteristik değildir. Kural olarak, bu tür kodlar, boyutu küçültmek ve C++'ın doğasında olan örtülü çağrılardan kurtulmak için C dilinde yazılır. Burada belli bir simbiyoz var. Ayrıca olay odaklı bir mimari kullanıldı. Kaspersky Lab çalışanları, ana modülün, C kodunu nesne stilinde yazmanıza olanak tanıyan bir ön işlemci eklentisi kullanılarak yazıldığı teorisine eğilimlidir.
Ana modül, operatörlerden komut alma prosedüründen sorumludur. Duqu çeşitli etkileşim yöntemleri sağlar: HTTP ve HTTPS protokollerini kullanmanın yanı sıra adlandırılmış kanalları kullanma. HTTP(S) için komuta merkezlerinin alan adları belirlendi ve proxy sunucu üzerinden çalışabilme olanağı sağlandı; kullanıcı adı ve şifre belirlendi. Kanal için IP adresi ve adı belirtilir. Belirtilen veriler ana modül konfigürasyon veri bloğunda (şifreli biçimde) saklanır.
Adlandırılmış kanalları kullanmak için kendi RPC sunucu uygulamamızı başlattık. Aşağıdaki yedi işlevi destekledi:

  • yüklü sürümü döndürün;
  • belirtilen işleme bir dll enjekte edin ve belirtilen işlevi çağırın;
  • dll'yi yükle;
  • CreateProcess()'u çağırarak bir işlemi başlatın;
  • belirli bir dosyanın içeriğini okuyun;
  • belirtilen dosyaya veri yaz;
  • belirtilen dosyayı silin.

Adlandırılmış kanallar, Duqu bulaşmış bilgisayarlar arasında güncellenmiş modülleri ve yapılandırma verilerini dağıtmak için yerel bir ağ içinde kullanılabilir. Ayrıca Duqu, virüs bulaşmış diğer bilgisayarlar için (ağ geçidindeki güvenlik duvarı ayarları nedeniyle İnternet'e erişimi olmayan) bir proxy sunucusu görevi görebilir. Duqu'un bazı sürümlerinde RPC işlevi yoktu.

Bilinen "yükler"

Symantec, Duqu kontrol merkezinden komut altında indirilen en az dört tür veri keşfetti.
Dahası, bunlardan yalnızca biri yerleşikti ve diske kaydedilen yürütülebilir bir dosya (exe) olarak derlendi. Geriye kalan üçü dll kütüphaneleri olarak uygulandı. Dinamik olarak yüklendiler ve diske kaydedilmeden bellekte yürütüldüler.

Yerleşik "yük" bir casus modülüydü (bilgi hırsızlığı yapan kimse) keylogger işlevleriyle. Duqu araştırması üzerindeki çalışma, bunun VirusTotal'a gönderilmesiyle başladı. Ana casusluk işlevi, ilk 8 kilobaytı NGC 6745 galaksisinin bir fotoğrafının bir kısmını (kamuflaj için) içeren kaynaktaydı. Burada, Nisan 2012'de bazı medya kuruluşlarında İran'ın bazı kötü amaçlı yazılımlar olan “Stars”a maruz kaldığına dair bilgiler yayınlandığını (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) hatırlatmakta fayda var. olay açıklanmadı. Belki de o zamanlar İran'da keşfedilen Duqu "yükünün" böyle bir örneğiydi, dolayısıyla "Yıldızlar" adı verildi.
Casus modül aşağıdaki bilgileri topladı:

  • çalışan işlemlerin listesi, mevcut kullanıcı ve etki alanı hakkında bilgiler;
  • ağ sürücüleri de dahil olmak üzere mantıksal sürücülerin listesi;
  • Ekran görüntüleri;
  • ağ arayüzü adresleri, yönlendirme tabloları;
  • klavye tuş vuruşlarının günlük dosyası;
  • açık uygulama pencerelerinin adları;
  • kullanılabilir ağ kaynaklarının listesi (kaynakların paylaşılması);
  • çıkarılabilir olanlar dahil tüm disklerdeki dosyaların tam listesi;
  • “ağ ortamındaki” bilgisayarların listesi.

Başka bir casus modülü (bilgi hırsızlığı yapan kimse) daha önce açıklananların bir varyasyonuydu, ancak bir dll kitaplığı olarak derlendi; bir keylogger'ın işlevleri, dosyaların bir listesini derlemek ve etki alanına dahil olan bilgisayarları listelemek bundan kaldırıldı.
Sonraki modül (keşif) toplanan sistem bilgileri:

  • bilgisayarın bir etki alanının parçası olup olmadığı;
  • Windows sistem dizinlerine giden yollar;
  • işletim sistemi sürümü;
  • mevcut kullanıcı adı;
  • ağ bağdaştırıcılarının listesi;
  • sistem ve yerel saatin yanı sıra saat dilimi.

Son modül (ömrü uzatıcı), işin tamamlanmasına kadar kalan gün sayısının değerini (ana modül yapılandırma veri dosyasında depolanan) artırmak için bir işlev uyguladı. Varsayılan olarak bu değer, Duqu değişikliğine bağlı olarak 30 veya 36 gün olarak ayarlandı ve her gün bir azaltıldı.

Komuta merkezleri

20 Ekim 2011'de (keşifle ilgili bilgilerin yayılmasından üç gün sonra), Duqu operatörleri komuta merkezlerinin işleyişine dair izleri yok etmek için bir prosedür gerçekleştirdi. Komuta merkezleri dünya çapında saldırıya uğramış sunucularda bulunuyordu - Vietnam, Hindistan, Almanya, Singapur, İsviçre, İngiltere, Hollanda, Güney Kore'de. İlginç bir şekilde, tanımlanan tüm sunucular CentOS 5.2, 5.4 veya 5.5 sürümlerini çalıştırıyordu. İşletim sistemleri hem 32 bit hem de 64 bitti. Komuta merkezlerinin işleyişiyle ilgili tüm dosyalar silinmiş olmasına rağmen Kaspersky Lab uzmanları, LOG dosyalarındaki bilgilerin bir kısmını boş alandan kurtarmayı başardı. En ilginç gerçek, sunuculardaki saldırganların varsayılan OpenSSH 4.3 paketini her zaman 5.8 sürümüyle değiştirmesidir. Bu, OpenSSH 4.3'teki bilinmeyen bir güvenlik açığının sunucuları hacklemek için kullanıldığına işaret ediyor olabilir. Tüm sistemler komuta merkezi olarak kullanılmadı. Bazıları, 80 ve 443 numaralı bağlantı noktaları için trafiği yeniden yönlendirmeye çalışırken sshd günlüklerindeki hatalara bakılırsa, uç komuta merkezlerine bağlanmak için proxy sunucusu olarak kullanıldı.

Tarihler ve modüller

Nisan 2011'de dağıtılan ve Kaspersky Lab tarafından incelenen bir Word belgesinde derleme tarihi 31 Ağustos 2007 olan bir yükleyici indirme sürücüsü yer alıyordu. CrySys laboratuvarlarında bulunan bir belgedeki benzer bir sürücünün (boyut - 20608 bayt, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) derleme tarihi 21 Şubat 2008'di. Ayrıca Kaspersky Lab uzmanları, 19968 Ocak 5 tarihli otomatik çalıştırma sürücüsünü rndismpc.sys (boyut - 9 bayt, MD6 - 10AEC5E9C05EE93221544C783BED20C2008E) buldu. 2009 olarak işaretlenmiş hiçbir bileşen bulunamadı. Duqu'un ayrı ayrı bölümlerinin derlenmesinin zaman damgalarına dayanarak, gelişiminin 2007'nin başlarına dayanabileceği düşünülebilir. İlk tezahürü, oluşturulma tarihi 28 Kasım 2008 olan ~DO türündeki (muhtemelen casus yazılım modüllerinden biri tarafından oluşturulmuş) geçici dosyaların algılanmasıyla ilişkilidir (makale "Duqu & Stuxnet: İlginç Olayların Zaman Çizelgesi"). Duqu ile ilgili en son tarih, Mart 23'de Symantec tarafından keşfedilen bir yükleyici indirme sürücüsünde yer alan 2012 Şubat 2012 idi.

Kullanılan bilgi kaynakları:

makale dizisi Kaspersky Lab'den Duqu hakkında;
Symantec analitik raporu "W32.Duqu Bir sonraki Stuxnet'in öncüsü", sürüm 1.4, Kasım 2011 (pdf).

Kaynak: habr.com

Yorum ekle