More Related Content
Similar to Mobil Sistemler ve Uygulama Güvenliği (20)
More from BGA Cyber Security (20)
Mobil Sistemler ve Uygulama Güvenliği
- 1. Mobile Sistemler ve Uygulama
Güvenliği
@2014
Örnek Eğitim Notu
bilgi@bga.com.tr
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 2. Güvenlik Perspektifleri
• Hacking
–Saldırgan gözü, izinsiz
• Denetim
–Saldırgan gözü, izinli
• Önlem
–Sistem yöneticileri, geliştiriciler
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 3. Eğitim İçeriği
•
•
•
•
•
•
•
•
•
•
•
•
Doğrulama Eğilimi
Bazı Web Standartları
Demo Ortamı Detayları
Android Uygulama Güvenliği
Dalvik Virtual Machine
SDK/Emülatör/ADB/Sandbox
APK Yapısı ve Analizi
HTTP/S Trafik Araya Girme
APK / (De)compile / İmzalama
Smali Injection
LogCat / Shared_Prefs / IPC
Memory ve Kaynak Kod Analizi
•
•
•
•
•
•
•
•
•
•
•
•
iOS Uygulama Güvenliği
Jailbreak w/ Redsn0w
Cihaza erişim (SSH/VNC)
HTTP/S Trafik Araya Girme
Tcpdump / Adhoc WI-FI / VPN
iOS Uygulama Cracking
Objective-C Header Dump
Cycript ile Runtime Analiz
IPA Yapısı ve Analizi
NSLog / UserDefaults / Plist
Memory ve Kaynak Kod Analizi
Android/iOS Denetim Adımları
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 5. Doğrulama Eğilimi
• Kişinin yeni bir bilgiyi önceki inançlarına ters
düşmeyecek şekilde yorumlamasıdır.
• Örnekler;
– akışkan ve saydam bir sıvının su olma öngörüsü,
– id isimli değişkenin tamsayı alması öngörüsü.
• Bir Cognitive Science terimidir.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 8. Geliştirme Evrelerinde Güvenlik
Kaynak Kod
Analizi
Gereksinimler
&
Senaryolar
Prod Sonrası
Geliştirme
Kalite Kontrol
Dizayn
Tehdit Modelleme
Güvenli Dizayn
Pentest
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 9. Penetration Test
• Hedef uygulamalar üzerinde dinamik olarak
güvenlik zafiyeti bulma metodudur.
• Hedefin ne kadar güvenli olduğunu değil, ne
kadar güvensiz olduğunu gösterir.
• Üç yönteme ayrılabilirler;
– Whitebox
– Blackbox
– Greybox
iç güveysinden
hallice
berbat
fikrim yok
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 10. Mobil Uygulama Penetration Test
• Mobil pentest ile aranan güvenlik zafiyetleri
aşağıdaki şekilde sınıflandırılabilir;
– İstemci taraflı güvenlik bulguları
• Güvensiz bilgi işleme ve depolama (db/config/temp)
• XSS, SQLi ve mantıksal açıklıklar
– Sunucu taraflı güvenlik bulguları
• Klasik OWASP Top 10 açıklıkları
– İstemci-Sunucu bağlantısı güvenlik bulguları
• Kimlik doğrulama/yetkilendirme/oturum/SSL bulguları
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 11. Mobil Uygulama Güvenlik Riskleri
• Top 10 listeleri güvenlik için vazgeçilmez
öğeler haline gelmiştir.
• Mobil dünyanın getirdiği riskler için
oluşturulan Top 10 listeleri;
– OWASP Top 10 Mobile Risks
– Veracode Mobile App Top 10 Risks
– Enisa Top Ten Smartphone Risks
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 13. 1. Güvensiz Veri Depolama
• Hassas verilerin mobil uygulamalarda güvensiz
depolanması
• Risk: Mobil cihazların büyüklükleri ve değerleri
göz önüne alındığında kaybedilmesi ve
çalınması olasılığı laptop’lara göre daha
yüksektir.
• Örnek: Remember Me? özelliği
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 14. 2. Güvensiz Sunucu Uygulamaları
• Mobil uygulamalar genellikle bir sunucu ile
iletişim kurarlar. Sunucu taraflı uygulamaların
güvenliği önemlidir.
• Risk: Arka uç sunuculara yapılabilecek
saldırılar. Bu saldırılara sebebiyet verebilecek
zafiyetler web uygulama güvenliğinin
konularının bir alt kümesidir.
• Örnek: SQL Injection, DOS, Yetersiz Auth/z…
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 15. 3. Yetersiz Bağlantı Güvenliği
• Mobil uygulama ve sunucu (veya başka
cihazlar) arasında iletişim için WI-FI, 3G, NFC,
Bluetooth bağlantı standartları kullanılır. Bu
bağlantıların veri gizliliğini ve bütünlüğünü
koruması için güvenli olmaları gerekir.
• Risk: ağ izleme ve araya girme saldırıları
• Örnek: Blackhat 2009’da bir katılımcı sahte bir
WI-FI AP ile 20 e-posta şifresi çalmıştır.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 16. 4. İstemci Taraflı Injection
• Mobil uygulamalar da veritabanları ve web
sayfaları kullanmaktadırlar.
• Risk: SQL Injection ve XSS gibi saldırılar
• Örnek: 2011 yılında Skype iOS uygulamasında
kullanıcı ismi alanındaki Stored XSS
kullanılarak, mobil cihazdaki kontak bilgisi
veritabanı çalınabilmiştir.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 17. 5. Yetersiz Yetkilendirme/Kimlik Doğrulama
• Arka uç uygulamalar, mobil kullanıcıları
tanıyabilmek ve yetkilendirmek için IMEI, IMSI,
UUID gibi güvensiz bilgileri kullanmaktadırlar.
• Risk: IMEI, IMSI, UUID gibi bilgiler çalınabilir ve
sahteleri rahatlıkla üretilebilir.
• Örnek: AntiSec hacker grubu 2012 yılında
1,000,001 adet UUID yayınladı.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 18. 6. Güvensiz Oturum Bilgisi
• Mobil uygulamalar kullanıcılara tekrar tekrar
şifre sormamak için uzun süreli ve geçerli
oturum bilgilerini cihazda saklarlar.
• Risk: Çalınma veya kaybolma durumunda
saldırganlar, kurbanmış gibi uygulamaları
kullanabilirler.
• Extreme Bir Örnek: 3G bağlantılarda şifre
sormayan uygulamalar
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 19. 7. Güvensiz Girdilerin Tetiklediği Hassas İşlemler
• Mobil uygulamalar bazı girdileri kontrol
etmeden işlemler gerçekleştirebilmektedirler.
• Risk: Bir web sayfasındaki URL schema’sına
göre arama yapılabilmesi veya bir
uygulamanın diğer uygulamaya SMS
attırabilmesi
• Örnek: <iframe src="tel:1-408-555-5555"></iframe> içerikli
sayfayı ziyaret eden iOS cihazın ilgili numarayı
araması
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 20. 8. Yan Kanal Veri Kaçağı
• Mobil cihazlar bir çok şekilde kullanıcıların
bilgilerini cihaz üzerinde saklayabilirler.
• Risk: Çalınma veya kaybolma durumunda cihaz
üzerindeki hassas bilgilerin elde edilebilmesi
• Örnek: Kullanıcı adı, şifrelerin cihaz kayıt
dosyalarında bulunması, yazılan text’lerin
cihazda kaydedilmesi, otomatik alınan
screenshot’lar
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 21. 9. Yetersiz Kriptografi
• Uygulama geliştiricileri kriptografi konusunda
kendi yeteneklerini denemekte veya
algoritmaları yanlış kullanmakta bonkördürler
• Risk: Uygulamada kullanılan şifreleme
algoritmalarının kırılabilmesi
• Örnek: Şifreleme işlemi sonrası kullanılan
anahtarın şifrelenmiş text’in önüne eklenmesi
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 22. 10. Gizlenmeye Çalışılan Gömülü Bilgiler
• Mobil uygulamalar decompile edilebilir veya
runtime analizleri gerçekleştirilebilir.
• Risk: Kaynak kod içerisindeki hassas bilgiler
(URL/Şifre) öğrenilebilir veya gizli metotlar
çağrılabilir.
• Örnek: iOS uygulamalaırnda cycript ile
process’lere bağlanılarak şifre deaktivasyon
metotları çağrılıp şifre kontrolü atlatılabilir.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 23. Diğer Önemli Mobil Güvenlik Riskleri
• Kötücül uygulamalar
– Uzaktan Yönetme, AndroRat
– Premium SMS gönderme
– Online bankacılık OTP çalma, Zitmo Trojan
• Phishing saldırıları
– Sahte bankacılık uygulamaları, 09Droid
• GSM Altyapısına Yönelik Saldırılar
– Konuşma, SMS şifrelemeleri, DoS
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 24. GSM - Örnek Bir Zafiyet 1
• Bir baz istasyonu bir telefon çağrısı geldiğinde
1. Etrafına, ilgili cihazın kodunu içeren broadcast mesajı
gönderir
2. Cihaz kendi kodunu farkeder, uyanır ve baz istasyonuna
cevap döner
3. Baz istasyonu ve cihaz arasında kimlik doğrulama olur
4. Başarılı kimlik doğrulama sonrası özel bir radyo kanalı
oluşturulur. Cihaz çalar
• Yukarıda süreçte bir DoS saldırısı nasıl yapılır?
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 25. GSM - Örnek Bir Zafiyet 2
• 56-bit’lik DES şifreleme algoritmasını kullanan
SIM kartlarda bulunan zafiyet ile
– SIM kartlarda değişiklik yapılabilmekte
– Uygulama kurulabilmekte
– Mobil ödeme uygulamalarında yetkisiz satın alım
yapılabilmektedir.
• Yaklaşık 750 milyon cihaz, zafiyeti barındıran
SIM kartları taşımaktadır.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 26. GSM - Örnek Bir Zafiyet 2
• GSM Association 1995’te kurulan ve telekom
şirketlerinden oluşmuş bir organizasyondur.
• SIM kartlarda Triple DES veya AES
anahtarlarının kullanılmasını tavsiye eder.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 27. BYOD - Kendi Cihazını Getir
• Bring Your Own Device
– Bring Your Own Phone
– Bring Your Own PC
• Özellikle şirket kullanıcılarına tanınan seçim
özgürlüğü olarak tanımlanabilir.
• Kullanıcıların kendi cihazlarını kurumsal
ağlarda kullanmalarıdır.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 28. Halihazırda Kurum içi Laptop/PC
• Kurum kullanıcılarına çalışma alanlarında
verilen cihazlara uygulanan kontroller;
– Yerel yönetici haklarının verilmemesi
– Her uygulamanın kurul(a)maması
– Her ağ kaynağına ulaşılamaması (Internet)
– Anti-virus/firewall/host-based IPS/URL filtreleme
– Otomatik yama yönetimi
–…
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 29. Halihazırda Kurum içi Akıllı Cihazlar
• Jailbreak yapılmamış iPhone cihazlar
• Root’lanmamış Android cihazlar
• Bu tür kırma işlemlerinin yapılmadığı
Blackberry veya Windows Phone cihazları
• Şirket e-postalarına ulaşabilmek için konulması
zorunlu olan PIN kilit mekanizmaları
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 30. BYOD ile Gelen Riskler
• Kullanıcıların kendi cihazlarında bu
kısıtlamaların bir çoğu uygulanmamaktadır.
– İçerik filtreleme
– Anti-virüs koruması
– Güvenlik yama yönetimi
• OS
• Browser
• Flash/Adobe/Java
– Otomatik ekran kilitleri v.b.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 31. BYOD Motivasyon
• En temelde dünyadaki yeni trend’in
engellenememesi
• Kurum çalışanlarının daha üretken olmaları
• Kurum çalışanlarının kendilerini daha rahat
hissederek, şirketlerini çalışmaya elverişli bir
yer olarak düşünmeleri
• Kurumları yeni iş arayanlar için daha cazip bir
konuma getirmesi
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 32. BYOD Örnekleri
• Havayolu şirketlerinden akıllı cihazlar için
görüntü ve ses desteği
• Otellerden akıllı cihazlar için pay-per-view
desteği
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 33. Sayılarla BYOD ve BYOD Riskleri
• Kurumların %82’si çalışanların hepsinin veya
bir kısmının kendi cihazlarını kullanmalarına
izin vermektedir.
• Kurumların %50’si güvensiz yapılandırılan ve
kullanılan cihazlar nedeniyle veri hırsızlığı
saldırısına uğramıştır.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 34. Daha Az Kontrol, Daha Az Kaza?
• Hans Monderman’ın “Paylaşılan Alan” deneyi
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 35. BYOD Politikası
• Kendi cihazını kuruma getiren çalışanların
mobil cihazlarını kullanım politikası
– Oyunun kuralları
– Mobil anayasası
• Politika olmadan kurum, cihazlar ve
kullanımları üzerinde herhangi bir kontrol veya
riskler konusunda yaptırım uygulayamaz
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 36. BYOD Politikası Maddeleri
• Uzaktan silme yetkisi
– Cihaz kaybolduğunda veya çalındığında işveren
cihaz verilerinden bir kısmını veya tümünü
korumak için silebilir
• Çalışan sorumlulukları
– Politikada listelenmiş ve MDM platformunun
desteklediği cihazların kullanılması
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 37. BYOD Politikası Maddeleri
• İşveren sorumlulukları
– Mobil cihazlar bozulduğunda zararı, güvenlik
açısından, karşılayarak sorumluluğu alması
• Cihaz ile yapılabilecek işlemlerin belirlenmesi
– Çalışanlar cihazları ile hangi verilere erişebilir,
hangi verilere erişemezler
– Jailbreak veya rooting yapılamaması
– Hangi sitelere girilip, girilememesi
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 38. Mobile Device Management
• BYOD’un getirdiği güvenlik kaygılarının
gidermeye çalışan platform
– Uygulamaların kurulması
– Cihazların yapılandırılmaları
• Uzaktan silme
– Yamaların uygulanmaları
• MS Windows ortamlarındaki Active Directory
ve Group Policy olarak düşünülebilir.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 39. Android ve iOS
• Eğitim Android ve iOS uygulamalarının
güvenlik denetim adımlarını içermektedir.
• İki platform, mobil işletim sistemleri pazarının
%90’ın üzerinde paya sahiptir.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 40. Android vs. iOS - Telefon
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 41. Android vs. iOS - Tablet
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 42. Android vs. iOS - Uygulama
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 43. HTTP Giriş
• Web’de dokümanların transfer edilme standardı.
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 44. HTTP
• İki tür HTTP mesaj çeşidi mevcuttur.
– İstek (Request)
– Cevap (Response)
• Genel HTTP mesaj yapısı şu şekildedir:
istek veya cevap için değişen ilk satır[CR][LF]
bir veya daha fazla başlık (header) [CR][LF]
boş bir satır[CR][LF]
opsiyonel bir mesaj bölümü[CR][LF]
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 45. HTTP İstek Örnek
GET /index.jsp HTTP/1.1
User-Agent: Mozilla/4.0 (MSIE 6.0; ...
Accept: text/plain
Content-Length: 0
Host: en.wikipedia.org
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 46. HTTP
• İstek (Request) GET
GET /index.jsp HTTP/1.1
User-Agent: Mozilla/4.0 (MSIE 6.0; ...
Host: en.wikipedia.org
Proxy-Connection: Keep-Alive
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 47. HTTP
• İstek (Request) POST
POST /login.jsp HTTP/1.1
User-Agent: Mozilla/4.0 (MSIE 6.0; ...
Host: en.wikipedia.org
Cookie: JSESSIONID=ad5138754bcef
Connection: Keep-Alive
Content-Length: 30
login=webappsec&passwd=1g4Olm#
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 48. HTTP
• Cevap (Response) 200 OK
HTTP/1.1 200 OK
Date: Fri, 31 Mar 2006 10:08:00 GMT
Server: Apache/2.47
Set-Cookie: JSESSIONID=ad5138754bcef
Content-Length: 92
<html>
<head></head><body>…</html>
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 49. HTTP
• Cevap (Response) 404 Not Found
HTTP/1.1 404 Not Found
Date: Fri, 31 Mar 2006 10:08:00 GMT
Server: Apache/2.47
Content-Length: 96
Connection: close
<html>
<head></head><body>…</html>
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 50. HTTP
• Cevap (Response) 302 Found
HTTP/1.1 302 Found
Date: Fri, 31 Mar 2006 10:08:00 GMT
Server: Apache/2.47
Content-Length: 91
Location: http://www.google.com/a.jsp
Connection: close
<html>…</html>
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 51. HTTP
• Cevap (Response) bazı kodlar
– 200 OK : istenilen kaynak bulundu
– 404 Not Found : istenilen kaynak bulunamadı
– 302 Found : kaynak başka yerde
– 500 Server Error : dahili sunucu hatası
– ...
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 52. HTTP Proxy
• Tarayıcı ve web sunucu arasına girerek HTTP /
HTTPS trafiginin yakalanmasına,
değiştirilebilmesi için kullanılırlar.
• Kullanılma prensipleri bakımından;
– Tarayıcı ile tümleşik
– Tarayıcıdan bağımsız
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 54. OWASP Zed Attack Proxy
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 56. Oturum Yönetimi
• HTTP protokolü durum bilgisini tutmaz.
• Durum bilgisi web uygulamalarında genellikle
"SessionID" ile tutulur.
• Oturum yönetimi genellikle HTTP Cookie ile
gerçekleştirilir. Cookie'ler SessionID'yi taşırlar.
JSESSIONID
PHPSESSID
ASPSESSIONID
ASP.NET_SessionId
.ASPXAUTH
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
- 57. Oturum Yönetimi – HTTP Cookie
• İsmini daha önce bilgisayarlarda kullanılan
Magic Cookie'den almıştır.
• Lou Montulli, ilk e-ticaret sitesini geliştirirken
sanal alış-veriş sepetini oluşturmak için
kullanmıştır.
• RFC 6265, Nisan 2011
Mobile Application Pentest Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr