Beyaz Saray resmî uygulamasının ağ trafiği ele geçirilip analiz edildiğinde ortaya çıkanlar
(atomic.computer)- Beyaz Saray iOS uygulamasının gerçek HTTPS trafiği bir MITM proxy ile yakalanarak hangi sunucular ve verilerle iletişim kurduğu analiz edildi
- Uygulama, whitehouse.gov dışında da Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter dahil 31 üçüncü taraf ana makineyle iletişim kuruyor
- OneSignal'a dil, saat dilimi, IP, cihaz modeli, oturum sayısı gibi kullanıcı profilleme bilgileri sürekli gönderiliyor
- Elfsight widget yükleyicisi üzerinden harici script'ler çalıştırılıyor ve Google DoubleClick reklam izleme kodu da uygulama içinde çalışıyor
- Uygulamanın gizlilik manifestosunda “veri toplanmıyor” olarak belirtilse de, gerçekte çok sayıda üçüncü taraf izleme ve veri aktarımı gerçekleşiyor
Ağ trafiği analizine genel bakış
- Beyaz Saray resmî iOS uygulamasının ağ trafiği MITM (man-in-the-middle) proxy ile yakalanıp analiz edildi
- macOS ortamında mitmproxy kuruldu ve iPhone'un tüm HTTPS trafiği proxy üzerinden kaydedildi
- Uygulama sürümü v47.0.4 (build 81) ve Home, News, Live, Social, Explore sekmelerinin tamamı gezildi
- Trafik üzerinde değişiklik yapılmadan şifresi çözüldü ve kaydedildi; işlem sıradan bir kullanıcının kullanım biçimiyle aynı şekilde gerçekleştirildi
Uygulamanın bağlandığı sunucular
- Tek bir oturumda uygulama 31 benzersiz host'a istek gönderdi (iOS sistem trafiği hariç)
- Toplam 206 isteğin yalnızca 48'i (%23) whitehouse.gov'a gönderildi
- Kalan 158 istek (%77) ise Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter gibi üçüncü taraf hizmetlere gönderildi
- Başlıca istek hedefleri
- whitehouse.gov: WordPress API (haberler, ana sayfa, galeri vb.)
- YouTube: video gömme ve küçük görseller
- Elfsight: widget yükleme, statik varlıklar, dosya depolama, boot API vb.
- OneSignal: analiz ve kullanıcı profilleme
- Facebook/Twitter CDN: görsel yükleme
- Google API'leri ve DoubleClick: reklam ve izleme
OneSignal'a gönderilen veriler
- Uygulama açıldığında
api.onesignal.comadresine HTTPS istek gövdesi gönderiliyor- İçerdiği bilgiler: dil, saat dilimi, ülke, IP adresi, ilk çalıştırma ve son etkinlik zamanı, cihaz modeli, OS sürümü, ağ türü (WiFi/hücresel), operatör, jailbreak durumu, oturum sayısı, oturum süresi, benzersiz tanımlayıcılar
- Uygulama her açıldığında profili güncellemek için birden fazla PATCH isteği gönderiliyor
- İlk çalıştırmada 18 PATCH isteği, tüm oturum boyunca ise 9 OneSignal isteği doğrulandı
- Sıra şu şekilde: mevcut profil GET ile alınıyor → oturum bilgisi PATCH ile güncelleniyor
- OneSignal, oturum bazında IP, etkinlik zamanı, oturum sayısı ve oturum süresini sürekli kaydediyor
- IP adresi değiştiğinde profil güncelleniyor
first_activezaman damgası kurulumdan sonra değişmiyor
- Sonuç olarak OneSignal, kullanıcı bazında kalıcı bir profil tutuyor ve uygulama kullanım kalıplarıyla ağ ortamını izliyor
- Trafiğin User-Agent değeri
WhiteHouse/81 CFNetwork/3860.400.51 Darwin/25.3.0
Elfsight ile ilgili trafik
- Statik analizde tespit edilen 6 widget ve 2 aşamalı JavaScript yükleyici, gerçek trafikte de doğrulandı
- Social sekmesi açıldığında uygulama 13 Elfsight alan adına bağlanıyor
elfsightcdn.com,core.service.elfsight.com,static.elfsight.com,storage.elfsight.com,widget-data.service.elfsight.com,video-proxy.wu.elfsightcompute.comvb.
/p/boot/isteği üzerinden her widget ID'si gönderildiğinde sunucu çalıştırılacak script listesini (assetsdizisi) döndürüyor- Örnek: TikTok →
tiktokFeed.js, Instagram →instashow.js, Facebook →facebookFeed.js, YouTube →yottie.js
- Örnek: TikTok →
- Uygulamanın
loadAssetsfonksiyonu her URL'yi<script>olarak ekleyip çalıştırıyor- Hangi kodun çalışacağına sunucunun karar verdiği bir yapı söz konusu
- Elfsight sunucuları oturum sırasında 10'dan fazla çerez ayarlıyor
- Bunlara
elfsight_viewed_recently, Cloudflare izleme çerezleri (_cfuvid,__cf_bm) ve oturum tanımlayıcıları dahil
- Bunlara
Google DoubleClick reklam takibi
- YouTube gömüsü yüklenirken Google reklam izleme altyapısı da birlikte yükleniyor
googleads.g.doubleclick.net,static.doubleclick.netistekleri doğrulandı
- DoubleClick, Google'ın reklam sunma ve izleme platformu ve
Beyaz Saray'ın resmî uygulaması içinde reklam izleme kodu çalışıyor
- Uygulamanın gizlilik manifestosunda buna dair bir ifade yer almıyor
Gizlilik manifestosu ile gerçek davranış arasındaki uyumsuzluk
- Uygulamanın beyan edilen gizlilik ayarları:
NSPrivacyCollectedDataTypes: [] NSPrivacyTracking: false - Gerçek oturumda doğrulanan veri aktarımları:
- OneSignal'a cihaz modeli, OS, IP, saat dilimi, dil, oturum sayısı, oturum süresi, benzersiz tanımlayıcılar gönderiliyor
- 13 Elfsight alan adına bağlanılıyor ve 10'dan fazla izleme çerezi alınıyor
- Google DoubleClick reklam izleme kodu çalıştırılıyor
- Facebook, Twitter/X, YouTube, Google API istekleri oluşuyor
- Sonuç olarak uygulama “veri toplanmıyor” olarak gösterilse de, gerçekte çok sayıda üçüncü taraf izleme ve veri aktarımı gerçekleşiyor
Analiz metodolojisi
- Proxy aracı: mitmproxy (mitmdump)
- Ortam: macOS, iPhone(iOS), aynı WiFi ağı
- Sertifika: mitmproxy CA, iOS güven ayarlarına eklendi
- Yakalama kapsamı: uygulamanın 5 sekmesinin tamamı gezinilirken oluşan HTTPS trafiği
- Manipülasyon durumu: yok, trafikte yalnızca gözlem yapıldı
- Kişisel veri işleme: IP, cihaz tanımlayıcıları, OneSignal ID vb. gönderide tamamen maskelendi
- Sunucuya izinsiz giriş veya manipülasyon yapılmadı, yalnızca uygulamanın gönüllü iletişimi kaydedildi
İlgili araştırmalar
- Beyaz Saray iOS uygulamasının statik analiz raporu
- Android sürümüne ilişkin Thereallo analiz sonuçları
Atomic Computer hakkında
- Atomic Computer, siber güvenlik, altyapı ve geliştirme hizmetleri sunan bir şirket
- Mobil uygulama güvenlik değerlendirme ve analiz hizmetleri yürütüyor
1 yorum
Hacker News yorumları
Tüm 3rd-party isteklerin %43’ü Google ile ilgili (YouTube, Fonts, Analytics dahil); Facebook ve Twitter da eklenince oran yaklaşık %55 oluyor
Bir devlet uygulamasına aşırı takip ya da analiz kodu koymak sorunlu, ama Google Fonts veya YouTube gömmeleri bana o kadar ciddi gelmiyor
Başlıkta Palantir ya da ICE gibi çarpıcı alan adları beklemiştim; Google/Facebook çıkması biraz sönük kalmış
Başlık, sadece “isteklerin %77’si 3rd-party” demek yerine, isteklerin niteliği ve ciddiyeti etrafında kurulmalı
Bu arada atomic.computer da Google Fonts ve Analytics kullanıyor. 3rd-party istekleri baştan kötü ilan etmeden önce kendi sitesini de kontrol etmeli
Sonuçta uygulama üzerinden hangi verilerin izleneceğine kendileri karar verebilir ve yaygın takip sağlayıcıları üzerinden veriyi aklar gibi toplayabilirler
Google ile ilgili istekler şeffaflık için eklenmiş gibi görünüyor; amaç White House uygulamasını karalamak değil
atomic.computer, 3rd-party isteklerin özünde kötü olduğunu söylemedi; sadece bunları veri toplama ve takip mekanizması olarak inceledi
Kullanıcılar veri toplandıktan sonra nasıl kullanılacağını denetleyemiyor; asıl mesele de kontrol eksikliği
mitmproxy’yi Mac’e kurup iPhone trafiğini oraya yönlendirerek HTTPS’yi çözdüklerini söylüyorlar
iPhone’da kullanıcı sertifikasını güvenilir hale getirmek gerçekten bu kadar kolay mı diye merak ettim
Android’de ağ trafiğini incelemek epey zahmetli
Bu tür deneyler, cihaz üzerinde kontrolün bizde olması gerektiğini iyi gösteriyor. Verinin nereye ve hangi içerikle gönderildiğini bilmeye hakkımız var
Eskiden Zoom’un trafiği Çin’e göndermesi ya da Facebook’un uygulama içi gezinme verilerini takip etmesi de aklıma geldi
Ama uygulama kendi OpenSSL’ini kullanıyorsa veya certificate pinning uyguluyorsa durum farklı
Facebook ya da Twitter gibi büyük uygulamaların çoğu pinning kullanıyor, ama bu kadar basit uygulamalar genelde kullanmıyor
Yine de pinning olan uygulamaları aşmak zor ve kendi uygulamanı yükleyebildiğin platformlar bu açıdan daha avantajlı
Banka uygulamaları gibi pinning’in güçlü olduğu durumlarda root edilmiş cihaz gerekebiliyor
Hatta bunun deepfake eğitimi verisi olarak kullanılmış olabileceğini bile düşündürüyor
Bununla ilgili önceki tartışma başlıkları var
Önceki tartışma 1, Önceki tartışma 2
Reklam alan adlarının çoğunu (ör. doubleclick.net) DNS seviyesinde engelliyorum
Haber siteleri dahil çoğu web sitesinin bu kadar çok 3rd-party bağlantı açması şaşırtıcı
atomic.computer da Cloudflareinsights ve Google Fonts yüklemeye çalışıyor ama benim ağımda bunlar engelleniyor
Bu istekler, Google’ın kullanıcıları internet genelinde takip etmesinin başlıca nedenlerinden biri
Devlet uygulamalarına, sıradan B2C uygulamalarından çok daha yüksek standartlar uygulanmalı
Google Fonts çağırmak kabul edilebilir, ama OneSignal ya da Facebook’a telemetri göndermek bambaşka bir konu
Avustralya’da PSPF ve ISM kuralları gereği, devlet verisi güvenilmeyen dış taraflara gönderilmemeli
Böyle bir uygulama IRAP değerlendirmesinden anında kalır
Çözüm basit — fontları kendin barındır, analitiği 1st-party tut, dış istekleri veri sızıntısı vektörü olarak değerlendir
B2C uygulamalarının çoğunda da 3rd-party istek oranı %50’nin üzerinde
White House uygulamasındaki %77 şaşırtıcı değil, ama App Store’daki veri toplama beyanlarının yanlış yazılmış olması sorundu
Sonradan düzeltildi ve şu anda doğru görünüyor
Devlet uygulamaları yüksek standartlara tabi olmalı, ama %77 oranı sektör ortalamasından çok da farklı olmayabilir
Çok sayıda uygulama reklam kodu ve takipçi içerdiği için, bu seviye oldukça sıradan da olabilir
Uygulamanın kullandığı SDK listesi AppGoblin üzerinden görülebilir
Privacy manifest içinde “veri toplanmıyor” deniyor, ama gerçekte OneSignal’a cihaz modeli, IP, oturum sayısı ve takip kimliği gönderiliyor
Bu, açık bir yanlış beyan (false attestation) sorunu
Bir sonraki adım herhalde reklam eklemek olur