Mobil cihazlar gün geçtikçe hayatımızın ayrılmaz bir parçası haline geliyor ve bu cihazları daha da bir vazgeçilmez kılan şeylerin başında bu cihazlarda çalışan mobil uygulamalar geliyor. Bizler de güvenlik uzmanları olarak gerek bu mobil cihazların gerekse bu cihazların üzerinde çalışan uygulamaların güvenliklerini test ederek bunların üreticileri yada dağıtıcıları ile çalışıyoruz ve kullanıcılara daha güvenli ortamların sunulmasına ön ayak oluyoruz. Bu çalışmalarımızda yer alan adımlardan birisi de ilgili mobil cihazın üzerindeki işletim sisteminin ve bu cihaz üzerinde çalışan uygulamaların ağ trafiklerini analiz edip bu trafik üzerinden gerekli zafiyet analizlerini gerçekleştirme işlemidir. Bu makalede mobil cihaz dünyasında önemli bir pazar payına sahip iPhone ve iPad'lerin üzerinde çalışan iOS işletim sisteminde ağ trafiğini nasıl elde edebileceğimizi anlatacağım.
(Burada anlatacağım yöntem herhangi bir şekilde araya girme yöntemi olmayıp, iOS cihazların ağ trafiklerinin birebir kopyasının alınması esasına dayanır. Bu yöntemin haricinde proxy uygulamaları kullanılarak iOS cihazlardaki uygulamaların trafiğinin arasına girilebilir. Bu konu sonraki makalelerin konularından biri olabilir diyerek mevcut konumuza devam ediyoruz:))
Öncelikle şunun altını çizelim; iOS cihazlarda direkt olarak "packet tracing" desteği gelmiyor. Fakat bu cihazları USB port üzerinden ile Mac bilgisayara bağladığınızda OS X'in packet tracing özelliğini kullanarak ilgili iOS cihazların paketlerini yakalayabiliyorsunuz. Bunun için iOS 5 sürümünden itibaren desteklenen "Remote Virtual Interface" i kullanacağız. Mac bilgisayarımızda ilgili remote virtual interface'i yönetmek için kullanacağımız programın adı "rvictl". Bu uygulamayı herhangi bir parametre kullanmadan çalıştırırsanız aşağıdaki şekilde gösterildiği gibi bir yardım ekranı ile karşılaşırsınız ve size bu uygulamayı nasıl kullanmanız gerektiği gösterilir.

Öncelikle bu uygulamaya hangi cihaz üzerinden paket yakalama işlemi yapacağını söylememiz gerekiyor. Bunun için -s parametresi ile birlikte ilgili cihazın UUID'sini belirtmemiz gerekiyor. Bilgisayarımıza bağlı olan cihazın UUID'sini öğrenmenin bir çok yolu var fakat en hızlı şekilde iTunes üzerinden ilgili cihazın seri numarasının yazdığı yere mouse ile bir kez tıklamak. Bu işlemin ardından seri numarası yazan yerde artık cihazın UUID'sni görürüz. Aşağıdaki ekran görüntüsünde örnek olarak kullanacağımız cihazın UUID'sini görebilirsiniz.

UUID değerini öğrendiğimiz cihaz için remote virtual interface tanımı yapmak için aşağıdaki şekilde gösterildiği gibi komutu çalıştırıyoruz.

Başarılı şekilde sanal arayüzümüz oluşturrulduktan sonra bu arayüzün hangisi olduğunu öğrenmek adına ifconfig uygulamasını -l parametresi ile kullanıyoruz. Aşağıdaki ekran görüntüsünde örnek bir çıktı yer almaktadır.

Görülebileceği üzere rvi0 isminde bir arayüz oluşturulmuş durumda. Bu aşamadan sonra Mac uyumlu herhangi bir paket yakalama aracı ile bu arayüz üzerinden cihaza ilişkin ağ trafiğini yakalayabilir durumdayız. Bunun için tcpdump veya Wireshark'ı kullanabilirsiniz. Aşağıdaki ekran görüntüsünde tcpdump uygulamasını kullanarak iOS cihazın ağ trafiğini bir pcap dosyasına nasıl yazdırılacağı gösterilmiştir.

Paket yakalama işlemi bittikten sonra paket analiz yazılımlarından dilediğinizle bu paketleri analiz edebilirsiniz. Aşağıdaki ekran görüntüsünde yakaladığımız paketlerin Wireshark ile analizine ilişkin örnek bir ekran görüntüsü yer almaktadır.




