Hacker kök erişimi durumunda bile site dışında güvenli bir yedekleme yapın


24

Verilerimi, kötü niyetli bir bilgisayar korsanının sunucuma kök erişimi sağladığı duruma karşı da koruyacak, site dışında yedekleme yapmanın daha güvenli bir yolunu uygulamanın bir yolunu arıyorum. SSH ve parola güvenliği uygun bir şekilde ayarlanmışsa ve sistem güncel tutulursa, bu olma ihtimali diğer risk türlerinden daha küçük olsa da, kalıcı olarak yapılabilecek hasar miktarı gerçekten çok yüksek Bunu sınırlayacak bir çözüm bulmak istiyorum.

Site dışı yedeklemelerin iki yolunu zaten denedim:

  • yedeklenmiş verilerin üzerine kopyalandığı, basit bir root-writable webdav mount (ve fstab ile konfigüre edilmiştir). Sorun : gerçekten bir site dışı yedekleme değil, çünkü harici siteye bağlantı - ve ayrıca erişim - dosya sisteminde sürekli bir klasör olarak açık bırakılıyor. Bu, bağlanma sınırlı erişim ayrıcalıklarına sahipse (salt okunur root erişimi), ancak root erişimi olan kötü niyetli bir kişiye karşı koruma sağlamazsa, birçok saldırı türüne karşı yeterli koruma sağlar.

  • Anahtar kimlik doğrulaması ile SSH üzerinden Borg yedekleme. Sorun : Kötü niyetli kullanıcının ana bilgisayara kök erişimi varsa, bu dış sunucuya bağlantı ana bilgisayarda depolanan anahtarla yapılabilir.

Bir çözüm olarak şu potansiyel yolları düşünüyorum, ama nasıl ve ne ile bilmiyorum:

  • Yedekler yalnızca hedefe yazılabilir veya eklenebilir ancak silinemez.
  • Şirket dışı yedeklemeleri işleyen ve şirket dışı yedeklemelerin ilk ana bilgisayardan toplu olarak silinmesini desteklemeyen yedekleme yazılımının kullanılması.

Durumumda gerçekten ilginç olmayan çözümler:

  • Site dışı ana bilgisayarda, ilk ana bilgisayar tarafından erişilemeyen bir yere (teknik sınırlamalar nedeniyle) aktarılan ek bir yedekleme işi.

Birisi benim durumum için uygun bir site dışı yedeğin nasıl uygulanacağı konusunda tavsiyede bulunabilir mi?


7
İlk önce sunucunun içinde yerel bir yedekleme yapın. Ardından, başka bir sunucudan yedeklemeyi kendinize yüklersiniz (dizinleri bağlamadan).
TheESTEST

2
30 ya da 40 yıl önce, isimsiz bir "gelen" dizini olan FTP sunucuları vardı. Dosyaları yükleyebilir, ancak üzerine yazamaz veya listeleyemezsiniz. Sadece yönetmen izinlerini buna göre ayarlayarak çalıştı. Yani ... yerel kök ya da değil, fark yok.
Damon,

@TheDESTROS Cevaplarda cevap yazınız, lütfen yorumda bulunmayınız.
wizzwizz4

Anonim bir FTP'nin artık kullanılması gerektiğini sanmıyorum.
Lucas Ramage

Yanıtlar:


54

Tüm önerilerinizin şu anda ortak bir özelliği var: yedekleme kaynağı yedekleme yapıyor ve yedekleme hedefine erişebiliyor. Konumu monte etseniz veya SSH veya rsync gibi araçlar kullansanız da, kaynak sistem bir şekilde yedeklemeye erişebilir. Bu nedenle, sunucuda bir uzlaşma yedeklemelerinizi de tehlikeye atabilir.

Ya yedekleme çözümü bunun yerine sunucuya erişebiliyorsa? Yedekleme sistemi işini salt okunur erişimle yapabilir, bu nedenle yedekleme sistemindeki herhangi bir uzlaşma muhtemelen sunucuyu tehlikeye atmaz. Ayrıca, yedekleme sistemi tek başına bu amaç için tahsis edilebilir, bu da yedeğin içeriğini tek saldırı vektörü yapar. Bu pek olası değildir ve gerçekten karmaşık bir saldırıya ihtiyaç duyar.

Değiştirilmiş veya hasar görmüş içeriğe sahip yedeklerin üzerine yazılmasını önlemek için, tanımlanan geri yükleme süresi içinde önceki durumları geri yüklemenizi sağlayan artımlı yedeklemeler yapın.


Salt okunur bir erişim çözümü oluşturmak için nerede bir rehber arayacağınız konusunda herhangi bir tavsiye?
EarthMind

5
Bu şeyleri ssh üzerinden yedeklemem: Yedekleme sunucusu yedeklenecek sunucuya ssh yapacaktır.
Michael Hampton

4
ssh üzerinden rsync de iyi bir seçenektir ve artımlı yedeklemeler sağlar. düz scp tam yedeklemeler için daha uygundur
GoFundMonica - codidact.org

10
+1 - "basma" yerine "çekme"
Criggie

1
Bu aynı zamanda BackupPC veya IBM Tivoli Storage Manager (aka Spectrum Protect) gibi yedekleme çözümlerinin nasıl çalıştığıdır.
Dubu

9

Değişmez depolama

İyi bir seçenek, yedekleme depolama alanınızı değişmez kılmak veya en azından size etkili bir şekilde değişmezlik sağlayan güvenilir sürümler sağlamaktır. Açık olması: değişmez demek değiştirilemez veya kalıcı demektir.

Bunu sizin için yapabilecek çok sayıda servis var. AWS S3, BackBlaze B2 ve Azure ve Google'ın benzer hizmetler sunduğundan şüpheleniyorum. Muhtemelen bunu yapmak için bir sunucu ayarlayabilirsin, ama nasıl emin değilim.

Değişmez / sürüm kontrollü bir deponuz olduğunda, yedeklemenizi herhangi bir noktaya geri yükleyebilirsiniz, böylece ana makineniz tehlikeye atılırsa, istediğiniz zaman olduğu gibi geri yükleyebilirsiniz.

* AWS S3 **

Ben en çok AWS S3'e aşinayım. S3, yüksek dayanıklılık düzeyine sahip sürümlü, şifreli depolama sağlar.

S3, size etkili bir değişkenlik kazandıran sürümleri destekler. Yapılandırabileceğiniz bir sürenin ardından dosyaların eski sürümlerini silmek için yaşam döngüsü kurallarını kullanmayı seçebilirsiniz. Ayrıca sürümleri yaklaşık 1 $ / TB / ay tutarında olan soğuk depolamaya (buzul soğuk arşivi) arşivleyebilirsiniz.

Maliyetleri düşürmek için akıllı depolama katman sınıfını kullanabilirsiniz. Tüm statik verileri, dayanıklı ve orta (sıcak) performansta olan ancak S3 standardının ölçeklenebilirliğine veya performansına sahip olmayan nadir erişim sınıfına taşımak için bir yaşam döngüsü kuralı kullanmayı tercih ediyorum.

S3, IAM (kimlik erişim yönetimi, yani kullanıcı yönetimi) kullanıcıları ve politikalarını kullanır. Bu, yedekleme yazılımınızın depolama alanı ile neler yapabileceğini çok ayrıntılı bir şekilde kontrol etmenizi sağlar. Yedekleme kullanıcısına yüklemeler için izin verebilir, ancak güncelleme ve silme işlemini reddedebilirsiniz. Ayrıca, dosyaları silmek için çok faktörlü kimlik doğrulaması gerekebilir veya dosyaların silinmemesi için bir nesne kilidi de sağlayabilirsiniz .

Önerilen Yazılım

Restic kullanarak artımlı yedeklemeler oluşturuyorum . Restic, yeni dosyaları depolama alanınıza yükler. Yeni dosyalar oluşturduğuna (ancak hatalı olabileceğime inanıyorum), ancak genel operasyonda hiçbir dosyayı güncellemiyor veya silmiyor.

Borg başka bir seçenektir. Borg'u kullanırdım, ancak orta büyüklükteki yüzlerce MB yedeklemem ile tüm verilerimi EC2'den S3'e kadar her gün etkili bir şekilde yüklediğimi öğrendim. Bana göre bu artan değil, bu yüzden kullanmayı bıraktım. Bununla ilgili belgeleri buldum, ancak bağlantıya sahip değilim.

Bulut depolama alanına yükleyebileceğiniz düzinelerce yazılım parçası var.

Korumalı Depolama

Bazı yedekleme yazılımlarıyla, IAM kullanıcısına yeni dosyalar yazma izni vermeyi deneyebilir, ancak varolan dosyaları güncelleme. Bu kısıtlamayı AWS IAM ile yapmak kolaydır, ancak aşağıdaki yoruma göre Restic bu izinlerle çalışmayacaktır. S3'ten dosya silmek için gereken çok faktörlü kimlik doğrulamanız da olabilir.

Belirlediğiniz politikaya göre sürümleri atarak, arşivin periyodik temizliğini yapan PC'nizden kaçan başka bir IAM kullanıcısı olabilir.


1
Ayrıca bakınız S3 Nesne Kilidi . Kök kullanıcısı bile olmayan hiç kimse tanımlanan süre boyunca bir nesneyi silemez veya üzerine yazamaz şekilde yapılandırılabilir.
user71659

Nesne kilidinin yedeklemeler için biraz fazla olabileceğinden şüpheleniyorum, bazen dosyaları silmek isteyeceksiniz. Zaman aşımına uğradı böylece dosyaları daha sonra silebilirsiniz.
Tim

1
Restic, özel erişimi denetlemek için "kilitler" dizinindeki dosyaları oluşturmayı ve kaldırmayı sever, bu nedenle arka uçtaki dosyaları kaldırma iznini kaldırırsanız, sonları bozulur. Burada önerilen bir çözüm , iki kova kullanmaktır (kilitler için bir okuma / yazma kovası ve her şey için bir tane yalnızca ekleme kovası). Daha sonra, talep yoluna bağlı olarak iki Rclone örneğinden birinden malzeme göndermek için yerel bir tinyproxy örneği kullanır ve her Rclone komutları uygun kovaya gönderir.
Scott Dudley

8

Borg Backup, yalnızca ekli uzak havuzları destekler . Yedeklenen sunucunun uzlaşması, yalnızca eski olanların üzerine yazmamakla birlikte yalnızca yeni yedekler oluşturmakla sonuçlanabilir.


2
Borg ile ilgili hoşuma gitmeyen bir şey, artımlı yedeklemeniz belirli bir boyutun altındaysa, tüm yedeklemeleri yükler. Restic'e taşındım çünkü bant genişliği yetersizdi. Eşiğin ne olduğunu bilmiyorum, ama bu biraz can sıkıcı bir durum.
Tim

Öyleyse, böyle bir sistemdeki eski yedekleri kim siler? Sadece bir kez sabit disklere malzeme eklemeyi ve hiçbir zaman çıkarmayı denemedim, hızlı bir şekilde depoları tükendi.
Mast

7

Durumumda gerçekten ilginç olmayan çözümler:

Harici ana bilgisayarda, onları ilk ana bilgisayar tarafından erişilemeyen bir yere aktaran ekstra bir yedekleme işi.

Temel sorun şu ki, yedeklerinize uzaktan erişebiliyorsanız , bilgisayar korsanı da olabilir .

(Teknik sınırlama nedeniyle)

Teknik sınırlamaların üstesinden gelmek için yapılır.

Birisi benim durumum için uygun bir site dışı yedeğin nasıl uygulanacağı konusunda tavsiyede bulunabilir mi?

Teyp sürücüleri , neredeyse 70 yıldır, bilgisayar korsanları da dahil olmak üzere her türlü felakete karşı güvenli ve yerinde koruma sağlıyor.


1
Bu cevabın neden daha yüksek olmadığını anlamıyorum. Çevrimiçi saldırıyı engellemenin en iyi yolu, çevrimdışı duruma getirmektir. Bant basit ve kanıtlanmış.
Greg,

@Greg Kullandığım hizmetin sınırlamaları nedeniyle, sadece webdav, Borg, SMB ve NFS bağlantılarına izin veren, benim durumumda olduğu gibi, herkes için bir çözüm değil. Ayrıca, çok pahalı (iyi alternatiflere kıyasla) bir çözümdür ve her durumda ilginç değildir. Pahalı bir çevrimdışı yedekleme çözümü ile kendimi 10 € / m VPS yedeklediğinizi görmüyorum. Veriler bitseydi, bu benim için dünyanın sonu değil. Burada farklı fiyat aralıkları önerileri görmek güzel, ancak bu çözümler kullanım durumum için en az ilgi çekici.
EarthMind

Bu. Fiziksel ortama yedekleyin ve fiziksel ortamı, doğal afetler için farklı bir risk profiline sahip ideal bir tesis dışı konumdan döndürün.
arp

@ sysadmins'imden ikisi (DBA'yım) iki kaseti araba gövdelerinde tuttu ... Bunlardan biri 9 / 11'de WTC'de çalışmaya geç kaldı (bu sistemler farklı DC'lerde idi), yani 9 / 12 ya da 9/13 (hangisini unuttum) haftalık eski kasetleri ile yedek DC'ye gitti.
RonJohn

3

Kök hesabınıza PUT izinlerini kovunuza verebileceğiniz ancak DELETE izinlerini veremediğiniz AWS S3 (veya muhtemelen Google’ın veya Azure’nin eşdeğeri) gibi depolama hizmetlerini kullanabilirsiniz. Bu şekilde, bir push modeli kullanabilirsiniz; saldırgan yedeklemeyi silemez.

MFA'nın kovada DELETE'lerini gerçekleştirmesini istemek gibi, ancak MFA'sız PUT'lara ve GET'lere izin vermek gibi AWS ile alabileceğiniz güvenlik önlemleri vardır. Bu şekilde, MFA cihazınızı kullanmadan hizmetlerinizi geri yüklemek için hem verilerinizi yedekleyebilir hem de geri alabilirsiniz; bu, MFA cihazına erişimin tehlikeye girebileceği bazı aşırı (ve muhtemelen çok da belirsiz bile) bir durumda yararlı olabilir.

Ayrıca, ilginç / faydalı bulabileceğiniz kapsam dışı bir yorum, ana veri kaynağının çevrimdışı olması durumunda S3 ve benzer hizmetlerin otomatik yerine çalışma için yapılandırılmasının birkaç yolu vardır.


1
IAM'de yazma özelliğine sahip ve silme erişimi olmayan özel bir "push" istemcisi oluşturmanızı tavsiye ederim. Ayrıca, kovadaki sürümlemeyi açın, bu nedenle önceki sürümler hala kullanılabilir durumda. Maliyet tasarrufu olarak, eski sürümleri Glacier'a "emekli edin".
Criggie

3

Anahtar kimlik doğrulaması ile SSH üzerinden Borg yedekleme. Sorun: Kötü niyetli kullanıcının ana bilgisayara kök erişimi varsa, bu dış sunucuya bağlantı ana bilgisayarda depolanan anahtarla yapılabilir.

Yetkili komutunuzda seçenek komutunu kullanabilirsiniz. Uzaktan kumandada izin verilen komutu düzeltirsiniz.

ssh yetkili_düğmesine komutlar nasıl eklenir

Bir saldırgan giriş kökünü kurtarsa ​​bile, tanımlanmış komuttan başka bir şey yapamaz.


1

Ayarlayabileceğiniz bir teknik, sunucunuz ve bir uzak yedekleme sunucusu arasında senkronizasyon kullanmak ve uzak yedekleme sunucusunun anlık görüntüleri ya da herhangi bir şeyini yapmasına izin vermek, böylece sunucu tarafının silinmesi, site dışında silinmesine neden olmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.