HP ShadowOS ile Android Güvenlik Testleri

Merhaba

ShadowOS, HP Fortify ekibi tarafından QA takımları için android uygulamalarına güvenlik testlerinin gerçekleştirilmesini kolaylaştırmak amacıyla geliştirilmiş ücretsiz bir yazılımdır. Tahmin edeceğiniz üzere Android’in özelleştirilmiş bir versiyonu ve Kitkat’ı kullanarak, işletim sisteminin belirli operasyonlarını intercept etmektedir. Windows üzerinde emulator olarak çalışan ShadowOS herhangi bir donanım gerektirmemektedir.

ShadowOS Nasıl Çalışır ?

Daha öncede belirtildiği üzere ShadowOS, Android işletim sisteminin özelleştirilmiş halini emulator olarak çalıştırılmasını temel almaktadır. Bu sayede File I/O veya HTTPS encryption gibi aşamaların tamamına işletim sistemi seviyesinde müdahile edilebilmektedir. Örneğin; mobil uygulama web trafiği analizi için en sık kullanılan yöntem, Burp Suite’ın sertifikasını export et, pem ve der arası değişilikleri sağla, Android telefona indir, sertifikayı import et, ağ ayarlarından proxy ayarla vb adımlar uygulanır. ShadowOS emulatör’ü ile herhangi bir proxy ve sertifika tanımlaması yapmadan doğrudan plain-text HTTP trafiğini görebilirsiniz. ShadowOS custom Android kaynak kodu içerdiği için SSL pinning vb yöntemlerin var olmasına rağmen size HTTPS trafiğin plain-text halini gösterecektir.

Listelemek gerekirse, ShadowOS aşağıdaki işletim sistemi aksiyonlarını yakalar.

  • Web Trafiği ( HTTP, HTTPS ve WebKit talepleri )
  • File Access ( Erişilen veya oluşturulan dosyanın adı, path’i ve read/write erişimleri )
  • SQL Lite ( Uygulama tarafından üretilen tüm SQL sorguları )
  • Cordova/PhoneGap ( WebKit temelli uygulamaların oluşturduğu tüm web trafiği )

Bu sayede uygulamanın ürettiği tüm Web talepleri, local veri tabanına yazdığı/sildiği/çizdiği tüm SQL sorguları ve eriştiği dosyaların adı, içeriği vs görüntülenebilir.

ShadowOS Kurulum

Kurulumu son derece kolaydır. Öncelikle aşağıdaki bağımlılıkların karşılanması  gerekir.

Bu ön işlemler tamamlandı ise, http://go.saas.hp.com/shadow-os adresinde ki form’u doldurarak ShadowOS emulatörünü indirebilirsiniz.

ShadowOS Kullanımı

Android SDK ve .NET 4.5 kurulumu tamamlandıktan sonra ShadowOS.exe dosyasına çift tıklayarak uygulamayı başlatabilirsiniz. Sizi ilk karşılayacak ekran aşağıdaki gibidir.

Screen Shot 2015-04-27 at 00.22.51

Ben ShadowOS uygulamasında yapacağımız test sürüşlerinde, kullandığım bankanın Android uygulamasını (İşCep) test edeceğim. Bu demek oluyor ki, güvenlik testi yapmak istediğiniz uygulamanın .apk’sına sahip olmalısınız. Bu apk’yi ShadowOS içerisinde açarak intercept işlemleri gerçekleştirilecektir. Zaten Mobile Pentest sözleşmenizde de test edilecek apk’ların hash değerlerinin olduğunu ve uygulamaların size test öncesi gönderilecek olduğunu düşünürsek, bu herhangi bir problem olmayacaktır.

İlk adım olarak START EMULATOR diyerek APK’yı yükleyeceğimiz ShadowOS emulatörünü açıyoruz. Bu işlem biraz zaman alacaktır. Özellikle benim gibi sanal makina içerisinde Android emülatörü açıyorsanız, bu işlem biraz zahmetli olabilir.

Emulatör açıldığında, ardından INSTALL APP butonu ile bilgisayarınızda ki APK dosyasını seçiniz. Böylece emulatör üzerinde uygulamanız açılmış olacaktır. Uygulamanın kurulum aşaması esnasında SQL sorguları ve File Access işlemleri olacaktır. Bunları CLEAR EVENTS butonu ile uygulamayı açmadan önce temizleyiniz.

Kurulum tamamlandığında aşağıdaki gibi bir ekranda uygulamanın kurulduğunu görebilirsiniz.

ShadowOS EMu

 

İlk karşılaşılan hata, uygulamanın root’lanmış bir cihazda çalıştığını fark edip kullanıcıyı uyarması olacaktır. Daha öncede belirttiğim üzere customize edilmiş Android kaynak kodu üzerinde çalıştığımız için bu hatanın alınması son derece normaldir.

İşcep Emulator

 

Devam butonuna basılması ile birlikte aşağıdaki Web trafiğinin oluştuğu görülmektedir. Bu talepte gönderilen veriye bakarak, uygulamanın versiyon kontrolü yaptığı tahmin edilebilir.

ShadowOS Web traffic

Tahmin edebileceğiniz üzere, internet bankacılığı uygulamasında, web trafiğinin hepsi HTTPS  ile gerçekleştirilir ve mobil uygulamada SSL pinning tekniği uygulanır. Tüm bu teknikler ile tek tek uğraşmadan doğrudan ShadowOS bize web trafiğinin plain-text halini gösterebilmektedir.

Yazıyı okuyan ve “Hayda! İşCep’e saldırı düzenlemiş. Birde blog yazısı yazmış. Eşeğin aklına karpuz kabuğu sokmayın.” bağnazlığının önüne geçebilmek adına herhangi bir başka bir adımı tamamlamadan yazıyı burada noktalıyorum. Zira ShadowOS uygulaması ile ilgili önemli bilgilerin anlaşıldığını düşünmekteyim.

NOTLAR

NOT 1 : Android SDK kurulum esnasında JDK’nın kurulu olması isteyecektir. Bilginize.

NOT 2: Ayrıca Android SDK’nın çalışabilmesi için sisteminizde Intel HAXM’in kurulu olmasını gerecektir. ( https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager-end-user-license-agreement )