SQL Enjeksiyon Saldırı Uygulaması ve Güvenlik Önerileri Doygun DEMİROL, Resul DAŞ, Muhammet BAYKARA
İnternet Kullanımı, 2013 2013 yılındaki istatistiklere göre dünya nüfusunun %39’u (2.7 milyar) internet kullanıyor.
Siber Suçların Verdiği Zarar Symantec firmasının sunduğu 2012 Norton Siber Suç Raporu’na göre; Türkiye’de siber suçların toplam net zarar maliyeti 556 milyon dolar Rapora göre bu maliyet dünya çapında 110 milyar dolar
Web Yazılımları Nasıl Çalışır ?
SQL Enjeksiyon Nedir ? SQL Enjeksiyonu Yöntemi, web uygulamalarından alınan kullanıcı girdileri ile oluşturulan SQL sorgularının manipülasyonu Kullanıcıdan gelen verilerin kontrol edilmeden veri tabanı sorgularında kullanılması
SQLi Saldırı Uygulaması Örneği Örnek olarak ; Kullanıcı adı : admin Şifre : 1234 Şeklindeki kullanıcı girdisi aşağıdaki SQL sorgusunu oluşturacaktır. SELECT * FROM Users WHERE Username = ‘admin' AND Password = ‘1234'
SELECT * FROM Users WHERE Username = ‘admin' SQLi Saldırı Uygulaması Örneği Kullanıcı adı : admin Şifre : ‘ OR 1=1-- Şeklindeki kullanıcı girdisi aşağıdaki SQL sorgusunu oluşturacaktır. SELECT * FROM Users WHERE Username = ‘admin' AND Password = ‘‘ OR 1=1--
Güvenlik Önerileri Veri tabanında bulunan tablo ve tablo alanı isimlerinin kolay tahmin edilebilecek şekilde olmaması Web formlarında parametrik sorguların kullanılması Web formlarındaki giriş kontrollerine veri girişi yapılırken bu verilerin doğrulanması, girdi uzunluğunun kontrol edilmesi Web formlarında kullanılan ve veri tabanında bir kayıt satırını temsil eden sayısal değerler için (Örn:QueryString değeri) formlar arası geçişlerde bu değerlerin sayısal bir değer olup olmadığının kontrol edilmesi
Güvenlik Önerileri SQL tabanlı web uygulamalarında kullanıcı, veri girişi yaptıktan sonra veri tabanına gönderilen SQL sorgusu karakterlerinde arama yaptırılarak tehlikeli karakterleri, replace vb. komutlarla SQL Sunucuda hataya yol açmayacak şekilde zararsız karakterlere çevrilmesi SQL sunucuda oluşacak hataların web formlarında yansıtılmamsı Web uygulamalarında kullanılan veri tabanına yazma, okuma, silme gibi temel özelliklerin yalnızca bir yönetici tarafından yönetilmesine izin verilmesi
Güvenlik Önerileri Uygulamada web formlarına sorgu yazmak yerine, bu sorguları veri tabanı kısmında saklı yordam (Stored Procedure) olarak yazılması SQL enjeksiyon yönteminde kullanılabilecek sözcüklerin (select, insert, update vb.) bir fonksiyon ile filtrelenmesi Kullanılmayan saklı yordamların ve yönetici hesaplarının kaldırılması Web uygulaması ve veri tabanı sunucularının bulunduğu sistemin, donanımsal veya yazılımsal tabanlı bir güvenlik duvarı ile tüm saldırılara karşı muhafaza edilmesi Doygun DEMİROL, Resul DAŞ, Muhammet Baykara
Teşekkürler