Hoşgeldin Misafir

SQL Injection Hakkında Bilinmesi Gerekenler - Lojistik TİM

crypto

crypto

Karanlık özgürlüktür.
localhost
6 Ağu 2023
1,061 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Merhaba değerli forum üyeleri ben @crypto. Bu makalemde sizlere SQL Injection genel bir bilgi vermek istiyorum, iyi okumalar bol bilgilenmeler.

Her yıl binlerce kişinin kişisel verileri, güvenli olduğu düşünülen sistemlerden çalınmaktadır. Çalınan bu veriler, dolandırıcılık amacıyla kullanılabilir veya farklı şirketlere satılabilir. Bu tür siber saldırılar, hem bireyler hem de şirketler için ciddi bir tehdit oluşturmaktadır.


SQL Injection Nedir?

SQL Injection (SQLi), web sitelerindeki güvenlik açıklarını hedef alan bir siber saldırı yöntemidir. Bu yöntem, veri tabanlarına yetkisiz erişim sağlamak amacıyla kullanılır ve saldırganlara veritabanındaki bilgileri kopyalama, değiştirme, silme veya yetki izinlerini değiştirme imkanı tanır. Oracle, MySQL gibi SQL ile çalışan veri tabanları kullanan sistemler, SQL Injection saldırılarına karşı savunmasızdır.

SQL Injection, giriş verilerinin kullanılarak yeni bir sorgu tanımlanması ile gerçekleştirilir. Bu sorgu, daha önce kullanılan komutların işletilme şeklini değiştirir ve veri düzlemine müdahale ederek çalışır. Bu saldırı yöntemiyle, örneğin, müşteri verilerinin tamamı ele geçirilebilir veya bir bankanın cari hesapları değiştirilebilir. Bu tür saldırılar, şirketler için maddi kayıpların yanı sıra ciddi itibar kaybına da yol açabilir.

SQL-Injection.jpg


SQL Injection Türleri Nelerdir?

Bant İçi (In-band) SQL Injection: Bu en popüler saldırı türü, aynı iletişim kanalını kullanarak gerçekleşir ve iki alt türe ayrılır:

  • Hata Tabanlı (Error-based): Bu teknik, uygulama veritabanı sunucuları tarafından üretilen hata mesajlarını temel alır. Saldırganlar, hangi sorguların hata mesajı verdiğini test ederek, veritabanının yapısına yönelik hedeflenmiş SQL Injection saldırıları gerçekleştirebilir.
  • Union-based: Uygulama SQL Injection’a karşı savunmasızsa ve sorgu sonuçları döndürüyor ise, saldırganlar UNION anahtar kelimesini kullanarak veritabanındaki tablolardan veri çekebilirler.
Çıkarımsal (Inferential) SQL Injection: Blind SQL Injection olarak da bilinir. Bu tür saldırılarda, saldırganlar veri yükü gönderir ve veritabanının yanıtlarını gözlemleyerek veri yapısını anlamaya çalışır. İki türü vardır:

  • Boole Tabanlı: Saldırganlar, uygulamayı DOĞRU veya YANLIŞ sonuçlar döndürmeye zorlayan SQL sorguları göndererek, belirli yüklerin doğru sonuçlar verip vermediğini anlamaya çalışırlar.
  • Time-based: Veritabanından yanıt vermeden önce belirli bir süre beklemeye zorlayan SQL sorguları gönderilir. Yanıt süresine bağlı olarak, saldırgan sorgunun doğruluğunu anlayabilir.
Bant Dışı (Out-of-band) SQL Injection: En az kullanılan SQL Injection tekniğidir. Bu saldırı türü, uygulamanın verileri herhangi bir protokol (HTTP, DNS, SMB vb.) üzerinden iletmesini sağlar.

SQL Injection ile Neler Yapılabilir?

Bir sistemde SQL Injection açığı bulunduğunda, saldırganlar sorgulara doğrudan müdahale edebilir. Kullanılan veritabanı yönetim sistemine bağlı olarak farklı saldırı senaryoları mümkündür. Örneğin, MSSQL kullanılan bir sistemde cmdshell fonksiyonu kullanılarak komut çalıştırılabilir ya da MySQL kullanılan bir sistemde mysql_load_file fonksiyonu ile dosyalar okunabilir.

SQL Injection Saldırıları Nasıl Gerçekleştirilir?

Siber korsanlar, SQLi saldırılarını gerçekleştirmek için web sitelerini teknik anlamda detaylı bir şekilde analiz eder. Sitede herhangi bir güvenlik açığı tespit ettiklerinde, bu açıktan faydalanarak sisteme sızarlar. Giriş sağlandığında, SQL sorgu girişi enjekte ederler ve bu sorgu üzerinden veritabanının yapısını keşfederek gizli bilgilere ulaşabilirler. SQL Injection saldırısına dair bir örnek olarak bu konuda ki yazıyı okuyabilirsiniz.

SQL Injection Zafiyeti Nasıl Tespit Edilir?

SQL Injection açıklarını tespit etmek bazen kolay, bazen ise oldukça zordur. Genellikle ilgili parametrenin sonuna ' (tırnak işareti) eklenerek tespit edilir. Tırnak işareti sonrasında sayfadaki değişiklikler, hata mesajları veya dönen sonuçtaki farklılıklar gözlemlenerek açık tespiti yapılabilir.

SQL Injection Nasıl Engellenir?

SQL Injection saldırılarına karşı alınabilecek bazı önlemler şunlardır:

  • Bilgi teknolojileri altyapınızın tüm yazılımlarının güncel olduğundan emin olun.
  • Web uygulamanızdaki tüm formlarda CAPTCHA veya benzer doğrulama yöntemleri kullanın.
  • Uygulama kullanıcılarını çift faktörlü kimlik doğrulamaya zorlayın.
  • Şüpheli sorguları ve istekleri analiz edebilen bir web uygulama güvenlik duvarı (WAF) kullanın.
  • SQL sorgularınızda NULL karakterlerinin kullanımını kontrol edin ve gerekirse sorguları yeniden düzenleyin.
  • Sisteminizdeki yetkili kullanıcı adlarını gözden geçirin ve yaygın kullanılan isimleri devre dışı bırakın.
  • Sorgu dizelerini birleştirme işlemlerinde dikkatli olun ve mümkünse yetki kontrolleri ekleyin.
  • IT altyapınızdaki tüm işlemleri merkezi bir log toplama veri tabanında saklayın ve şüpheli işlemler için anlık alarm sistemleri tanımlayın.
SQL Injection saldırılarına karşı sistemlerinizi bu tür önlemlerle koruyarak, veritabanınıza yapılabilecek potansiyel siber saldırılara karşı hazırlıklı olabilirsiniz.

Konumu beğendiyseniz yorum yapıp beğenmeyi unutmayınız.


LOJİSTİK TİM SUNDU
btn1pyf.png
 
Son düzenleme: