Veritabanı Sistemlerinde Ağ Trafiğinin Şifrelenmesi

Oğuz~#>

Kıdemli Üye
5 Tem 2009
4,772
17
Bursa
Çoğu veritabanı sisteminde sunucu ile istemci arasındaki ağ trafiği, varsayılan kurulan veritabanları için şifrelenmeden gerçekleşir. Araya girme saldırıları ile bu trafik dinlenilebilir ve veritabanında bulunan bilgiler yetkisiz kişilerce elde edilebilir. Bu durum verinin bütünlüğünü ortadan kaldırır.
Bu yazımızda Oracle ve MSSQL Server veritabanlarında varsayılan kurulumlarda istemci ve sunucu arasındaki trafiğin açık bir halde iletildiğini göstereceğiz. Ayrıca bu trafiğin şifreli şekilde iletilmesi için gerekli adımlardan bahsedeceğiz. Bu yazıda örnek olarak Oracle 11g ve MSSQL Server 2008R2 veritabanları kullanılmıştır.
Oracle veritabanlarında istemci ve sunucu arasındaki trafik varsayılan olarak şifresiz gerçekleşir. Belirtilen duruma örnek bir senaryo şu şekildedir. İlk olarak istemci tarafındaki veritabanı uygulamasından Oracle veritabanında bir sorgu çalıştırılmıştır. Çalıştırılan sorgu Şekil 1’de görülmektedir. İstemci ile veritabanı sunucusu arasındaki trafik pfSense güvenlik duvarının paket yakalama özelliği kullanılarak yakalanmıştır. Elde edilen trafiğin bulunduğu paket Wireshark aracı ile açıldığında, istemci tarafından veritabanı sunucusuna TNS protokolü ile gönderilen sorgunun açık bir şekilde iletildiği Şekil 2’de görülmektedir. Aynı zamanda veritabanı sunucusu tarafından sorguya verilen cevabın da aynı şekilde açık halde istemciye gönderildiği Şekil 3'te görülmektedir.
oracle_version_sqldeveloper.png
Şekil 1. İstemci tarafından veritabanında çalıştırılan sorgu
oracle_version_istek_wireshark.png
Şekil 2. İstemci tarafından gönderilen sorgunun açık olarak iletilmesi
oracle_version_sonuc_wireshark.png
Şekil 3. Sunucu tarafından sorguya verilen cevabın açık olarak iletilmesi
Oracle veritabanında istemci ve sunucu arasındaki trafiğin şifreli olarak iletilmesini sağlayan yapılandırma ayarları için 4 farklı değer bulunmaktadır: Accepted, Rejected, Requested, Required .
Oracle veritabanlarındaki yapılandırma ayarlarında varsayılan değer “Accepted” değeridir. “Accepted” değeri seçildiği durumda, ağ trafiğinin şifrelenmesi için bağlantının diğer tarafı için “Requested” ya da “Required” değeri seçilmelidir.
“Required” değeri seçildiğinde, bağlantının diğer tarafında “Rejected” değeri seçilmediği durumda ağ trafiği şifrelenerek gönderilir. Bağlantının diğer tarafında “Rejected” değeri seçilirse, bağlantı sona erdirilir.
“Rejected” değeri seçildiğinde, bağlantının diğer tarafında “Required” değeri seçilmediğinde ağ trafiği şifrelenmeden gönderilir. Ancak “Required” değeri seçildiği durumda bağlantı hata verilerek sona erdirilir.
“Requested” değeri seçildiği durumda, bağlantının diğer tarafında “Accepted”, “Requested”, “Required” değerlerinden biri seçilirse ağ trafiği şifrelenerek gönderilir.
Şifreleme mekanizmasının çalışması ile ilgili yapılandırma ayarlarını gösteren tablo referansta[1] belirtilmiştir.
Oracle veritabanında istemci ve sunucu arasındaki trafiğin şifrelenmesini sağlayan güvenlik mekanizması “Oracle Net Manager” ya da “sqlnet.ora” yapılandırma dosyasını kullanarak etkinleştirilebilir. Şekil 4'te “Oracle Net Manager” aracı ile şifreleme mekanizmasının yapılandırılması gösterilmiştir. Ayrıca şifreleme mekanizması “Oracle Net Manager” aracı kullanılmadan “sqlnet.ora” yapılandırma dosyası ile de yapılandırılabilir.
oracle_encrpyt_yaplandrma.png
Şekil 4. Oracle Net Manager ile şifreleme mekanizmasının aktifleştirilmesi
sqlnet.ora.png
Şekil 5. “sqlnet.ora” yapılandırma dosyasındaki şifreleme ayarları
Oracle veritabanında şifreleme mekanizmasının aktifleştirilmesi sonucunda istemci ve sunucu arasındaki trafiğin şifreli olarak iletildiği Şekil 6 ve Şekil 7’de görülmektedir.
oracle_version_istek_wireshark_encyrpt_sonra.png
Şekil 6. İstemci tarafından gönderilen sorgunun şifreli olarak iletilmesi
oracle_version_sonuc_wireshark_encrypt_sonra.png
Şekil 7. Sunucu tarafından gönderilen cevabın şifreli olarak iletilmesi
MSSQL Server veritabanları da Oracle veritabanları gibi istemci ve sunucu arasındaki trafiği varsayılan olarak açık halde göndermektedir. İstemci tarafında veritabanı üzerinde bir sorgu çalıştırılmış ve oluşan trafik pfSense güvenlik duvarı ile araya girilerek elde edilmiştir. İstemci tarafından oluşturulan trafik Şekil 8’de, sunucu tarafından istemcinin gönderdiği isteğin sonucunu içeren trafik Şekil 9’da verilmiştir. Şekillerden görüldüğü üzere her iki tarafın oluşturduğu trafik açık olarak karşı tarafa iletilmektedir.
mssql_version_istek_wireshark.png
Şekil 8. İstemci tarafından oluşturulan trafik
mssql_version_sonuc_wireshark.png
Şekil 9. Sunucu tarafından isteğin sonucunu içeren trafik
MSSQL Server veritabanları üzerinde istemci ve sunucu arasındaki trafiğin şifreli olarak iletilmesini sağlamak için “Force Encryption” değeri aktif hale getirilmelidir. İlgili değer “Sql Server Configuration Manager -> Sql Server Network Configuration -> Protocols for %Instance_Name% -> Properties -> Force Encryption” yolu izlenerek yapılandırılabilir. Şifrelemeyi etkinleştirmek için bu değer “Yes” olarak değiştirilmelidir. Bu işlemin ardından SQL Server servisi yeniden başlatılmalıdır.
MSSQL Server veritabanları şifreleme işlemini öncelikli olarak güvenilir bir sertifikasyon makamı tarafından verilen bir sertifika ile gerçekleştirir. Ancak sistemde böyle bir sertifika bulunmadığı durumlarda kendisinin oluşturduğu bir sertifika (self-signed) ile şifreleme işlemini gerçekleştirir.
Şekil 10 ve Şekil 11’de MSSQL Server veritabanında şifreleme yöntemi aktif hale getirildikten sonra istemci ve sunucu arasındaki trafik gösterilmektedir. Şekillerden görüleceği gibi her iki yönlü trafik de şifreli olarak iletilmektedir.
mssql_version_istek_wireshark_encypt_sonra.png
Şekil 10. Şifreleme yöntemi etkinleştirildikten sonra istemci tarafından oluşturulan trafik
mssql_version_sonuc_wireshark_encrypt_sonra.png
Şekil 11. Şifreleme yöntemi etkinleştirildikten sonra sunucu tarafından oluşturulan trafik
Veritabanı sistemlerinde istemci ve sunucu arasındaki trafiğin şifreli olarak iletilmesi, iletilen verinin bütünlüğünün korunması açısından önemlidir. Ancak trafiğin şifreli olarak iletilmesi sonucunda belirli ölçüde bir performans kaybı yaşanacağı göz önünde bulundurulmalıdır. Ayrıca istemci uygulamaları veritabanına bağlanırken veritabanında belirtilen şifreleme algoritmasını kullanmalıdır.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.