1 puan yazan GN⁺ 2025-08-13 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-08-13
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

    • "Planlar ve yıkım emri, sizin Dünya zamanınızla elli yıl boyunca Alpha Centauri'deki yerel ofiste sergilendi. Yerel meselelere ilgi göstermediyseniz..." kısmı tam buna uyuyor gibi hissettiriyor YouTube video bağlantısı
    • Böyle bir cevap geliyorsa, bunu kötü niyet dışında bir şekilde yorumlayabileceğimi sanmıyorum
    • Debian deposundan program kurduğumda bunu rahatlık ve güven için yapıyorum. Bakımcının paket davranışını değiştirmesinden sık sık şikâyet etsem de, insanlar en azından pano verisini başkalarına gönderen özelliğin opt-in, yani açıkça etkinleştirilebilir olmasını tercih ederdi. Bu, güveni boşa çıkarmaktır
    • Trixie sürümünde tüm paket açıklamalarını ve README'leri okumanın zor olduğu görüşüne katılıyorum. 90'ların sonu ile 2000'lerin başında Debian'ı ilk kullandığımda, dselect ile istediğim paketleri seçip birkaç saat ayırarak tüm seçenekleri gerçek donanım ortamıma göre ayarlayabiliyordum (o zamanlar bugünkü kadar dinamik değildi, o yüzden her seçeneği tek tek belirlemek gerekiyordu). Şimdi ise paket sayısı fazla arttı ve çekirdek ayarları da aşırı genişledi; gerçekçi olarak her şeyi kontrol etmenin mümkün olmadığı bir dünyadayız (hâlâ dselect kullanan var mı...?)
    • Söylediğine katılıyorum. Özellikle de o paket bakımcısının eski bir sorunda olduğu gibi başka paketlerin yapılandırma dosyalarını bile değiştiren uygunsuz davranışları daha önce de defalarca sergilemiş olması yüzünden, bu tür şeyler tekrar tekrar yaşanıyor. Böyle bir şeyin depodan kaldırılması gerekir
  • 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

    • Bunun kuşak farkı olduğunu düşünüyorum. Bugün uygulamaların internetle konuşmasını doğal görenler, yerelde kurulup dış dünyayla iletişim kurmayan yazılımlara alışık olmayan daha genç kuşak. Geliştiricinin geçmişine bakınca bilgisayar bilimlerinde yetkin biri olduğu görülüyor; çevrimdışı sözlüğün mümkün olduğunu da gayet iyi biliyordur, ama kendi kuşağının "normali" neyse onu izliyor gibi. Bugünün dünyasında yerelde kurulup yalnızca çevrimdışı veriyle çalışan uygulamalar, adeta şövalyelik gibi, yalnızca birkaç BT Don Kişot'unun yaşattığı bir kavram hâline gelmiş olması üzücü
    • Normal sayılsa bile, şifrelenmemiş HTTP kullanılması asla kabul edilemez
    • Eski ding programı yerel sözlükleri çok iyi destekliyor. Debian'da da var ding bağlantısı
    • Bu benim de dikkatimi çekti. Böyle basit bir işlevin bile canlı hizmet olarak bekleniyor olması üzücü
    • Bir noktadan sonra GUI uygulamalarını ağ erişimi olmadan çalıştırmaya başladım. Önce firejail, sonra bubblewrap, sonra da zaman içinde yazdığım bash betikleriyle uygulamaları bir sandbox ortamında çalıştırdım. Bunu flatpak'ten çok önce yapıyordum
  • 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

    • Samsung TV'lerin de izleme geçmişini ve kişisel bilgileri pazarlama şirketleriyle paylaştığını biliyorum. Samsung gizlilik politikası telefon ve TV için aynı
    • KDE Connect üzerinden Linux'ta kopyaladığım şifrelerin Android pano geçmişinde kaldığını gördüm. Tüm pano paylaşımını kapatmadan, sadece parolaların aktarılmasını engellemenin bir yolu var mı diye merak ediyorum
    • Samsung cihaz kullanırken hiç Samsung hesabı oluşturmamanı veya giriş yapmamanı tavsiye ederim. Bu, şirketin verilerine erişme fırsatını ciddi ölçüde azaltır
  • 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

    • Bu bir yanlış yönlendirme değil; Wayland, Xorg'a kıyasla bu açıdan gerçekten daha iyi. Ancak meselenin özü bundan daha yapısal. Örneğin gönderilen veriler şifreli bile değildi! StarDict, X11 üzerinde Debian'ın varsayılan ayarlarıyla, kullanıcının seçtiği metni HTTP üzerinden iki uzak sunucuya gönderiyor. Paket açıklamasını ya da YouDao eklentisini dikkatle okumuş olsan bile, en azından iletişimin şifreli olmasını beklersin. Ama gerçekte veriler dict.youdao.com ve dict.cn sunucularına, hiçbir güvenlik olmadan HTTP ile gidiyor; aradaki herhangi biri de istek içeriğini görebilir
  • 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

    • Buradaki youdao bir çeviri hizmeti. Çevrimdışı çeviri, çevrimiçi çeiriye kıyasla çok daha zayıf; yani ben yalnızca veri olmadığında local google offline translation paketi gibi bir şey kullanmak isterim. Stardict kullanmıyorum ama sadece kelime anlamı değil daha kapsamlı çeviri isteniyorsa böyle bir davranış gayet beklenebilir. Sonuçta bu yazının tüm özeti şu: "Bir Çin çeviri programı pano verisini kendi web sitesine ve Çinli bir çeviri hizmetine gönderiyordu, üstelik bunu şifreleme olmadan HTTP ile yapıyordu"
  • "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ş

    • Acaba bakımcı, yabancı bir dilde sır olabileceğini ayırt edemiyor olabilir mi... mesela üzerinde "秘密" yazıyorsa. "Takım liderim, düşman çeviri sunucusunda hata yaşıyor gibi görünüyor!"
  • 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

    • Kibarca itiraz edeyim. "Önerilenler (Recommends)", kurduğun paketin ana işlevini genişletmek için kullanılır. Bunlar olmadan paket bozulmaz ama güçlü özellikler devre dışı kalır. Gündeme gelen paketin "Önerilenler" değil, "Öneriler (Suggests)" olarak sınıflandırılması gerekirdi. "Suggests" varsayılan olarak kurulmaz. apt ya da aptitude kullanırken kurulum önizlemesi sunulur ve kullanıcı seçim yapabilir. Minimalizm ile kullanım kolaylığı arasında doğal bir gerilim var. Debian 13 sürümü bağlamında "Debian asla kullanıcı dostu bir dağıtım değildir" görüşü de ortaya atılmıştı. Ben şahsen "DIY için DIY IKEA tarzı" yerine "istikrarlı, temel işlevleri sağlam ve kullanıcı dostu bir dağıtım"ı tercih ederim. İleri düzey kullanıcılar isterse bunu zaten her zaman değiştirebilir. Varsayılanı kalıcı olarak değiştirmek istiyorsan /etc/apt/conf.d/ üzerinden yapabilir, tek seferlik olarak da --no-install-recommends kullanabilirsin
    • Bu, kolaylık ile güvenlik arasında denge kurmaya çalışan klasik bir ikilem. Debian'ın varsayılan "öneriler" davranışı, ağın her yerde hazır ve nazır olmadığı ve yerel işlevselliğin güvenlik sınırlarından daha önemli görüldüğü bir dönemin varsayımlarıyla tasarlanmıştı
    • Başlangıçta APT::Install-Recommends varsayılanı false idi ve Debian 6.0 Squeeze (2011-02-06) ile true oldu. O zamanlar Debian ve Ubuntu'da gereksiz paketlerin kurulmasından hoşlanmazdım. Şimdi dönüp bakınca, recommends ile suggests ayrımının zaman zaman belirsiz olduğunu ve "önerilenleri" varsayılan kurup kullanıcının opt-out etmesinin daha iyi bir tercih olduğunu düşünmeye başladım. Yine de benim yönettiğim sistemlerde önerilen paketlerin otomatik kurulmasını hâlâ kapatıyorum
    • --install-recommends varsayı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)
    • Öte yandan, ihtiyaç duyulan bir özelliğin opt-in olarak kalıp eksik gelmesi de sorun. Mesele, "önerilen" paketlerin kurulu olup olmamasından çok, paket önerilerinin kendisinin daha muhafazakâr olması gerektiği. Nitekim Debian zaten zorunluluk ve isteğe bağlılık ayrımını recommended ve suggested ile yapıyor
  • 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

    • O zaman önce copyleft bir sözlüğe ihtiyaç olurdu
  • Böyle meseleleri görünce aşırı öfkeleniyorum. Bu kesinlikle kabul edilemez

    • Yalnız olmadığını söylemek isterim. Bill Gates'e pasta atıldığı zamanki gibi, insanları kendine getirecek bir şeye ihtiyaç var