- StarDict'in X11 ortamında kullanıcının seçtiği metni şifrelenmemiş HTTP ile harici sunuculara gönderen ciddi bir güvenlik sorunu taşıdığı ortaya çıktı
- Sorun, Debian'ın varsayılan yapılandırmasında YouDao ve dict.cn eklentilerinin varsayılan olarak etkin olması nedeniyle ortaya çıkıyor
- Bu işlev, kullanıcı herhangi bir metni seçtiğinde otomatik olarak sunucuya gönderildiği anlamına geliyor ve hassas bilgi sızıntısı riski oluşturuyor
- Paket yöneticileri özelliğin devre dışı bırakılması ve eklentilerin ayrılması önerilerini değerlendirse de temel bir çözümün uygulanması yetersiz kaldı
- Bu sorun geçmişte de birkaç kez gündeme geldi, ancak tam bir karşılık verilememesi ve güvenlik farkındalığının önemini yeniden ortaya koyuyor
StarDict'in çalışma biçimi ve güvenlik sorununun özeti
- StarDict, GPLv3 lisanslı çapraz platform bir sözlük uygulaması olup, geniş dil desteği ve eklenti ekosistemine sahip
- Debian'ın varsayılan yapılandırmasında StarDict çalıştırıldığında, kullanıcının seçtiği metin şifrelenmemiş HTTP üzerinden youdao.com ve dict.cn adlı iki uzak sunucuya gönderiliyor
- Bu sorun oss-security posta listesine ve Debian hata takip sistemine de bildirildi
Sorunun ayrıntıları
- StarDict tasarımında sözlük web siteleriyle iletişim kuran kod bulunması doğal sayılabilir, ancak "tarama" işlevi varsayılan olarak etkin
- Bu, kullanıcının fareyle bir metin seçtiğinde otomatik olarak çeviri açılır penceresinin gösterildiği ve ilgili metnin harici sunucuya otomatik gönderildiği anlamına geliyor
- Özellikle kullanıcı StarDict'i arka planda sürekli çalışır halde bıraktığında sorun daha ciddi hale geliyor
Linux ortamlarına göre farklar
- Wayland ortamında StarDict diğer uygulamalardaki metni yakalayamadığı için tarama işlevi çalışmıyor ve bu nedenle güvenlik sorunu ortaya çıkmıyor
- Bu sorun yalnızca geleneksel X11 ortamında mevcut
Debian ve StarDict geliştiricilerinin tepkisi
- Debian paket yöneticisi Xiao Sheng Wen,
"Tarama işlevi ve YouDao eklentisi devre dışı bırakılabilir"diyerek bunu büyük bir sorun olarak görmedi - Buna karşılık bildirimi yapan Vincent Lefevre, "gizlilikle ilgili işlevler varsayılan olarak mutlaka devre dışı olmalı" diye vurguladı
- İşlev paket açıklamasıyla duyurulabilir, ancak stardict-plugin açıklamasında çevrimiçi sözlük kullanımından söz edilmiyor
- Eklentilerin ayrılması gibi iyileştirme önerileri bulunsa da hemen bir adım atılmış değil
Kullanışlılık ile güvenlik kaygıları
- Tarama işlevi, yabancı dilde okuma yaparken hızlı sözlük araması gerektiğinde StarDict'in başlıca avantajlarından biri
- Ancak kullanıcıların bu iletişimin şifrelenmediğini öngörmesi zor. Aradaki herhangi biri hassas metinleri görme riski taşıyor
Geçmişteki benzer güvenlik olayları ve müdahale
- 2009 ve 2015 yıllarında da benzer vakalar bildirildi
- 2009: ağ sözlüğünü varsayılan olarak devre dışı bırakma ayarı kısa süreliğine uygulanmıştı
- Ancak 2016'da eklenen YouDao eklentisi bu ayarı yok saydı
- 2015'teki sorun ise ancak 2025'te eklentinin kaldırılmasıyla çözüldü
- Bu tablo, sorunların tekrarlaması ve müdahalenin gecikmesi, bakım sorumlularının değişmesi ve önceliklendirme eksikliğinin yinelendiğini gösteriyor
Kullanıcı sayısı ve güvenlik etkisi
- Debian istatistiklerine göre şu anda StarDict'i kurup kullanan yalnızca yaklaşık 178 kişi var; ancak istatistiklere katılmayan sistemler de hesaba katıldığında, yıllar boyunca çok sayıda kullanıcı metin sızıntısı riskine maruz kalmış olabilir
- Parola kopyalama, hassas e-postalar, belge düzenlerken seçilen metinler gibi içeriklerin olduğu gibi dışarı sızma ihtimali bulunuyor
Açık kaynak ekosistemi ve güvenlik gündemi
- Debian gibi büyük dağıtımlar çok sayıda paketi yönetiyor ve güncellemelerin atlanması ile yazılımların eskimesi sık görülüyor
- "Yeterince çok kişi bakarsa tüm hatalar sığdır" şeklindeki Linus yasası, ancak gerçekten birinin hatayı bulup bildirmesi ve bakımcının da bunu sorun olarak kabul edip düzeltmesiyle geçerli oluyor
X11'den Wayland'e geçiş
- Wayland'e geçiş, özellikle uygulamalar arası bilgi sızıntısı gibi bu tür güvenlik açıklarının ortaya çıkma olasılığını azaltmayı amaçlıyor
- Ancak bununla birlikte işlevsel rahatsızlıklar ve yeni izin yönetimi biçimleri de çözülmesi gereken konular olarak kalıyor
Sonuç ve çıkarımlar
- Keşfedilen, teşhis edilen ve bildirilen güvenlik sorunlarının hâlâ çözülmeden kalabilmesi ya da yeniden ortaya çıkabilmesi endişe veriyor
- Linux'un güvenlik itibarını korumak için açık kaynak geliştiricilerin, paket bakımcılarının ve kullanıcıların sorunların farkında olması ve hızlı tepki vermesi şart
1 yorum
Hacker News yorumu
Xiao'nun işaret ettiği gibi, yazılım kuran kullanıcılar paket açıklamasını okuyabilir ve gerçekten de tarama özelliğinden bahsediliyor. Ama Debian bakımcılarının hata raporlarına sık sık "tüm paket açıklamalarını (hatta bağımlılık olarak kurulan yüzlercesini bile) dikkatle okumalısın" tarzında cevap vermesi var ya, dürüst olmak gerekirse birkaç gün önce yayımlanan Trixie sürümü itibarıyla tüm açıklamaları ve README'leri okumaya başlasaydın bile muhtemelen hâlâ bitirememiş olurdun
Elbette bir sözlük programının web siteleriyle iletişim kuran kod içermesini bekleyebilirsin. Ama apt-get ile bir sözlük kurduğumda, tüm sözlüğün bilgisayarımda olmasını beklerim. Sonuçta kâğıt sözlükler de yüzyıllardır kullanılıyor... Stardict çevrimiçi tabanlı olabilir ama normal sayılsa bile bunda tuhaf bir tuzak hissi var
Samsung telefonlarda tüm pano verisinin Samsung hesabımdaki bütün cihazlarla (şifreler dâhil) paylaşıldığını ve hatta geçmişinin de tutulduğunu öğrenince epey şaşırdım. Bunun varsayılan ayar olup olmadığını ya da yanlışlıkla kabul edip etmediğimi hatırlamıyorum. Bu verinin muhtemelen Samsung sunucuları üzerinden aktarıldığını tahmin ediyorum. Paylaşımı kapattım ama pano geçmişi kapanmadı; başka klavyeye geçsem bile Samsung klavyesine dönünce eski pano kayıtlarının hepsi orada kalıyor. Bir sonraki telefonumda Samsung seçmemeyi düşünüyorum
Wayland hakkında söylenenlerin biraz yanıltıcı olabileceğini hissediyorum. Son özet doğru: "Muhtemelen StarDict'in Wayland'de çalışmak için özel izin istemesi gerekecekti ve kullanıcı da şimdi olduğu gibi varsayılanı kabul edecekti." Yani büyük olasılıkla öyle olurdu ve kurulum sırasında bu izin otomatik olarak verilmiş bile olabilir. Zararlı yazılım her zaman vardır. Wayland bazı saldırılara karşı koruma sağlayabilir ama dağıtımın parçası olarak kurulan paketlere karşı güvenli değildir
Her pano değişiminde yerel sözlük sorgulaması yapılması sorun değil. Uzak sözlük sorgusu özelliği eklemek de sorun değil. Hatta bu ikisini özel bir bayrak gibi ayrı bir ayarla kolayca birleştirmek de makul olurdu; ama bunları varsayılan davranışta birleştirmek neredeyse kötü niyetli bir hareket sayılır
"Elbette bir sözlük programında web sitelerine bağlanan kod vardır" sözüne karşı, bunun aslında amaca göre değiştiğini söylemek isterim. Sunduğum Fince sözlük (
tsk) için en küçük sürüm yaklaşık 30MB boyutunda ve yaklaşık 250 bin kelime içeriyor; sözlük doğrudan ikili dosyanın içine gömülü ve her çalıştırmada prefix araması yeniden oluşturuluyor. Ama lemmatization, etimoloji vb. içeren devasa veritabanları onlarca gigabayta kadar çıkabiliyor. Benim amacım tamamen anlık, tuş vuruşu düzeyinde gezinme olduğu için bu yapı gerekliydi. Epey emek gerektirdi ve bu yüzden sonraki sürümlerde ücretli modele geçmeye karar verdim tsk Github ücretli sürüm ana sayfası (şu anda Windows için kod imzalama sorunları nedeniyle kapalı). Çoğu başka kullanım senaryosunda sunucuya sorgu göndermek çok daha pratiktir. Tüm dev sözlüğü indirmenin pek anlamı yok; bu yüzden karma bir yapı da (örneğin en yaygın 10 bin kelimeyi yerelde önbelleğe alıp geri kalan nadir kelimeleri sunucudan almak) oldukça mantıklıBöyle şeylerde kötü niyet dışında bir açıklama görmek zor; bakımcı "kullanıcı 'tarama' özelliğini bizzat etkinleştirdi ve metin seçimi çeviri işlemini tetikliyor... neden gizli verileri çeviri sorgusu olarak seçsin ki?" diye yanıt vermiş
Debian'a harcanan büyük emeğe saygı duyuyorum ama paket yöneticisindeki bu tür "maksimalizm" her zaman hoşuma gitmedi. Mesela foo kurmaya çalışırsın, mümkün olan her ilgili yazılımı da beraberinde kurar; ağ servisi varsa hemen çalıştırır. "Önerilen paketleri" kurmayı engelleyen bayrak olduğunu biliyorum ama varsayılan ayarın kullanıcıya ters düştüğünü hissediyorum
--install-recommendsvarsayılan olsun, bunda sorun yok. Recommends için "çoğumuz bunu istiyoruz", Suggests için "niş işlevler" gibi ince bir ayrım yapılması fena değil. Ama ben de tek tek bakımcıların Recommends alanını suistimal etmesini sorunlu buluyorum. Örneğin bir arşiv yöneticisi kurarken belirli bir init sisteminin fiilen dayatılması mantıklı değil (file-roller, GNOME ekibine bakıyorum)Neden bütün bunlar çevrimdışı değil, anlamıyorum. Tüm Çince sözlük 400 bin kelimeden az; kelime başına 1k saysan bile 400MB yeter. Bu gayet yerelde yapılabilir, ağ bağlantısına bağımlı olmak sadece kötü tasarım
Böyle meseleleri görünce aşırı öfkeleniyorum. Bu kesinlikle kabul edilemez