it-swarm-tr.com

SSL Şifreleme Veritabanı bağlantılarına ne zaman uygundur?

Diyelim ki kurduğum bir web sunucum ve sonra bir veritabanı sunucum var.

Ancak, yerel olarak iletişim kuruyorlar ve güvenlik duvarının arkasındalar. Bence burada SSL gerekmez.

Veritabanı bağlantısını şifrelemek için SSL kullanmanın tek zamanı, başka bir yerde bulunan bir veritabanı sunucusuyla uzaktan iletişim kuran bir sunucuda bulunan bir web sunucusu arasında olabilir mi?

Güvenlik bağlantısını SSL ile güvenli hale getirmeden önce güvenlik yönergeleri gördüm, ancak ne zaman kullanılacağı belirsizdi.

20
Dexter

Bu soruya önceki iki cevabın az çok şiddetle SSL'yi açmanızı tavsiye ettiği görülüyor, ancak farklı bir mantık açısı önermek istiyorum (SSL'yi açmamanızı tavsiye etmememe rağmen).

SSL'ye ihtiyacınız olup olmadığının değerlendirilmesindeki iki önemli nokta (a) SSL'nin sizi neye karşı koruduğu ve (b) evre modelinin ne olduğu: potansiyel tehditleri numaralandırmak.

SSL/TLS, bir istemci (bu durumda web sunucunuz) ile bir sunucu (bu durumda veritabanı sunucunuz) arasındaki bilgi aktarımını, ağdaki herkesin kurcalamaya ve gizlice dinlemesine (bunlara erişme dahil) karşı korur iki makine).

SSL'nin yararlı olup olmadığını değerlendirmek için, saldırganın SSL'nin sizi korumak için tasarlandığı saldırıyı gerçekleştirecek bir konumda olduğunu varsaymanız gerekir. Yani, saldırganın ağdaki veya her iki makinedeki paketleri koklayabilecek bir konumda olması gerekir.

  • Veritabanı sunucusundan paketleri koklayacak bir konumdaysa, söz konusu sunucuya kök/yönetici erişimi olması muhtemeldir. Bu aşamada SSL/TLS kullanmak fark etmez.

  • Birisi ağdaki web sunucusu ile veritabanı sunucusu (bu makineler hariç) arasındaki paketleri koklama konumundaysa, SSL/TLS kullanmak uygulama içeriğini görmesini/değiştirmesini önler. Bunun mümkün olabileceğini düşünüyorsanız SSL'yi açın. Bunu hafifletmenin bir yolu, web sunucusunda iki ağ kartı kullanmaktır: biri dış dünyaya ve diğeri DB sunucusunun bulunduğu iç LAN'a (başka bir makine olmadan veya hepsine şu şekilde davranabilirsiniz) daha büyük bir makine). Genel web çiftliğini veya kümesini oluşturan bu ağ (ancak siz çağırmak istiyorsunuz) fiziksel olarak ayrılacak ve dışarıdan yalnızca bir giriş noktası olacaktır: web sunucusunun kendisi (bir ters proxy kafa düğümü için aynı prensip).

  • Birisi baş düğümdeki (web sunucusu) paketleri koklayacak bir konumdaysa, oraya kök erişimine sahip olma olasılığı vardır (makinedeki kök olmayan kullanıcılar tarafından yürütülen işlemler, onlar için değil). Bu durumda, yine de büyük bir probleminiz olurdu.

    Burada şüphelendiğim şey, SSL'yi etkinleştirmenin bu senaryoda sizi gerçekten koruyup koruyamayacağı.

    Web sunucusunda kök erişimi olan bir kişi, DB parolaları da dahil olmak üzere uygulama yapılandırmanızı okuyabilir ve SSL kullanarak bile DB sunucusuna yasal olarak bağlanabilmelidir.

    Karşı tarafta, bunun SSL kullanımını gerektirdiğini varsaydıysanız (makinede kök kontrolünüz olsa bile, işlemlerin sadece ağa bakmaktan ziyade gerçekte ne yaptığına bakmak daha zor olabilir) localhost iletişimlerini de açmak istersiniz (örneğin, web sunucunuzda veya hem DB sunucusunun hem de web sunucusunun aynı makinede olduğu durumda başka hizmetler varsa).

Aşırı tedbirli olmak her zaman kötü bir şey değildir, ancak sorunuzu, güvenlik önleminin (SSL) sizi neye karşı koruduğu bir saldırı yapacak durumda olmaları durumunda, saldırganların da neler yapabileceği bağlamına sormalısınız. ve bu güvenlik önleminin, bir kez bu pozisyonda hedeflerine ulaşmalarını engelleyip engellemeyeceği.

Bence pencere aslında oldukça dar (arka uç ağınızın fiziksel olarak, sadece birkaç makine arasındaki bazı güvenlik duvarı tarafından değil, gerçekten güvenli olduğunu varsayarsak).

21
Bruno

Veritabanı sunucusunu ve istemcileri içeren yerel ağ başka işlemler de içerebiliyorsa, ikisi arasındaki bağlantıyı şifrelemeniz gerekir.

Yerel ağın geçilemez olduğunu (yapmamalısınız) varsaysanız bile, veritabanı istemcisi ve sunucunun yanında genellikle her zaman böyle bir durum söz konusudur.

  1. oturum açıp sorunları çözmesi veya güncelleme yapabilmesi gereken yöneticiler
  2. hassas veriler olmadan dosyaları yakalaması ve başka bir yere taşıması gereken günlük toplayıcıları
  3. site dışı yedekleme için veritabanı içeriğini kopyalaması veya büyük düşük hassasiyetli tabloları veri madenciliği sistemlerine beslemesi gereken çoğaltıcılar
  4. diğerlerinin hala hayatta olup olmadığını kontrol etmesi gereken monitörler

Bunlardan yalnızca çoğaltıcıların hassas veriler içeren tablolara erişmesi gerekir, ancak bu işlemlerden herhangi biri BT borçlarınızdaki kötü aktörler tarafından ele geçirilebilir.

Hassas veriler taşıyan tüm kanalları şifrelemek dürüst insanları dürüst tutar, derinlemesine bir savunma sağlar ve sorunlar ortaya çıktığında aramayı daraltmanıza yardımcı olur.

10
Mike Samuel

Sunucunuzla aynı ağda bulunan herkesin trafiği koklayabileceğini veya ortadaki adam saldırısını gerçekleştirebileceğini unutmayın. SSL, düzgün ayarlandığını varsayarak bunu önlemelidir. Ayrıca veritabanı sunucusunda bir güvenlik duvarı oluşturmalı ve yalnızca güvenilir IP adreslerinden bağlantılara izin vermelisiniz.

Benim önerim açmak, sonra kapatmak sadece performans (veya diğer) sorunlara neden olduğunu düşünüyorsanız. Bu şekilde saldırı vektörlerinizi önemli ölçüde azaltmış olursunuz.

Gerçekte, ağ üzerindeki SSL şifrelemesinin ek yükü, özellikle SQL sorgularının işlenmesi yüküne kıyasla minimum olacaktır. Sorgularınızı ve sunucu performans yapılandırmanızı optimize ederek SSL'yi devre dışı bırakmaktan daha fazla performans elde edersiniz.

4
Polynomial

Diyelim ki kurduğum bir web sunucum var ve sonra bir veritabanı sunucum var ... yerel olarak iletişim kuruyor ve güvenlik duvarının arkasında

Bu mimarinin kullanılabilirlik açısından berbat olduğu gerçeğini bir kenara bırakmak ...

  • herkese ve "güvenlik duvarının arkasındaki" her şeye güveniyor musunuz?
  • güvenlik duvarınızın mükemmel olduğuna inanıyor musunuz?
  • daha yüksek kullanılabilirliği desteklemek, veri merkezinizi taşımak veya yedekleme yapmak için asla uzaktan bağlanmanız gerekmeyeceğini tahmin edebilir misiniz?
  • dbms için varsayılan kimlik doğrulama mekanizması o kadar güvenli altüst edilemez?
  • veritabanı kimlik bilgilerinin tehlikeye atılmamasını sağlayan bir dağıtım süreciniz var mı?

Bunlardan herhangi birine cevabınız kesin bir evet değilse, uygun şekilde yapılandırılmış bir SSL bağlantısı kullanmanın ek güvencelerinden yararlanabilirsiniz. Kalıcı bağlantılara dayanmadan bile performans maliyeti göz ardı edilebilir (her ne kadar trafik kalıcı bir tünelden yönlendirilerek ortadan kaldırılabilir). SSL'yi yapılandırma maliyetinin (birkaç saatlik çalışma) sorumluluktan daha fazla olup olmadığı basitçe işe yarıyor.

0
symcbean