29
ATTACKING MOBILE APPLICATIONS AT RUNTIME OWASP-TR Mobil Güvenlik Çalıştayı ‘15 Ahmet Can Kan

[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Embed Size (px)

Citation preview

Page 1: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

ATTACKING MOBILE APPLICATIONS

AT RUNTIME

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Ahmet Can Kan

Page 2: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Ben kimim?

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 3: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

INVICTUS

“Intelligence Research and Development”

Senior Mobile Security Consultant

at Invictus in Istanbul

VP, R&D Lead at Prodaft

Bsc. Comp Sci. & Eng. Sabanci

University

Msc. Candidate, Comp Eng at

Bogazici University

Security and Privacy in

Biometrics

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 4: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

İÇERİK

1

2

3

4

Android Runtime, Xposed Framework

iOS Platformunda Örnek Saldırı

Senaryoları

iOS Cydia Substrate API

Android Platformunda Örnek Saldırı

Senaryoları

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 5: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

1Android Runtime, Xposed Framework

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 6: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Zygote

• Zygote işletim sistemindeki bütün uygulamaların başlatılmasından

sorumlu ‘daemon’dır ve bütün uygulamalar bu process’ten fork edilir.

Android Runtime

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

• /system/bin/app_process aracılığıyla ayağa kaldırılır. (@ init.rc)

Page 7: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Yükleme:

• Installer uygulaması aracılığıyla sisteme yüklenir (root

yetkileri gerektirir).

• Extended bir app_process çalıştırılabilir dosyası hali

hazırda var olan dosyanın yerini alır.

• ClassPath’e XposedBridge.jar kütüphanesini ekler ve

bu kütüphanedeki metodları gerektiğinde çağırır.

• Böylece XPosedBridge.jar kütüphanesinden gerekli

metodları Zygote process’inin bir parçasıymış gibi

çalıştırabilir.

• https://github.com/rovo89

Xposed Framework

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 8: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Method Hooking/Replacing:

• Framework’ün asıl gücü hedef uygulamadaki metodları hook’layabilmesinden gelir.

• APK’yı modifiye etmek yeterli olmaz mı?

• Decompile/Compile/Sign Döngüsü

• Redistribution

• Yazacağınız bir Xposed modülü ise hedef metodun öncesinde ve sonrasında sizin kendi

kodunuzu çağırmanızı veya hedef metodu direkt olarak override etmenizi sağlar.

Xposed Framework

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 9: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Xposed Framework

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 10: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

2Android Platformunda Örnek Saldırı

Senaryoları

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 11: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

JustTrustMe

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 12: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

SSL Pinning?

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 13: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

SSL Pinning?

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 14: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

RootCloak

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 15: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Root?

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 16: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

CryptoLogger

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 17: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

3iOS Runtime, Cydia Substrate API

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 18: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

• Substrate C API, hedef platformlarda kod instrumentasyonu yapmanıza olanak sağlar.

• Hedef platformdaki objenin veya metodun argümanlarını, return değerlerini ve hatta

implementasyonunu değiştirmenize olanak sağlar.

• C/C++/Assembly, Objective-C ve Java (Android/Dalvik) platformlarını destekler.

• C seviyesinde çalışır.

• Android 4.3’ün üstünü desteklemez. (ART?)

Cydia Substrate API

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 19: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Cydia Substrate API Hello World – Adım 1 – Binary Decryption

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 20: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Cydia Substrate API Hello World – Adım 2 – Tweak Oluşturma

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

THEOS SDK

• Linux, MacOS ve Windows (Cygwin) desteği bulunur.

o Windows: https://coolstar.org/theos.pdfo Linux/OSX: http://iphonedevwiki.net/index.php/Theos/Setup

Page 21: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Cydia Substrate API Hello World – Adım 2 – Tweak Oluşturma

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Logos

• Preprocessor tabanlı bir kütüphanedir.

• Tweak yazma işlemini kolaylaştırır.

Page 22: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Cydia Substrate API Hello World – Adım 3 – Tweak’i Yükleme

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

• Oluşturulan dylib ve plist

dosyaları

/Library/MobileSubstrate/D

ynamicLibraries/ dizinine

kopyalanır.

• Hedef uygulama (kelime

oyunu) yeniden başlatılır.

Page 23: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

4iOS Platformunda Örnek Saldırı

Senaryoları

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 24: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Snoop-it

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 25: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

IntroSpy

Page 26: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

iOS SSL Kill Switch

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 27: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

xCon

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

Page 28: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Flex

OWASP-TR Mobil Güvenlik Çalıştayı ‘15

• NBA Game Time App

• Sadece method overriding

Page 29: [OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile Applications At Runtime

Teşekkürler.

When next year’s crop of high-school graduates arrive at Oxford University in the fall of 2009, they’ll be joined by a new face;

Andrew Hamilton, the 55-year-old provost of Yale, who’llWhen next year’s crop of high-school graduates arrive at