SQL injection (SQL enjeksiyonu), web uygulamalarının güvenliğini tehdit eden ciddi bir güvenlik açığıdır. Bu saldırı türü, saldırganların bir uygulamanın veritabanına zararlı SQL komutları enjekte etmesini sağlar. Bu komutlar, veritabanındaki verilere yetkisiz erişim sağlamaya, verileri değiştirmeye veya silmeye yönelik olabilir.
SQL injection, bir saldırganın bir web uygulamasının veri giriş noktalarını kullanarak veritabanı sorgularını manipüle etmesine olanak tanıyan bir saldırı türüdür. Bu, uygulamanın veritabanına gönderdiği SQL sorgularına kötü niyetli kod parçacıkları ekleyerek gerçekleştirilir. Amaç, veritabanındaki hassas bilgilere erişmek, veritabanını bozmak veya yönetimsel kontrolleri ele geçirmektir.
Başka bir deyişle bilgisayar korsanlarının tetiklediği sorguyu başarıyla çalıştıran dinamik SQL ifadelerini zehirlediği bir saldırı türüdür. Örneğin, bir saldırgan site veritabanınıza erişebilir ve herhangi bir tabloyu silebilir.
Genellikle SQL Injection, kötü tasarlanmış web uygulamalarından kaynaklanır. Bu nedenle saldırganlar, SQL ifadelerinden yararlanarak ve kötü niyetli SQL kodlarını uygulayarak bundan yararlanır. Bazen saldırganlar, sunucunun veya arka uç altyapısının güvenliğini tehlikeye atabilecek bir saldırı yükseltebilir veya hizmet reddi saldırıları gibi başka saldırılar gerçekleştirebilir.
Saldırıları Türleri
Uzun yıllar OWASP TOP 10 listesinin başında yer alarak en tehlikeli saldırı türü seçilmiştir.
Union Based SQL Injection
En az iki “SELECT” sorgusunu tek bir sorguda birleştirerek yapılan saldırı yöntemidir. Yapılan istek sonrasında dönen HTTP yanıtı saldırgan tarafından kullanılabilecek veriler içerebilir.
Blind SQL Injection
Blind SQL Injection, genellikle diğer saldırı türlerinden daha karmaşık ve gerçekleştirilmesi daha zordur. Bu saldırıda, hedeflenen kurban genel hata mesajları aldığında bilgisayar korsanları bir saldırı gerçekleştirir.
Veri tabanından bilgi aldığı için diğer saldırılarından farklıdır. Örneğin bilgisayar korsanları doğru veya yanlış sorular için veritabanını sorgular ve daha sonra alınan cevaba göre cevap belirlenir. Son olarak, zamana dayalı bir saldırı olduğunda bir sunucu yanıtı almak için zaman alınır.
Boolean Based SQL Injection
Veritabanı üzerinden tam sorgu sonuçları ve kritik bilgiler döndüren hata mesajları kullanır. Ayrıca bu yöntem aynı zamanda bir web uygulamasının veya web sitesinin savunmasız olup olmadığını öğrenmek ve kötü niyetli ve zararlı sorguları yeniden yapılandırmaya yardımcı olan diğer bilgileri bulmak için de kullanılır.
Time-Based SQL Injection
Veritabanına yapılan isteğin saniye cinsinden belirlenen sürede içerisinde tepki vermesini bekleyerek yapılansaldırı yöntemidir.Saldırgan, veri tabanının yanıt vermesi için geçen süreyi, bir sorgunun doğru mu yanlış mı olduğunu görebilir.
Benzer şekilde, bu zamana saldırıları, Blind saldırısı sırasında Boolean Based yöntemlerle birlikte hedeflenen web uygulamalarında veya web sitelerinde güvenlik açıklarının olup olmadığını belirlemeye çalışırken saldırganlar tarafından yaygın olarak kullanılır.
SQL Injection Araçları
Korunma Yöntemleri ?
Teknoloji var oldukça hayatımızda olacak SQL injection saldırılarına karşı koruma sağlamak öncelikle güvenli kod geliştirme ve farkındalık eğitimleri ile başlamalıdır. Her ne kadar güvenli olduğunu düşündüğümüz uygulamalar geliştirsekte bunun %100 mümkün olmadığı değiştirilemez bir gerçektir. 3. bir göz olarak kritik uygulamalarımızı korumak için Web Application Firewall kullanmak ve belirli aralıklarla sızma testi yaptırmak güvenlik seviyemizi arttırmak için faydalı olacaktır.
Ayrıca web uygulama güvenliği için geliştirilmiş olan yazılımlar sayesinde de güvenlik seviyelerini test edebilirsiniz.
Tüm Hakları Saklıdır