Hoş Geldin, Mühendis!

Tüm mühendislerin ve mühendis adaylarının yer aldığı forum sayfamıza kayıt olmalısınız. Kayıt olduktan sonra tüm ders notlarına, teknik dokümanlara erişim sağlayabilecek, sorularınızı sorup cevaplar verebileceksiniz. Sitemiz tamamiyle ücretsiz olmakla birlikte Mühendis Puanı sistemi uygulamaktadır.

Bilgi paylaştıkça çoğalır.

Premium Abonelik 📢

Premium abonelik ile sitemizi reklamsız gezebilir, dosyaları sınırsızca indirebilirsiniz.

Daha Fazlası

[Muhendisiz.NET] Tekrar Sizlerleyiz! 🎭

Mühendisiz.NET sitesi forum ve blog sayfası olarak tekrar yayın hayatına başladı. 🤩 Sizlerde forum sayfamıza üye olabilir ve mühendis topluluğumuza katılabilirsiniz.

Daha Fazlası

Mühendis Puanı Sistemi🏆

Bilgi paylaştıkça çoğalır felsefesini benimsemiş olmamız nedeniyle Mühendis Puanı sistemini uygulamaya aldık. Dökümanları indirebilmek için bazı paylaşımlarda bulunmalısınız. 📨

Daha Fazlası
  • Dosya indirebilmek için 2 Mühendis Puanına ihtiyacınız var. Konuya yorum atarak 1 MP Not paylaşarak 6 MP kazanırsınız.
    Bilgi Paylaştıkça Çoğalır. (Mühendislik Puanı (MP) Nedir?)
  • Mühendis Puanı kazanmaya vakti olmayanlar için ücretli premium üyelik sistemi aktif edilmiştir.
    (Premium Üyelik SATIN AL)

SQL Injection Nedir, Nasıl Çalışır, Nasıl Engellenir?

turkmedia

Moderatör
Katılım
8 Ara 2022
Mesajlar
760
Mühendis Puanı
1,612
SQL injection, veri tabanı altyapısına sahip tüm sistemlerde en yaygın görülen siber güvenlik tehdididir. Böyle bir altyapıya sahipseniz mutlaka gerekli önlemleri almalısınız.

SQL Injection



Kurumunuza ait veriyi korumak, kurumsal verinin bütünlüğünü sağlamak için altyapınızı bu zafiyete karşı korumalısınız.

ABD’de bulunan Açık Web Uygulama Güvenliği Projesi (OWASP) Vakfı tarafından her sene siber güvenlik tehdidi olarak yılın top 10 listesi yayımlanmaktadır. 2020 yılında üçüncü sırada listelenen SQL injection, arasında saldırganların en çok tercih ettiği siber saldırı yöntemlerinden biridir.

SQL Injection Nedir?​

SQL injection
SQL injection nedir
diye soracak olursanız, web uygulamasının yaptığı SQL sorgusuna müdahale edilerek veri tabanında bulunan verilere yetkisiz erişme yöntemi cevabı uygun olacaktır. Bu güvenlik açığı, normalde görülmesi imkânsız verilerin görüntülenmesine izin verir.

Bir müşteri sisteme girerken kendi kullanıcı adı ve şifresini vererek, giriş izni alır. Bu izin sadece kendi verilerini görmeye yetki verir. SQL injection yönteminde ise bir saldırgan bununla birlikte diğer kullanıcıların ve web uygulamasının diğer verilerine erişebilir. Buradaki SQL injection açığı ile saldırgan verileri transfer edebilir, değiştirebilir, silebilir. Yani eriştiği tüm verileri manipüle edebilir hale gelir.

Web tabanlı uygulamalarda karşımıza çıkan bu güvenlik açığı, veri hırsızlarının başvurduğu en temel yöntemlerden biridir. Bir web sitesinde herhangi bir form doldururken, arka planda veri tabanına bir SQL sorgusu iletilir. Burada veri tabanı ile bir iletişim sağlanır. Birazdan bahsedilecek güvenlik önlemleri alınmamış ise aynı iletişim kanalından farklı bir SQL sorgusu ile veri tabanı manipülasyona açık hale gelmiş olur. SQL injection açığı denilen bu durumda kolaylıkla verileriniz başka yere transfer edilir.

Konuyu daha iyi anlamak için SQL nedir sorusunun cevabını öğrenerek devam edebilirsiniz. SQL, Structured Query Language kelimelerinin baş harflerinden oluşur. Türkçe ifadesiyle yapılandırılmış sorgu dili olan SQL; MySQL, MSSQL, Oracle gibi veri tabanlarından veri çekmeye ve işlemeye yardımcı olan bir sorgulama dilidir. Bu sayede veri tabanı tablolarında var olan veri hakkında anlaşılır bilgiler elde edersiniz. Bunun yanında mevcut veride değişiklik yaparsınız.

Örneğin, bir müşterinin sistemde kayıtlı cep telefonu numarasını öğrenmek için web uygulamasına giriş yaptığınızda, arka planda cep telefonu bilgisi için veri tabanında SQL sorgusu çalışır. SQL sayesinde verinin ne olduğu, veri giriş-çıkışı, veriden anlamlı bilgiler üretme işlemleri kolaylıkla yapılmış olur.

SQL Injection Nasıl Çalışır?​

SQL injection saldırısı
SQL injection yöntemi
, web sitenizdeki herkese açık olarak sunulan giriş, iletişim gibi formlarda etkilidir. Kodlaması yanlış ya da eksik yapılan formlarda girilen bir metnin veya sorgu dizisinin, yabancı birisi tarafından veri tabanına yetkisiz erişim imkânı sağlar. Web sitenizde bulunan bu tarz formlar bu şekilde bir saldırıya açıktır. Bu sayfaların güvenliğini önemsemelisiniz. Bu sayfalardaki en ufak bir zafiyet, şirketiniz için geri dönülemez veri ihlallerine sebep olabilir.

2020 yılında milyonlarca üyesi olan ücretsiz resim stok sitesi Frepik kullanıcılarının verileri SQL injection hack yöntemiyle çalındı. Şirket 8 milyon kullanıcının verilerinin çalındığını, verilerin arasında yaklaşık 3,5 milyon kullanıcının şifresinin olduğunu bildirdi. KOBİ ya da kurumsal bir firma olun, böyle bir durum yaşamak ister misiniz?

Bu konuyu SQL injection örnek sorgular ile daha iyi anlayabilirsiniz. Kullanıcı adı ve şifre ile oturum açması sağlanan bir uygulama giriş sayfanız var diyelim. Burada bir kullanıcının “ahmet” kullanıcı adı ile birlikte “ahm.135” şifresini kullanarak uygulamaya giriş yaptığını varsayın. Bu durumda uygulama aşağıdaki sorguyu sorup, doğru cevap alırsa kullanıcıya giriş izni verir.

SQL injection örneği 1


Bir hacker, bu sorgudaki parola sorgusunu kaldırarak giriş yapmayı dener. Bu şekilde veri tabanına sızma girişiminde bulunur. Oturum açma ekranındaki POST isteğini aşağıdaki sorguyla düzenleyip gönderirse veri tabanına yönetici rolüyle erişir.

SQL injection örneği 2


Buna benzer başka SQL injection örnek sorguları da yapılarak veri ihlalleri ile karşı karşıya kalabilirsiniz. Örneğin bir e-ticaret sitenizde filtreleme esnasında aşağıdakine benzer bir sorgu döner.

SQL injection örneği 3


Saldırgan bu sorgunun yanına UNION komutunu ekleyerek farklı tablolardan veri çekmeye çalışır.

SQL injection örneği 4


Gördüğünüz gibi web uygulamanızda SQL injection açığı varsa sistemde kayıtlı kullanıcı adları, şifreler ve diğer kişisel veriler bu şekilde kolay bir şekilde erişime açık olur.

SQL Injection Nasıl Engellenir?​

Firewall şirketlerinin IT departmanlarında Kasım 2017 ila Mart 2019 arasında toplanan verilere göre her üç siber saldırıdan ikisinin SQL injection yöntemine ait olduğu görülüyor. Hackerların en çok tercih ettiği bu saldırı karşısında bir takım önlemler almanız mümkün. İşte karşınızda SQL injection nasıl engellenir sorusunun cevabı:

  1. Bilgi teknolojileri altyapınızda fiziksel cihazlarınkiler dâhil tüm yazılımların güncel olmasına dikkat edin.
  2. Web uygulamanızdaki tüm formlarda ben robot değilim doğrulamasını sağlayın.
  3. Uygulama kullanıcılarına çift faktörlü giriş yapmalarını zorlayın.
  4. Web uygulaması üzerinde gerçekleşen şüpheli sorguları ve istekleri analiz edebilen web tabanlı bir firewall (WAF) yazılımını devreye alın.
  5. Uygulamanızın arka planda sorduğu soruları gözden geçirin. Özellikle NULL karakterlerin yer aldığı sorguları tekrar düzenleyin.
  6. Sisteminizdeki kullanıcıları gözden geçirin. Yönetici ve tam yetkili rolündeki kullanıcı adlarında ‘administrator’, ‘admin’, ‘yönetici’ gibi akla gelebilecek kullanıcıları devre dışı bırakın. Ayrıca yetkili rolündeki kullanıcı adlarının gerçek isim veya uygulama ismi olmasına dikkat edin.
  7. Uygulamanın hızlı olması için kullanılan sorgu dizesi birleştirme yöntemi her zaman iyi fikir olmayabilir. Mümkün mertebe bu dize birleştirmelerden uzak durun veya bu sorguyu yetkiye bağlayın.
  8. IT altyapınız üzerinde yapılan tüm hareketleri merkezi log toplama veri tabanında toplayın. Şüpheli işlemler için anlık alarm tanımlayın ve yetkili kullanıcıya e-posta gönderimi sağlayın.

Web Sitesi Açıklarına Genel Bakış​

şirketlerinin yaptığı araştırmalarda web sitelerinde bilinen belli başlı açıklar olduğu anlaşılıyor. Web sitelerinin veya web tabanlı çalışan uygulamaların zafiyetlere açık olması kurumsal verilerin her an çalınabileceği riskini ortaya koyuyor. SQL injection açığı konusunu detaylı bir şekilde okudunuz. Gelin diğer en yaygın 4 adet web sitesi açıklarına genel bakış atın:

  1. Bozuk erişim kontrolü, en yaygın web sitesi açıklarından biridir. Bir kullanıcının yetkisi olmadığı halde hassas verinin olduğu sayfaya erişmesi sonucu gerçekleşen güvenlik açığıdır. Bozuk erişim kontrolüaçığını tespit eden hackerlar, web sitenizin verilerine erişmek için çok beklemeyecektir.
  2. Şifreleme hataları, hem kullanıcılara hem de yöneticilere bakan yönü vardır. kolay, tahmin edilebilir şifre tercih edebiliyorlar. Bu da kullanıcı seviyesinde veri ihlaline neden olur. Diğer taraftan sisteme kaydedilen şifre, kredi kartı bilgileri gibi hassas verilerin açık bir şekilde saklanması da web uygulamasını zafiyete açık hale getirir. Olası bir veri ihlalinde hassas verilerin erişilmesi zararı daha da artırır.
  3. Güvensiz tasarım sahibi web siteleri de saldırganların değerlendirebileceği açıklar arasından yer alır. Tasarımdaki güvenlik eksiklikleri diğer web sitesi açıklarını da gün yüzüne çıkarır.
  4. Yanlış güvenlik yapılandırmasıkaynaklı web açıkları, web sitelerini ve uygulamaları güvensiz hâle getirir. Web uygulamanızın altyapısındaki güncel olmayan yazılımlar, web tabanlı güvenlik duvarının eksik yapılandırılması, DDOS korumasının etkin olmaması gibi birçok sebep yanlış güvenlik yapılandırması açığının oluşmasına sebep olacaktır.

 
Son düzenleme:

Son kaynaklar