Soru İnternet üzerinde bir veritabanı sunucusunu açığa çıkarma bilgeliği mi?


Çalıştığım küçük şirketin liderliği SaaS konusunda çok heyecanlandı ve ürünümüzü bir SaaS dağıtımına zorluyor - Bu konuda endişelerim var çünkü ürünün işlevselliğinin bir kısmı kullanıcıların iş zekasını kullanabilmelerine dayanıyor. Uygulamanın temel veritabanına karşı rapor yazma araçları.

SaaS modelinde bu işlevselliği nasıl sağlamayı planladığımızı sorduğumda, boş bakışlarla karşılaşıyorum ve yanıt, veritabanı sunucusunu internette göstereceğimiz ve insanların veritabanını sanki içinde çalışmış gibi sorgulamasına izin vereceğimiz kurumsal ağları.

Bu, bülbüllerini benden korkutuyor, ama ben sadece paranoyak olduğumu veya endişelenmek için önemli bir sebep olup olmadığını bilmiyorum.

Bu yüzden sorum şu: Bir Oracle veritabanı sunucusunun güvenliğini doğru bir şekilde sertleştirmek mümkün mü, internette açığa çıkması gerçeği hakkında endişelenmemiz gerekmeyecek mi? Ve eğer öyleyse, bunu öğrenmek için hangi kaynakları araştırmalıyım? Veri tabanı, müşterilerimizin dünyaya ifşa etmek istemeyeceği özel bilgileri depolayacak ve bu işlevselliği bir VPN'nin arkasına koymaya yönelik bir teklif, tamamen reddedildi.

Bir Oracle veri tabanının sertleştirilmesi üzerine yaptığım aramalarda, "Güvenlik duvarınızda asla bir delik açmayın" satırında yer alan hemen hemen tüm ifadeler yer almaktadır. Bu nedenle, doğru cevabın "Özgeçmişinizi olabildiğince hızlı bir şekilde güncelleyin" olabilir. verebileceğiniz tavsiyeyi takdir edin.


5
2018-06-04 18:38


Menşei




Cevaplar:


Bir veritabanı açığa çıkarmak gerçekten bir dev Genellikle dünyaya ve köpeğe maruz kalan diğer servislerle karşılaştırıldığında, izinler de dahil olmak üzere çok sayıda olası güvenlik açığına sahip karmaşık bir sistemdir. Veritabanını herkese açık sorgulara maruz bırakmadığınızdan ve gerekli SSL ile çalıştırılmayacağınızdan emin olabilirdim. Bunun mümkün olduğunu söyleyebilirim, ama evet, paranoyak olmanız ve halka karşı karşıya gelmek için ayrı bir veritabanı yüklemesi yapmanız gerekir. Eğer şirketiniz bunun için lisans masraflarını ödemeye istekli değilse, evet, skedaddle.

Müşteri / destek tarafından, müşterinin ISP'si belirli port veya trafiği engelliyorsa, doğrudan veritabanına bağlanmak bir sorun olabilir.

Bir SaaS modelinde, programcılarınızın yapmasını istediğiniz şey, uygulamadan sorgulanabilen bir API yazmaktır. Bu doğanın API'leri genellikle https üzerinden çalışır ve HTTP yanıtındaki uygulamaya geri veri sağlar. Eklenen bonus: Web'in çalıştığı her yerden çalışır, db sunucusundaki yükü azaltmak için memcached veya diğer önbelleğe alma teknolojilerini kullanarak sonuç kümelerini önbelleğe almak çok kolaydır ve http auth oldukça iyi desteklenir ve test edilir.


5
2018-06-04 18:51



Katılıyorum, API yoluna git - davr
Bunun bir avantajı, sisteminizi aşırı derecede kullanan, popüler yöntem çağrıları, popüler olmayanlar vb. Olup olmadığını görmek için analiz yapabilmenizdir. - David Pashley


DMZ'de ikinci bir veritabanı sunucusu kurar ve bu veritabanına dökümleri alır ve bu veritabanının tanıtımını yapabilirim.


3
2018-06-04 18:41



Ne çözerdi? Anladığım kadarıyla, bu konudaki tüm veriler internete ulaşıyor. - Benoit


Eminim kabul edeceğiniz gibi, tanımlamaya ve güvenliğe göre neredeyse bir zorunluluktur. Ve hassas verilerin erişilebilir hale getirilmesiyle görevlendiriliyorsunuz.

Kısa cevap, güvenlik duvarı hilesi, sağlam ağ mimarisi, güncellenmiş yama kümeleri, erişim denetimi ve bol miktarda yedeklemeyle çok fazla riski azaltabilirsiniz.

Parola yönetimi ayrıca, yapılması gereken zor bir şey olarak akla gelir, çoğu zaman uygulama hesaplarının geçerliliği asla geçmeyecek parolalara sahiptir ve parola bilgisine sahip eski çalışanların verilere erişmesini sağlamak için fiziksel / ağ erişim denetimleri gerçekleştirilir. Eğer veritabanı sunucunuz tüm internete maruz kalıyorsa, bu yapmak zor olacak bir şey gibi görünüyor.

Muhtemelen bir 'biz ele geçirdik, şimdi ne yapacağız?' Tanımlamak isteyeceksiniz. Strateji, böylece herkesin kattığı beklentileri seviyelendirirsiniz ve şansınız tükendiğinde bir eylem planınız olur.


2
2018-06-04 18:52



Şifreleri sormak için +1. - innaM


Tercih edilen web servisleri ile API'ları veya web servislerini kullanmayı tercih ederim, çünkü son kullanıcıların (müşterilerin) bunlara bağlanmalarında daha fazla esneklik olması gerekir.

Bölüm 2, yönetim "bunun için fındık, şimdi pazar almak gerekir!" ve bunu geliştirmek için para harcamak istemiyorum.

Kısım 3, veritabanını doğrudan açığa vurmanın neden kötüye gitmesi gerektiğine dair yönetime ihtiyacın var, ve sonra bir sürü beyaz kâğıt, güvenlik raporu vb. İle gel. Ayrıca, eğer yazılımını kullanmayı düşünürsem, SaaSGüvenliğiniz hakkında her şeyi bilmek isterdim ve veritabanını açığa çıkardığınızı öğrenir öğrenmez anlaşma kapanır.


1
2018-06-05 12:13



Yönetimin bir API geliştirilmesini beklemeyeceğini kabul etmek için +1. - John Clark


SaaS maldır.

Bir veri tabanı sunucusunu internete maruz bırakmak - çok iyi değil.

Neden buna maruz kalıyorlar? RPC nedeniyle ve Statik RPC bağlantı noktalarını kullanmak istemiyor mu?

Ancak, bazı harika uygulama güvenlik duvarları vardır ve DB'nin endmapper bağlantı noktasını kilitler ve ardından güvenlik duvarı çıkarırsanız, ACL'ler, IP kısıtlamaları vb. İle iyi şeyler yapabilirsiniz.

Ve olay günlüklerini, güvenlik açığı taramasını vb. Denetlemeniz gerekecek.


0
2018-06-04 18:43





DB Server'ı güvenlik duvarının arkasında güvenle tutun. Gerekirse, DB sunucusuna bir tüneli olan halka açık bir web sitesinde yaşayan web hizmetleri yazın. Web servislerinin DB'ye sınırlı erişime sahip olduğundan emin olun. İhtiyaç, raporlama yapmakta olduğu takdirde, web servislerinin sadece salt okunur erişime ihtiyacı vardır. Muhtemelen sunmak istediğim verinin görüşlerini oluşturabilir ve onlara altta yatan tablolara değil, okuma erişimine izin verirdim.

Rob'un dediği gibi, her şeyi denetleyin, güvenlik açığı taraması yapın, web servis uygulamalarında erişim günlüğünü dahil edin, böylece neyin ne zaman ve ne zaman eriştiğini görebilirsiniz.


0
2018-06-04 18:54





İşimiz sırasında birkaç SaaS uygulamasını kullanıyoruz ve bunu iki şekilde yapıyorlar.

  1. Web tabanlı raporlama yetenekleri sağlayın
  2. Müşterinin kendi raporlarını "çevrimdışı" (CSV, MDB, vb.) Yazmasını sağlamak için veritabanının standart bir biçimde dışa aktarılmasına izin ver
  3. Temel verileri web hizmetleri aracılığıyla açığa çıkarın

Güvenlik yanı sıra, çok-tennant bir sistemde performans hakkında endişelenmeniz gerekir. Crystal’daki bir kullanıcının yazılı raporunun diğer tüm raporlama kullanıcılarını etkilemesini istemezsiniz.


0
2018-06-04 18:58