6.5. SQL Enjeksiyonu
(SQL Injection)
SQL veritabanları, sorgu yapmak üzerine özelleşmiş
hem ANSI hem de ISO standardı olan yapısal bir
programlama dilidir. Değişen büyüklükteki ilişkisel
veritabanı uygulamalarına SQL sorguları aracılığıyla
ulaşılabilir. SQL’i destekleyen birçok veritabanı
ürünü (Oracle, MS SQL Server, MS Access, Ingres,
DB2, Sybase, Informix, vb) standart dile özel
eklentiler getirir [38]. Web uygulamaları kullanıcı
kaynaklı girdileri, dinamik web sayfası talepleri için,
değişik SQL cümleleri oluşturmada kullanabilir.
SQL enjeksiyonu yöntemi, kullanıcı girdilerine göre
SQL cümleleri oluşturan web sitelerinde, kullanıcı
kaynaklı girdilerin doğrulanmaması veya yetersiz
doğrulanmasından kaynaklanan zafiyetlerin
kullanılarak, SQL cümlelerinin manipüle edilmesini
sağlayan sızma testleridir [39]. SQL enjeksiyonu
sızma yöntemiyle yapılabilecek işlemler aşağıda
sıralanmıştır.
• Veri tabanları üzerinde istenmeyen işlemler
(sorgulama, ekleme, silme, değiştirme, vb.) yapılabilir.
• Kimlik doğrulama mekanizmaları atlatılabilir.
• İşletim sistemi seviyesinde komutlar çalıştırılabilir.
• Etki alanında yeni kullanıcılar veya gruplar
oluşturulabilir.
Eğer bir web uygulaması, kullanıcı kaynaklı girdiyi
etkin bir biçimde denetlemezse, SQL enjeksiyon
yöntemiyle arka taraftaki SQL cümlesi oluşumu
değiştirilerek güvenlik ihlalleri oluşturulabilir. SQL
enjeksiyon yöntemiyle SQL cümlesi değiştirilerek
bilgisayar sistemlerine sızılması durumunda, SQL
servisini çalıştıran kullanıcı haklarına sahip
olunacaktır. Veritabanı üzerinde bu haklara sahip olan
kişi ileri derece sızma teknikleri kullanarak veritabanı
dışındaki diğer sunucu bilgisayarları üzerinde de
erişim hakkı kazanabilir.
Şekil 8’de şematik olarak gösterildiği gibi saldırgan
hedef web sitesi üzerinde SQL enjeksiyonu
yapabileceği dinamik içerikli web sayfalarını tespit
ettikten sonra, SQL enjeksiyonu aracılığıyla
veritabanı sunucu bilgisayarına veritabanını çalıştıran
servisin (muhtemelen üst seviyede erişim hakları
bulunan yönetici hesapları) kullanıcı hesabıyla
ulaşabilir. Veritabanı sunucu bilgisayarı üzerinde,
SQL enjeksiyonu yardımıyla işletim sistemi
seviyesinde komutlar çalıştıran saldırganın bir sonraki
hedefi diğer bilgisayarlar ve özellikle sunucular
olacaktır. Saldırgan, diğer sunucu bilgisayarlarına
veritabanı kullanıcı hesabıyla bağlantı yaptıktan sonra
tüm sunucu bilgisayarlara daha sonra doğrudan
bağlanabilmesi (remote desktop, telnet, http, ftp, vb.)
için gerekli olan servisleri kendi kullanımına
açabilecek ve saldırıdan beklediği sonuçları elde
edebilecektir.
Şekil 8.SQL Enjeksiyonu şematik gösterimi
Güncel tehditler incelendiğinde bilgi güvenliği
alanında yaşanan güvenlik ihlallerinin, ağ ve
sistemlerden web uygulamalarına doğru hızlı bir
şekilde kaydığı bu çalışmada elde edilen önemli
bulgulardandır. Bu çalışmada elde edilen bir diğer
bulgu ise literatürde de vurgulandığı gibi ülkemizde
de en fazla güvenlik açıklarına web uygulamalarında
rastlanmaktadır. Kurumların genelde sınır ağ
güvenliğinin (Perimeter Network Security)
sağlanmasıyla ilgili çözümleri (güvenlik duvarı,
saldırı tespit sistemleri, antivirüs programları, vb.) ve
farkındalıkları olduğu saptanmıştır. Ancak web
uygulama güvenliği kavramının dünyada olduğu gibi
ülkemizde de uygulamayı geliştiren yazılımcılarında
Y. Vural ve Ş. Sağıroğlu
Kurumsal Bilgi Güvenliği ve Standartları Üzerine Bir İnceleme
520
Gazi Üniv. Müh. Mim. Fak. Der. Cilt 23, No 2, 2008
dâhil olduğu büyük bir çoğunluk tarafından
anlaşılamadığı, bilinmediği veya bilinse dahi
uygulanamadığı da görülmektedir.
Kurumsal bilgi güvenliğinin sağlanmasıyla ilgili
olarak bu çalışmada güvenliğin bir ürün veya hizmet
olmadığı, insan faktörü, teknoloji ve eğitim üçgeninde
güvenlik standartlarına bağlı olarak yaşayan canlı bir
süreç olduğu ve bu üç unsur arasında tamamlayıcılık
olmadığı sürece yüksek seviyede bir güvenlikten
bahsedebilmenin mümkün olamayacağı da
saptanmıştır.
Dostları ilə paylaş: |