SQL Enjeksiyonu: Hala Bir Tehdit mi? Nasıl Önleyebilirsiniz?

Yayınlanan: 2020-03-07

Veri ihlalleri o kadar yaygın ki artık şaşırtıcı değiller. Kötü niyetli aktörler mümkün olduğunca fazla veri toplamayı amaçlar. Oturum açma kimlik bilgilerinin, kredi kartı bilgilerinin veya ticari sırların peşindedirler. Bu tür verileri bir kez ele geçirdiklerinde, dark web'de satıyorlar.

Şimdiye kadar ne kadar veri çaldıklarını ve dark web'e ne kadar attıklarını kavrayamıyorsanız, işte size endişe verici bir rakam. Geçen yıl, suçlular yalnızca on altı saldırıya uğramış web sitesinden 620 milyon hesap çaldı ve sattı. Evet, on altı web sitesini hacklemek çok fazla hasara yol açabilir. Ama daha kötüsü ne biliyor musun? Her gün binlerce yeni site hackleniyor!

Siber suçlular her gün yeni hack yöntemleri buluyor. Ancak bu, SQL enjeksiyonları gibi daha eski teknikleri unuttukları anlamına gelmez. Hala yürütmesi kolay ve verimli sonuçlar veren en yaygın saldırı vektörlerinden biridir.

İçindekiler gösterisi
  • SQL Enjeksiyonu Nedir ve Neden Tehlikelidir?
  • SQL Enjeksiyonu Nasıl Çalışır?
    • Bant İçi SQL Enjeksiyonu
    • Kör SQL Enjeksiyonu
    • Bant dışı SQL Enjeksiyonu
  • Bu Tehdit Hala İlgili mi?
  • Önleme için Güvenlik İpuçları
  • Son sözler

SQL Enjeksiyonu Nedir ve Neden Tehlikelidir?

SQL Programlama Dili

SQLi olarak da bilinen SQL Injection, bilgisayar korsanının bir SQL ifadesi yürütmesini sağlayan bir enjeksiyon saldırısı biçimidir. Enjeksiyon saldırıları, farklı saldırı vektörlerinin geniş bir kategorisidir. Ancak hepsi kötü niyetli aktörlerin tehlikeli girdiler yapmasına izin verir. Daha sonra yürütülen bir sistem komutu olarak hareket ederler.

SQL deyimleri en yaygın olarak çeşitli veritabanlarından veri eklemek veya bunlardan veri almak için kullanılır. Microsoft SQL Server, Access ve Oracle gibi birçok ünlü yönetim sistemi bu ifadeleri kullanır.

Yaygın olarak kullanılan birçok veritabanı yönetim sistemi SQL ifadeleri kullandığından, bilgisayar korsanları bu sistemleri SQL enjeksiyonları yoluyla kullanabilir. Bu, suçluların veri tabanında saklanan hassas verilere erişebileceği ve çalabileceği anlamına gelir. Aşağıdakileri içerebilir:

  • fikri mülkiyet.
  • kredi kartı bilgisi.
  • Müşteri Bilgileri.
  • adresler.
  • şirket sırları.
SQL enjeksiyonları, hassas verilerin çalınmasına neden olur. Herhangi bir işletme, hükümet veya kuruluş için yıkıcı sonuçlar doğurabilir. Bu tür olaylar şirketin faaliyetlerine ve itibarına zarar verebilir ve veri koruma düzenleyicileri tarafından uygulanan bazı ağır cezaları beraberinde getirebilir.
 Sizin için önerilenler: Chrome ve Firefox: Performans, Güvenlik ve Gizlilik Karşılaştırması!

SQL Enjeksiyonu Nasıl Çalışır?

veritabanı-şema-veri-tabloları-rdbms-ilişkisel-kardinalite-sql-mysql

Bir SQL enjeksiyon saldırısı gerçekleştirmek için bilgisayar korsanının, web sitesinde veya şirketin dahili uygulamalarında savunmasız kullanıcı girdilerini bulması gerekir.

Örneğin, kurban web sitesi için WordPress kullanıyor. Kod, kullanıcı girdisini herhangi bir temizleme işlemi olmadan doğrudan veritabanına gönderen bir SQL güvenlik açığına sahip olabilir. Bir bilgisayar korsanı bu güvenlik açığını bulursa, söz konusu veritabanına komut gönderebilir. Ardından, veritabanı çıktısı tarayıcıya geri döner ve bilgisayar korsanının farklı komutları yürütmesini sağlar. Bu şekilde tüm veritabanını indirebilir, yeni komutlar ayarlayabilir, kullanıcı hesaplarını değiştirebilir veya yeni hesaplar oluşturabilirler.

SQL enjeksiyon saldırılarının üç ana biçimi vardır:

  • Bant içi SQL enjeksiyonu:
    • Hata tabanlı SQL enjeksiyonu.
    • Birlik tabanlı SQL enjeksiyonu.
  • Kör SQL enjeksiyonu:
    • Boole.
    • Zamana dayalı.
  • Bant dışı SQL Enjeksiyonu.

Bant İçi SQL Enjeksiyonu

Bant içi SQL enjeksiyonu, basit ve verimli olduğu için en yaygın türlerden biridir. Burada saldırgan, saldırıyı gerçekleştirmek ve sonuçları toplamak için aynı iletişim kanalını kullanır. İki alt varyasyonu vardır – Hata tabanlı ve Birlik tabanlı SQL enjeksiyonu:

  • Hata tabanlı SQL enjeksiyonu , bilgisayar korsanının veritabanının hata mesajları üretmesine neden olmasına izin verir. Ardından, veritabanının kendisi hakkında bilgi toplamak için bu hata mesajlarını kullanabilirler.
  • Sendika tabanlı SQL enjeksiyonu , suçlunun UNION SQL operatöründen yararlanmasını sağlar. Bir HTTP yanıtı almak için veritabanı tarafından sağlanan farklı ifadeleri birleştirir. Böyle bir yanıt genellikle bilgisayar korsanlarının yararlanabileceği verileri içerir.

Kör SQL Enjeksiyonu

Kör SQL enjeksiyonları, sunucunun davranış kalıplarına dayanır. Yürütmek için çok daha yavaşlar. Bilgisayar korsanı veri yükleri yayar ve yapısını analiz etmek için sunucunun yanıtını inceler. Veriler doğrudan bilgisayar korsanlarına gitmediği için buna “kör” diyorlar. Bu nedenle, bant içi istismar hakkında herhangi bir bilgi göremezler. Boolean ve Time-based olmak üzere iki varyasyonda gelir:

  • Boole varyasyonu , bilgisayar korsanının veritabanından bilgi döndürmesini isteyen bir SQL sorgusu göndermesine izin verir. HTTP yanıtı içindeki bilgiler, önceki sonuca bağlı olarak değişir.
  • Zamana dayalı varyasyon , kötü niyetli aktörün doğrudan veritabanına bir SQL sorgusu göndermesini sağlar, bu da veritabanını tepki vermeden önce beklemeye zorlar. Saldırgan, veritabanının yanıt vermesi ve sorgunun doğru mu yanlış mı olduğuna karar vermesi için gereken süreyi fark eder. Sonuca bağlı olarak, HTTP yanıtı anında veya gecikmelidir.

Bant dışı SQL Enjeksiyonu

Bant dışı SQL enjeksiyonu, bilgisayar korsanının yalnızca veritabanı sunucusunda belirli özellikler etkinleştirildiğinde veritabanına saldırmasına izin verir. En az popüler olan SQL enjeksiyon yöntemidir. Birçok bilgisayar korsanı bunu Hata tabanlı ve Kör SQL enjeksiyonlarının yerine kullanır.

Bu özel saldırı, bilgisayar korsanının saldırıyı gerçekleştirmek ve bilgi toplamak için aynı ortamı kullanamadığı durumlarda bir seçenektir. Veya, bir sunucu kararsız ve diğer iki enjeksiyon türünü gerçekleştirmek için yavaş olduğunda bu enjeksiyonu kullanabilirler. Bu teknik, çalınan verileri iletmek için DNS ve HTTP istekleri oluşturur.

 Şunları beğenebilirsiniz: Küçük İşletmeler için Siber Güvenlik Risk Değerlendirmesi ve Yönetim İpuçları.

Bu Tehdit Hala İlgili mi?

siber-güvenlik-koruma-gizlilik-şifreleme-güvenlik-şifre-güvenlik duvarı-erişim

SQL enjeksiyonları, saldırgan siber saldırıların en eski biçimlerinden biridir. Yine de hala çok alakalı. Açık Web Uygulaması Güvenliği Projesi, iki yıl önce SQL enjeksiyonlarını bir numaralı tehdit olarak listelemişti. Bulut hizmeti sağlayıcısı Akamai, 2017'den 2019'a kadar tüm web tabanlı saldırıların %65'inden SQL enjeksiyonlarının sorumlu olduğunu tespit eden bir İnternet Durumu Raporu oluşturdu. Dolayısıyla, SQL enjeksiyonunun hala web saldırılarının üçte ikisinde göründüğünü söyleyebilirsiniz. son yıllarda.

2017'nin ilk çeyreğinde, bu vektörler uygulama katmanı saldırılarının %44'ünden sorumluydu. Daha da kötüsü, başka hiçbir uygulama saldırı vektörü biçimi SQL enjeksiyonları kadar hızlı büyümez. Kasım 2018'de başka bir önemli artış oldu. 35 milyonun üzerinde SQL enjeksiyon saldırı girişimi olduğunu göstermiştir. Uzmanlar, bu artışın önde gelen nedeninin tatil sezonu olduğunu düşünüyor. Bu, tüm web sitesi sahiplerinin bilmesi gereken bir şeydir - özellikle perakende sektöründeyseler. Ancak tatil sezonu bittikten sonra bile SQL enjeksiyonu, farkında olmanız gereken bir tehdit olmaya devam ediyor.

Amerika Birleşik Devletleri, uygulama katmanı saldırılarının en büyük hedefidir. Sadece 17 ayda yaklaşık 3 milyar saldırıyla karşılaştı. Diğer popüler kurbanlar Birleşik Krallık, Almanya, Brezilya, Hindistan, Japonya, Kanada, Avustralya, İtalya ve Hollanda'dır. Bu nedenle, bunun hala büyük bir tehdit olduğunu ve tüm şirketlerin kapsamlı önlemler alması gerektiğini varsaymak güvenlidir.

Önleme için Güvenlik İpuçları

Geliştiriciler için en iyi hareket tarzı, saldırıların gerçekleşmesini önlemek için ihtiyati tedbirler almaktır. Bunlar en etkili önleme önlemleridir:

  • Giriş Doğrulaması: Giriş Doğrulaması, belirli bir kullanıcı girişine izin verilip verilmediğini doğrular. Bu, biçim, uzunluk ve türün toplu olarak kabul edilmesi gerektiği anlamına gelir. Bilgisayar korsanının giriş dizesine yerleştirdiği komutlarla savaşmak için yararlıdır.
  • Parametreli Sorgular: Parametreli sorgular, farklı SQL ifadelerini önceden derlemenin bir yoludur. Ardından, ifadenin yürütülebilmesi için parametreleri stoklar. Veritabanının kodu tanımasını ve normal giriş verilerinden ayırt etmesini sağlar.
  • Saklı Yordamlar: Geliştiricilerin bir veya daha fazla SQL ifadesini mantıksal bir birimde kümelemelerine ihtiyaç duyarlar. Adından da anlaşılacağı gibi saklanabilen ve daha sonra saklanabilen bir kod biçimidir.
  • Kaçma: Geliştiriciler, DBMS'nin kullanıcı girdisini bir SQL deyimiyle karıştırmamasını sağlamak için karakterden kaçış özelliklerini kullanmalıdır.
  • Web Uygulaması Güvenlik Duvarı: SQL enjeksiyon saldırılarını önlemenin en güvenli yöntemlerinden biridir. Güvenlik duvarı, sunucuya giden ve sunucudan gelen trafiği izler. Hangi isteklerin potansiyel olarak zararlı olduğunu ve hangilerinin olmadığını tanımlar. Bu çözüm, diğer birçok istismar için yeterlidir, bu nedenle her zaman iyidir.
  • Yönetici ayrıcalıklarından kaçınma: Geliştiriciler, uygulamalarını hiçbir zaman kök erişimi olan hesaplar aracılığıyla veritabanına bağlamamalıdır. Aksi takdirde, bilgisayar korsanları tüm sisteme erişebilir ve onarılamaz hasarlara neden olabilir. Ayrıca geliştiriciler, her veritabanının sınırlı sayıda kendi kimlik bilgilerine sahip olduğundan emin olmalıdır.
 Şunlar da hoşunuza gidebilir: En Çok Satan 10 İnternet Güvenliği Yazılımı (Antivirüs ve Güvenlik).

Son sözler

hack-saldırı-maske-siber-suç-virüs-veri-güvenliği

SQL enjeksiyonu hakkında endişe duyanlar diğer olası saldırıları da unutmamalıdır. Olağan siber güvenlik uygulamaları geçerlidir: sağlam parolalar kullanın, tehditleri tanımayı öğrenin, web sitelerine veya veritabanlarına her bağlandığınızda bir VPN'i açın, vb. VPN nedir ve ne işe yarar? Çevrimiçi olduğunuz her an çevrimiçi trafiğinizi şifreler. Bu nedenle, veritabanınıza bir SQL isteği gönderirseniz, yalnızca DB bunun şifresini çözebilir. Birisi söz konusu veri paketlerini ele geçirirse, onlardan bir anlam çıkarmayacaktır. Siz veya şirketiniz her türlü tehdide ne kadar hazır olursa o kadar iyidir.

Yalnızca kapsamlı önleyici tedbirlerin getirilmesi, SQL enjeksiyonunun veya saldırılarının hiçbir zaman başarılı olmamasını sağlar. Çeşitli istismarlarla mücadele etmek için uygun araçlara sahip olduğunuzdan emin olmak için çok zaman, çaba ve para yatırmaya hazır olun.