1 puan yazan GN⁺ 2023-06-27 | 2 yorum | WhatsApp'ta paylaş
  • Android’in Manage my account açılır penceresinde normal web sitelerine gidilebilen bir ekran açılıyor; bu ekrana Settings ve Google uygulama paketi içinden de erişilebiliyor
  • Giriş yolu sırasıyla Google hesap yönetimindeki Security sekmesi, Password Manager, cihaz üzerinde şifreleme yardım sayfası, gizlilik politikası ve Search menüsünden geçiyor
  • Bu ekran YouTube oynatmaya kadar izin veriyor; ancak ziyaret geçmişi ve adres çubuğu yok, geri tuşu da web geçmişi yerine ayarlar ekranına dönüyor
  • JavaScript konsolunda mm nesnesi ile closeView(), requestSecurityKeyHandshake() ve updateSecurityKey() işlevleri görünüyor; bazı işlevlerin gerçek amacı doğrulanmış değil
  • Google başlangıçta bunun bir güvenlik açığı olmadığını ve ebeveyn denetimlerini aşmanın da amaçlanan davranış olduğunu söyledi; ancak yayın ve basın haberlerinden 3 gün sonra bildirimi yeniden inceleyeceğini bildirdi

Android ayarlarının içinde açılan gizli tarayıcı

  • Android’deki çeşitli uygulamalarda Manage my account açılır penceresi bulunuyor; Settings ve Google uygulama paketi gibi başlıca uygulamalardan da erişilebiliyor
  • Birkaç adımın ardından açılır pencerenin içi, normal web sitelerine gidilebilen bir tarayıcı gibi çalışıyor
    • Settings → Google veya hesap seçilebilen bir uygulamada “Manage my account” seçilir
    • “Security” sekmesinde “Password Manager” seçilir
    • Sağ üstteki Settings simgesi seçilir
    • “Set up on-device encryption” → “Learn more about on-device encryption” seçilir
    • Hamburger menüden “Privacy Policy” sayfasına gidilir
    • Üstteki 9 noktalı menüye basıp yaklaşık 5 saniye bekledikten sonra “Search” seçilir veya Google öğesine gidilir
    • Google hesabından çıkış yapılırsa, istenen yere gidilebilen bir tarayıcı gibi kullanılabilir
  • Bu durumda YouTube videoları oynatmak da mümkün; ekran Settings uygulamasının veya ilk giriş yapılan uygulamanın içinde açılıyor
  • Normal tarayıcılardan farkları

    • Ziyaret geçmişi tutulmuyor
    • Oturum kapatıldığında giriş yapılmış Google hesabından otomatik olarak çıkış yapılıyor
    • Adres çubuğu yok
    • Geri tuşuna basıldığında önceki web sayfası yerine Password Manager ayarları tarafına dönülüyor

mm JavaScript nesnesi ve Google’ın yanıtı

  • eruda gibi mobil JavaScript konsollarında mm adlı bir JavaScript nesnesi görülebiliyor
  • mm nesnesinde üç işlev var
    • closeView(): Tarayıcıyı kapatıyor; geri tuşuna basıldığındakine benzer şekilde çalışıyor
    • requestSecurityKeyHandshake(): İşlevi doğrulanmış değil, ancak adı itibarıyla hassas görünüyor
    • updateSecurityKey(): İşlevi doğrulanmış değil, ancak adı itibarıyla hassas görünüyor
  • Bu tarayıcı on-device encryption özelliğinin yolu üzerinden açıldığı için, doğrulanmamış iki işlevin yerel şifreleme anahtarı ayarıyla ilişkili olabileceği yalnızca bir varsayım olarak kalıyor
  • Google, ilk bildirime bunun bir güvenlik açığı olmadığını ve ebeveyn denetimlerini aşmanın “Intended Behavior” olduğunu söyleyerek yanıt verdi
  • Yazı yayınlandıktan sonra İngilizce ve Rusça dahil olmak üzere çeşitli mecralarda ele alındı; yayından 3 gün sonra Google, ilgili bildirimi yeniden inceleyeceğini bildirdi
  • İlgili tartışma olarak Hacker News discussion bulunuyor

2 yorum

 
wedding 2023-06-28

Şifre yöneticisine girince sanki bir tık yavaşmış gibi bir his oluyordu... Demek ki sadece benim kuruntum değilmiş galiba.

 
GN⁺ 2023-06-27
Hacker News yorumları
  • Biraz araştırdım; "Manage my account"a tıklayınca Ayarlar uygulamasında kalmıyor, onun yerine Google Play Services içine gömülü bir Activity'ye gidiyor
    Sonuçta tarayıcı com.google.android.gms/.auth.folsom.ui.GenericActivity çıktı ve telefonumdaki varsayılan sistem WebView uygulaması olan Chrome'u kullanıyor gibi görünmüyordu
    Android, addJavascriptInterface ile Android kodu ve JavaScript kodu arasında bir arayüz oluşturabiliyor; GMS'nin bunu epey kullandığı anlaşılıyor, o yüzden ileride bakmaya değer bir saldırı yüzeyi gibi duruyor
    Şüpheli mm arayüzü MagicArchChallengeView içinde ve obfuscate edilmiş bwuz sınıfına bağlı. bwuz kendi başına neredeyse boş ama sonra birkaç başka obfuscate edilmiş sınıfa daha bağlanıyor
    String araması yapınca "qvc" ve "pdn" adlı iki sınıfın ilgili fonksiyonları açığa çıkardığı görülüyor; esas kritik olan pdn gibi duruyor, qvc içinde de her parametrenin ne olduğuna dair faydalı hata logları var
    setVaultSharedKeys, gaiaId, epoch ve key değerlerini içeren JSON nesneleri dizisi bekliyor; bunu bir listeye çevirip hesap güvenliğiyle yakından ilgili görünen soyut bir sınıfa veriyor
    addEncryptionRecoveryMethod, gaiaId, güvenlik alanları listesi ve üye açık anahtarı bekliyor; bunu da aynı soyut sınıfa veriyor
    Burada işe gitmem gerektiği için bıraktım ama yalnızca bu arayüz değil, GMS'nin WebView'a açtığı diğer arayüzleri de daha derin incelemeye değer gibi görünüyor
    https://developer.android.com/reference/android/webkit/WebVi...

    • Neden sistem varsayılan WebView kullanılmıyor merak ediyorum. Bu durumda Blink değil de WebKit mi demek?
      Blink olsa bile, Chrome'un sunduğu kadar güncel olmama ihtimali yüksek görünüyor. Belgelere verilen bağlantıya bakınca gerçekten WebKit gibi duruyor
    • Alex Russell, 2021 State of the Browser etkinliğinde Android'deki WebView'un Chrome olmadığını söylemişti
      https://2021.stateofthebrowser.com/speakers/alex-russell/
    • gaiaId'nin Google Accounts and ID Administration ID olması komik; aslında bu Google genelindeki benzersiz kimlik ve buna bu adı veren kişi muhtemelen epey gurur duymuştur, haklı da sayılır
  • Bunun diğer gömülü WebView'lardan farkının ne olduğunu anlamadım. Neredeyse bütün uygulamalar "gizlilik politikasını görüntüle" gibi yerlerde gömülü WebView kullanmıyor mu?
    Gizlilik politikasının tamamını uygulama geliştiricisine teslim etmektense HTML göstermek çoğu zaman çok daha kolay oluyor

    • Aynen öyle. Uygulamanın kendisi tarayıcı değilken kullanılan gömülü tarayıcı, yani Android System WebView
    • Böyle bir WebView ile rastgele bir web sitesini ziyaret etmek mümkün mü? Ben hiç başaramadım
      Hatırladığım kadarıyla birden çok alan adını veya URL'yi izinli kılacak bir WebView ayarlamak da epey zordu. Android geliştiricisi değilim, en son uğraşmamın üzerinden de birkaç yıl geçti gerçi
    • Bu WebView'da parola yöneticisinin anahtar yönetimi ve kurtarma için yetkili JavaScript fonksiyonları var gibi görünüyor
    • Gömülü WebView'u olan herhangi bir uygulamadan ebeveyn denetimini aşmak mümkünse, bu Android'de daha büyük bir hata demektir
      Anahtar yönetimi kısmı hâlâ büyük ölçüde tahmin; yazan kişi bunun gerçekte ne yaptığını test etmiş değil, yani durum daha çok “ne olduğunu bilmiyorum ama korkutucu görünen iki metot var” seviyesinde
    • Eskiden iTunes'da da şaka yollu benzer şeyler yapılabiliyordu. Bunun gerçekten ne kadar büyük bir mesele olduğundan emin değilim
  • Tarayıcı engelliyken CHM yardım dosyaları üzerinden internete girmeye biraz benziyor
    Kahretsin, yaşımı ele verdim

    • Artık exploit'lerle yaş mı ifşa ediyoruz? “Üniversite kütüphanesindeki terminalden gopher ile sitelere girip telnet oturumu açarak yaz tatili boyunca başka eyaletteki üniversite e-postamı kontrol ederdim” nasıl mesela?
    • Yöneticinin sildiği oyunları yeniden kurmak için de kullanıyordum
    • Bizim lisede, Not Defteri'nin dosya açma penceresinden Windows Explorer'ı açıp tuhaf bir bookshelf shell'inden çıkıyorduk. Sanırım IBM ürünüydü
  • Çocukken Windows'taki ebeveyn denetimi uygulamasını aşma yöntemimle birebir aynı
    Bilgisayar kullanımına sadece 1 saat izin vardı ve süre dolunca, üretkenlik için gerekli sayıldığı gerekçesiyle Microsoft Office uygulamaları hariç tüm uygulamalar kapatılıyordu
    Kurcalaya kurcalaya Outlook içinden bir şekilde tarayıcı açmayı başarıp Miniclip'te Flash oyunları oynayabiliyordum

    • Lisede kilitli Mac'leri aşma yöntemimi hatırlattı. Yalnızca belirli uygulamalar çalıştırılabiliyor, System Preferences da açılamıyordu ama Safari'de varsayılan web tarayıcısını değiştirebiliyordun
      Varsayılan web tarayıcısını Terminal yaptım, sonra Word'ü açıp bir bağlantı oluşturdum ve ona tıkladım. Normalde açılan Terminal, başka uygulamaları çalıştırmada başarısız olacak şekilde kısıtlıydı ama bu yöntemle açılan Terminal örneği daha fazla yetkiye sahipti; böylece open /path/to/your/app ile taktığın diskteki oyunları falan çalıştırabiliyordun
      Etüt öğretmeni gelip Starcraft oynayıp oynayamayacağımızı sorduğunda “Hocam, sizin de bildiğiniz gibi bu bilgisayarlar epey kilitli, bu oyunu oynayabiliyorsak demek ki okul izin vermiştir” demiştim; hâlâ bunun işe yaramış olmasına inanamıyorum
  • Çocuk bu hack'i bulup engellenmiş sitelere girebiliyorsa, bence bunu biraz hak etmiştir

    • Bunu kendi başına keşfetmiş olmak zorunda değil; internette veya başka çocuklardan görmüş de olabilir
  • Benzer bir kaçış yolu about içindeki lisans sayfasında da vardı
    Lisanslara giden bağlantıları takip edince tarayıcı ortaya çıkıyor. Araba içi bilgi-eğlence ünitelerinde ya da Peloton bisikletlerde tarayıcı açmak için kullanışlı oluyor

    • Az önce Pixel 6'mda "Third-party licenses" sayfasına girdim, karşıma sonu gelmeyen bir bağlantı listesi çıktı
      Dosya sistemindeki tüm dosyaların listesi gibi görünüyor
  • Google'a bug bildiren bu kişinin deneyimi bana kendi deneyimimi hatırlattı
    Ben: Google Sheets'te silinmiş içeriğin üçüncü taraflara gösterilmesine yol açan bir bug var
    Google: Bug değil. Amaçlandığı gibi çalışıyor. Kayıt kapatıldı
    Ben: Gerçekten mi? Bu uygulamayı kullanırken gerçekten zarar gördüm
    Google: Aslında bug, ama uzun zamandır bilinen bir sorun olduğu için bug bounty kapsamına girmiyor. Kayıt kapatıldı

    • Ben de Google'a bir güvenlik açığı bildirdiğimde neredeyse aynısı oldu
      Ben: Gmail'de sahte e-postaların DKIM başarısızlığını gizleyip normalmiş gibi görünmesini sağlayan bir bug var
      Google: "Won't fix (Intended Behavior)"
      Ben: Google gerçekten arayüzde sahte e-postaların normalmiş gibi görünmesini mi amaçlıyor?
      Google: Aslında bu bilinen bir sorun
    • Ben de aynı deneyimi yaşadım. Google'dan sadece havada kalan yanıtlar aldım ve birkaç ay sonra TAO'nun başındaki kişi, benim ilk başta bildirdiğim güvenlik açığının düzeltildiğini duyurdu
      Üstelik ilk çıkan haberler bu açığı Çin/Rusya kaynaklı hack'lerle ilişkilendirmeye çalışıyordu. O propagandayı Google'ın kendisine geri çevirmek gerekir. Google bir Amerikan şirketi ve yabancı ya da yerli fark etmeksizin herkesin istismar edebilmesi için arka kapıyı ardına kadar açık bırakmıştı. Nitekim iki taraf da bunu istismar etti
      Google'da gerçekten bir sorun var. 2019'dan sonra ne oldu bilmiyorum ama durum iyi değil
    • Bu hikâyeye benim de ekleyeceğim bir şey var
      Ben: Google Play Services'ta bir bug var
      Google: Bug değil. Amaçlandığı gibi çalışıyor. Kayıt kapatıldı
      Ben: Bug'ı blogda yazdım ve basında geniş yer buldu
      Google: Galiba biz yanılmışız! Bu gerçekten bir bug. Birkaç hafta içinde size tekrar döneceğiz
  • Bugün mobil JavaScript konsolu diye bir şey olduğunu öğrendim
    https://eruda.liriliri.io/

    • Aynı kişinin yaptığı bir uzak sürümü de var: https://github.com/liriliri/chii
      Başka bir bilgisayardan geliştirici araçlarını açabiliyorsunuz ve tüm bilgiler WebSocket üzerinden senkronize ediliyor. Müşteri cihazındaki sorunları debug ederken bir kez kullanmıştım
    • Bir bookmarklet olsa iyi olurdu. Mevcut tarayıcı geliştirici araçları da aslında başlangıçta bu şekildeydi; yani Firebug ile başlamıştı
    • Müthiş iyi. iOS'taki Brave'de çalışmıyor ama Safari'de çalıştığı için bu da yeterli
    • Sadece bende mi bilmiyorum ama bende hiç çalışmıyor. JavaScript snippet'ını adres çubuğuna yapıştırınca hiçbir şey olmuyor, Nightly'de ise bunu Google araması olarak çalıştırıyor
    • Bazen data:text/html, kullanma zahmetine giriyorum ama bu şaşırtıcı derecede özellik dolu
  • Annemle babam bankacılık işlemlerini hallederken lobide ben de aynı şekilde yapardım
    O zamanlar best viewed in Netscape Navigator etiketi adeta altın madeni gibiydi. Akış da neredeyse aynıydı; böyle bir etiket çıkana kadar tıklayıp sonra oradan arama motoruna geçerdim

    • Ödünç aldığım bir Tesla'da YouTube uygulaması üzerinden neredeyse tam ekran video oynatan tarayıcıya ulaşmak için bunu kullanmıştım
      Sonra reklam yazılımı dolu şüpheli bir streaming sitesine girdim, başka bir videoya geçtiğim anda Tesla'nın tüm bilgisayarı kilitlendi ve aracı hard reboot yapmak zorunda kaldım
  • Bana eski Windows sürümlerini hatırlattı. F1'e basınca Windows Help üzerinden çeşitli çalıştırma komutları tetiklenebiliyordu

    • Benim de aklıma ilk gelen buydu. Windows 95/98 civarında oturum açma ekranını aşmak için kullanılan “F1 → yardım dosyasını aç → Other... → explorer.exe üzerine sağ tıkla ve Run'ı seç” yöntemi gibi bir şey