Whatsapp in da incelenme sırası geldi.. 2018 yılında Turkcell BIP ile birlikte incelemiş ve o zaman ki haliyle yayımlamıştım.. Turkcell BIP de olduğu gibi yeniden inceleyip en yeni detayları yazmak istedim..
Bu incelemede diğer incelemelerimden farklı bir takım yazılım ve yöntemleri de eklemem gerektiğini gördüm.. Elimde jailbreak li IPhone 8 Plus da var ve hazırım.. Reflection yapan veya resource lari şifresiz açan yazılımlara ek olarak WireShark ve Frida gibi yazilimlari da bu incelemeye ekledim.. Bundan başka whatsapp ın web sitesinde paylaştığı White Paper I da yanımıza alıp ondan da faydalanacağız.. Aynı anda Android APK ve IOS versionlarına kafam karışmasın diye arada karşılaştırıp bakıp yorumlarımı öyle yazacağım..
Çünkü işimiz Whatsapp gibi yazılımlarda oldukça zor.. Neden olduğunu ben gördüm siz de anlattıklarımla görürsünüz diye düşünüyorum..
Yazının sonunda da Whatsapp ve mühendislerine de bazı tavsiyelerimiz olacak mı bakacağız..
Yukaridaki tool lari kullanarak ve çıkanları da gözümüz ve tecrübemizle yorumladığımızda bakın ortaya neler çıktı?
Whatsapp STUN Server kullanıyor.. Yani kullanıcılar birbirleriyle P2P bağlantı kursun diye..Bunu sağlıyor.. Özellikle firewall arkasında vb kullanıcının dış dünyaya açıldığı IP adresinin arkasındaki adresini NAT lıyor ve dış dünyadaki biriyle görüşebilmesini sağlıyor..
Özellikle bir çok UDP ve TCP paketi görmek mümkün mobil yazılımın çalışması esnasında..TCP paketleri özellikle kullanıcı ve Whatsapp server ları arasında konuşmada gerçekleşiyor arka planda siz görmüyorsunuz bunlari.. UDP paketleri ise arayan ve aranan kişiler arasında bilgi akışında kullanılıyor..Whatsapp in kendi yayınladığı bir White Paper var web sitesinde orada UDP paketlerinin arama verisini içeren SRTP dediğimiz Secure Real Time Protocol paketleri olduğunu anlatıyor.. Peki nedir bu SRTP protokolü; RTP dediğimiz Real Time Protocol paketlerinin replay yapilmasini önlemek ve korumak için encryption, mesaj authentication ve integrity yani veri tutarliligi ile koruma sağlıyor.. UDP daha hızlı olduğundan görüntü iletişiminde yani SRTP de kullanılıyor.. Aslında SRTP bildiğimiz RTP yi şifreleyen protokol.. ister video yayını ister canlı görüşme yapın.. Canlı video yayını yazılımı yapanlar bilirler..
Yani görüyoruzki Whatsapp aramaları güvenli yapmak ve korumak için SRTP protokolü kullanmis.. Bunu da Whatsapp dan birini arama yaptığımızda iki kişi arasındaki UDP paket geçişlerinin yapisina baktigimizda anliyoruz..AYni zamanda bir de TCP paketleri var ve bunlar da kişi ile Whatsapp server lari arasinda gidip geliyor..Bunlar Noise Pipes Protocol ile encrypt edilmiş mesajlari içeriyor.. 🙂 bu iyi bir balık yakalama !
Whatsapp yazılımını kırdığımızda ana library olarak içeriden bizi ilgilendiren 2 binary dosya cikiyor..Whatsapp uygulama binary si ve Whatsapp ın Core Framework ü..
Böyle bir işlemi mutlaka jailbreak li bir IPhone da yapmak gerekiyor.. Benim elimde IPhone 8 Plus var ve Jailbreak li… Sonrada bfdecrypt isimli yazılımlarla decrypt edebilirsiniz.. Bakalım bu binary lerin içinde neler var :
libsrtp
Whatsapp libsrtp yie yukarıda bahsettiğim SRTP protokolunu kurmak için kullanıyor..Merak edenler için : SRTP protokolunde AES-128-ICM encryption I kullanılıyor
libsignal-protocol-c
şaşırmadınız değil mi? SIGNAL yani.. Evet aynen açık kaynak kodlu signal protokolunu kullanıyor.. Kısaca Whatsapp mesajlarini şifrelemek için kullanılıyor..
mbed TLS
Whatsapp mbed TLS I kullaniyor ve o da TLS protokolünü kuruyor yani TLS için..TLS Transport Layer Security.. SSL in gelişmiş şekli..
XMPP
Bunu zaten biliyor herkes.. Whatsapp Extensible Messaging and Presence Protocol yani XMPP yi kullanıcılar arasındaki mesajların asenkronize olarak gönderilmesi için kullanıyor..
PJSIP
Whatsapp PJSIP yi multimedia iletişimi, signaling ve ses ile video yu encoding yapmak için kullaniyor.. PJSIP bu arada STUN desteğini de kuruyor yani implemente ediyor.. Peki bu library yi biz nasıl gördük: Kullandığımız örneğin wireshark yazılımı ile whatsapp yazılımcıları string sabitler kullanmislar debug icin işte orada görülüyor..
Noise Protocol Framework e gelelim çünkü balığı tam da burada yakalıyoruz 🙂
Whatsapp ın paylaştığı White Paper a göre bu protocol kullanıcı ve server lar arasında iletişimi güvenli yapmak için kullanılıyor.. Binary lerin içinde yine bazı static sabitlerin kullanilmis oldugunu görüyoruz.. Bunlar kullanıcılar tarafından kurulan el sıkışma dediğimiz desenler..
Bunu kodlayanlar açısından bu kötü bir nokta..
Yine Whatsapp ın White Paper ina bakarsak sesli konuşmalarda random denilen gelişiguzel bir 32 byte SRTP master secret verisi oluşturuyor.. Bununla encrypt ediyor konuşmaları..Yani arayan kişi aradığı an bu oluşturuluyor ve karşı tarafa bir mesaj ile arandığı bilgisi SRTP kaydı ile gönderiliyor..
Bu arada giden ve gelen veri süreçlerini iyi izlediğimizde , analiz ettiğimizde (Hangisi master secret, ratchet algoritma verisi, HMAC-SHA256 verisi vs vs ) bu yapıları tamamen görüyoruz..
Ve bu süreç yani arama yukarıdaki işleri yaptıktan sonra bir XMPP mesajı gönderiyor..
Yazılımın çalıştırılması esnasında XMPP ile ilişkili Objective-C fonksiyonlarını izleme yaparsak XMPPStream class I içinde metodları inceler takip edersek Whatsapp server lara TCP protokolu üzerinden Noise Pipes Protocol ile şifrelenmiş XMPP mesajları olduğunu görüyoruz.. Vay vay..
Aslında kriptolu escooter yazılımlarını kırarken de benzer bir class ın üzerinden tüm yapıyı kırmıştık.. Ki o yazıyı okuyanlar dikkat etsin buna.. Biz zaten bu tip yerleri yakalamaya çalışırız..
Burada ne görüyoruz peki; istediğimiz veriyi bir süre sonra değiştirebilip A kişisinin B kişisini aradığında biz araya girip C kişisinin B yi aramasını sağlayabiliyoruz söyleyeyim.. Yani A kişisinin call- creator ve from parametrelerine C kişisinin JID sini yazıyoruz XMPP mesajına..
Bundan başka yazılım cihaz ve kişisel verilerimizi zaten alıp saklıyor ki saklamayan yazılım yok gibi.. Bu cümleme kafasını takan BIP severler var diye geri dönüş aldım.. Hem BIP hem de Whatsapp ve tüm benzer uygulamalar bu tipteki verileri saklıyor zaten.. Ancak BIP bunun ötesinde veri topluyor.. 2020 yılında aldıkları 134 patent den 2 tanesi tam da bu verileri kullanmak üzerine kurulmuş.. Bu da bizim haklılığımızı gösteriyor.. Turkcell BIP incelememin en başında bu açıklamamı bulabilirsiniz..
Sonuç olarak 2 kötü kısım var Whatsapp da: biri bir kişiyi ilk aramada ki biz buna initial call yani biz aramaya bastığımızda daha bağlantı kurulmadan bir veri gönderilir karşıya işte o anda XMPP verisine o sürecin içinde ulaşabilip değiştirebiliyoruz.. Yani uzmanlar yapabilir bunu..Bu da açık demek.. Bundan başka yazılımın içine Whatsapp yazılım mühendisleri string sabitler koymuş ve unutmuş gibi.. Bu eski sürüm Turkcell BIP de de vardı ve şimdi tamamen düzeltilmiş ve veritabanından alıyor.. Bunları izleyen uzman biri uygulamanın kritik verilerini alıp istediği fonksiyonlara ulaşmak için kullanabilir..
Kalın sağlıcakla..
Selcuk Celik
Bip in topladığı verileri, analitik işlemeyi anlatırken yerden yere vuruyordunuz, sıra whatsapp a gelince “saklamayan yazılım yok gibi” mi oldu?
Tümü cihazın markası, modeli özellikleri, şehir vb yaziyor.. Ancak BIP her şeyi yaziyor sizin mesajlarinizi dahi..Fark bu … Bugün ortaya çıkan bir habere göre Turkcell 134 adet patent başvurusu yapmış ve bunlardan 2 tanesi işte bu aldıkları vrilerle ilgili.. Sizin verilerinizi alip duygu analizi yapip size müzik öneren bir patent ve diğeri de sizin psikolojinizi ölçüp kaydedeceklermiş.. Yani mesajlarinizdan yapacaklar… Sakin ol şampiyon
Blogunuzu okurken , 98 de Rus Underground’ında başlayıp 2000 li yılların başında kurduğumuz Türk Reverse ve Crack Forumlarında kibeyin fırtınalarının heyecanını yaşadım üstad. Emeğinize sağlık.
Rica ederim.. Yorumunuz çok güzel ve nostaljik..
Müthiş bir yazı olmuş hocam elinize sağlık. Bu tarz ileri düzey programların reverse engineering işlemlerinin anlatıldığı bir udemy kursu yapsanız çok güzel olurdu. Umarım düşünürsünüz. Teşekkürler
Kötü niyetli insanlara ilerisini öğretmem..