Digital Dünyada Reklam Dolandırıcılığı(Ad Fraud) Yöntemleri

Doğan Aydın
6 min readJul 8, 2020

--

Tüm dünyanın hızla dijitale döndüğünü söylemek yanlış olmaz. Korona virüsünün etkisi ile hala soru işareti ile bakılan noktalarda bile hızla dijitalleşme gerçekleşti. Dijital dünyanın ekonomisini oluşturan dijital reklamlar ve reklamların dönüşüm oranları üzerine çeşitli reklam dolandırıcılığı yöntemleri üzerine edindiğim tecrübelerimi bu yazıda paylaşacağım.

Sadece 2016 yılında 7.2 milyar dolar reklam verenlerin dolandırılıp para kaybettiği düşünülüyor. Bu rakam 2016'ya ait bir rakam. Diğer yandan bir MMP olan Adjust firmasının paylaşımına göre 2016 yılında sadece günde 2 milyon dolar reklam dolandırıcılığı tespiti yaparak müşterilerini koruduklarını söylüyorlar. Tespit edilenleri ve tespit edilemeyenleri düşündüğünüzde eğer bir reklam verenseniz kaybedenlerden biri siz de olabilirsiniz.

Bugün gönül rahatlığı ile internette reklam vereyim gelen kullanıcıyı da müşterim yapıyım diye düşünüyorsanız bu işin karanlık yüzünün varlığını bilmeniz sizin için iyi olabilir. Aksi takdirde anlamsız trafiklere boşa para harcıyor olabilirsiniz.

Facebook, Google gibi reklam platformları, insanların muhattap oldukları platformlar. Bu platformlar bu konulardan bahsetmediğinden reklam verenler de konudan haberdar olmamış olabiliyor. Şuna benzetilebilir: Hükümet tarafından yönetilen medya gibi.

Yöntemleri konuşacak olursak. İki temel kırılıma bölünebilir. (Türkçe ifadelerini tam olarak bilmediği için uydurmak istemedim. Olduğu gibi yazıyorum.)

  • Spoofed Attribution
  • Spoofed Users

Spoofed Attribution

Kullanıcıların click aksiyonlarını taklit etme yaklaşımı ile kısaca özetlenebilir. Bu yaklaşım kendi içinde iki farklı başlığa bölünüyor.

  1. Click Spam

Kullanıcının tıklama yapmadığı halde tıklama yapmış gibi yapmasını sağlamak. Genelde kullanılan yöntem şu şekilde oluyor. Bir uygulama yapıyorsunuz. İçinde kullanıcılara bir fayda veriyor olabilirsiniz. Kullanıcılar uygulamayı açıyor. Kullanıcı uygulamayı açtıktan sonra uygulama kullanıcın haberi olmadan arka tarafta bir reklama tıklama yapıyor. Kullancının bu konudan haberi yok. Gün sonunda reklam veren olarak iyi bir click-through rate yakaladım diye düşünüyor olabilirsiniz ve bütçenizi artırabilirsiniz. Aslında yaptığınız bu harcama boşa gitmiş olacak.

Peki nasıl anlarım click spam sürecini derseniz. En kolay tespit edilen yöntemlerden birisi click spaming. Alttaki görseli inceleyelim. Normal bir reklam gösterimi sürecinde install oranları artmakta ancak click spam yapan reklam tıklamalarında indirme sayılarında bir değişimin olmadığı gözlemlenmekte. Spam tıklama ile install gerçekleştirilemediği için click spaming, install sayılarına bakılarak yakalanabiliyor.

Click Spam

2. Click Injections

Tıklamayı indirme sürecine enjekte etmek diyebiliriz. Bu yöntem daha kompleks bir yaklaşım. Android işletim sistemi, içinde gerçekleşen etkinlikleri event fırlatarak bildirir. Bunlardan birisi: bir uygulamayı install ettiğinizde event olarak bildirmesi. Eğer kötü amaclı bir uygulama install edilme bilgisi eventlerini dinleme hakkını aldı ise bu durumda bu sürece kendini yerleştirebilir. Örnekle açıklama yapalım: Kullanıcı kendi insiyatifi ile bir uygulamayı indirmeye başladığında kötü amaçlı app bunun bilgisini alır ve indirilen uygulama açılmadan araya bu uygulama için click yapıldı gibi gösterir. Gün sonunda reklama tıklandı ve indirildi gibi olmuş olur.

Click spaming yaklaşımından daha başarılı olduğu nokta: Hem click var hem de install. Yani click spam tespitinde kullanılan install olmamasını yakalama yöntemi burada kullanılamaz. Çünkü install alıyorsunuz. Reklam veren olarak bu kanala harcamanızı artırmaya gönüllü olabilirsiniz. İyi bir install oranı yakaladığınızı düşünüyor olabilirsiniz.

Buradaki kurnazlık install başlama zamanından sonra click’in gerçekleşmesi. Eğer bunu zamansal olarak bilebilirsek bunu yakalayabiliyoruz.

Google Referrer API’si vasıtasıyla install zamanı tam olarak timestamp şeklinde alınabiliyor ve click aksiyonun timestamp bilgisi ile karşılaştırılırsa gün sonunda kuşku olmadan bu bir fraud girişimleri diyebiliyoruz. Burada dikkat edilmesi gereken install bitimi zamanı değil, install başlama zamanı baz alınmasının gerekliliği. Örnekle açıklayalım:

  • 14:30:00 install başladı.
  • 14:30:15 install bitti.
  • Fraud sistemi click aksiyonunu 14:30:01 de fırlattı.
  • Uygulama ilk açılış 14:32:00

Bu durumda siz install bitim saatine bakacak olursanız yanılırsınız ve size normal bir reklam tıklaması gibi gelebilir. Eğer fraud yapacak kişi(fraudster) 14:30:16 da click atsaydı siz de install bitiş saatine baksaydınız o zaman anlamlı olabilirdi. Ancak nihayi ve en etkili yol install başlangıç saatine bakmanız. Eğer click bu saatten geç geldi ise buyurun size bir dolandırıcılık girişimi.

Spoofed Users

Şimdi kullanıcı taklit etme konusuna gelelim. Bu da kendi içinde temelde ikiye ayrılıyor.

Fake installs(Sahte İndirme)

Sanallaştırma sistemleri günümüzde çok gelişti ve kolaylaştı. Yani bir bilgisayar üzerinde birden çok bilgisayar yaratmak gibi. Bu yöntem hem sanallaştırma hem de emülatör kullanımına dayanıyor. Yani makineler üzerinde açılan emülatörler üzerinde reklamların tıklanması ve tıklanan reklamın sonrası install işleminin gerçekleştirilmesi üzerine.

Bir yazılım geliştirdiğimizi düşünelim. Otomatik emülatör yaratıyor, reklam tıklıyor, google play üzerinden download yapıyor ve uygulamayı açıyorum. Peki uygulamada ne yapıyorum. Aslında hiç bir şey. Çünkü uygulama rastgele karşısına çıktı. Buradaki yaklaşım ne oluyor. Yazılım uygulamada ne yapacağını bilmediği için uygulamayı ilk açtıktan sonra kapatıyor.

Boşluğu gördünüz mü? Uygulama açıldıktan sonra bir şey yapmadan kapanmak zorunda kaldı. İşten anomaliyi bu şekilde tespit edebiliriz. Eğer çok fazla uygulama açılışının peşinde işlem yapmadan kapatma varsa buradan fraud tespiti yapılabiliyor.

Ayrıca bir diğer yöntemde kullanılan IP’lerin tanımlanması. Belirli bir range içinde ise bu IP’ler, bunlar black list’te alınarak kontrol edilebilir. VPN kullansa da aynı şey geçerli. Benzer range’lerde çıkacaktır tüm VPN sistemleri.

TOR network gibi networklerden gelinmesi durumunda bu tür IP’lere karşı bir tık daha filtreyi güçlendirmek lazım. Bu tip ihtiyaçlar için hizmet veren firmalar var. Bunlardan bir tanesi Maxmind gibi firmalar.

SDK Spoofing

Fake install’u yakalayabildik bu durumda ne yapacak fraudster arkadaşlar? Hemen yeni bir yöntem uygulayacak. Kedi, fare kovalamacası gibi. İşte bunlardan biri SDK spoofing yöntemi. Bu daha kompleks bir yaklaşım ve biraz mühendislik gerektiriyor.

Fake install’daki temel problem yazılımın uygulama açılışından sonra bir şey yapamaması ve kapatmasıydı. Eğer siz açılacak uygulamayı çözerseniz . Geliştirdiğiniz kötü amaçlı koda bunu öğretirseniz. Bu durumda uygulamayı açar hatta içinde istediği aksiyonları alır ve gezinebilirsiniz. Bunu rastgele zamanlarda rastgele aksiyonlar şeklinde yapabilirsiniz. Örnek veriyorum bir e-ticaret uygulamasında anne-bebek kategorisine girer, ürünlerde gezer, sepete ekler. Başka bir versiyonda farklı kategoride gezer, arama yapar vs.

Örnekle açıklayalım. Trendyol, hepsiburada, getir gibi uygulamalar çok sık reklam veriyorlar. Ben trendyol uygulamasının kendi backend servisi ile gerçekleştirdiği API çağrılarını çözdüğümü ve öğrendiğimi düşünelim. Aynı durumu diğerleri içinde yaptım sayalım. Artık uygulama açılmasında backend’de giden request’i ya da arama yapmam için gitmesi gereken request’i biliyorum. Bu durumda artık SSL bozup(MITM atak tipinde) kendim uygulamayı kullanıyor gibi yapabilirim.

Fraud tespiti yapacak sistemin karşısında şu an gerçek bir cihaz ve çeşitli aksiyonlar yapan bir sistem çıktı. İş zorlaştı. Peki bunu nasıl anlayacağız.

Birinci yöntem API çağrılarında yapılan değişikliklerin eski versiyondaki şekilde kalması. Örneğin siz API çağrınıza yeni parametre eklediniz ama eski yapı ile geliyor ya da siz yeni versiyon çıkmışsınız uygulama içinde eski versiyon ile veriler geliyor. Uyuşmazlıkların yakalamak gibi. Burada sizin de fraud tespiti için akıllı hareketler yapıyor olmanız gerekecek.

Diğer bir yöntem ise AI tabanlı bir sisteme kullanıcı davranışlarını öğretip, neyin anomali olup olmadığını ona tespit ettirmekten geçiyor.

Platformların bağımsız hareket etmesi fraud kurgularının genişlemesine sebebiyet vermeye devam ediyor. Örneğin WWDC 2020 de iOS 14 ile birlikte duyurulan ATT(AppTrackingTransparency) özelliği ile iOS cihazın tanımlayıcı ID’si olan IDFA bilgisine erişmek Apple tarafından kısıtlandı. Bu ID’nin alınabilmesi için kullanıcıdan izin alınması gerekliliği getirildi. Kişisel verilerimi kullanacaklar kaygısı kullanıcılar için bu izni onaylamayı zorlaştıracağı için reklam verenlerin fingerprint yöntemine geri dönmelerine sebep olacaktır. Bu da aslında dolandırıcılığa daha açık bir sisteme dönmemiz anlamına gelmekte.

Bahsettiğim yaklaşımların dışında yaklaşımlardan mevcut ancak temel olanlardan bahsetmeye çalıştım. Dijital dünya oyuncuları reklam tarafındaki bu dolandırıcılık üstünde bir araya gelip hep beraber hareket etmesi gerektiğini düşünüyorum. Bu çerçevede atılan adımlar var. CAAF(Coalition Against Ad Fraud) gibi kuruluşlar. Ancak görünen o ki büyük partnerleri henüz masaya getirememiş.

Umarım keyif aldığınız ve bilgi edindiğiniz bir yazı olmuştur.

Saygılarımla,

Doğan Aydın

https://twitter.com/dgnaydin

Referanslar

--

--

Doğan Aydın

CTO@TurkNet, Software developer, Dad, History book lover, Cyclist, EU4 and HIO4 video games fan, Junior writer, Amateur traveler