Veritabanı Dosyalarının Şifrelemesi:

Andrei Rublev

Kadim Üye
30 Ocak 2006
5,057
1
Veritabanı dosyaları, Sql Server çalışırken kilitlenir ve mdf-ldf uzantılı dosyaları normal şartlarda kopyalamayız. Kopyalayabilmek için Sql Server hizmetinin durdurulması gerekmektedir. Fakat bu dosyaların Sql Server çalışırken kopyalanması Hobocopy gibi programlarla mümkündür. Veritabanı dosyalarınızı ele geçiren bir saldırgan bu dosyaları farklı bir sunucuda akitf edip, istediği verilere ulaşabilir.

Yukarıdaki durumu yaşamamak için veritabanı dosyalarını şifrelenmesi, bu dosyaların farklı Sql Server’lar üzerinde açılmasını engelleyecektir. Çalınan veritabanı dosyalarını açmak için bu şifrenin decrypt yani çözülmesi gerekmektedir. Bu şifreleme işlemine Transparent Database Encryption denmektedir. Bu özellik Enterprise, Datacenter ve Developer sürümlerinde geçerlidir.

Veritabanı dosyaları nasıl şifrelenir buna bakalım;

İlk olarak server encryption master key – ana anahtar oluşturmamız gerekmektedir. Yeni bir sorgu ekranı açarak master key’i aşağıdaki gibi oluşturalım.

USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Guclu_Sifre';


Bu şifrelemenin hemen yedeklenmesi gerekmektedir. Eğer master veritabanınızı kaybederseniz, şifrelenmiş veritabanınızın içeriğini hiçbir şekilde göremezsiniz. Yedek alınan klasörü paylaşıma açın, ve klasör yolunu doğru yazdığınızda emin olun, aksi takdirde hata verecektir, yedek almayacaktır. Yedek almak için aşağıdaki kodu yazıyoruz.

BACKUP MASTER KEY TO FILE = '\\YAVUZSONY\Yedek\Yavuzsony_master.key' ENCRYPTION BY
PASSWORD = 'Guclu_bir_sifre_daha';


Eğer bir password policy kullanıyorsanız, örnek olarak en az 8 karater, en az bir büyük harf, en az bir özel karakter gibi, şifrenizi bu policy’e göre vermeniz gerekmektedir.

Şimdi sıra server sertifikası üretmesine geldi, bu sertifika sunucuya özel bir sertifikadır. Veritabanı dosyalarınızın şifrelenmesinde kullanılacaktır.

CREATE CERTIFICATE SqlSertifikasi WITH SUBJECT = 'Sql Sertifika';


Oluşturduğumuz sertifikayı yedekleyelim, hem de dosya olarak elimizde bulunsun.

BACKUP CERTIFICATE SqlSertifikasi TO FILE = '\\YAVUZSONY\Yedek\SQL_SqlSertifikasi.cer'
WITH PRIVATE KEY ( FILE = '\\YAVUZSONY\Yedek\SQL_SqlSertifikasi.pvk',
ENCRYPTION BY PASSWORD = 'Guclu_Sifre_Guclu_Sql' );


Oluştruduğumuz server sertifikası ile, veritabanı üzerinde encryption key oluştuyoruz.

USE SATIS;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE SqlSertifikasi;


Son olarak veritabanı şifrelemesini aktif hale getiriyoruz.

ALTER DATABASE SATIS
SET ENCRYPTION ON


Oluşturduğumuz key ve sertifika dosyalarına bakalım, bu dosyaların yedeğini almayı unutmayın.



clip_image038_thumb.png



Güvenlik sertifikası, private key ve master key olarak 3 dosyayı veritabanı şifrelemesinde kullandık.

Transparent Database Encryption, veritabanı mdf ve ldf dosyalarınızı görünmez bir şekilde şifreledi. Bu dosyaların şifrelendiği bilgisi Sql Server üzerinde veya dosyaların özellik sayfalarında gözükmez.

Şifrelenmiş bir veritabanını Sql Server’a geri eklemeniz için, ilk önce güvenlik sertifikasını ve encryption key’i geri yüklemeniz gerekmektedir. Geri yüklerken şifreyi yazıyoruz.

USE master;
CREATE CERTIFICATE SqlSertifikasi FROM FILE = '\\YAVUZSONY\Yedek\SQL_SqlSertifikasi.cer'
WITH PRIVATE KEY ( FILE = '\\YAVUZSONY\Yedek\SQL_SqlSertifikasi.pvk',
DECRYPTION BY PASSWORD = 'Guclu_Sifre_Guclu_Sql')


Msdn: http://msdn.microsoft.com/en-us/library/bb934049.aspx

Xp_CmdShell Özelliklerinin Kısıtlanması:


Sql Server 2005’te güvenlik sorunları teşkil eden bazı özellikler, yeni Sql Server versiyonlarında, kurulumda varsayılan olarak devre dışı bırakılıp getirilmiştir. Bunlardan en önemlisi xp_cmdshell komutudur. Bu özelliklerin aktif etmek için Sql Server Management Studio da instance adına sağ tıklayıp “Facets” bölümüne gelelim.


clip_image039_thumb.png



Facet alanından Surface Area Configuration’ı seçiyoruz.


clip_image041_thumb.jpg



AdHocRemoteQueriesEnabled, OleAutomationEnabled ve XPCmdShellEnabled alanlarının False değerinde olması gerekiyor, eğer değilse bu alanları False değerine getiriyoruz.


clip_image042_thumb.png






 
Ü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.