Android Uygulamalarında Güvenlik Testi



Benzer belgeler
Android Uygulamalarında Güvenlik Testi


Kurumsal Veri Güvenliğinde Önemli Bir Adım: Veri Kaybını Önleme. Ramise KOÇAK Servet ÖZMEN Otokar Otomotiv ve Savunma A.Ş.

Kurumsal Mobil Uygulamalar IBM Mobile Foundation

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

2000 li yıllardan itibaren teknolojinin hızlı gelişiminden belki de en büyük payı alan akıllı telefon ve tabletler gibi kablosuz iletişim olanağı

Yandex mail ve disk kullanım rehberi

BioAffix Ones Technology nin tescilli markasıdır.

Bireysel İnternet Şubesi

Su Kaynağı Saldırısı static.adhood.com/passbacks/sozcu_east/sozcu_east_passback_728x90.html Macromed\Flash\Flash32_12_0_0_77.ocx

01 Şirket Profili

Elektronik Belge Yönetim Sistemi Kullanım Kılavuzu

Bilgisayar donanım ve yazılım olmak üzere iki bölümden oluşur. Bilgisayarın çalışabilmesi için, ikisi de gereklidir.

Emniyet Genel Müdürlüğü. Sürücü Belgesi ve Şahıslara Yazılan Ceza Sorgulama KULLANIM KILAVUZU

Bilişim Teknolojilerini Kullanarak İletişim Kurma, Bilgi Paylaşma ve Kendini İfade Etme

Kullanıcı Dostluğu vs Kullanıcı Güvenliği

EXIF verisi, Firefox eklentisi olan Exif Viewer gibi gibi çeşitli araçlarla incelenebilmektedir. Exif Viewer eklentisi sayesinde görüntülenen

Mobil Güvenlik Eğitimi Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Zararlı Yazılımla Mücadele Eği7mi

BioAffix Ones Technology nin tescilli markasıdır.

Teknik Açıklıklar Nasıl Yönetilmeli? Hayretdin Bahşi Uzman Araştırmacı

BİLGİ ve VERİ GÜVENLİĞİ. Bilgi Gizliliği ve Güvenliği Zararlı Yazılımlar Alınacak Tedbirler Güvenlik Yazılımları

Sertan Kolat

1. Bölüm: Ağı Keşfetme

SQL Server'ı Uzaktan Bağlantı İçin Ayarlamak

KAHRAMANMARAŞ İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ FATİH PROJESİ KOORDİNATÖRLÜĞÜ

CUTEC etkisi: -Yüksek verimlilik -Yüksek Işlem güvenliği -Yüksek Yaşam - H7 Kalite Delik

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

Bireysel İnternet Şubesi

GİRESUN KOBİ LERİNİN İHRACAT EĞİTİM İHTİYACI ARAŞTIRMA RAPORU

Model ERP Tedarik Zinciri Yönetimi. Satınalma Yönetimi

Bilgiyolu Yayıncılık Elektronik Sunum Programı Kurulum Kılavuzu

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

TÜRK ELEKTRONİK SANAYİİ

Qlik Sense için sistem gereksinimleri. Qlik Sense 3.2 Telif Hakkı QlikTech International AB. Tüm hakları saklıdır.

MISSION WI-FI KURULUM KILAVUZU

Demodülasyon Algoritmaları İçin En İyilenmiş Windows İşletim Sistemi Uygulamaları

Google Play Zararlısı İnceleme Raporu

Özgür Yazılımlar ile Kablosuz Ağ Denetimi

BioAffix Ones Technology nin tescilli markasıdır.

ANDROID UYGULAMA YARDIM DOKÜMANI

Iklimlendirme ve Sogutma (HVAC&R) Ürünleri için Firmaya Özel ve Hazır. Tasarım Performans Hesaplama Analiz Ürün Seçim Simülasyon.

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

Mobil Güvenlik ve Denetim

Oyun Programlama Dersi. Nergiz Ercil Çağıltay

T.C. SOSYAL GÜVENLİK KURUMU. Hizmet Sunumu Genel Müdürlüğü GSS Yazılımları Daire Başkanlığı Kasım 2011

Sayfanın kaynak kodunu incelediğimde ilk olarak unicode karakterlerden oluşan karakter dizisi daha sonra ise Java class dosyası ve image.

BİLİŞİM SUÇLARI VE GÜVENLİK İNTERNETTE ALIŞVERİŞ

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

Red Alert 2.0 Truva Atı ve Bankacılık Zararlısı İnceleme Raporu

Kurum Personeli için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Tüm bu problemler verilerin dijital bir sunucuda tutulması ihtiyacını oluşturdu. İhtiyacı karşılamak amaçlı hastane otomasyonu geliştirildi.

YMT 412-Yazılım Kalite Ve Güvencesi Mobil Uygulama Testi 1/32

1. Bilgisayarınızda kullandığınız Web tarayıcı programını (Internet Explorer, Mozilla Firefox vb.) çalıştırınız.

Bilgisayar Programlama MATLAB

ANDROID İŞLETİM SİSTEMİ YÜKLÜ OLAN TELEFON VEYA TABLETLERE ÖĞRENCİ WEBMAIL TANIMLAMA

PAPERWORK DOCFLOW Doküman&Form Akış yönetimi

RICOH Smart Device Connector Kullanıcılarına: Makineyi Yapılandırma

2. dönem itibariyle ben de Zararlı Yazılım Analizi 101 dersi vererek bu programa katkıda bulunacağım.

AR& GE BÜLTEN ARAŞTIRMA VE MESLEKLERİ GELİŞTİRME MÜDÜRLÜĞÜ HAZİRAN. Turizm Sektörü Genel Değerlendirmesi ve Sektörde Çalışanların İş Tatmini

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

Mobil Yazılım Mühendisliği (SE 570) Ders Detayları

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

Emniyet Genel Müdürlüğü Yurda Giriş/Çıkış Belge Sorgulama KULLANIM KILAVUZU

Mobil Yazılım Mühendisliği (SE 570) Ders Detayları

T.C. Başbakanlık Gümrük Müsteşarlığı

GRUNDIG GTB 1050 TABLET MODELİNİN SIFIRLAMA İŞLEMİ:

MİKRO PROGRAMININ GÜNCELLENMESİ

BEUN VPN Hizmeti. VPN Nedir?

Güvenlik. Kullanıcı Kılavuzu

KARAYOLU TRAFİK GÜVENLİĞİ IOS ve ANDROİD TABANLI UYGULAMA, OYUN VE İNTERAKTİF KİTAP YARIŞMASI

Şehrin her yanında hep yanında

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

AKADEMİK BİLİŞİM 2013

ARAÇ TAKIP ve Fılo yonetım SISTEMI

Yüksek Öğretimde Mobil Eğitime Geçiş İçin Yol Haritası: Atılım Üniversitesi Örneği

İÇİNDEKİLER. Elektronik İmza... 3 Tanım... 3 Mevzuat... 3 Giriş... 3 Akıllı Akis Kart Alındıktan Sonra İzlenecek Adımlar Adım:...

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Bölüm 1 / Mobil Uygulama Hakkında

Zararlı Kodlar& Analiz Temelleri ve Bir Saldırının Anatomisi

e-imzatr Kurulum Klavuzu

Qlik Sense için sistem gereksinimleri. Qlik Sense June 2017 Copyright QlikTech International AB. Tüm hakları saklıdır.

Android Programlama BAHAR

TABLET EKRANLARI ÖZET SATIŞ KATEGORİ INFO

ANDROID AÇIK AKSESUAR API & AKSESUAR GELİŞTİRME. Dr. Fatma Cemile Serçe

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

BioAffix Ones Technology nin tescilli markasıdır.

Sentetik Çuval.

08217 Internet Programcılığı I Internet Programming I

Bilgi ve İletişim Teknolojileri 1.DERS. Öğr.Gör.Taner KARATAŞ Öğr.Gör. Gizem Gürel DÖNÜK Öğr.Gör. Mehmet Can HANAYLI AYDIN MESLEK YÜKSEKOKULU

Bilişim Teknolojilerine Giriş

Nitelikli Elektronik Sertifikanız ve kart okuyucunuz tarafınıza teslim edilmişse Sertifikanızı Kullanabilmeniz için

POLİS AKADEMİSİ BAŞKANLIĞI POLİS AMİRLERİ EĞİTİMİ MERKEZİ EMNİYET MENSUBU ÖĞRENCİ ADAYI YAZILI SINAVI İNTERNET KAYIT KILAVUZU

UniFi Access Point Kurulum

Transkript:

Android Uygulamalarında Güvenlik Testi Şubat ayında Gartner tarafından yayımlanan bir rapora göre dünya genelinde 2011 yılının 4. çeyreğinde satılan akıllı telefonların %50.9 unda Android işletim sisteminin, %23.8 inde ise IOS işletim sisteminin kurulu olduğunu görüyoruz. Web siteleri, uygulamaları üzerinden vermiş oldukları hizmetlerin tamamına yakınını mobil uygulamalar ile mobil platformlar üzerinden de vermek için uğraş veren irili ufaklı birçok firma, eskiden sadece ios için uygulama geliştirirken pazar payını bu kadar yükselten Android karşısında kayıtsız kalamayarak Android işletim sistemi için de (misal Instagram) uygulama geliştirmek durumunda kaldılar. ios işletim sistemi için geliştirilen uygulamalara kıyasla Android işletim sistemi için geliştirilen uygulamaların kaynak koduna çevrilebilir olması, ücretsiz ve platform bağımsız bir emulator sayesinde daha kolay analiz edilebilir olması beraberinde art niyetli kişilerce de güvenlik zafiyetlerinin daha kolay tespit edilebilmesine ve istismar edilebilmesine imkan tanımaktadır. Günümüzde uyumluluktan öte müşteri güvenliği, marka değeri ve itibarı için ağ, sistem, web uygulamalarını vs. güvenlik testine tabi tutan firmalar için mobil uygulamaların da test edilmesi kaçınılmaz olduğu için bu yazımda Android uygulamalarını test ederken güvenlik adına dikkat edilmesi gereken noktalardan (ağ trafiği analizi/manipülasyonu, kaynak kodu incelemesi, tersine çevirme (disassembling), dosya sistemi incelemesi) birkaçına dikkat çekmek istedim. Ağ Trafiği Analizi: Şifreli kanal üzerinden (SSL) haberleşmeyen Native (Java ile yazılmış) ve native olmayan uygulamaların trafiğini analiz etmek için hedef uygulamayı Android SDK ile gelen emulatore yine Android SDK ile gelen adb (Android Debug Bridge) aracı ile yüklemek (adb install uygulama.apk) veya BlueStacks in App Player aracı ile çalıştırmak ve Wireshark aracı ile trafiği analiz etmek mümkündür. (App Player, APK uzantılı tüm Android uygulamalarını Windows üzerinde çalıştırmaya yarayan gerçekten çok faydalı olduğunu düşündüğüm bir araçtır, basit analizler için mutlaka denemenizi tavsiye ederim.)

Eğer ki uygulama native ise ve şifreli kanal üzerinden haberleşiyor ise bu durumda App Player üzerinde çalışan bir Wireshark ile trafiği analiz etmek pek mümkün değildir. Ortadaki adam saldırısını (MITM) gerçekleştirmek için yaratılmış olan Android Virtual Device (AVD) ın herhangi bir proxy aracına (Burp Suite veya Charles Proxy) yönlendirilmesi durumunda da bu defa native uygulama sertifika hatasını gördüğü anda iletişimi kurmayacaktır. Durum böyle olunca da tek çözüm yolu Charles Proxy aracını kullanmak ve Charles Proxy aracının kök sertifikasını Android işletim sisteminin güvenilir kök sertifikalarına eklemek olacaktır. Bu sayede Charles Proxy emulatör ile web sunucusu arasına girmeye çalıştığı esnada üretmiş olduğu sahte sertifika, native uygulama tarafından reddilmeyecek ve bağlantı kesilmeyecektir. Emulatör yeniden başlatıldığında güvenilir kök sertifikalar eski, orjinal haline döndüğü için de sertifika sisteme yüklendikten sonra sistemin imajı yaffs2 aracı ile alınarak, AVD yeniden başlatıldığında bu sistem imajının kullanılması sağlanarak Charles Proxy aracının kök sertifikasının sistemde kalıcı olması sağlanacaktır. Şifreli trafik analizi için aşağıdaki ekran görüntüsünde belirtilen tüm direktiflerin izlenmesi ve komutların çalıştırılması Charles Proxy ile şifreli trafiğin analiz edilebilmesini sağlayacaktır.

Kaynak Kodu İncelemesi: Native uygulamalar yukarıda da belirttiğim gibi çoğunlukla Java programlama dili ile geliştirilmektedir. APK uzantılı Android uygulamasının uzantısı ZIP olarak değiştirilerek Winzip veya Winrar gibi araçlar ile açılabilir, ardından içerisinde yer alan Dex uzantılı yani Dalvik sanal makinesinde çalıştırılabilen Android uygulaması d2j-dex2jar.bat aracı ve d2j-dex2jar.bat classes.dex komutu ile jar dosyasına çevrilebilir. Ardından JD-GUI aracı ile bu jar dosyası kaynak koduna çevirebilir ve incelenebilir. Kaynak kodu incelemesi ile kaynak kodu içinde yer alan gömülü şifreleme anahtarları, web servis bilgileri gibi birçok bilgi elde edilebilir. Kimi zaman bazı durumlarda kaynak koduna çevirmek istenilen sonuçları üretmez bu gibi durumlarda dex dosyası tersine çevrilerek (disassembling) analiz edilebilir.

Tersine Çevirme: Kaynak koduna çevirmenin yeterli olmadığı durumlarda veya program akışının değiştirilme ihtiyacı olduğu durumlarda dex dosyası android-apktool aracı ve java -jar apktool.jar d Uygulama.apk komutu ile tersine çevrilebilir (disassembling) ardından java -jar apktool.jar b Uygulama Uygulama.apk komutu ile tekrar birleştirilebilir. (assembling) Assembly programlama diline hakimseniz bu sayfada yer alan bilgiler ışığında Dalvik op kodlarını analiz edebilir ve değiştirebilirsiniz. Dosya Sistemi İncelemesi: Android işletim sistemi uygulamalara verilerini saklamak için 4 seçenek sunmaktadır; Dahili Depolama (özel verileri saklamak için), Shared Preferences (basit depolama için), Harici Depolama (özel olmayak büyük veri setlerini saklamak için) ve SQLite veritabanı (yapısal depolama) Harici depolama hafıza kartını kullandığı ve buraya kopyalanan her dosya diğer tüm uygulamalar tarafından okunabildiği için buraya yazılan hassas verilerin mutlaka ama mutlaka şifreli olarak yazılması gerekmektedir.

Yukarıda kısaca bahsettiğim adımları izleyerek çok sık kullandığım Android uygulamalarına kısaca göz attığımda şans eseri bir kaç güvenlik zafiyeti ile karşılaştım. İlk uygulamanın kullanıcı tarafından girilen kullanıcı adı ve şifreyi, şifreli kanal (SSL) üzerinden gerçekleştirmediğini farkettim. Her ne kadar sunucuya gönderilen şifre, MD5 ile hashlenmiş olsa da tuz değeri (salt) kullanılmadığı için üretilen MD5 olduğu gibi kullanılabilmektedir. Durum böyle olunca da kablosuz ağ üzerinde ARP zehirlemesi gerçekleştirerek trafiğinizi kayıt eden art niyetli bir kişi hesabınıza bu bilgiler ile yetkisiz olarak erişebilir.

Ayrıca yine aynı uygulamanın işletim sistemi kayıtlarına uygulamaya girmek için kullanılan şifreyi açık (clear) olarak yazdığını farkettim.

Tüm şifrelerinizi ana bir şifre ile AES ile güvenli bir şekilde dosya sistemi üzerinde saklayan başka bir uygulamanın ana şifrenin bir kopyasını uygulama içinde gömülü olan başka bir şifre ile şifreleyerek dosya sistemi üzerine kayıt ettiğini farkettim. Durum böle olunca da bu gömülü şifre ile ana şifreyi deşifre etmek, ardından bu ana şifre ile de şifrelenmiş diğer tüm şifreleri deşifre etmek mümkündür.

Sonuç olarak Google Play e yüklemiş olduğunuz tüm mobil uygulamalarınız art niyetli kişiler tarafından indirilebilir ve analiz edilebilir olduğun unutmayın bu nedenle mobil uygulamalarınızı hizmete sunmadan önce mutlaka ama mutlaka güvenlik testinden geçirin veya geçirtin. Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim. NOPcon Bilgi Güvenliği Konferansı 21 Mayıs 2012 Pazartesi günü NOPcon Bilgi Güvenliği Konferansı nda, Android Uygulamalarında Güvenlik Testi konulu bir sunum gerçekleştireceğim, meraklılarına duyurulur :) 21 Mayıs 2012 Tarihinde Istanbul Bilgi Universitesi Dolapdere kampüsünde, yerli ve yabancı alanında uzman araştırmacaların da sunumlarına yer verileceği NOPcon Bilgi Güvenliği Konferansı düzenlenecektir. #Kimler katılmalı? NOPcon, bilgi güvenliği/it denetimi/network/sistem/yazılım departmanlarında ve sektöründe çalışanlara, tersine mühendislik(reverse engineering), exploiting, vulnerability research, forensic vb hack/güvenlik konularına ilgi, merak duyan herkese hitap etmektedir.

**Katılım ücretsizdir ; http://www.nopcon.org/register/ adresinden kayıt olabilirsiniz. #NOPcon Ana Konuları Sınırlı kalmamakla birlikte genel olarak NOPcon sunumları aşağıdaki konuları kapsayacaktır : Offensive Technologies (Saldırgan Güvenlik Teknolojileri): Exploit Geliştirme ve Bypass Mekanizmaları Malware Rootkit Cryptovirology Defensive Technologies (Savunma Teknolojileri) Uygulama tabanlı güvenlik konuları Network tabanlı güvenlik konuları Kernel tabanlı güvenlik konuları Embedded Device Hacking and Security (Gömülü Sistemler) Mobil güvenlik ve saldırı teknikleri (iphone, android, windows phone) Tablet, E-Reader güvenlik ve saldırı teknikleri Vulnerability Research/Bug Hunting (Uygulama Güvenliği) Kaynak Kod Analizi Tersine Mühendislik Web uygulama güvenliği Fuzzing Kritik Altyapı Sistemleri SCADA Hacking & Security Telekominikasyon Güvenliği Acil Durum Servisleri Android 4.0 Yüz Kilidi Nasıl Aşılır? Bildiğiniz üzere Android 4.0 (Ice Cream Sandwich) yüz tanıma özelliği ile birlikte gelmekte ve ekran kilidini açma unsuru olarak yüzünüz de (yüz kilidi) kullanılabilmektedir ancak yüzünüz yerine yüzünüzün yüksek çözünürlüklü bir fotoğrafının kullanılması durumunda da ekran kilidi açılmakta ve ortaya bir güvenlik zafiyeti çıkmaktadır. Google tarafından da belirtildiği üzere düşük güvenlik seviyesine sahip bu yüz kilidinin, telefonlarının güvenliğine önem verenler tarafından kullanılmaması şiddetle tavsiye edilir.

Google tarafından belirtilen ekran kilitlerinin güvenlik seviyeleri aşağıda yer almaktadır; Sifre: Yüksek güvenlik Pin: Orta ve Yüksek güvenlik Model Orta güvenlik Yüz kilidi Düşük güvenlik Bilgi güvenliği farkındalığını arttırma adına çalışma arkadaşım Cem ÖNAL ile birlikte eğlenceli bir video hazırladım, herkese keyifli seyirler dilerim.