Kripto para birimi borsası gate.io, tedarik zinciri saldırısının hedefinde

Sonraki hikaye
Matthieu Faou

Son ESET araştırması, saldırganların herhangi bir kripto para birimi borsası müşterisinden bitcoin çalmak için ne kadar ileri gidebileceğini ortaya koydu. 

Saldırganlar 3 Kasım'da lider web analiz platformu StatCounter'a sızmayı başardılar.  Google Analytics ile oldukça benzer olan bu servis, birçok web yöneticisi tarafından ziyaretçiler hakkında istatistik toplamak üzere kullanılıyor.  Web yöneticileri genelde bunu gerçekleştirmek için, her bir web sayfasına içerisinde bir parça StatCounter kodu bulunan harici bir JavaScript etiketi (www.statcounter[.]com/counter/counter.js) ekleyerek gerçekleştirirler.  Böylece saldırganlar StatCounter platformunu suistimal ederek StatCounter kullanan tüm web sitelerine JavaScript kodu enjekte edebilirler. 

Kendi web sitelerindepaylaşılan bilgiye göre, StatCounter'ın 2 milyondan fazla üye sitesi bulunuyor ve her ay 10 milyardan fazla sayfa görüntülemesinin istatistiki verileri işleniyor.   Bu bilgi, 5000'in biraz yukarısında yer aldığı Alexa sıralamasıyla da uyumludur. Karşılaştırma yapmak gerekirse, Debian Linux dağıtımının resmi web sitesi olan debian.org da benzer bir Alexa sıralamasına sahiptir.

Saldırganlar, www.statcounter[.]com/counter/counter.js adresindeki scripti, scriptin ortasına aşağıda "iyileştirilmiş" şekilde de görülebilen zararlı bir kod ekleyerek değiştirmişler.  Bu alışılmadık bir yöntemdir; çünkü saldırganlar genelde meşru bir dosyaya zararlı kodu ya başından ya da sonundan eklerler.  Mevcut bir scriptin ortasına eklenen kodu sıradan gözlem yöntemleriyle tespit etmek oldukça zordur.

Script, belki de en popüler JavaScript paketleyicisi olan Dean Edwards ile paketlenmiştir.  Ancak aşağıda görülebileceği gibi, bu paket önemsiz bir şekilde açılarak esas script kodu çalıştırılabilir. 

Bu kod parçası, ilk önce URL'nin myaccount/withdraw/BTCadresini içerip içermediğini kontrol edecektir.  Böylece, saldırganların amacının bir Bitcoin platformunu hedeflemek olduğunu tahmin edebiliyoruz.  İşlem başarılı olursa, script web sayfasına yeni bir scriptunsuru ekleyerek kodu www.statconuter[.]com/c.php adresine eklemeye devam eder. 

Saldırganların meşru StatCounter ileoldukça benzer olacak şekilde, statcounter[.]com adında bir alan adresi kullandığına dikkat edin.Yalnızca iki harfi değiştirmişler; ancak olağandışı bir faaliyet bulmak üzere loglar incelenirken bu kolayca gözden kaçabilir.  İlginç bir şekilde, alan adresinin pasif DNS'sini kontrol ederek, bu alan adının kötüye kullanım nedeniyle 2010 yılında askıya alındığını fark ettik.

Yukarıda da belirtildiği gibi, scrip özel bir Birleşik Kaynak Tanımlayıcısı (Uniform Resource Identifier (URI): myaccount/withdraw/BTC) hedefliyor. Görünen o ki, bu yazı yazılırken aktif durumdaki farklı kripto para birimi borsaları arasında yalnızca only gate.io bu URI ile geçerli bir sayfaya sahip. Böylece, bu borsa saldırının ana hedefi gibi görünüyor.  Alexa sıralamasında 26,251. ve hatta Çin'de 8,308. olan bu borsa epey popüler.

Ayrıca coinmarketcap.com'a göre, bu platformda her gün 1.6 milyon dolarlık bitcoin işleminin yanı sıra birkaç milyon dolarlık işlem yapılıyor.  Bu nedenle, saldırganların bu platformda büyük ölçekte kripto para birimi çalması oldukça kârlı olabilir.

Aşağıda gösterilen www.gate[.]io/myaccount/withdraw/BTC web adresi, bir gate.io hesabından harici bir Bitcoin adresine bitcoin transfer etmek amacıyla kullanılmıştır.

Belki de şaşırtmayacak şekilde, statconuter[.]com/c.php,adresinde ikinci aşamadaki yük birimi bitcoin çalmak için tasarlanmıştır.  Böylece, scriptin gate.io bitcoin transfer sayfasına enjekte edilmesi anlam kazanıyor. Bu script de Dean Edwards paketleyicisi ile paketlenmiştir.  Paketlenmemiş versiyon aşağıda gösterilmiştir. 

Orijinal gate.io web sayfasında, kullanıcı submit seçeneğine tıkladığında görülen halihazırda bir doSubmit fonksiyonu bulunmaktadır, ancak burada saldırganlar yeniden tanımlamaktadır. 

Bu script Bitcoin adresini otomatik olarak saldırganların adresiyle değiştirmektedir; örneğin1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad. Kullanıcı statconuter[.]com/c.php scriptini her çalıştırdığında, zararlı sunucu yeni bir Bitcoin adresi üretiyor. Böylece, saldırganlara ne kadar Bitcoin gönderildiğini tespit etmek zorlaşıyor. 

Kurbanın 10 BTC üstünde ya da altında bir miktar girmesine bağlı olarak, saldırganların scripti ya bunu, ya da kurbanın hesabının günlük çekim limitini kullanır.  Test hesabımızda varsayılan şekilde çekim limitimiz 100 BTC olarak belirlenmiştir. Son olarak, zararlı form scripti gönderir ve script kurbanın hesabından saldırganın cüzdanına aktarımı gerçekleştirir. 

Bu yeniden yönlendirme muhtemelen kurbanlar tarafından fark edilememektedir, çünkü değişim, gönder (submit) seçeneğine tıkladıktan sonra gerçekleştirilmektedir.  Böylece, çok hızlı bir şekilde meydana gelerek muhtemelen görüntülenmeyecektir bile. 

Kurbana her zararlı script yollandığında yeni bir Bitcoin adresi oluşturulduğundan, saldırganların kaç Bitcoin topladığını göremiyoruz.  Örneğin, test makinemizde görünen adresi kontrol edersek, bakiyenin 0 BTC olduğunu görüyoruz. 

Sonuç

Bu saldırı sırasında kaç bitcoin çalındığını bilemesek bile, saldırganların belirli bir web sitesini, özellikle de bir kripto para birimi borsasını hedefledikleri görülüyor.  Bunu başarmak için, yalnızca bir kripto para borsası web sitesinin müşterilerinden bitcoin çalmak üzere, hükümetle ilgili bazı web siteleri de dahil olmak üzere iki milyondan fazla web sitesinin kullandığı, analiz hizmeti veren bir web sitesini suistimal ettiler.

Ayrıca, web siteniz güncellenmiş ve iyi korunmuş olsa bile, hala zayıf bir bağlantıya, bu durumda harici bir kaynağa karşı savunmasızdır. Bu, harici JavaScript kodunun üçüncü tarafın kontrolü altında olduğunun ve herhangi bir zamanda bildirimde bulunulmadan değiştirilebileceğinin başka bir hatırlatıcısıdır.

Bu kötü amaçlı faaliyeti keşfettiğimiz anda hem StatCounter hem de gate.io'yu bilgilendirdik.

Herhangi bir sorunuz veya konuyla ilgili örnek sunum ihtiyaçlarınız için, lütfen threatintel@eset.com adresinden bizimle iletişime geçin.

Indicators of Compromise

Malicious URLs

  • statcounter[.]com/counter/counter.js
  • statconuter[.]com/c.php