Giriş
Kısa bir süre önce, Cybaze-Yoroi ZLAB'deki güvenlik araştırmacıları, derinlemesine incelenmeye değer şüpheli bir JavaScript dosyası keşfetti: Bu kötü amaçlı JavaScript dosyası, tüm AV ürünleri tarafından tespit edilmekten kaçınmak için çeşitli teknikler kullanır. Ünlü VirusTotal platformunda, toplam 58 sayaç Virüs çözümlerinden hiçbiri bu JavaScript dosyasını algılayamaz. Bu nedenle, bunun daha derinlemesine bir analizini yapmayı ve bu kötü amaçlı yazılımın ne tür teknolojiyi kullandığını bulmayı amaçlıyoruz.
teknik Analiz
Bu kötü amaçlı dosya JavaScript kullanılarak geliştirilmiştir ve Windows komut dosyası ana bilgisayar sistemi bileşeni, dosyanın çalıştırılmasını varsayılan olarak destekler. Üstelik, bu dosyanın kapladığı alan, genel betik dosyalarından çok daha büyüktür.Bu betik yaklaşık 1MB'dir.İlk bakışta, betiğin içeriği neredeyse bozuk.
İlk bakışta, komut dosyasının içeriği oldukça ilginçtir: komut dosyasının tüm gövdesi ASCII olmayan bir karakter kümesi kullanır:
Bu karakterlerin / dizelerin hiçbir mantığı yok gibi görünüyor, ancak dikkatli bir analizden sonra, bunun kötü amaçlı yazılım geliştiricileri tarafından kullanılan ilk teknik olduğunu gördük. İlk olarak, ASCII ve Unicode karakterler uzun dizeleri karıştırmak için kullanılır ve bu uzun karakter değişkenleri bildirmek için kullanılır. Hatta bazı yerlerde Kiril karakterleri vardır:
Npsm3nxsKEBLQBnVWCÜstelik tüm değişken isimlerinin bir özelliği vardır: Görünür değişken isimlerinin hepsi "_" karakterinden sonra gelir ve karakterden önceki içeriği göremeyiz, bu nedenle saldırganın tüm değişkenleri bildirirken ortak bir önek kullandığını düşünüyoruz. . Değişkenleri aşağıda gösterildiği gibi görebiliriz:
var = _0x5e24Daha sonra ilk adım, bu kodların karmaşıklığını ortadan kaldırmak ve kodun okunabilirliğini artırmak için bu değişken öneklerin yerine başka karakterler kullanmaktır. Sonuçlar aşağıdaki gibidir:
var A_0x5e24 =