Advergame. Yunus ÇADIRCI



Benzer belgeler
Advergame Güvenliği. Yunus ÇADIRCI

GESTALT KURAMI Gestalt kuramcılarına göre bütün, parçaların toplamından daha anlamlıdır ve farklıdır. Birey herşeyi bir bütün olarak algılama

1. ALGILAMA KAVRAMI VE TANIMI

TERSTEN DÜZGÜN OKUMA TEKNİĞİ

Görsel Materyallerin Tasarım İlkeleri

İNSAN İNSAN BİLGİSAYAR ETKİLEŞİMİ. İNSAN 2. Giriş-Çıkış Kanalları. İNSAN 1. Giriş BÖLÜM1: İNSAN. 1. Giriş

Basit bir web uygulaması

Üst Düzey Programlama

SERTİFİKA EĞİTİMLERİ

İnsan. İnsan Bilgisayar Etkileşimi. İnsan. İnsan İnsan Bilgisayar Etkileşimi Bölüm-1 İnsan

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Pac Dosyası İle Proxy Kullanmak

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

Öğr. Gör. Serkan AKSU 1

İstemci Tabanlı Saldırı Türleri. Ozan UÇAR

Hackerlar'ın Gözünden Flash Uygulamaları

Algorithm of Your Life. AJAX ve...

B-TÜRKİYE DE VE DÜNYADA OKUMA ALIŞKANLIĞI C- HIZLI OKUMA HAKKINDA BİLİNMESİ GEREKENLER

Javascript Geliştiricileri İçin Xaml Ve Microsoft Silverlight

Üst Düzey Programlama

Üst Düzey Programlama

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Tanımı Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Web 2.0 Örnek Eğitim Notu

API v2 Multi Smart Card ( ) 4- VERİİMZA API ile bir web uygulaması nasıl haberleşir?

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İnsan. İnsan Bilgisayar Etkileşimi. İnsan. İnsan. İnsan Bilgisayar Etkileşimi Bölüm-1 İnsan Cüneyt BULUT Burak İPEK

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Daha komplike uygulamalar elektronik ticaret, elektronik kimlik belgeleme, güvenli e-posta,

HSancak Nesne Tabanlı Programlama I Ders Notları

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

Zeki Gülen Marmara Üniversitesi Sosyal Bilimler Enstitüsü, Gazetecilik Ana Bilim Dalı, Bilişim

Java EE 5 Teknolojileri Jboss Seam

DAVRANIŞ İŞ İNSAN. Kesin Kurallar DAVRANIŞ BİLİMLERİ. Öğr.Gör. A.Alper ERTEM 1. ışları. İnsan davranış incelenmesi. ÖĞR.GÖR. A.ALPER ERTEM.

Adli Analiz İşlemlerine Başlamak

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Yrd. Doç. Dr. Caner ÖZCAN

Programlama Dilleri 3

BATMAN ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA KAMPÜS DIŞINDAN ERİŞİM REHBERİ

T.C. HARRAN ÜNİVERSİTESİ UZAKTAN EĞİTİM UYGULAMA VE ARAŞTIRMA MERKEZİ YABANCI DİL SINAVI (İNGİLİZCE) İÇİN SORU ÇÖZÜM TEKNİKLERİ KURSU

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

ADOBE FLASH PLAYER / CVE (Sıfırıncı Gün Zafiyeti)

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

PROGRAMLAMA DERSİ 1. İNTERNET

Nesne Yönelimli Programlama


8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Selahattin Esim CEO

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

BİL132 Bilgisayar Programlama II

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme

Şehmus POLAT Teknoloji Fakültesi

VoIP Pentest NetSEC / Microso3 Türkiye Ozan UÇAR ozan.ucar@bga.com.tr

Görme Engelliler için Web Sayfalarında Erişilebilirliğin Sağlanması

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

HSancak Nesne Tabanlı Programlama I Ders Notları

JAVASCRIPT JAVASCRIPT DİLİ

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

Ajax kullanımı oldukça yaygınlaşmaktadır. Web tabanlı uygulamalar Ajax desteği ile çok daha esnek kullanışlı, performanslı bir yapıya kavuşmaktadır.

Yazılım Kodlama ve İ simlendirme Standartları v1.0

REQUEST QUERY STRING. Sayfalar: default.aspx ve sorgu_sayfasi.aspx. default.aspx sayfası: sorgu_sayfasi.aspx sayfası:

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Kurumsal Mobil Uygulamalar IBM Mobile Foundation

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

GRAFİK TASARIM. ACTION SCRIPT 3.0 Ders1 YARD. DOÇ. DR. MEHTAP YALÇINKAYA

(Bilgisayar ağlarının birbirine bağlanarak büyük bir ağ oluşturmasıdır)

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

MOKA ÖDEME SERVİSİ BAYİ İŞLEMLERİ ENTEGRASYON DOKÜMANI

Client Server Database

PostgreSQL ve PL/pgSQL

Sampaş Akademi Eğitim Portali Kullanım Kılavuzu

bitık MOBİL TİCARET UYGULAMASI ABDULLAH ÇİÇEKCİ

1 / 5. Mehmet Alper Şen. Kıdemli Yazılım Uzmanı. İletişim Bilgileri

Stack Islemleri. Postfix ve Infix notasyonlari. Stack ozellikleri

Bir Bilgisayar Bağlanıyor Diğeri Bağlanmıyor

Yrd. Doç. Dr. Caner ÖZCAN

ve diğer Yerel Mevzuat Kapsamında Zaman Damgası

İleri Düzey Bilgisayar Ağları

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

MOBİL CİHAZLARDAN DERS İZLEME MERSİN MESLEK YÜKSEKOKULU (UZAKTAN EĞİTİM) Mobil Adobe Connect

Web Application Penetration Test Report

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Üst Düzey Programlama

Sade ve tam ekran masaüstü kullanımının temel çıkış noktası, aranılan özelliğe çabuk erişimi sağlayan yenilikçi kullanıcı deneyimidir.

jquery kütüphanesini sayfaya eklemek için iki yöntem vardır. 1. Direkt jquery nin sitesinden ekleme

VPN NEDIR? NASıL KULLANıLıR?

2. Belgeye Metin Ekleme

Transkript:

Advergame Güvenliği Yunus ÇADIRCI

Ajanda Hakkında Advergame Nedir? Neden Advergame Güvenliği? Kullanılan Teknolojiler Manipülasyon Yöntemleri Hardening Peki Bu Bilgi Gerçek Hayatta Ne Đşime Yarayacak? Ülkemizden Örnekler Soru Cevap

Hakkında Haberleşme Mühendisi/2004 4 Yıldır Telekomünikasyon Sektöründe Developer Kökenli Series 60, Web Tabanlı, Masaüstü SIP, RTP, HTTP Kötü Kod Nasıl Yazılır Güvenli Yazılım Geliştirme Yaşam Döngüsü www.yunuscadirci.com

Advergame Nedir? Advergame = Advertisement + Game (Advergaming = Advertising + Gaming) Oyunların interaktiviteözelliği kullanılarak yapılan reklamlardır. Kullanıcı, ürün veya hizmeti aktif olarak oyunda kullanır. Sonucunda ödül dağıtımı gerçekleşebilir.

Neden Advergame Güvenliği? Hediyeler saldırganlar için motivasyon sağlıyor Oyunların %90 ı çok kolay kırılabilir Deloitte Hollanda/2008 Çok fazla kişisel bilgi mevcut PII Olaylar saldırganın ortamında/kontrolünde gerçekleşiyor Bilişim Hukuku dışında* Geliştiriciler tasarım kökenli

Kullanılan Teknolojiler Hedef olabildiğince çok kullanıcı Bundan dolayı genelde browser tabanlı, standartlaşmış teknolojiler kullanılıyor Adobe Flash HTML + Javascript Java Applet ios tabanlı Advergame ler yükselişte 5. Sonuç Değerlendirilir 2. Oyun İşlenir 1. Oyun Dosyası Oyuncuya Gönderilir HTTP Oyuncu 3. Oyun Oynanır 4. Oyun Sonucu Sunucuya Gönderilir HTTP

Manipülasyon Yöntemleri Amaç Advergamesunucusuna istenilen veriyi göndermek. Bu amaçla çeşitli yöntemler kullanılabilir Tampering Gönderilen veriyi on-the-fly değiştirmek Decompiling Hash Algoritması, Salt, Secret Key Erişimi Game Engine Erişimi Memory Editing Hafızadaki değerleri değiştirmek Bytecode u değiştirip game engine e mudahele etmek DOM Manipülasyonu HTML tabanlı oyunlara müdahele Zaman Manipülasyonu

Tampering Açık giden veriyi değiştirmek Basit HTTP Proxy veya Firefox eklentileri yeterli Fiddler HTTPAnalyzer Tamper Data

Decompiling Flash, Silverlightve Java gibi teknolojiler ile geliştirilen uygulamalar bytecode dan kaynak koda dönüştürülebilir Bu kod içerisinde gizli kalması gereken bilgilere erişmek mümkün www.showmycode.com private function Init() : void { var _loc_1:string = "I7Qe7XhwXdSCSXk9kSrGtUGEHFY6S2hBTVi/16E2rGQ I7Qe7XhwXdSCSXk9kSrGtUGEHFY6S2hBTVi/16E2rGQ="; keybytes = new ByteArray(); keybytes.writemultibyte(_loc_1, "utf-8"); hmac = Crypto.getHMAC("sha256"); return; }// end function

Decompiling Flash, Java standartlar açık Opcode bilgileri mevcut Memoryeditingile beraber kullanıldığında saldırgana tam kontrol sağlıyor

Memory Editing MemoryEditorprogramları ile hafızadaki değişkenlere direk erişim Cheat Engine sıkça kullanılıyor

Memory Editing Hafızaya yüklenen uygulamanın bytecode ları değiştirilebilir. Oyun yapısına müdahele edilebilir Manipülasyon tespiti oldukça zor //240a _as3_pushbyte 10 //68 81 08 _as3_initproperty bonus //60 bf 06 _as3_getlex_apple 24 0a68 81 01 60 bf06 _apple.bonus=10 24 6468 81 01 60 bf06 _apple.bonus=100 //5d 8204 _as3_findpropstrict stop //4f 82 04 00 _as3_callpropvoid stop(param count:0) 5d 82 04 4f 82 04 00 stop() 09 09 09 09 09 09 09 nop[hiçbirşey yapma]

DOM Manipülasyonu HTML tabanlı oyunlara uygulanıyor Bilgi yarışması tarzı oyunlarda kullanılabiliyor Greasemonkeyya da WebBrowsernesnesine sahip uygulamalar ile yapılabilir

Zaman Manipülasyonu Programın hız çarpanı değiştirilebiliyor Böylelikle uygulamanın daha yavaş veya daha hızlı çalıştırılması mümkün Tespiti kolay Cheat Engine Kullanılıyor

Hardening - Flash Flash tabanlı oyunlar obfuscate edilmelidir "Bir üvnseritnede ypalaın arşaıtramya gröe, kleimleirn hrfalreiinn hnagi srıdaa yzalıdkılraı ömneli dğeliimş. Öenlmi oaln brincii ve snonucnu hrfain yrenide omlsaımyış. Ardakai hfraliren srısaı krıaışk oslada ouknyuorumş. Çnükü kleimlrei hraf hraf dğeil bri btüün oalark oykuorumuşz.

Hardening - Flash Sunucuya gönderilen tüm veriler şifreli olmalıdır Key iyi saklanmalıdır Mümkün olduğu kadar plaintextveri aktarımından kaçınılmalı, mümkünse AMF kullanılmalıdır. Action Message Format Serialize ActionScript Objects Binarytemelli olduğu için plaintextveriler üzerinde yapılan tamperinge karşı koruma sağlar Securityby obscurity

Hardening - Flash Oyuncunun her hareketi, önemli nesnelerin durumu timestamp ile loglanmalıdır.,1,- 1,ig,1,299996,sg,1,298978,pb,1,295470,db,1,293731,sb,1,291317,pb,1,287568,db,1,286450,sb,1,284196,c s,1,282678,pb,1,279621,db,1,278516,sb,1,276272,cs,1,274722,pb,1,272091,db,1,270767,sb,1,267765,pb,1,264339,db,1,263205,sb,1,261657,ms,1,259952,pb,1,257808,db,1,256426,sb,1,254193,pb,1,251404,db,1,2 50071,sb,1,247845,cs,1,246349,pb,1,244129,db,1,243043,sb,1,241387,ms,1,239785,pb,1,237407,db,1,236 112,sb,1,233305,pb,1,230758,db,1,229493,sb,1,226739,pb,1,224551,db,1,223515,sb,1,221454,ms,1,2202 38,cs,1,218726,pb,1,216485,db,1,215248,sb,1,213106,cs,1,211564,pb,1,207015,db,1,205853,sb,1,203657, cs,1,202130,pg,1,202109,le,2,- 1,ig,2,300000,sg,2,298977,pb,2,294321,db,2,293436,sb,2,291662,ms,2,290103,pb,2,288034,db,2,286979,s b,2,284781,cs,2,283281,pb,2,280386,db,2,279373,sb,2,277790,ms,2,276861,ws,2,275826,pb,2,270580,db, 2,269580,sb,2,267791,ms,2,266238,pb,2,264204,db,2,263100,sb,2,260894,cs,2,259361,pb,2,256234,db,2, 254940,sb,2,253213,ms,2,252435,ws,2,251446,pb,2,245738,db,2,244683,sb,2,242991,ms,2,241340,pb,2,2 39418,db,2,238329,sb,2,236117,cs,2,234619,pb,2,232100,db,2,230962,sb,2,229101,ms,2,228987,ms,2,22 7429,pb,2,224350,db,2,223134,sb,2,220978,cs,2,219450,pb,2,216492,db,2,215088,sb,2,212957,pb,2,2102 35,db,2,208963,sb,2,206724,cs,2,205195,pb,2,203293,db,2,201958,sb,2,199775,cs,2,198250,pg,2,198234, le,3,- 1,ig,3,300000,sg,3,298995,pb,3,295628,db,3,294236,sb,3,291966,cs,3,290434,pb,3,288095,db,3,286804,s b,3,284631,cs,3,283109,pb,3,280925,db,3,279679,sb,3,277498,cs,3,275979,pb,3,274102,db,3,273137,sb,3,271475,ms,3,269831,pb,3,268497,db,3,267391,sb,3,265701,ms,3,265420,ms,3,264130,pb,3,261924,db,3, 260791,sb,3,259203,ms,3,258914,ms,3,257517,pb,3,252881,db,3,251647,sb,3,248637,pb,3,247169,db,3,2 46120,sb,3,243932,cs,3,242415,pb,3,239954,db,3,238839,sb,3,236742,ms,3,235247,pb,3,233781,db,3,232 539,sb,3,230809,ms,3,229173,pb,3,227124,db,3,225831,sb,3,223589,pb,3,221812,db,3,219838,sb,3,2178 28,pb,3,215328,db,3,214344,sb,3,212172,cs,3,210672,pb,3,208100,db,3,206926,sb,3,204624,cs,3,203131, pg,3,203108,le

Hardening - Flash Oyun PC leri takip edilmelidir IP Bloğu Cookie Local Shared Objects(Flash cookie) Google Analytics Ripe Proxy IP leri engellenebilir Karaliste Kullanım Şartları Bir oyunda manipülasyon yapan diğer oyunda da yapabilir

Hardening - Flash Zaman manipülasyonuna karşın çift sayaç kullanılabilir. Bir sayaç programa göre, diğeri sistem saatine göre çalıştırılıp sonuç karşılaştırılır. var PeriyodikKontrolTimer:Timer=new Timer(1000);// 1 second PeriyodikKontrolTimer.addEventListener(TimerEvent.TIMER, PeriyodikKontrol); var _startdate:date; var _time:uint = 0; function starttimer() : void { this.stoptimer(); this._startdate = new Date(); this._time = 0; this._timer = new Timer(1000, 9999); this._timer.addeventlistener(timerevent.timer, this.ontimer, false, 0, true); this._timer.start(); return; }// end function function stoptimer() : void { if (!this._timer) { return; }// end if this._timer.removeeventlistener(timerevent.timer, this.ontimer, false); this._timer.stop(); this._timer = null; return; }// end function function ontimer(param1:timerevent) : void { var _loc_2:* = new Date(); this._time = Math.round((_loc_2.getTime() - this._startdate.gettime()) / 1000); txtsystemtimer.text=string(this._time); return; }// end function } function Basla(event:MouseEvent):void { starttimer(); PeriyodikKontrolTimer.start(); return;

Hardening - Flash Oyun için kritik objeler korunmalıdır Score Time Uygulamanın farklı katmanlarında bütünsellik kontrolü yapılmalıdır Main loop içerisinde skorun farklı bir kopyası tutulabilir

Hardening Bilgi Yarışmaları Soru havuzu geniş olmalıdır Soru şıkları yer değiştirmelidir Günlük oyun limiti getirilmelidir. Bot Kontrolü yapılmalıdır CAPTCHA HTML DOM yapısı bozulabilir Soru ve cevaplar hep aynı DOM Element te gelmemelidir

Peki Bu Bilgi Gerçek Hayatta Ne İşime Yarayacak? Win32 ve Java Tabanlı Uygulamaların Güvenliğinde Hardening PenTest Multimedia Uygulamalarda Web Tabanlı Uygulamalarda Reverse Engineering Çalışmalarında

Ülkemizden Örnekler

Ülkemizden Örnekler Browser

Teşekkürler Yunus ÇADIRCI www.yunuscadirci.com yunuscadirci@yunuscadirci.com