Biletix Vakası
27 Haziran 2018 tarihinde Biletix firması, sosyal medya hesapları ve web sitesi üzerinden bir güvenlik duyurusu yaptı. Bu duyuruda, 23 Haziran 2018 Cumartesi günü Ticketmaster İngiltere firmasına dış kaynaklı hizmet sunan Inbenta Technologies tarafından sağlanan ve müşteri destek hizmetleri için kullanılan ürün üzerinde kötü amaçlı bir yazılımı tespit edildiği yer alıyordu. Inbenta’nın bu ürününün tüm Ticketmaster International web sitelerinde (Türkiye de dahil) kullanılmış olması sebebiyle de bazı müşterilerinin kişisel verilerine ve ödeme bilgilerine, tanımlanamamış üçüncü kişiler tarafından izinsiz olarak erişilmiş olabileceği belirtilmiş ve ayrıca yaptıkları incelemelere göre, olaydan sadece bilet alma girişiminde bulunan veya bilet satın almış olan İngiltere tüketicilerinin bir kısmının etkilenmiş olabileceğini tespit ettikleri belirtilmişti. Son olarak da İngiltere’deki müşterilerinden Şubat 2018 ve 23 Haziran 2018 tarihleri arasında ve diğer uluslararası müşterilerinden Eylül 2017 ila 23 Haziran 2018 tarihleri arasında bilet almış veya almayı denemiş olanların bu durumdan etkilenmiş olabilecekleri söyleniyordu.
Aktif olarak bünyelerinde izleme ve müdahale yapan analistlerden oluşan bir Siber Güvenlik Merkezi’ne sahip olan kurumlar, Biletix’te doğru gitmeyen birşeyler olduğunu Nisan ayı gibi kullandıkları güvenlik teknolojilerinin ürettiği alarmları sayesinde öğrendiler. ;) Mayıs ayı itibariyle antivirüs yazılımlarına gelen güncelleme ile Biletix üzerinden bilet almaya çalışan son kullanıcılar ise web sitesine gömülü olan http://ticketmastertr.inbenta.com/chat/assets/js/inbenta.js?1503669126 dosyası için zararlı yazılım uyarısı ile karşılaşmaya başladılar.
Merak kediyi öldürmeden olayın perde arkasını öğrenmek için zararlı kod içeren javascript dosyasına ulaşıp analiz etmek için işe koyulmaya karar verdim. inbenta.js dosyasının zararsız sürümünü http://ticketmastertr.inbenta.com/chat/assets/js/inbenta.js adresinden indirip, okunaklı (beautified) hale getirdikten sonra VirusTotal’dan indirdiğim zararlı kod içeren inbenta.js dosyası ile kıyasladığımda, 18927. satır itibariyle zararlı kod ortaya çıkıverdi. Zararlı JavaScript Analizi başlıklı yazımda olduğunun aksine bu defa gizlenmiş javascript kodunu sanal sistemimdeki internet tarayıcısı ile çözmek (deobfuscate) yerine daha hızlı ilerleyebilme adına IlluminateJs web uygulaması ile çözmeye karar verdim.
Javascript kodunu okunaklı, anlaşılır hale getirdikten sonra 2. satırda yer alan hxxps://webfotce.me/js/form.js web adresi hemen dikkatimi çekti. Bu adresi Google arama motorunda arattığımda ise ilk olarak 19 Kasım 2017 tarihinde VirusTotal’a akismet.js adı altında yüklenip 16 antivirüs yazılımı tarafından tespit edilen, okunaklı olmayan inbenta.js dosyasının okunaklı bir sürümü gibi görünüyordu.
inbenta.js dosyasında yer alan zararlı javascript kodunun nasıl çalıştığını dinamik olarak analiz edebilmek için Biletix’in web sitesine girip sanal sistemimdeki internet tarayıcısı üzerinde simülasyonunu yapmaya karar verdim. Zararlı kodun son satırını incelediğimde, bu kodun payment kelimesini içeren herhangi bir sayfada devreye girdiğini öğrendiğim için ödeme sayfasına ilerlemek ve simülasyonumu gerçekleştirmek için gözüme Shakira’nın konserini kestirdim. Konser bileti alma işleminin son sayfasına (payment) geldiğimde ise zararlı javascript kodunu, Chrome internet tarayıcısının DevTools aracı ile internet tarayıcım üzerinde çalıştırıp, sanal sistemim üzerinde dinamik olarak analiz etmeye başladım.
Zararlı javascript kodunu peyderpey analiz ettikçe, zararlı kodun ödeme sayfasındaki forma girilen tüm kredi kartı bilgilerini, sayfada yer alan diğer bilgilerle birlikte Satın Al butonuna bastıktan sonra hxxps://webfotce.me/js/form.js adresine gönderecek şekilde tasarlandığını gördüm. Bunun üzerine Fiddler aracını çalıştırıp, ödeme sayfasına geçersiz kart bilgilerimi girip Satın Al butonuna bastığımda, hxxps://webfotce.me/js/form.js adresine herhangi bir verinin gönderilmediğini farkettim! Bunun sebebini öğrenebilmek için Javascript kodunda yer alan try & catch kod bloğundaki catch kısmına, hata ayıklama amacıyla hatayı ekrana yazdıran ufak bir kod yazdığımda, btoa() fonksiyonu kullanılarak Base64 kodlama şeması ile gizlenmeye çalışan çalıntı verideki Türkçe karakterlerin hataya yol açmasına ve hxxps://webfotce.me/js/form.js adresine gönderilememesine kısaca yüzlerce belki de binlerce Biletix Türkiye müşterisinin kredi kartı bilgilerinin duyuruda belirtilen süre boyunca çalınamamasına yol açan faydalı bir hata olduğunu öğrenmiş oldum. :)
Sonuç itibariyle, Inbenta firmasını hackleyenlerin bu zararlı kodu 2017 yılından beri akismet.js gibi farklı isimler altında da kullandığını görüyoruz. Biletix vakasına baktığımızda ise şayet zararlı kod tespit edildikten sonra Biletix Türkiye tarafından zararlı adresin sayfalardan kaldırılması dışında ödeme sayfasında bu kodun çalışmamasına yönelik özel bir çalışma, yazılım değişikliği yapılmadıysa, yazıya konu olan donelerden ve simülasyondan yola çıkarak Biletix Türkiye müşterilerinin kredi kartı bilgilerinin zararlı javascript kodu tarafından bu hata sebebiyle, belirtilen tarih aralığında çalınamamış olduğunu büyük bir mutlulukla varsayabiliriz. :)
Inbenta örneğinde olduğu gibi, 3. parti firmalar üzerinden gelebilecek siber saldırılardan korunmanın kesin bir yöntemi olamasa da, web sitenize 3. parti siteler üzerinden eklediğiniz javascript dosyalarının içeriğinin değişip değişmediğini kontrol eden ve şüpheli değişikliklerde sizi anında haberdar eden NormShield, Sucuri gibi güvenlik çözümlerinden de faydalanabilirsiniz.
Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.