2 puan yazan GN⁺ 2024-08-05 | 1 yorum | WhatsApp'ta paylaş
  • Bazı iOS yasa dışı yayın uygulamaları, incelemeyi normal uygulama gibi geçtikten sonra gizli işlevleri etkinleştirecek şekilde tasarlandı; kod analizinde konum tabanlı engelleme ve uzaktan güncelleme yöntemleri doğrulandı
  • Farklı geliştirici hesaplarıyla dağıtılan uygulamalar aynı kod tabanını paylaşıyordu ve React Native ile Microsoft CodePush SDK sayesinde App Store yeniden incelemesine gerek kalmadan uygulamanın bazı bölümleri değiştirilebiliyordu
  • Belirli bir uygulama, GitHub deposu ve IP tabanlı konum API’si kullanarak ülke, bölge, şehir ve tahmini boylam-enlem verilerini kontrol ediyor; Apple’ın inceleme ortamında ise gizli arayüzü göstermiyordu
  • Uygulama, ilk çalıştırmadan sonra birkaç saniye bekleyip konum API’sini çağırarak otomatik inceleme sürecinden kaçındı; konum San Jose, California olarak proxy ile ayarlansa bile gizli ekran görünmedi
  • Apple, konuma göre davranış testi ve dolandırıcı uygulamaların kaldırılmasını güçlendirebilir; ancak şu anda yalnızca ilgili uygulamaların kaldırıldığını açıkladı ve benzer uygulamaların onaylanmasını önleyecek somut önlemleri paylaşmadı

İncelemeyi geçtikten sonra farklı bir uygulama gibi davranan yapı

  • 9to5Mac, birçok iOS yasa dışı yayın uygulamasının App Store incelemesini kandırarak onay aldığı vakaları ele aldı; ardından yapılan kod analiziyle bu kaçınma yönteminin ayrıntılı işleyişi doğrulandı
  • “Collect Cards”, bazı ülkelerde App Store ücretsiz uygulama indirme sıralamasında üst sıralara çıktı ve yayımlanmasının ardından Apple tarafından kaldırıldı
  • Aynı uygulamanın farklı sürümleri daha sonra yeniden App Store’da görünmeye başlayınca, inceleme ekibini kandırma yöntemi analiz konusu oldu

Ortak kod tabanı ve uzaktan güncelleme

  • Analiz edilen uygulamalar farklı geliştirici hesaplarıyla dağıtılmış olsa da aynı kod tabanını paylaşıyordu
  • Uygulamalar, JavaScript tabanlı çapraz platform çerçevesi React Native ile geliştirildi
  • Microsoft’un CodePush SDK aracı, App Store’a yeni bir build göndermeden uygulamanın bazı bölümlerini güncellemeyi mümkün kılıyor
  • React Native ve CodePush kullanımı tek başına App Store kurallarının ihlali değil; birçok popüler uygulama da bu yöntemi kullanıyor
  • Kötü niyetli geliştiriciler, bu meşru güncelleme teknolojisini App Store incelemesini atlatmak için kullandı

Apple’ın inceleme ortamını konumla ayırt etme

  • Analiz edilen uygulamalardan biri, birden fazla yasa dışı yayın uygulaması için dosya sağlıyor gibi görünen bir GitHub deposuna işaret ediyor
  • İlgili uygulama, cihazın konumunu IP adresi üzerinden doğrulayan belirli bir API’yi kullanıyor
    • API; ülke, bölge, şehir ve tahmini boylam ile enlem gibi veriler döndürüyor
  • Uygulama ilk açıldığında birkaç saniye bekledikten sonra konum API’sini çağırıyor
    • Bu gecikme nedeniyle App Store’un otomatik inceleme sürecinde uygulama kodundaki olağandışı davranış ortaya çıkmıyor
  • 9to5Mac, uygulamanın davranışını doğrulamak için proxy kullanarak konumu San Jose, California gibi gösterdi
    • Bu konumda uygulama gizli arayüzü hiçbir zaman göstermedi

Onaydan sonra gerçek arayüzü gösterme

  • Apple yalnızca temel işlevleri görünen uygulamayı onayladıktan sonra, geliştirici CodePush ile istediği içeriği uygulamaya güncelliyor
  • Uygulama gerçek arayüzünü yalnızca “güvenli” konumlarda gösteriyor
  • Bu yapıda, Apple’ın inceleme ortamı ile normal kullanıcı ortamında uygulama davranışı farklı olabiliyor

Apple’ın önünde duran müdahale sorunu

  • Apple, uygulamaların farklı konumlarda nasıl davrandığını kontrol eden ek testlerle inceleme sürecini iyileştirebilir
  • Dolandırıcı uygulamaları App Store’dan daha aktif biçimde tespit edip kaldırmaya yönelik önlemler de gerekiyor
  • 2017’de Uber’in, Cupertino’daki Apple merkezini hedef alan bir “geofence” kullandığı iddia edilmişti
    • İddiaya göre uygulama bu konumda çalıştığında, web genelinde kullanıcı parmak izi toplama ve izleme için kullanılan kod otomatik olarak devre dışı kalıyordu
  • 2021 tarihli bir belgeye göre App Store Review ekibinde, haftada 100.000’den fazla uygulamayı inceleyen 500’den fazla insan uzman bulunuyor
    • Buna rağmen uygulamaların çoğu, manuel incelemeden önce App Store yönergelerinin ihlal edilip edilmediğini kontrol eden otomatik inceleme sürecinden geçiyor
  • Apple sözcüsü, haberin yayımlanmasının ardından ilgili uygulamaların App Store’dan kaldırıldığını söyledi; ancak benzer uygulamaların onaylanmasını önlemek için şirketin aldığı önlemlere dair ayrıntı vermedi

1 yorum

 
GN⁺ 2024-08-05
Hacker News görüşleri
  • Apple bölgesel kısıtlama atlatmayı engellese bile davranışı gizlemek çok kolay

    1. Uygulama, sunucuya bir API çağrısıyla build numarasını gönderir
    2. API yanıtı, gizli özelliğin etkin olup olmadığını kontrol eder
    3. Gizli özellik, her build incelemeyi geçtikten sonra açılır
    4. Kazanç?
      Hiç dinamik kod ya da yorumlayıcı kod gerekmez ve bu tür varyasyonlar yeterince fazla olduğundan sonuçta durma problemine indirgenip karar verilemez hale gelecek gibi görünüyor
    • Evet. Sonuçta böyle mantık bombası benzeri yöntemler engellenemez; bu sadece bir kedi-fare oyunu
      Teknik önlemlerin dışında da bir çözüm yolu olmalı. Örneğin gerçekten dağıtık insanların kitlesel kaynak kullanımıyla uygulamaları test edip kötü niyetli davranışları bulması gibi
    • 1~3, uygulamanın kendi App Store listeleme sayfasını kontrol etmesiyle de değiştirilebilir
      Daha genel olarak, güncelleme kontrolü yani yeni sürüm olup olmadığını denetleme özelliği, aynı anda “bu sürüm hâlâ uygulama incelemesinde mi?” sorusunu anlamak için de kullanılabilir
    • Apple'ın geliştirici onboarding'i ve geliştirici sözleşmesi sürecinde belli ölçüde durum tespiti yapmasının nedenlerinden biri, sistemi kötüye kullanan geliştiricilere karşı yasal işlem başlatabilmesini güvence altına almak
      Apple App Store ekosisteminden atılma ya da yasal misillemeyle karşılaşma ihtimali, teknik olarak engellenemeyen istenmeyen davranışları caydırmanın yollarından biri
    • Yapay zekanın yakında sentetik kullanıcıları gerçek kullanıcılardan ayırt edemeyeceğimiz bir noktaya yaklaşacağını düşünüyorum. Apple, yukarıdaki teknikleri ve bu başlıktaki diğer yöntemleri hafifletmek için inceleme sürecini çok otomatikleştirilmiş ve sürekli bir yapıya hızla taşıyacak gibi görünüyor
      Sonunda ekosistem ve devlet düzeyindeki baskıyı, şartların makul ve adil olmasını sağlamak için daha fazla kullanmak gerekecek. Çünkü bu şartları aşmaya yönelik hack'ler neredeyse imkânsız hale gelecek. Bu hack'lerin zekice olduğunu düşünüyorum ama uzun ömürlü olacaklarını sanmıyorum
  • CodePush gibi dinamik güncellemeler hakkında Apple'ın ifadesini merak ediyorsanız burada: https://github.com/microsoft/react-native-code-push#store-gu...
    “Çalıştırılabilir kod
    Aşağıdaki paragrafta açıkça belirtilen durumlar dışında, uygulamalar çalıştırılabilir kod indiremez veya kuramaz. Yorumlayıcı kod uygulamaya indirilebilir; ancak bu kod (a) App Store'a gönderilen uygulamanın amaçlanan ve reklamı yapılan amacıyla uyumsuz işlevler sunarak uygulamanın temel amacını değiştirmemeli, (b) başka kodlar veya uygulamalar için bir store ya da mağaza oluşturmamalı ve (c) işletim sisteminin imza, sandbox veya diğer güvenlik özelliklerini atlatmamalıdır.”

    • En azından live service oyunlarda, neredeyse %100'ü mobilde düzenli olarak yeni yorumlayıcı kod indiriyor ve bu fiilen bütünüyle uygulama mağazası incelemesini aşmak anlamına geliyor
      Oyun şirketleri ile Google/Apple arasında, incelemeyi atlamaları karşılığında milyarlarca dolarlık loot box gelirinin akmaya devam etmesine göz yuman bir anlaşma varmış gibi görünüyor
    • Bu düzeyde bakınca, sonuçta neredeyse aynı amacı koruyan ve yaklaşımı da çok farklı olmayan uygulamalara karşı epey açık bir kural gibi hissettiriyor
      Öne çıkan özellik kümelerinden biri, birçok uygulamanın Apple'ın çevrili ödeme sisteminin dışında abonelik ücreti alabilmesi. Çünkü uygulamanın asıl işi sadece cihaz içinde değil, bulutta da yapılıyor. Uygulamayı temel bir yerel uygulama ile buluttaki ek işler olarak bölmenin avantajları var ama cihazların gücü arttıkça yerelde neler yapılabileceğine bakmak giderek daha cazip hale geliyor
      Uygulamanın üst düzey yapısı yeterince açıksa, içini dolduran ayrıntılar sonradan eklenebilir
      Kullanıcı tercihleri ya da kullanım kalıplarına göre daha dinamik arayüz üretimini mümkün kılan SDUI gibi şeyleri uzun zamandır seviyorum
      Sabit iş akışları için yazılım üretme yaklaşımı giderek demode hale geliyor. İster pandemideki kapanma aşamalarına göre değişen gereksinimler olsun ister kullanıcı deneyiminin gerçek anlamda kişiselleştirilmesi, sabit zihniyetle üretilmiş yazılımlar yerini esneklik gerektiren yazılımlara bırakıyor
  • Apple'ın hoşlanmadığı bir davranışı geçirmem gerektiğinde zaman tabanlı bir hile kullandım
    Uygulamayı gönderdikten 20 gün sonra, bir düğmenin davranışı değişip “dosya aç” iletişim kutusunun kullanıcı kök dizinine doğrudan gitmesini sağladı

    • Uygulamalarımdan birinde ben de aynısını yaptım. Özel bir uygulamaydı; kullanmak için giriş kodu gerekiyordu ama Apple tüm özellikleri test etmek istiyordu. Bu yüzden uygulamaya birkaç sahte ekran ekledim ve bu ekranlar API çağrısı bile yapmıyordu
      2 haftalık bir zamanlayıcı koydum; sonrasında uygulama API çağrıları dahil gerçek davranışına başladı
      Apple uygulama incelemesi tam bir şaka
    • Güzel. Uygulama doğrulama sürecinin ne kadar işe yaramaz olduğunu gösteriyor
      Muhtemelen incelemecilerin sistemini parmak izi gibi tanımlayıp özellikleri yalnızca onlardan doğrudan gizlemenin bir yolunu da bulabilirsiniz
  • Yan not olarak, dolandırıcı uygulamaların ezici çoğunluğu insanların parasını haftalık yinelenen aboneliklerle alıyor gibi görünüyor
    Tekrarlanmayan 1 haftalık erişim işe yarayabilir. Örneğin seyahatteyken 1 haftalık bir VPN uygulaması gibi. Ama haftalık yinelenen ödemeler manuel onay gerektirmeli. Her uygulamanın haftalık yinelenen ödeme alabilmesine izin verilmemeli

  • Korsan uygulamaları kötü niyetli diye adlandırmak bana biraz abartı gibi geliyor. Bir şeyi mi kaçırdım, yoksa bu yazıyı telif hakkı sahibi mi yazdı?

    • Tersine, korsan uygulamalar bunu yapabiliyorsa zararlı yazılımlar da elbette yapabilir. Ve bence Apple gerçek zararlı yazılımlardan çok korsanlıkla ilgileniyor
      Ama gelir sıralamasındaki üst düzey uygulamalar zaten dolandırıcılık uygulamaları ve hatırladığım kadarıyla hep öyleydi; yani bu da çok şaşırtıcı değil
  • “2021'de yayımlanan belgelere göre App Store Review ekibinde, haftada 100 binden fazla uygulamayı inceleyen 500'den fazla insan uzman bulunuyor.”
    Bu cümledeki muğlak ifadeyi görmezden gelip incelemecilerin çalışma zamanlarının %100'ünü incelemeye ayırdığını ve standart bir çalışma haftası izlediğini varsayarsak, uygulama başına yaklaşık 12 dakika düşüyor

    • Aynı yıl, 2021'de Apple App Store'un toplam geliri 85 milyar dolar
      Ne yazık ki yoksul Apple'ın, her uygulama için anlamlı bir inceleme sürecini garanti edecek ve insana yakışır çalışma koşullarındaki emekçilere yeterli ücret verecek kadar daha fazla incelemeci istihdam etmeye gücü yetmiyor galiba. Muhtemelen her hafta incelemek zorunda oldukları uygulama kotasının baskısı altındalar
      O halde Apple neden yine %30 almaya hak kazanıyor?
  • En yeni uygulama App Store incelemesini geçip ayakta kalırsa, Apple müdahale edene kadar kullanmak isteyen binlerce kişinin toplandığı Telegram kanalları/grupları var
    İmza sertifikaları ve Apple geliştirici makinesi slotları için de bir pazar var; bu yüzden biraz daha teknik bilgisi olanlar IPA’yı doğrudan imzalayıp kurabiliyor

  • ABD’de DMA benzeri bir yasaya acilen ihtiyaç var. Tek bir şirketin, ABD’li kullanıcıların %60’ından fazlasını, kullanmak istedikleri uygulamaları yükleme konusunda elinde tutabilmesi kabul edilemez
    Aynı şekilde Apple ve Google adlı iki şirketin de tüm mobil uygulama pazarında oluşan gelirin %15-30’unu alabilmesi kabul edilemez

    • Yönüne katılıyorum ama bakış açısının kullanıcı merkezli olmaktan çok geliştirici merkezli olduğunu düşünüyorum
      Öncelikle, o %60 iOS’u seçti. “Rehin” değiller; ayrılabilirler. Üstelik bu yeni bir davranış da değil, iPhone’un çıktığı günden beri var. Tüketiciler burada oylarını bu yönde kullanıyor [1]
      İkinci olarak, Google kullanıcıların ne yüklediğini kontrol etmediği için tanım gereği “tüm gelirin” bir kısmını almıyor. Ayrıca mobil uygulamalardan doğan değerin büyük kısmı başka yerlerde üretildiğinden [2], Apple için verilen rakam bile doğru değil
      Geliştirici olarak elbette kullanıcı cihazına dilediğince erişip istediğin kodu çalıştırmak istersin. Ne yazık ki bazı geliştiriciler bu erişimi tüketicilere zarar veren nedenlerle istiyor. Bu yüzden geliştiriciler sistemi bir oyun gibi istismar etmeye çalışıyor ve dürüst uygulamalar reddediliyor
      Ama kullanıcıların istediği şeyin bunun tersi değil, tam da bu seçilmiş erişim olduğunu ve oylarını da bu yönde kullandıklarını anlamak gerekiyor
      [1] Mesajlaşma uygulamaları konusunda tartışılabilir ama bu bir uygulama değil, mesajlaşma sorunu
      [2] Benim yüklediğim uygulamaların neredeyse hepsi ücretsiz. O uygulamaları yapan şirketler gelirlerini sistemin başka bölümlerinden elde ediyor. Bizim de bir ürünle bağlantılı “ücretsiz uygulamamız” var ve insanlar parayı o ürüne ödüyor
    • Yazıyı okudun mu? Bu, Uber’in incelemeyi atlatıp Apple kurallarına ve kullanıcı iradesine aykırı biçimde kullanıcıları takip etmesi hikâyesi. Ya da başka uygulamaların korsan yazılım dağıtmak için aynı şeyi yapması hikâyesi
    • Apple/Google’un tutumu da oldukça çelişkili görünüyor
      Bir yandan her biri kendi mağazasında kapı bekçisi rolünü üstleniyor ve ikisi de son kullanıcıları güvende tuttuklarını iddia ediyor
      Öte yandan, sorunlu uygulama yeterince kârlıysa ya da kendi geniş ürün aileleriyle ilgiliyse, kuralları seçici biçimde uygulama esnekliğini kendilerine tanıyorlar
      Gözetleyeni kim gözetler?
    • Bu iddiayı daha ikna edici kılmak için, kullanıcıları kötü yazılımlardan korumanın yollarına dair fikirler de eklemek iyi olurdu
      Bunun için plan nedir?
    • Katılıyorum ama bunun yazıyla nasıl bir ilişkisi olduğunu pek anlayamıyorum
  • Yasadışı streaming uygulamaları”?
    Bunun, el feneri uygulamalarında aylık 50 dolarlık aboneliğe nasıl izin verildiğine dair bir yazı olduğunu sanmıştım

  • Sayısız uygulama, yalnızca uzak bir web sayfasını gösteren bir WebView’dan ibaret
    Sunucu sayfayı her güncellediğinde uygulama da güncellenmiş oluyor ve inceleme gerekmiyor