Lyra

Güvenlik Politikası

Desteklenen Sürümler

Lyra erken geliştirme aşamasında. Sadece main üzerindeki son commit güvenlik düzeltmesi alır.

Sürüm Destekleniyor
main Evet
Eski Hayır

Güvenlik Açığı Bildirme

Güvenlik açıkları için public GitHub issue açma.

Bunun yerine aşağıdakilerden biriyle özel olarak bildir:

  1. GitHub Security Advisory: Repo'da draft advisory aç (Security sekmesi → Report a vulnerability).
  2. E-posta: security@<replace-domain> (mümkünse PGP ile şifreli).

Şunları beklemelisin:

Kapsam

Kapsam içinde:

Kapsam dışı:

Tehdit modeli

Lyra, public internet'e ancak TLS terminate eden bir reverse proxy (genelde Cloudflare Tunnel) arkasından açılmak üzere tasarlandı. Express server'ın kendisi 127.0.0.1'e bind olur, asla public arayüze listen etmez.

Varsayılan saldırganlar:

Tehdit modeli dışında:

Sertleştirme varsayılanları

Lyra şu varsayılanlarla gelir; sonuçlarını anlamadan zayıflatma:

Entegrasyon token'ları rest'te plaintext

integrations tablosundaki config alanı plaintext JSON'dur. Burada Telegram bot token'ı, GitHub PAT'i ve Cloudflare API token'ı durur. Bu bilinçli bir karardır ve değişmesi planlanmıyor.

Neden şifrelenmiyor? Şifreleme ancak anahtar saldırgandan saklanabiliyorsa işe yarar. Lyra tek kullanıcılı, unprivileged bir servistir; anahtarın gidebileceği her yer o kullanıcı tarafından okunabilir:

Üç durumda da DB'yi okuma yetkisi olan saldırgan anahtarı da okur. Kendi kendini korumayan bir şifreleme katmanı denetimde iyi görünür ama saldırgan modelini değiştirmez, o yüzden eklenmedi. Anlamlı olacağı tek senaryo anahtarın başka bir güven alanında durmasıdır (HSM, harici secret store, işletim zamanında operatörün girdiği passphrase) — Lyra'nın tek kullanıcılı self-hosted tasarımı bunların hiçbirini varsaymaz.

Gerçek koruma dosya izinleridir: SQLite DB 0600, LYRA_HOME 0700, Lyra unprivileged kullanıcı olarak çalışır. Bu, tehdit modelindeki saldırganların (anonim internet kullanıcısı, LAN kullanıcısı) DB'ye erişemediği anlamına gelir. DB'yi okuyabilen saldırgan zaten host'ta shell erişimine sahiptir ve bu tehdit modelinin dışındadır.

Operatörün sorumluluğu:

Bilinen sınırlama: Cloudflare connector token'ı ve ps

Cloudflare Tunnel modunda kurulum sihirbazı cloudflared service install çağırır. Bu alt komut connector token'ını yalnızca argüman olarak kabul eder: --token-file bu alt komutta tanımlı değildir, TUNNEL_TOKEN ve TUNNEL_TOKEN_FILE ortam değişkenleri ile config.yml içindeki token: anahtarı yok sayılır (cloudflared 2026.7.3 ile doğrulandı).

Lyra token'ı sudo'nun argüman listesinden çıkarır ve stdin üzerinden geçirir, böylece token systemd journal'ına yazılmaz. Buna rağmen komut çalıştığı birkaç saniye boyunca token cloudflared process'inin kendi argümanlarında, yani ps çıktısında görünür.

Sonuç: host üzerinde o an aktif shell erişimi olan bir kullanıcı token'ı yakalayabilir. Bu, mevcut tehdit modelinin dışındaki "host'ta shell erişimi olan kullanıcı" senaryosuna girer. Paylaşımlı bir host'ta kurulum yapıyorsan, kurulumdan sonra Cloudflare dashboard'dan tunnel token'ını rotate etmek operatörün sorumluluğundadır.

İfşa

İfşayı raporlayanla koordine ederiz. Varsayılan zaman çizelgesi ilk rapordan 90 gün, ama düzeltme erken hazırsa veya karşılıklı anlaşmayla daha geç de olabilir.