iOS’tan Wireshark ile Network Paketi Almak
Merhabalar,
Bu yazımızın konusu network analizi üzerine olacak. Yakın zamanda iş yerinde yeni implement edilen bir özellikle ilgili yavaşlık şikayeti gelmişti. Ürün prod çıkışını yaptı ancak müşterilere henüz açılmadı. Şikayet iş biriminden “x ekranından y işlemi esnasında z ekranı açılırken yavaşlık” olarak gelmekte ancak o yavaşlık denen yerin arkasında çok fazla akış gerçekleşmekte.
İşin içerisinde mobil cihaz, native uygulama, webview, kubernetes servisleri, sanal sunucularda koşan servisler olmak üzere çok fazla bileşen mevcut. Hemen APM ürünümüze sarılarak ilgili sunucu kurulumlarını yapıyoruz ancak onun da izleyemediği noktalar çıkıyor. Bir network monitoring toolu ile gerçek zamanlı network analizine bakıyoruz ve iki toolda da kayda değer bir şey sunucu tarafında bulamıyoruz.
Böyle bir durumda odağımı client tarafına kaydırarak client odaklı inceleme yapmaya karar verdim. Burada daha önce denemediğimiz bir yöntemi deneyecektik. Aslında mükemmel yeni bir icat değil bulduğumuz. Ancak ilk defa ihtiyacımız olduğundan ilk defa kullandık böyle bir şeyi.
Önce gerekliliklerden başlayalım;
- WireShark
- XCode yüklü bir Mac
- iPhone’u Mac’e bağlamak için bir kablo
Öncelikle iPhone’u Mac’e bağlayarak XCode’u açıyoruz. Bu iş için bize iPhone’umuzun “identifier” diye geçen kimlik numarası gerekiyor. XCode açıldıktan sonra üst menüde Window > Devices and Simulators sekmesine geliyoruz. Burada sol menüde Connected altında iPhone’umuzu seçerek açılan ekranda, Identifier numarasını bir kenara yazıyoruz.
Sonrasında bir terminal ekranı açarak /Library/Apple/usr/bin konumuna gidiyoruz.
cd /Library/Apple/usr/bin
Sonra da bu konumda bulunan rvictl servisine, iPhone’umuzu virtual interface olarak başlatmasını isteyeceğiz. Kopyaladığımız identfier numarasını burada kullanıyoruz.
./rvictl -s <identifier of iPhone>
Aşağıdaki gibi success mesajı ve interface adını göreceksiniz.
Şimdi bu interfacei Wireshark üzerinde arayalım.
Görüldüğü üzere interfaceimiz eklenmiş ve packet capture için hazır ve nazır bir şekilde bekliyor. Bu noktada kesinlikle caputre filtrelerle başlamanızı öneririm. Bütün sosyal medyalardan, e-ticaret uygulamalarından vs. nedeniyle telefondan akan trafiğin haddi hesabı yok görünüyor çünkü. Zaten capture filter koymadan başlarsanız ne demek istediğimi göreceksiniz.
İşiniz bittikten sonra interfacei durdurmak isteyebilirsiniz. Onu da cihaz hala bağlıyken -s yerine -x komutuyla yapabiliyorsunuz.
./rvictl -x <identifier of iPhone>
Buradan sonra başarılı bir şekilde interfacein durdurulduğunu ve Wireshark ana ekranından da kalktığını göreceksiniz.
Kaynak: https://forums.ivanti.com/s/article/KB44358?language=en_US