İçeriğe geç
zefıly
← Tüm yazılar

Sunucunuzdaki her değişiklik neden iki kez imzalanıyor?

5 dk okuma

Bir sunucu paneli yönettiği her sunucunun anahtarlarını tutar. Zefily'nin çalınmış bir oturumun, hatta ele geçirilmiş bir panelin bile sunucularınızı sessizce değiştirememesini nasıl sağladığı.

Sunucu panelleri hakkında rahatsız edici bir gerçek var: sunucularınıza yazılım kurabilen, yapılandırma düzenleyebilen ve komut çalıştırabilen bir panel, doğası gereği çok cazip bir hedeftir. Panele girildiğinde, teoride arkasındaki her sunucuya girilebilir.

Çoğu panel buna iyi uygulamalarla cevap verir: güçlü oturum açma, şifrelenmiş sırlar, özenli kod. Biz de bunların hepsini yapıyoruz. Ama kötü bir günde de geçerli kalan daha güçlü bir söz istedik: çalınmış bir oturum, hatta ele geçirilmiş bir panel bile sunucularınızı sessizce değiştirememeli. Bu yazı bunun nasıl çalıştığını anlatıyor.

Kısaca

  • Zefily sunucuları yalnızca işler aracılığıyla değiştirir: şemayla denetlenen yapılandırılmış istekler; asla serbest bir root kabuğu değil.
  • Her iş panel ve kendi makinesindeki ayrı bir imzalama servisi tarafından imzalanır; ajan ikisini de, ayrıca sıra numarasını ve son kullanma süresini kontrol eder.
  • Riskli işlemler ayrıca imzalama servisinin kendisinin doğruladığı passkey'inizi ister.
  • Sonuç: çalınmış bir oturum, hatta ele geçirilmiş bir panel bile sunucularınızı sessizce değiştiremez.

Kabuk değil, iş

Zefily sunucunuza asla root kabuğuyla girip komut yazmaz. Site eklemekten sertifika yenilemeye kadar her değişiklik bir iştir: tam olarak ne yapılacağını söyleyen, parametreleri yayımlanmış bir şemaya uymak zorunda olan küçük, yapılandırılmış bir belge. Sunucudaki ajanımız yalnızca bu iş türlerini nasıl yürüteceğini bilir. Köşede saklanan bir "panel ne derse çalıştır" işi yoktur.

Bu tek başına riskin büyük kısmını kaldırır. Peki hangi işlerin sunucunuza ulaşacağına kim karar veriyor?

İki imza, iki makine

Her iş iki kez imzalanır:

  1. Panel tarafından: bir düğmeye bastığınızda, API'yi çağırdığınızda ya da bir zamanlama tetiklendiğinde.
  2. Ayrı bir imzalama servisi tarafından: kendi makinesinde, farklı bir sağlayıcıda çalışan ve imza anahtarlarını dışarı çıkmalarına asla izin vermeyen bir anahtar yönetim sisteminde tutan servis. İmzalamadan önce kendi politikasını kontrol eder: bu iş türüne izin var mı, bu sunucu çok kısa sürede çok fazla iş mi gönderiyor, bu iş henüz almadığı bir onaya mı ihtiyaç duyuyor?

Sunucunuzdaki ajan herhangi bir şey yapmadan önce iki imzayı da kontrol eder. Ayrıca yalnızca artan bir sıra numarasını ve bir son kullanma süresini de kontrol eder; böylece yolda yakalanan bir iş sonradan tekrar oynatılamaz, sırası değiştirilemez ya da kötü bir gün için saklanamaz.

Bu size ne kazandırır? Paneli ele geçiren biri ilk imzayı üretebilir ama ikincisini üretemez. İmzalama servisi panele güvenmez; kendi kurallarını ve kendi hız sınırlarını uygular ve olağandışı her şeyi bize bildirir.

Riskli işler için passkey'iniz

Bazı işlemler istek gerçek olsa bile tehlikelidir: root terminali, bir sitenin dosyalarını ya da bir veritabanını silmek, bir veritabanı portunu tüm internete açmak, ajanı kaldırmak, web sunucusunu değiştirmek, özel nginx direktifleri.

Bunlarda iş passkey'inizi bekler. Cihazınız tam olarak o işin onayını imzalar ve imzalama servisi passkey imzasını panelin sözüne güvenmeden kendisi doğrular. Bir onay kullanıldığında size e-posta gelir.

Yani çalınmış bir oturum çerezi ve ele geçirilmiş bir panelle bile en yıkıcı işler hâlâ telefonunuzda, bilgisayarınızda ya da güvenlik anahtarınızda duran bir passkey'e ihtiyaç duyar.

Dikkatli bir ajan

Sunucuda ajan ikiye ayrılmıştır. Ağla konuşan kısmı ayrıcalıksız bir kullanıcı olarak çalışır. Yalnızca her kontrolden geçen işler, onları uygulayan küçük root yardımcısına ulaşır. Ayar değerleri (bellek sınırları, işçi sayıları gibi) güvenli sınırlara kırpılır; geçerli bir iş bile saçma bir şey isteyemez.

Panel için açık bir port da yoktur: ajan Zefily'ye karşılıklı kimlik doğrulamalı TLS ile dışarıya bağlanır. Güvenlik duvarınız SSH ve siteleriniz dışında kapalı kalır.

Sıkıcı bir örnek

shop.example.com için Site ekle'ye tıklıyorsunuz. Panel bir site.apply işi oluşturur, yetkilerinizi kontrol eder ve imzalar. İmzalama servisi site.apply işine izin verildiğini ve hız sınırının aşılmadığını kontrol eder, o da imzalar. Ajanınız işi alır, iki imzayı, sıra numarasını ve son kullanma süresini doğrular, parametreleri şemaya göre kontrol eder ve ancak ondan sonra Linux kullanıcısını, PHP havuzunu, nginx yapılandırmasını ve sertifikayı oluşturur.

Bunların hiçbirini görmezsiniz. Site birkaç saniye sonra öylece ortaya çıkar. İşini yapan güvenlik sıkıcı olmalı.

Neyi yapmaz?

Hiçbir tasarım bir sistemi dokunulmaz yapmaz; etkileyici olmaktansa net olmayı tercih ederiz. Bu model sunucularınızı ele geçirilmiş bir panele karşı korur. Bir siteyi o sitedeki açıklı bir eklentiye karşı korumaz ve kendi cihazlarınızı ve passkey'lerinizi güvende tutmanın yerini tutmaz. Zefily bu yüzden her sunucuda ayrıca güvenlik duvarı, CrowdSec, otomatik güvenlik güncellemeleri, isteğe bağlı bir web uygulama güvenlik duvarı ve zararlı yazılım taramaları çalıştırır.

Sık sorulan sorular

Zefily'de çift imza nedir?

Bir sunucuya gönderilen her iş iki imza taşır: biri panelden, biri kendi makinesinde kendi politikası ve hız sınırlarıyla çalışan ayrı bir imzalama servisinden. Sunucudaki ajan ikisini birden taşımayan her işi reddeder.

Zefily paneli hacklenirse ne olur?

Saldırgan panelin imzasını üretebilir ama kendi kurallarını uygulayan ve anormallikleri bildiren imzalama servisinin imzasını üretemez. En tehlikeli işlemler ayrıca müşterinin, imzalama servisinin kendisinin doğruladığı passkey'ini ister.

Hangi işlemler passkey onayı ister?

Yüksek riskli olanlar: root terminali ya da komutu, yeniden başlatma, site dosyalarını ya da veritabanlarını silme, bir veritabanı portunu herkese açma, ajanı kaldırma, web sunucusunu değiştirme ve özel nginx direktifleri.

Zefily ajanı sunucumda açık bir port ister mi?

Hayır. Ajan Zefily'ye karşılıklı kimlik doğrulamalı TLS ile dışarıya bağlanır; güvenlik duvarı SSH ve siteleriniz dışında kapalı kalır.

Yakalanan bir iş sonradan tekrar oynatılabilir mi?

Hayır. Her işin yalnızca artan bir sıra numarası ve son kullanma süresi vardır; ajan tekrar oynatılan, sırası değişen ya da süresi dolan işleri reddeder.

Güvenlik modelinin tamamını okuyun ya da onayların nasıl çalıştığına bakın.

Diğer yazılar