1 puan yazan GN⁺ 2025-12-16 | 1 yorum | WhatsApp'ta paylaş
  • MAGA (ABD muhafazakar çevresi) temalı mesajlaşma uygulaması Freedom Chat’te kullanıcıların telefon numaralarını ve PIN kodlarını açığa çıkaran ciddi bir güvenlik açığı bulundu
  • Uygulama, daha önce de şifreleme uygulama hataları ve veri ifşası sorunları yaşayan Converso adlı önceki projenin devamı niteliğinde
  • Analiz sonucunda, kanal özelliği üzerinden tüm üyelerin PIN kodlarının diğer kullanıcılara gönderildiği ve kişi senkronizasyon API’si üzerinden telefon numarası-UID eşleştirmesinin mümkün olduğu ortaya çıktı
  • Araştırmacı, hız sınırlaması (rate limiting) hiç olmadığı için bir gün içinde tüm Freedom Chat kullanıcılarının telefon numaralarının toplanabildiğini doğruladı
  • Olay, “güvenliği öne çıkaran” bir uygulamanın temel kişisel veri korumasını bile sağlayamadığı bir örnek olarak gösteriliyor

Converso’dan Freedom Chat’e geçiş

  • 2023’te yayımlanan Converso, “sunucusuz merkeziyetsiz yapı” ve “en güncel E2EE” iddiasında bulunuyordu ancak araştırmacı crnković’in analizi bu iddiaların tamamının yanlış olduğunu ortaya koydu
    • Gerçekte merkezi sunucu ve üçüncü taraf şifreleme hizmeti (Seald) kullanıyordu ve şifreleme anahtarları herkese açık bilgilerden türetilebiliyordu
    • Tüm mesajlar herkese açık bir Firebase bucket’ına yükleniyordu ve herkes tarafından görüntülenebiliyordu
  • Bunun ardından CEO Tanner Haas uygulamayı geri çekti ve “muhafazakar çevrenin gizlilik kaygılarını” gerekçe göstererek Freedom Chat markasına geçti
    • “Eleştirileri kabul edip iyileştirme yapma” dersinden söz etse de güvenlik sorunları tekrarlandı

Freedom Chat’in yapısı ve özellikleri

  • Uygulama telefon numarası tabanlı kayıt ve 2FA kod doğrulaması kullanıyor; PIN ayarlamak ise isteğe bağlı
  • Ana özellikler bire bir sohbet ve Telegram benzeri yapıya sahip kanallar (Channels)
  • Uygulama ekran görüntüsü engelleme özelliğini öne çıkarıp bunu bir “güvenlik özelliği” olarak pazarlasa da bunun gerçek güvenlikle ilgisi yoktu

PIN kodu sızıntısı

  • /channel API isteğinin sonucunda, kanaldaki 1.519 üyenin kullanıcı nesnesinde (user object) bir PIN alanı bulunduğu görüldü
    • Her kullanıcının UID’si, Seald anahtarı, oluşturulma tarihi gibi bilgilerle birlikte 6 haneli PIN kodu düz metin olarak açığa çıkıyordu
  • Yeni bir hesap oluşturulup kontrol edildiğinde, kullanıcının kendi PIN’inin de yanıt verisine aynen dahil edildiği doğrulandı
  • Yani sistem, varsayılan kanalda kalan tüm kullanıcıların PIN’lerini diğer kullanıcılara açacak şekilde tasarlanmıştı

Telefon numarası eşleştirme açığı

  • /user/numbers API’si, WhatsApp’takiyle aynı şekilde kişilerin sistemde olup olmadığını kontrol ediyor
    • İstekteki numaralardan biri Freedom Chat kullanıcısına aitse, UID ve Seald anahtarı döndürüyor
  • Araştırmacı bu API’de hiç hız sınırlaması olmadığını ve tüm ABD telefon numaralarının sırayla test edilebildiğini doğruladı
    • Sonuç olarak telefon numarası-UID eşleştirmesi mümkün hale geliyor ve daha önce açığa çıkan UID-PIN verileriyle birleştirildiğinde telefon numarası-PIN eşlemesi tamamlanıyor

Tüm kullanıcı verilerinin sızdırılması deneyi

  • Araştırmacı, Kuzey Amerika’daki tüm telefon numaralarını (7 haneli kombinasyonlar × alan kodu) otomatik olarak sorgulayan bir Python betiği yazdı
    • Her istekte 40.000 numara gönderildi ve ortalama yanıt süresi yaklaşık 1,5 saniyeydi
    • 27 saat boyunca tüm istekler başarıyla işlendi ve tüm Freedom Chat kullanıcılarının telefon numaraları toplandı
  • Sunucu hız sınırlaması ya da engelleme önlemi olmadan yanıt verdi; yani veriler tamamen herkesin erişimine açık durumdaydı

Yanıt ve sonraki adımlar

  • 2025-11-23: Güvenlik açığı bulundu
  • 2025-12-04: TechCrunch muhabiri Zack Whittaker güvenlik açığını Freedom Chat’e bildirdi
  • 2025-12-05: Freedom Chat tarafı, “PIN’in mesaj kurtarma için kullanılmadığını ve hâlihazırda denetim sürecinin yürütüldüğünü” söyleyerek açıklama yaptı
  • 2025-12-09: Sorunun giderildiği bildirildi
  • 2025-12-11: Bu rapor ve TechCrunch haberi eş zamanlı olarak yayımlandı

Temel dersler

  • Freedom Chat “süper güvenlik” iddiasında bulunsa da temel kimlik doğrulama, hız sınırlaması ve veri koruma tasarımı yoktu
  • Sonuçta tüm kullanıcıların telefon numaraları ve PIN’leri açığa çıktı; güvenlik özellikleri fiilen etkisiz kaldı
  • Bu olay, güvenlik pazarlaması ile gerçek uygulama arasındaki uçurumu gösteren çarpıcı bir örnek olarak değerlendiriliyor

1 yorum

 
GN⁺ 2025-12-16
Hacker News görüşleri
  • Signal'in şifreli telefon numarası sorgulama sistemi ilginç
    Sunucu, donanım düzeyinde şifrelenmiş RAM üzerinde bit bazında XOR işlemi kullanarak numara sorguladığı için, sisteme en alt seviyeden bakılsa bile istenen telefon numarasının mevcut olup olmadığı anlaşılamıyor
    Elbette rate limiting ayrı ve önemli bir mesele. Güvenlik sistemi tasarlarken kapsanması gereken gerçekten çok sayıda uç durum var

    • Bence bu yaklaşım o kadar da havalı değil. Sonuçta bir güvenli mesajlaşma uygulaması en başta telefon numarası gibi kişisel bir tanımlayıcı istememeli
    • Devlet bütün telefon numaraları için sorgu gönderirse Signal bunu engelleyebilir mi diye merak ediyorum
      Matrix gibi ticari olmayan, gizlilik odaklı platformlarda bu tür bir eşlemenin zaten imkansız olması gerekir
      Örneğin, her kullanıcı çifti için telefon numaralarının hash'lenmiş değerlerini yükleyip, kullanıcıların yalnızca kendi kişi listelerindeki kişiler tarafından bulunabilmesini sağlama önerisi var
      Avantajı, hash alanının geniş olması nedeniyle geriye dönük çözümlemenin zor olması ve kullanıcının keşfedilebilirlik kapsamını doğrudan belirleyebilmesi
      Dezavantajı ise saldırganın tüm numara kombinasyonlarını üretip kişi ilişkilerini çıkarabilmesi ve devletin SMS doğrulamasını ele geçirerek bunu kötüye kullanabilmesi
    • Sunucunun donanım düzeyinde şifrelenmiş RAM'de XOR kullandığı kısmı ilginç. Bununla ilgili ek kaynaklar var mı merak ediyorum
    • Hâlâ telefon numarası istemesi can sıkıcı. Yakın zamanda eklenen username özelliği sayesinde numarayı ifşa etmeden kullanmak mümkün oldu ama hesabın hâlâ SIM tabanlı olması rahatsız edici
    • Ama biz Signal sunucusunu kendimiz derleyip çalıştıramadığımız için, sunucunun gerçekten böyle davrandığından emin olamayız
  • Kullanıcı nesnesindeki pin alanı şüpheli
    Muhtemelen bunun nedeni bir opt-out serileştirme kütüphanesi kullanılmasıdır. Varsayılan olarak nesnenin tamamı serileştirildiği için, geliştirici belirli alanları hariç tutmayı unutursa bunlar doğrudan açığa çıkar
    Ya da sunucuda basitçe bir JS sözlüğü kullanılıp yanıt verilmeden önce alan çıkarılmamış olabilir
    Bu açık, Viyana Üniversitesi araştırma ekibinin makalesinde geçen eski bir sorun; 2016'da Telegram'da da aynı yöntemle istismar edilmiş ve İran hükümeti 15 milyon kullanıcının telefon numarasını toplamıştı
    İlgili bağlantı: Telegram blogu

    • Önceki işimde kod denetimi yaparken bu tür serileştirme açıklarını her yerde görmüştüm. Geliştiricilerin artık bu kütüphaneleri kullanmayı bırakması lazım
    • Bu tür sorunlar gerçekten çok yaygın. Hassas alanlar istemciye gönderiliyor ama arayüzde görünmedikleri için kimse fark etmiyor
    • PIN'in sızması da sorun ama düz metin olarak saklanması daha da ciddi. Parolalarda olduğu gibi güçlü bir hash algoritması kullanılmalıydı
  • Günümüzde güvenlik açıklarının çoğu, sadece HTTP endpoint'lerini beklenmedik şekillerde çağırmaktan kaynaklanıyor
    2025'te hack denince insanların aklına karmaşık teknikler geliyor ama gerçekte ortada rate limiting bile olmayan bir API yayımlamak gibi bir durum var. Bu, Nginx'te tek satırlık bir ayarla çözülebilecek bir problem

    • “Nginx'te tek satırlık ayar yeter” sözüne karşı, “o Docker eğitiminde yoktu, o yüzden ne olduğunu bilmiyorum” türü bir tepki gözümün önüne geliyor
    • Yazılım geliştirme ilerledi ama güvenli geliştirme ilkeleri neredeyse hiç gelişmedi
      Hedeflerin çoğu kullanıcı sürtünmesini azaltmak ve ticari verimliliği artırmak. Birçok geliştirici XSS ya da SSRF gibi temel açıklardan habersiz şekilde sadece özellik geliştiriyor
    • Basit bir ayar bile olsa, uygulayabilmek için önce varlığından haberdar olmak gerekir
    • Eskiden otomatik iç güvenlik taramalarının işe yaramaz olduğunu düşünürdüm ama insanların gerçekten temel ayarları atladığını görünce bunun zorunlu olduğunu fark ettim
      Docker port eşleme hataları ya da CSP eksikliği gibi temel güvenlik hataları fazlasıyla yaygın
    • Ama yalnızca rate limiting yeterli değil. Saldırgan IP'leri dağıtarak paralel istekler gönderebilir
  • “Okuyuculara yalnızca en iyi blog yazılarını sunmak istiyoruz” cümlesini görünce, yazarı bana benzer eğilimleri olan biri gibi hissettim

  • Freedom Chat®'te gazetecilerin grup sohbetine katılamamasını sağlayan bir özellik olup olmadığını merak ediyorum. Yarı şaka yarı ciddi, DoD'deki bir arkadaşım için soruyorum

  • Sadece bu yıl içinde bile “güvenlik uygulaması” olup kullanıcı verilerini işlerken sızıntı yaşayan birkaç örnek oldu
    Aklıma gelenler yalnızca 20 sentlik (=4 vaka) bir liste ama muhtemelen daha fazlası vardır
    İlgili örnekler: 1, 2, 3

    • Bu olayın, insanların Facebook Messenger dışına çıkması için önemli bir itici güç olduğunu düşünüyorum
    • Ve bildiklerimiz de bunun yalnızca bir kısmı
  • Geçen yıl tesadüfen bir GOP iş ilanı panosuna bakmıştım; başvurular ilanlarla aynı arama dizininde tutuluyordu
    “bob” diye aratınca başvuranların özgeçmişleri ve yanıtları doğrudan ortaya çıkmıştı, gerçekten şok ediciydi

    • Hangi site olduğunu merak ettim
  • Anom olayından sonra “honeypot”tan daha uygun bir kelimeye ihtiyacımız var
    Gerçekten güvenli bir mesajlaşma uygulaması bu şekilde ortaya çıkmaz. Ama pazarlama sürüyor ve her seferinde yeni kullanıcılar buna çekiliyor

    • Artık başarısızlığın özellik haline geldiği bir dünyada yaşıyoruz
      Veri sızıntıları o kadar sık yaşanıyor ki insanlar buna karşı duyarsızlaştı. Toplu dava tazminatları bile sonunda daha fazla kişisel veri vermeyi gerektiren bir sürece dönüşüyor
      Tahmin piyasaları, kripto para ve benzerleri de çoğu zaman katılımcıya zarar veren yapısal başarısızlıkları başarı gibi paketliyor hissi veriyor
    • Yeni bir kelime olarak “Petepot” önerildi
  • Freedom Chat, “sorun düzeltildi” diye duyurdu ama gerçekten düzeltilip düzeltilmediği şüpheli

  • “Mobil uygulama geliştirme deneyimim yoktu ama zeki olduğum için zor olmayacağını düşündüm” cümlesi gerçekten doğrudan alıntıysa, neredeyse stand-up komedi repliği gibi duruyor