- 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
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
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
Kullanıcı nesnesindeki
pinalanı şüpheliMuhtemelen 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
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
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
Docker port eşleme hataları ya da CSP eksikliği gibi temel güvenlik hataları fazlasıyla yaygın
“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
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
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
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
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