MongoDB sunucusunun güvenliğini sağlama/sertleştirme konusunda deneyimi olan var mı? Kontrol listeleri veya kılavuzları memnuniyetle karşılanacaktır.
databaseshardeningmongodbnosql
28
27 Eyl 2011 AaronS
NoSQL veritabanları nispeten yenidir (tartışmasız eski bir kavram olmasına rağmen), herhangi bir belirli MongoDB sertleştirme kılavuzu görmedim ve her zamanki yerlere baktım ( CISSecurity , satıcı yayınları, Sans vb. Hepsi kısa). Bir kuruluş, üniversite öğrencisi, infosec topluluğunun bir tane yazmasının ve sürdürmesinin iyi bir proje olacağını önerir.
Mongodb.org'da bazı temel bilgiler var. Güvenliğin sağlanması da dahil olmak üzere buradaki tüm adımlar takip edilmelidir. Sitenin kendisi MongoDB'nin sadece çok temel bir güvenlik seviyesine sahip olduğunu belirtiyor. http://www.mongodb.org/display/DOCS/Security+and+Authentication
MongoDB ve diğer NoSQL veritabanları da olgun SQL veritabanlarından çok daha az (özellikle güvenlik) özelliklere sahiptir, bu nedenle ince izinler veya veri şifreleme bulmak pek olası değildir, tohum olarak kullanıcı adıyla parola karma için MD5 kullanır. Her zaman bir risk değerlendirmesi yapmak ve güvenlik ihtiyaçlarınızı ve karşılaştığınız tehditleri çözmek için bir tehdit modeli oluşturmak gibi, 1.9.1 sürümünden önce kırma ile kimlik doğrulamasının bulunmaması gibi sınırlamalar da vardır. Bu çıktıya dayanarak, genel olarak MongoDB veya NoSQL veritabanları ihtiyaçlarınız için uygun olmayabilir veya avantajlarını en üst düzeye çıkaran ve zayıflıklarını en aza indiren farklı bir şekilde kullanmanız gerekebilir (örneğin en hassas bilgileriniz yerine veri özleri için, veya doğrudan web uygulamanıza bağlı olmak yerine bir dizi ağ denetimi arkasında).
Bununla birlikte, güvenlik ilkelerinin teknoloji agnostik olduğuna inanıyorum. En son saldırıları ve datalossdb.org'daki iyi bir listeyi bile analiz ederseniz, kaç tanesinin hala varsayılan şifreler ve eksik yamalar ile ilişkili olduğu şaşırtıcıdır. Derinlemesine savunma ile takip ederseniz aşağıdaki uygulamaların çoğunu korumak için yeterli güvenlik olmalıdır (örneğin, bireysel, ticari) belki askeri değil.
Veritabanı sertleştirme ilkeleri:
Kimlik doğrulama - kimlik doğrulaması gerektirir, yönetici veya ayrıcalıklı kullanıcılar mümkünse iki faktöre sahiptir (bunu veritabanı düzeyinde desteklemediğinden platform düzeyinde veya bir ağ cihazı üzerinden yapın). Mümkünse şifreleri önlemek için anahtar tabanlı kimlik doğrulamayı kullanın.
Yetkilendirme - gerekli izinlere sahip minimum sayıda gerekli hesap, salt okunur hesaplar desteklenir, bu nedenle bunları kullanın. Ayrıntılı erişim kontrolü olmadığından alternatif araçlar kullanın, örneğin veritabanı önünde, erişim kontrol kuralları veya uygulama içinde iş mantığı içeren bir web hizmeti kullanın. Mongodb'un platformda olduğu gibi çalıştırdığı izinleri en aza indirin; kök olarak çalıştırılmamalıdır.
Varsayılan ve sistem hesapları - tüm varsayılan hesapların şifrelerini değiştirin, yapabildiklerinizi kaldırın/kilitleyin/devre dışı bırakın, yapabileceğiniz girişleri devre dışı bırakın.
Günlüğe kaydetme ve izleme - günlüğe kaydetme etkinleştirin ve bunları merkezi bir izleme sistemine aktarın. İzleme personeliniz için özel uyarılar ve araştırma prosedürleri tanımlayın
Giriş doğrulama - NoSQL veritabanları enjeksiyon saldırılarına karşı hala savunmasızdır, bu yüzden sadece iyi bilinen girdiyi doğrulamak, uygulama çerçevelerinizde paramaterizasyon kullanımı, güvenilir olmayan girdiyi bir veritabanına geçirmek için tüm iyi uygulamalar gereklidir
Şifreleme - verinin hassasiyetine bağlı olarak, veritabanı düzeyinde şifreleyemeyeceğiniz için, uygulama katmanında hassas verilerin şifrelenmesi veya hash edilmesi gerekir. Şifrelemeyi ağ katmanı üzerinden de aktarın (örn. VPN).
Servisleri en aza indirin ve varsayılan dinleme bağlantı noktasını değiştirin
Tüm örnek veya test veritabanlarını kaldırın
İlgili tüm güvenlik yamalarını zamanında tanımlamak, değerlendirmek ve yüklemek için bir yama yönetimi sürecine sahip olun
Kullanılıyorsa platformu ve sanallaştırma platformunu sertleştirin
Uygun ağ denetimlerini yapılandırın ör. güvenlik duvarları, veritabanına erişimi en aza indirgeyen VLAN'lar, yukarı yönlü hizmet reddi filtreleme hizmeti, tam nitelikli DNS, ayrı üretim ve üretim dışı veritabanları
Fiziksel olarak güvenli ortam
Değişiklik yönetimi sürecine sahip olun
25
3 Eki 2011 Rakkhi
İşte MongoDB güvenliği için bir kontrol listesi
Yetkilendirmeyi etkinleştir - Mongodb sunucularınızı güvenilir bir ağda dağıtmış olsanız bile, yetkilendirmeyi etkinleştirmek iyi bir güvenlik uygulamasıdır. Ağınız tehlikeye girerse size “Derinlemesine Savunma” sağlar. Yetkilendirmeyi etkinleştirmek için mongod yapılandırma dosyanızı düzenleyin
Üretim db'nizi internete maruz bırakmayın - Veritabanınıza fiziksel erişimi kısıtlamak güvenliğin önemli bir yönüdür. Gerekli değilse, üretim veritabanınızı internete maruz bırakmayın. Bir saldırgan MongoDB sunucunuza fiziksel olarak bağlanamazsa, herhangi bir uzlaşma durumunda verileriniz çok daha güvenlidir. AWS'de iseniz, db'lerinizi bir VPC özel alt ağına yerleştirebilirsiniz. Daha fazla bilgi için bir VPC'de MongoDB dağıtma blog gönderisini okuyun.
Güvenlik duvarlarını kullan - Diğer varlıkların mongodb sunucunuza bağlanmasına izin vermek için güvenlik duvarlarını kullanın. En iyi uygulama, yalnızca uygulama sunucularınızın veritabanına erişmesine izin vermektir. AWS'de barındırıyorsanız erişimi kısıtlamak için 'Güvenlik grupları'nı kullanın. Güvenlik duvarı yapılarını desteklemeyen bir sağlayıcıda barındırılıyorsanız, "iptables" ı kullanarak bunu kolayca yapılandırabilirsiniz. Senaryonuz için iptables yapılandırmak için mongodb belgelerine bakın.
Çoğaltma kümesini ayarlamak için anahtar dosyalarını kullanın - Çoğaltma kümesindeki mongodb örnekleriniz arasında iletişimi etkinleştirmek için paylaşılan bir anahtar dosyası belirtin. Bunu etkinleştirmek için yapılandırma dosyasına keyfile parametresini aşağıdaki gibi ekleyin. Dosyanın içeriği tüm makinelerde aynı olmalıdır.
HTTP durum arayüzünü devre dışı bırak Mongodb varsayılan olarak 28017 numaralı bağlantı noktasında varsayılan olarak çalışan ve "ana" durum sayfasını sağlayan bir http arayüzü sağlar. Bu arayüz üretim kullanımı için önerilmez ve en iyi şekilde devre dışı bırakılır. Http arayüzünü devre dışı bırakmak için “nohttpinterface” yapılandırma ayarını kullanın.
REST arabirimini devre dışı bırakın Monogdb REST arabirimi üretim için önerilmez. Herhangi bir kimlik doğrulamayı desteklemez. Varsayılan olarak kapalıdır. “dinlenme” yapılandırma seçeneğini kullanarak üretim sistemleri için kapatmanız gerekir.
Bind_ip'i Yapılandırma Sisteminizde birden çok ağ arabirimi varsa, mongodb sunucunuzu yalnızca ilgili arabirimleri dinleyecek şekilde kısıtlamak için “bind_ip” seçeneğini kullanabilirsiniz. Mongodb varsayılan olarak tüm arayüzlere bağlanır
SSL'yi etkinleştirin - SSL kullanmıyorsanız verileriniz Mongo istemciniz ve Mongo sunucusu arasında şifrelenmemiş olarak seyahat eder ve gizli dinleme, kurcalama ve “ortadaki adam” saldırılarına açıktır. Bu özellikle Mongodb sunucunuza internet gibi güvenli olmayan ağlar üzerinden bağlanıyorsanız önemlidir.
Role dayalı yetkilendirme - MongoDB, her kullanıcı tarafından gerçekleştirilebilecek eylemler üzerinde size ayrıntılı denetim sağlamak için role dayalı kimlik doğrulamayı destekler. Tüm kullanıcılarınızı yönetici yapmak yerine erişimi kısıtlamak için rol tabanlı yapıları kullanın. Daha fazla ayrıntı için rol belgelerine bakın.
Kurumsal mongodb ve Kerberos Kurumsal mongodb, kimlik doğrulama için Kerberos ile entegre olur. Daha fazla bilgi için mongodb belgelerine bakın. Kullanıcı adı/şifre sistemleri doğal olarak güvensizdir - mümkünse kaldırım temelli kimlik doğrulamayı kullanın.
https://scalegrid.io/blog/10-tips-to-improve-your-mongodb-security/
Feragatname: scalegrid.io'nun kurucusuyum
Buna ek olarak, diğer yorumlar belirtildiği gibi dinlenme mongodb verilerinizi şifrelemenizi tavsiye ederim. Birim düzeyinde şifrelemeyi ayarlamak için LUKS (Linux birleşik anahtar kurulumu) kullanabilirsiniz.
2
31 Mar 2014 Dharshan
Hatırlanması gereken birkaç başlangıç ​​noktası:
IP Bağlama'yı yalnızca IP'ye (özel veya yerel ana bilgisayar) kaldırın, Bağlantı İsteği almayı beklersiniz
Varsayılan Bağlantı Noktası Bağlantılarını değiştirme
Yalnızca gerekli izinleri verin (sorgu kullanıcılarını seçmek için güncelleme/silme izni yok gibi)
Gerekli master-slave bağlantısı için ssh anahtarlarını ayarlayın, parolaların katılımını kaldırın
Uygulamanız ve mongodb arasındaki bağlantı için şifreli bir tünel bile kurabilirsiniz
aslında tüm DataStorage Servislerinde uygulanabilir
PS: çok sınırlı mongodb deneyimi
2
28 Eyl 2011 AbhishekKr
MongoDB'ye karşı ne tür saldırılar kullanılabilir?
python kodunda MongoDB Nosql enjeksiyonu
HostGator şifremi düz metin olarak mı saklıyor?
Parola Veritabanının Güvenli Uygulanması
Güvenlik duvarı ile giden ağ trafiğini neden engellemelisiniz?
Veritabanında Uygulamaya Göre Veri Şifreleme ve Veri Şifreleme
Uygulamanın yanında bulunan bir veritabanının parola ile korunması herhangi bir güvenlik sağlıyor mu?
Veritabanı alanlarını şifrelemek genellikle kötü bir fikir midir?
Veritabanımdaki hangi hesabın yönetici hesabı olduğunu gizleyebilir miyim, böylece bir saldırgan ilk önce hangi karmayı çatlatacağını bilemez mi?
Şifreleme, el sıkışma veya diğer şifreleme ayarları açısından en zorlu SSH arka plan programı ayarları nelerdir?
BIOS'a bir parola eklemek, kötü amaçlı yazılımların bulaşmasını engelliyor mu?
Kredi kartı bilgileri neden daha sık çalınmıyor?
Apache Server sertleştirme için en iyi uygulamalar?
Wireshark veya diğer izleme araçlarında TLS'yi filtreleyin
vatansız web uygulaması mimarisinde HER istek üzerine bir kullanıcının kimliğini doğrulamak için DB vurmak kaçının?
Linux Sunucusunu Sertleştirme
Tersine mühendislik yapılamayan sıralı tanımlayıcı dize ("fatura numarası" sorunu)
"Neden MySQL'de AES'den Kaçının?" doğru?
İşveren düz metin kişisel verilerini bir 'veri deposunda' saklar
Linux'ta sırları kökten tutma
Content dated before 2011-04-08 (UTC) is licensed under CC BY-SA 2.5. Content dated from 2011-04-08 up to but not including 2018-05-02 (UTC) is licensed under CC BY-SA 3.0. Content dated on or after 2018-05-02 (UTC) is licensed under CC BY-SA 4.0. | Privacy