SQL enjeksiyon saldırısı nasıl çalışır?
SQL enjeksiyon saldırısı nasıl çalışır?
SQL enjeksiyon saldırısı nasıl çalışır? Siber saldırının en basit ama en etkili yöntemlerinden birini anlamak nasıl olur?
Web geliştirme konusunda bilginiz varsa, muhtemelen SQL enjeksiyon saldırılarını duymuşsunuzdur. Bir SQL enjeksiyonu, en kritik web uygulaması güvenlik risklerinin bir listesi olan OWASP İlk 10’da bir numaradır ve yıkıcı bir etkisi olabilir.
Öğrenmesi ve yürütmesi kolaydır ve bu nedenle en yaygın kullanılan siber saldırı biçimlerinden biridir. Ayrıca, savunmaları oldukça basittir, ancak sosyal medya sitelerinde, çevrimiçi perakendecilerde, üniversitelerde ve bu saldırıları önlemek için bilgi birikimine veya kaynaklara sahip olmayan KOBİ’lere karşı yaygın bir saldırı yöntemidir.
SQL enjeksiyon saldırılarının bu kadar korkutucu olmasının nedeni, web’in büyük bir bölümünün Microsoft, Oracle ve SAP gibiler tarafından sağlananlar da dahil olmak üzere SQL veritabanları üzerine kurulmuş olmasıdır. Bu, SQL enjeksiyonunu bir bilgisayar korsanının cephaneliğindeki en çok yönlü saldırı yöntemlerinden biri yapar ve genellikle bir ihlal girişiminin parçası olarak kullanılan ilk araçlar arasındadır.
SQL enjeksiyonu nedir?
SQL enjeksiyonunun nasıl çalıştığını analiz etmek için önce SQL’in ne olduğunu belirlememiz gerekir. Kısacası, SQL (veya yapılandırılmış sorgu dili) , web uygulamaları tarafından kullanılan tür gibi büyük veritabanlarını yönetmek için tasarlanmış bir programlama dilidir. SQL, metin tabanlı komutlarla bir veritabanındaki verileri değiştirmek, almak ve yeniden düzenlemek için kullanılır.
Bir SQL enjeksiyon saldırısı, üçüncü bir tarafın arka uç veritabanlarına izin verilmemesi gereken şekillerde müdahale etmek için SQL komutlarını kullanabilmesidir. Bu genellikle, kullanıcı tarafından girilen metni doğrudan bir SQL sorgusuna dahil eden ve ardından bu sorguyu bir veritabanına karşı çalıştıran web sitelerinin sonucudur. Bunun kötü amaçlı olmayan bir bağlamda nasıl çalıştığı, kullanıcı tarafından girilen metnin veritabanında arama yapmak için kullanılmasıdır – örneğin, kullanıcı tarafından girilen kullanıcı adı ve parolaya göre eşleştirerek belirli bir hesaba giriş yapmak.
Ancak bir SQL enjeksiyonunda, bu işlem yetkisiz işlevleri gerçekleştirmek için kaçırılır. Basit bir örnek vermek gerekirse, saldırgan, sorgunun mantığını geçersiz kılmak için başka bir SQL komutu kullanarak yukarıda özetlenen sorgu sürecini kullanabilir. Standart SQL sorgusu, veritabanında belirli bir girdi kümesiyle eşleşen bir tane bulduğunda bir hesaba giriş yapmak için tasarlanmıştır; bu nedenle, saldırgan sorguyu ‘VEYA 1=1’ koşulunu ekleyecek şekilde değiştirebiliyorsa, tablodaki her girişin olumlu bir sonuç döndüreceği anlamına gelir. Bu koşullar altında, sorgu, bulduğu ilk hesapta oturum açar; bu, çoğu veritabanında yönetici ayrıcalıklarına sahip bir kullanıcıdır.
Bu , bilgisayar korsanlarının kullanıcı tarayıcılarını hedeflemek için web formlarına kötü amaçlı komut dosyaları girmesini içeren başka bir enjeksiyon saldırısı türü olan siteler arası komut dosyası oluşturmaya çok benzer bir şekilde çalışır .
SQL enjeksiyon saldırısının en yaygın sonuçlarından biri, kullanıcı verilerinin çalınmasıdır. Giriş bilgileri, e-posta adresleri veya kişisel bilgilerin tümü karaborsada satılabilir veya daha fazla siber saldırı için kullanılabilir. Saldırı, veritabanından tabloları silerek uygulamaları çevrimdışı duruma getirmek veya veritabanına yeni bilgiler eklemek için de kullanılabilir.
SQL enjeksiyonuna karşı nasıl savunulur?
Bu tür saldırılar, web sitelerindeki kullanıcı giriş alanlarını kullandığından, bu girişlerde kullanılan karakterler, web sitesinde yürütülmeden önce ‘temizlenebilir’ veya kötü amaçlı kodlara karşı taranabilir.
Bir SQL enjeksiyon saldırısının açıklayıcı işaretleri ve dijital bir sıkıntıya neden olmak için kullandıkları sözdizimi vardır. Bir SQL enjeksiyon girişiminin kodunda bulunabilecek, iki nokta üst üste gibi, kullanıcı tarafından girilmesine izin verilmemesi gereken – veya giriş alanına uygulanan temizleme kurallarının bir sonucu olarak verilmeyecek – belirli karakterler vardır. . Örneğin, iki nokta üst üste işareti bir adda kullanılmayacaktır, bu nedenle bir web sitesi yöneticisi, bir ad veya soyadı giriş alanının, içinde iki nokta bulunan bir dizeyi kabul etmesini yasaklayan bir kural belirleyebilir. Aynısı bir e-posta adresi alanı için de geçerlidir – e-posta adresleri bu tür karakterleri kabul etmez ve bu nedenle bu kural kullanılarak güvenli bir şekilde temizlenebilir.
Bu temizleme yöntemi iyi çalışır, ancak işleri yapmanın daha verimli bir yolu, OWASP tarafından ilk çağrı noktası olarak önerilen yöntem olan parametreli sorguları kullanmaktır. Yöntem, kötü amaçlı bir komut dosyasıyla beslenen bir SQL veritabanının, neyin kod ve neyin veri olduğunu – neyin kötü niyetli olabileceğini ve neyin meşru bir giriş olduğunu ayırt etmesine izin verir. Web sitesi yöneticisi veya geliştirici, tüm SQL kodunu önceden tanımlayarak ve kullanıcı giriş alanlarını ayrı parametreler olarak geçirerek, giriş alanına yalnızca geçerli verilerin iletilmesini sağlayabilir.
SQL enjeksiyonları nasıl kullanıldı ve ne gibi etkileri oldu?
SQL enjeksiyonları, son 20 yılda birden fazla siber saldırıda, genellikle diğer, daha karmaşık araçlar ve teknikler uygulanmadan önce bir ilk araştırma olarak kullanılmıştır.
Yine de alay edilecek bir şey değiller. SQL enjeksiyonu, çalınan, silinen veya hassas verilerin değiştirilmesine neden olabilir. Saldırganlar sahte kimlikler oluşturabilir, işlemleri değiştirebilir, kendilerini veritabanı yöneticisi yapabilir ve hatta web sunucusunu tamamen ele geçirecek kadar ileri gidebilir.
SQL enjeksiyon saldırıları, 8.3 milyon kullanıcının kayıtlarına erişmek için 2020 Freepick veri ihlalinde ve 2015’teki devasa TalkTalk ihlalinde kullanıldı ve 150.000’den fazla müşterinin kişisel verilerinin çalınmasına ve firmaya 400.000 sterlin para cezasına çarptırıldı.
Web güvenlik firması Akamai’nin bir raporuna göre, SQL enjeksiyon saldırıları Kasım 2017 ile Mart 2019 arasında web tabanlı saldırıların %65’inden fazlasını oluşturuyor ve ABD ve İngiltere en sık hedeflenen ülkeler olarak listelerin başında yer alıyor.
Makalenin orjinal kaynağını bu linkten okuyabilirsiniz.
Tüm yazılarımızı okumak için tıklayın.