Veritabani güvenlik denetimine ‘Scuba’ dalışı

Scuba, Imperva’nın geliştirmiş olduğu ücretsiz bir veritabanı güvenlik denetim/analiz yazılımı.

Ürünün Oracle, Microsoft SQL, IBM DB2 ve Sybase veritabanı destekleri bulunuyor.

Buradan kayıt olarak indirebildiğiniz Java tabanlı bu yazılım, JRE 1.5+ gerektiriyor.

Çalıştırmak için bir klasöre açmanız yeterli. İlk çalıştırdığınızda lisans kabulu ve tekrar kayıt yaptırmanızı istiyor.

Ürünün yaptığı testler bir XML dosyasında tutuluyor ve dosyayı Imperva’dan güncelleme yapma imkanınız bulunuyor. Çok sık güncellendiğini düşünmüyorum ama XML tabanlı olduğu için belki kendi testlerinizi ekleyebilirsiniz.

Ürünü hızlıca bir Microsoft SQL 2000 veritabanı ile test ettim. Yetkili bir kullanıcı adı ve şifre verildiğinde veritabanında bulunan varsayılan veya sonradan oluşturulmuş zayıf yapılandırmaları ortaya çıkartabiliyor.

Alternatif bir denetim yazılımı olarak denenebilir. Özellikle varsayılan veritabanı kurulumları ile oluşan zayıflıkların önüne geçmede veritabanı yöneticilerinin ihtiyacını karşılayabilir. Yine diğer veritabanlarında da denemeye değer bir yazılım olduğunu düşünüyorum.

Aşağıda Scuba_Assessment_Report.xsl taslağı ile oluşturulmuş bir rapor görüntüsü var.

Database encryption: Transparent Data Encryption

Veri hırsızlığı ne kadar gizli bilginin açığa çıkmasına neden oldu? Peki sadece Internet üzerinden sistemlere sızılarak mı bilgiler kaçırılıyor? Tabi ki sadece bu değil.

Kimlik bilgileri, şirket verileri, finansal bilgiler ve diğer kişiye/kuruma özel bilgilerdeki toplu veri kayıpları en çok kaybolan veya çalınan backup teypleri, harddiskler, laptop ve diğer donanım nedeniyle oluşuyor. Rakamlar yüzbinlerle, milyonlarla ifade ediliyor. Ve bunlar sadece bilinen veya duyulan olaylar. Bundan çok daha fazlasının duyurulmadığı, duyulmadığı ve farkedilmediğinden eminim.

Transparent Data Encryption
TDE, yani Transparent Data Encryption olarak geçen veritabanı veri şifreleme yöntemi, kodlamada, sorgularda vb. değişiklik yapmadan verilerin veritabanı tarafından disk üzerinde şifrelenerek saklanmasını temel alıyor. Veritabanı sunucularına bu özellik getirilirken, aynı zamanda performans problemlerinin oluşmasının da önüne geçilmesi sağlanmaya çalışıyor.

Oracle
Oracle ilk olarak, Oracle 10g Release 2 ile tablolarda bulunan kolonlar bazında TDE özelliğini duyurdu (Konu hakkında makale). Ancak bu şifreleme yöntemi, performans konusunda sıkıntıları da beraberinde getiriyordu.

Oracle 11g sürümü* ile gelen yeni özellikle, şifrelenmiş tablespace yaratılarak, sadece kolon değil, tablo bazında şifreleme sağlanmış oluyor.
Şifrelemeden kaynaklanan performansın önüne geçebilmek için, kullanıcı bir sorgu yaptığında sunucu veriyi buffer cache bölümüne atıyor ve veri burada şifrelenmemiş olarak hızlı erişilebilir/sogrulanabilir halde duruyor. (Encrypting Tablespaces makalesi)

Temel amaç verinin ve yedeklerinin şifrelenmiş olarak saklanması.

Microsoft SQL
Aynı şekilde Microsoft SQL 2008’de de TDE özelliği bulunuyor. Bu sayede database dosyaları (mdf) ve yedekler şifrelenmiş olarak bulunduğu için veri hırsızlığında verilerin açığa çıkması engellenmiş oluyor. SQL 2008 TDE detayları bu yazıda bulunabilir.

Sonuç
Kolon tiplerini standart kolonlardan binary tipi kolonlara dönüştürmek; SQL SELECT, INSERT vb. sorguları buna göre güncellemek ve değiştirmek; bu kolonlarda yaşanacak sorgulama problemleri; şifreleme anahtarları yönetimi; uygulama yapılarında değişiklik ve tüm bu değişiklikler sonrası yaşanan performans problemleri TDE ile büyük ölçüde rahatlatılmış oluyor.

Özellikle hassas veri barındıran kurumların ve hatta SaaS firmalarının uygulayabileceği TDE özellikleri, veritabanı yöneticilerinin ve uygulama geliştiricilerinin işlerini kolaylaştıracaktır. Şifreleme anahtarlarının da etkin bir şekilde yönetildiği durumlarda, veri hırsızlığına ve güvenliğine karşı gerekli itina gösterilerek, önlemler alınmış oluyor.

Database firewall: GreenSQL

GreenSQL açık kaynak kodlu bir veritabanı güvenlik duvarı. Şu an için sadece MySQL desteği bulunan GreenSQL, veritabanı sunucularının önünde bir database proxy olarak çalışıyor.

GreenSQL'in yapısı
Veritabanına yapılan sorguları belirli risk ölçülerine göre değerlendikten sonra engelleyebiliyor. Bu sayede SQL Injection ve DROP, ALTER gibi riskli yönetimsel komutların veritabanına ulaşması önlenmiş oluyor.
Engellediği sorgular için uygulama sunucusuna boş sonuç tablosu döndüren GreenSQL’in 4 modu bulunuyor:

  1. Aktif engelleme yapmadığı, ama normalde devrede olsa neler yapacağını göreceginiz simulasyon modu,
  2. Şüpheli sorguları engelleme modu,
  3. Öğrenme modu,
  4. Bilinmeyen sorguları engelleme modu

Detaylı bilgiye GreenSQL hakkında sayfasından ulaşılabilir.

Gerçek ortamda kullanımı konusunda ilk akla gelen sorular, performans, hatalı tespit oranı (düzgün ayarlama ile azaltılabilir tahmin ediyorum), replikasyon ortamlarında kullanımı vd.

Microsoft SQL Version Bilgisi

Google olsa da, sikca sorulan sorulardan bir tanesi. Elinizde bir Microsoft SQL veritabani sunucusu var ve SQL surum numarasindan patch seviyesini ogrenmek istiyorsunuz. SQL Query Analyzer’i kullanarak “SELECT @@version” ciktisini aliyorsunuz ve Google imdadiniza yetisiyor.

Bir cok sitede surum numarasina gore service pack seviyesini hizlica belirleyebileceginiz tablolar yeraliyor. Ancak burada bulunan SQL Server 2000 Build Chart oldukca detayli.

SQL Server 2000
Version Service Pack
8.00.2039 SQL Server 2000 Service Pack 4 (SP4)
8.00.760 SQL Server 2000 Service Pack 3 (SP3)
8.00.534 SQL Server 2000 Service Pack 2 (SP2)
8.00.384 SQL Server 2000 Service Pack 1 (SP1)
8.00.194 SQL Server 2000 RTM (Release To Manufacturing)
SQL Server 7.0
Version Service Pack
7.00.1063 SQL Server 7.0 Service Pack 4 (SP4)
7.00.961 SQL Server 7.0 Service Pack 3 (SP3)
7.00.842 SQL Server 7.0 Service Pack 2 (SP2)
7.00.699 SQL Server 7.0 Service Pack 1 (SP1)
7.00.623 SQL Server 7.0 RTM (Release To Manufacturing)
SQL Server 6.5
Version Service Pack
6.50.479 SQL Server 6.5 Service Pack 5a (SP5a) Update
6.50.416 SQL Server 6.5 Service Pack 5a (SP5a)
6.50.415 SQL Server 6.5 Service Pack 5 (SP5)
6.50.281 SQL Server 6.5 Service Pack 4 (SP4)
6.50.258 SQL Server 6.5 Service Pack 3 (SP3)
6.50.240 SQL Server 6.5 Service Pack 2 (SP2)
6.50.213 SQL Server 6.5 Service Pack 1 (SP1)
6.50.201 SQL Server 6.5 RTM (Release To Manufacturing)

SQL 2000’de “SELECT SERVERPROPERTY(‘productversion’), SERVERPROPERTY (‘productlevel’), SERVERPROPERTY (‘edition’)” sorgusu kullanilarak da ozet bilgi alinabilir.

Kaynaklar
How to identify your SQL Server version and edition
SQL Server 2000 Build Chart