Son günlerde iPhone sahiplerinin birbirlerine en çok sordukları soru “Takip mi ediliyoruz?” Bu soru Pete Warden ve Alasdair Allen’in geliştirmiş oldukları uygulamanın [1] ardından bilişim dünyasının ve özellikle de Apple iPhone kullanıcılarının gündemine oturdu. Çıkan tartışmanın en önemli sebebi bu konum bilgisinin yedekleme dosyalarının içerisinde kullanıcının bilgisayarında tutuluyor olması. Normal şartlarda Jailbreak [4] yapılmamış bir iPhone’a yüklenen hiçbir uygulama bu konum bilgisinin tutulduğu veritabanı dosyalarına erişemiyor; ancak bu veritabanı dosyası yedekleme sırasında kullanıcı bilgisayarına aktarıldığından herhangi bir bilgisayar yazılımı tarafından kolayca erişilebilir ve incelenebilir hale geliyor. Bu yazıda son günlerin en çok konuşulan gündem maddesi iPhone ile konum takibi konusu incelenecek ve gerçeklenmeye çalışılacaktır.
Şekil 1 – iPhone’un Bilgisayara Bağlanması ve Yedekleme İşlemi
Biraz daha teknik detaya girmek gerekirse, iPhone bilgisayara bağlandığında senkronizasyon işlemine başlar ve bu sırada iPhone’un yedeğini alınıp MAC OS X işletim sistemi üzerinde
/Users/<youruser name>/Library/Application Support/MobileSync/Backups/
dizini altında, Windows işletim sisteminde de
C:\Users\<your username>\AppData\Roaming\Apple Computer\MobileSync\Backup
dizini altında bu yedek dosyaları tutulur. Dolayısıyla telefon üzerinde tutulan konum bilgisi, cihaz bilgisayara her takıldığında bilgisayara aktarılmış olunur. Bu Backup dizini içerisinde Manifest.mbdb ve Manifest.mbdx dosyaları bulunur. Bu dosyalar Bakcup klasörü içerisindeki anlamsız görünen dosyaların gerçek adlarını ve konumlarını tutan index dosyalarıdır.
Şekil 2 – Bakcup Dizini ve Index Dosyalarını Ayrıştıran Betiğin Çalıştırılması
Backup dizini altında anlamsız görünen dosya adlarının gerçekte hangi dosyaya işaret ettiğini, Manifest.mbdb ve Manifest.mbdx dosyalarının ayrıştırılması (parse edilmesi) ile görülebilmektedir. Konum bilgisinin tutulduğu veritabanı dosyası consolidated.db dosyasıdır. Manifest.mbdb ve Manifest.mbdx dosyasını ayrıştırabilen ve İnternet üzerinden kolayca bulunabilen bir python kodu ile bu dosyalar ayrıştırıldığında (Şekil 2) çıktı olarak verilen satırlardan
-rw-r–r– 00000000 00000000 4616192 1303608960 13036089601287161679
(4096c9ec676f2847dc283405900e284a7c815836)RootDomain:
:Library/Caches/locationd/consolidated.db
satırı önem arzetmektedir. Çünkü bu satır consolidated.db dosyasına işaret eden dosyanın adını vermektedir. Yukarıdaki örnekte bu dosyanın adı 4096c9ec676f2847dc283405900e284a7c815836‘dır. Bu bir SQLite veritabanı dosyasıdır ve herhangi bir SQLite veritabanı yönetici yazılımı vasıtasıyla açılıp okunabilir. Bu dosyanın SQLite veritabaı yöneticisi ile açılabilmesi için uzantısının .sqlite olara düzeltilmesi gerekebilmektedir. Veritabanı açılıp incelendiğinde CellLocation ve WifiLocation tabloları dikkat çekmektedir. Bu tabloların Latitude ve Longitude kolonları bize konum bilgisinin enlem ve boylam cinsinden değerini verirken TimeStamp kolonu ise bize 1 Ocak 2001 yılından kaydın düşüldüğü tarihe kadar olan zamanı saniye cinsinden vermektedir.(Şekil 3)
Şekil 3 – consolidated.db Dosyasının SQLite Manager Yazılımı ile İncelenmesi
Şekil 4 – Harita Üzerinde Konum Bilgisinin Gösterilmesi
Bu veritabanı dosyasından ototmatize olarak enlem boylam ve zaman değerlerini çekip bu enlem ve boylama ait adresleri ekrana basan bir python betiği yazıldığında Şekil 5’de gösterildiği gibi kullanıcın bulunduğu lokasyonların zamana göre listesini çıkarmak mümkün olabilmektedir.
Şekil 5 – Kullanıcı Konum Bilgisinin Ototmatize Olarak Listelenmesi
Kısaca özetleyecek olursak, Apple kullanıcıların Wifi bağlantısı gerçekleştirdikleri veya hücresel ağ kullandıkları zamanlarda belirli aralıklarla konum bilgisini kaydetmekte ve bunu kullanıcı bilgisayarlarına yedekleme sırasında aktarmaktadır. Apple’ın merkezinin bulunduğu California eyalet kurallarına göre herhangi bir şekilde kullanıcı konum bilgisinin cihaz içerisinde saklanması yasaktır ancak Apple’ın bu konum bilgisinin hangi amaçla ve hangi kurallara dayanarak tutulduğu konusunda herhangi bir açıklama henüz yapılmış değildir. Bu konuda dile getirilen birkaç farklı görüş vardır. Bunlardan birincisi ve pek de rağbet görmeyen düşünce bu konum bilgisinin bir hata sonucu tutuluyor olduğu ve bu hatanın bir sonraki iOS sürümünde düzeltileceği yönünde. İkinci ve en önemli görüş de Apple’ın böyle bir bilgiyi kullanıcı sözleşmesinde yer alan “Tüketici davranışlarını anlayıp ürünler ve hizmetlerimizi geliştirme ve reklam amaçlı olarak Apple ürünlerinin nerede ve ne zaman kullanıldığı, kullanan kişinin mesleği, dili ve posta kodu gibi bilgileri toplayabiliriz” [3] maddesine dayanarak tutulduğu yönünde. Daha önce de söylediğimiz gibi Apple’dan henüz bu konu hakkında herhangi bir açıklama yapılmış değil. Dolayısıyla kullanıcı gizliliğini tehdit eden bu durum karşısında Apple’ın nasıl bir tepki vereceği merak konusu.
Yedeklemenin yapıldığı sistem: Windows 7 Enterprise Edition
İncelemenin yapıldığı sistem: Fedora 14 Desktop Edition
SQLite Veritabanı Yöneticisi: Firefox SQLite Manager 0.7.1 [5]