SQL Injection Nedir, Nasıl Engellenir?
İçindekiler
SQL Injection nedir sorusuna da en eski ama hala kullanılan siber saldırı yöntemlerinden biridir şeklinde cevap verilebilir. İnternetin gelişmesi insanlık için pek çok kolaylık sağlamıştır. Bundan kaynaklı olarak kısa sürede internet kullanımı yaygınlaşmıştır. Bunun yanında kötü niyetli kişiler için de internetin önemli bir saha oluşturduğu biliniyor. Siber korsanlık da denilen internet saldırganlarının kullandıkları çok sayıda yöntem bulunuyor. Bunlardan biri de SQL Injection şeklinde karşımıza çıkıyor.
Bu yöntem ile siber saldırganlar kişilerin şifrelerine, kişisel verilerine erişim sağlayabilirler. Siber saldırganlar bu verileri değiştirme ve silme gibi işlemleri de SQL Injection yöntemi ile yapma imkanı bulabilirler. SQL sorgularının çalışmasına izin veren bu saldırı ile saldırganlar bir uygulamanın veri tabanına erişim sağlayabilir.
SQL (Structured Qery Languege) Nedir?
SQL’in açılımı Structured Qery Languege’dir. Türkçe yapılandırılmış sorgu dili şeklinde ifade edilebilir. SQL Injection ise uygulamaların SQL veri tabanına gönderdiği verilere izinsiz olarak erişimin mümkün olmasıdır. Siber saldırganlar SQL sorgularına erişim sağlayarak manipüle edebilir. SQL veri tabanı kullanan bütün uygulamalar yapılan saldırıdan etkilenebilir.
Son derece tehlikeli bir saldırı türüdür ve güvenlik açıkları olan uygulamalarda yapılan saldırılar sonucunda ortaya büyük riskler çıkar. Büyük şirketlerin ve kamunun resmi sitelerinin veri tabanına erişim sağlanabilir. Böyle durumlarda ise şirketlerin çalışanlarının ve müşterilerinin verileri güvende olmaz. Aynı şekilde kamu uygulamalarını kullanan kişilerin verileri ele geçirilebilir ve bu veriler silinebilir, değiştirilebilir. Bireylerin de bundan dolayı büyük sıkıntılar yaşaması gibi durumlar ortaya çıkar.
SQL Injection Saldırısı Nasıl Çalışır?
Siber saldırganların uzun yıllardır kullandıkları yöntemler arasında SQL Injection saldırısı yer alır. Bu yöntemde saldırgan belli komutları çalıştırmak için kullanıcı girişi sorgu ekranına SQL komutları enjekte eder. Verdiği SQL komutlarına karşın uygulamanın yanıtları üzerine veri tabanının nasıl bir yapısı olduğunu anlayabilir.
Uygulamanın veri tabanının yapısını anlamanın üzerine saldırgan sorgu dizinlerine SQL Injection yapar. Bu şekilde veri tabanında bulunan, aslına erişmemesi gereken verilere erişebilir. Bu anlamda güvenlik zafiyeti olan uygulamalarda SQL Injection saldırıları siber saldırganlar tarafından rahatlıkla yapılır.
SQL Injection Türleri
SQL Injection türleri yapılan siber saldırılara karşı alınan önlemler karşısında geliştirilmeye devam ediliyor. Güvenlik önlemleri artırıldıkça saldırı için kullanılan yöntem de geliştiriliyor. En çok kullanılan SQL Injection saldırı türleri arasında şunlar yer alır:
- Union-Based Injection: UNION operatörünün kullanıldığı saldırı türüdür. Saldırgan SQL sorgusuna başka sorgular ekleyerek veri tabanına erişim sağlar.
- Error-Based Injection: Siber saldırgan bu yöntemi kullanarak SQL Sorgusunda hata oluşturur. Bu hata mesajları ile veri tabanının yapısı öğrenilerek enjeksiyon yapılır.
- Blin SQL Injection: Bu SQL Injection saldırı türünde mantıksal ifadeler kullanarak veri tabanına erişim sağlamak için uygun koşulları oluşturabilir.
- Time-Based Injection: Bu yöntemde saldırgan sorgu zamanı üzerinde kontrol sağlar. Bu şekilde doğru ve yanlış koşullarını öğrenmeye ve veri tabanına ulaşmaya çalışır.
- Stored Procedure Injection: Bu yöntemde veri tabanında bulunan prosedürlere SQL Injection yapar. Böylece prosedür değiştirilir ve veri tabanında bulunan bilgilere erişim sağlanır.
- Second-Order Injection: Bu yöntemde siber saldırgan tarafından ilk başta kötü niyetli SQL Injection yapılmaz. Bunun yanında veriler giriş ekranında saklanır ve daha ileri aşamada ise bu bilgiler elde edilmesinin yanında ayrıca manipüle edilmesi de mümkün olur.
SQL Injection Nasıl Tespit Edilir?
SQL Injection nasıl tespit edilir konusunda geliştiriciler çalışmalar yapmaya devam ediyor. Saldırı ile verilerin çalınması, silinmesi ve değiştirilmesi gibi sorunlar yaşanmaması adına en baştan tespitin yapılması önemlidir.
Bunun yanında SQL saldırılarının tamamen önlenmesi mümkün değildir. Uygulamalar SQL saldırılarının tespiti ve önlenmesi için WAF yani güvenlik duvarı kullanırlar. Bu şekilde SQL saldırıları tespit edilerek önlenmeye çalışılır.
SQL Injection saldırılarını tespit etmek için ek bir yöntem olarak IDS kurulabilir. IDS ana bilgisayar ve ağ tabanlı olarak kurulabilir. Ana bilgisayar ve ağ tabanlı IDS kullanmanız halinde gelecek SQL saldırılarını tespit ederek önleme imkanını bulabilirsiniz.
Yüksek performanslı Reseller Hosting paketlerimizle kendi hosting servisinizi oluşturun.
SQL Injection Nasıl Önlenir?
SQL Injection saldırıları yapılmaya ve bu saldırıları da önlemek için önlemler alınmaya devam edilmektedir. Siz de alacağınız birkaç önlem ile bu saldırıları kolayca önleyebilir ve veri tabanınızdaki bilgilerin güvende olmasını sağlayabilirsiniz. SQL Injection önlemek için almanız gereken önlemler arasında şunlar yer alır:
- Parametre doğrulama ve filtreleme: Uygulamaya giren kullanıcıların girdikleri parametrelerin doğrulanması için filtreler kullanmalısınız. Bu SQL saldırılarına karşı güçlü bir koruma sağlar.
- Güncel ve güvenli yazılımlar kullanın: SQL saldırılarından korunmak için uygulamalarınızda kullandığınız yazılımların güncel ve güvenli olmasına dikkat edin.
- Güvenlik duvarı kullanın: Uygulamanızda kullanacağınız WAF yani güvenlik duvarı gelecek SQL saldırılarının tespit edilmesini ve önlenmesini sağlar.
- Kullanıcılara minimum yetkilendirme yapın: Uygulama üzerinden veri tabanına erişim sağlayacak kişiler için minimum yetki verin. Bu şekilde kötü niyetli saldırıların önüne geçebilirsiniz.
SQL Aşılama Örnekleri
SQL Injection saldırıları yapılması sırasında elde edilmek istenen veriler farklıdır. Bundan kaynaklı olarak da SQL aşılama örnekleri değişiklik gösterir. Amaçlarına göre SQL aşılama örnekleri şu şekilde verilebilir:
- Gizli verilerin elde edilmesi: Alışveriş sitelerine bu amaçla SQL aşılama yapılır ve ürünler hakkında gizli bilgiler elde edilir.
- Veri tablolarını incelemek: Uygulamaların veri tabanlarının tablolarına erişerek burada bulunan bilgileri elde etmek için yapılan SQL aşılamaları bulunur.
- Uygulamaların çalışma mantığında değişiklik yapmak: Uygulamaların her birinin çalışmak için oluşturulmuş mantıkları bulunur. SQL aşılama ile bu mantık yıkılır, örneğin kullanıcılar parola isteyen bir uygulamadaki hesaplarına parolasız giriş yapabilirler.
- UNION Tabanlı SQL Injection ile ek tabloları almak: Bu şekilde SQL veri tabanında son derece hassas bilgilere erişmek saldırganın hedefidir.