Daha önceki bölüm iOS Tabanlı Uygulamalar İçin Sızma Testi Metodu - 2. Bölüm 2. Kısım'dı. Bu bölümde kaldığımız yerden (Keychain'de Saklanan Verilere Erişim) devam ediyoruz.
Uygulamaya ait yetkiler, uygulama ikili(binary) dosyalarına
gömülüdür ve kriptosuz olarak saklanmaktadır. Bu nedenle Jailbreaked cihazlarda, uygulamalara ait
yetkiler grep ya da sed(stream editor – Cydia’dan indirilebilir) komutları
kullanılarak uygulama ikili(binary) dosyalarından çıkartılabilmektedir.
Uygulama yetkilerini görüntülemek için, cihaza SSH ile
bağlanıp uygulama dizinine geçerek aşağıdaki komutu yazıyoruz. Örnek olarak
kullandığımız uygulama Snapchat uygulamasıdır.
sed -n '/<dict>/,/<\/dict>/p' Snapchat.app/Snapchat
iOS simülatörlerinde, tüm uygulamalar ortak bir keychain erişim
grubuna dahil olduğundan, uygulamalar keychain’de bulunan tüm veriye
erişebilmektedir.
<<Önceki Bölüm Sonraki Bölüm>>
Oluşan bu çıktıda görüldüğü üzere Snapchat uygulaması,
keychain’de veri saklama amacıyla “3MY7A92V5W.com.toyopagroup.picaboo” erişim
grubunu kullanmaktadır.
Bir uygulama keychain veritabanına bir girdi eklediğinde, uygulamaya ait uygulama tanımlayıcı(application identifier) ya da keychain erişim grup(keychain access group) bilgisi de ilgili girdinin agrp(access group) kolonuna eklenmektedir. Daha sonra uygulama bu girdiye ulaşmak istediğinde, keychain servisi bu iki bilgiden birini doğrulayarak erişim izni verir. Örnek bir keychain dosyası aşağıda bulunmaktadır. Snapchat uygulamasına ait girdi de işaretlenmiştir.
iOS cihazlara veri koruma mekanizmasının gelmesiyle birlikte, keychainde tutulan hassas verilerin korunmasına yönelik ek bir koruma katmanı eklenmiştir. Bu katman, verilerin, cihaz donanım anahtarı ile kullanıcı parolasından türetilen bir kripto anahtarıyla kriptolanması işlemini içermektedir. Dolayısıyla kullanıcı parolasının güçlü oluşuyla veri koruma mekanizmasının güçlülüğü doğru ortantılı hâle gelmektedir. Bu mekanizma, cihazın kayıp/çalıntı durumuna düşmesi durumunda kullanıcı verilerini korumaya yöneliktir.
3.2.3.4. Keychain’de Saklanan Verilerin İncelenmesi
iOS uygulamalarının, kullanıcı bilgilerinin tekrar tekrar
girilmesini önlemek ve uygulamanın yeniden kurulması ya da uygulama sürümünün
yükseltilmesi ihtiyaçlarından dolayı hassas bilgileri keychain veritabanında
sakladığını söylemiştik. Ancak bu uygulamalardan bazıları, bu hassas bilgileri
keychainde kriptosuz olarak tutmaktadır. Bu nedenle sızma testleri sırasında,
keychain değerlerinin dikkatle incelenmesi gereklidir. Keychain veritabanına
erişim kısıtı olduğundan bahsetmiştik. Jailbreaked bir cihazda bu kısıt
aşılarak keychain veritabanının dökümü alınabilir ve içeriği incelenebilir.
Bu kısıtın nasıl aşılabileceğine ilişkin çok fazla ayrıntıya
girmeden, kısıtı açmaktan kastımızın ne olduğunu ifade etmekle yetineceğiz.
keychain_dumper isimli araç, “*” jokerini(wildcard)
kullanarak imzalandığı için, keychain veritabanındaki tüm verilere
erişebilmektedir.
Bu araca ulaşabileceğiniz adres şu şekildedir:
https://github.com/ptoomey3/Keychain-Dumper/downloads
https://github.com/ptoomey3/Keychain-Dumper/downloads
Aracı indirdikten sonra, iOS cihazımıza WinSCP gibi bir programla bağlanıp /private/var/root dizinine aracı kopyalayıp çalıştırma iznini verdikten sonra çalıştıracağız.
Aracı çalıştırdıktan sonra genp(jenerik parola) ve inet(internet parolası) tablolarındaki tüm veriler görüntülenecektir.
cert ve keys tablosundaki verileri görüntülemek için aracı –c parametresi ile çalıştırmak yeterlidir.
<<Önceki Bölüm Sonraki Bölüm>>