Zephyrnet Logosu

SQL Enjeksiyonu: Veritabanınızda Gizlenen Siber Saldırı

Tarih:

Giriş

SQL enjeksiyonu, kötü niyetli bir kullanıcının bir web uygulamasının sorgusuna rasgele SQL kodu ekleyebildiği ve bir veritabanına erişim izni verdiği bir saldırıdır. Bunu, hassas bilgileri çalmak veya veritabanında saklanan verilerde yetkisiz değişiklikler yapmak için kullanabiliriz. Bu, kullanıcı girişi bir bilgisayara aktarılmadan önce uygun şekilde sterilize edilmediğinde ortaya çıkar. SQL sorgusu, bir saldırganın bilgisayar tarafından yürütülen kötü amaçlı kodu eklemesine izin verir. veritabanı Yönetim sistemi.

Kaynak: Avast.com

Web uygulamalarının ve depoladıkları hassas verilerin güvenliğini tehdit etmeye devam ettikleri için günümüzde SQL enjeksiyon saldırılarını incelemek çok önemlidir. Uzun yıllardır bilinen bir sorun olmasına rağmen saldırısı başarılı olmaya devam ediyor çünkü geliştiriciler risklerin yeterince farkında olmayabilir veya uygulamalarını korumak için gerekli adımları atamayabilir. Ek olarak, teknoloji ve web uygulamalarının kullanımı gelişmeye devam ettikçe, saldırılar için yeni fırsatlar ortaya çıkabilir. Örneğin, bulut tabanlı hizmetlerin ve mikro hizmetlerin artan kullanımı, güvenceye alınması gereken yeni saldırı yüzeyleri oluşturabilir. Ayrıca, şirketin büyümesinin devam etmesi Şeylerin Internet (IOT) cihazlar ve bağlı cihazların çoğalması saldırı yüzeyini artırarak SQL enjeksiyonunu daha acil bir endişe haline getiriyor. Teknolojiye olan güvenin artmasıyla birlikte, kuruluşların risklerin farkında olması ve bu tür saldırılara karşı korunmak için gerekli bilgi ve araçlara sahip olması önemlidir.

SQL InjectionKaynak: www.linkedin.com

Öğrenme hedefleri:

Aşağıda, bu makalenin başlıca öğrenme hedefleri yer almaktadır:

1. SQL enjeksiyonlarının ne olduğunu ve nasıl çalıştığını öğreneceksiniz.
2. SQL enjeksiyon türleri ve bunların gerçek dünyadaki etkileri hakkında bilgi edineceksiniz.
3. Yahoo ve Linkedin gibi büyük teknoloji devlerinin SQL Enjeksiyonlarını dikkatli kullanmayarak milyonlarca dolar kaybettiği gerçek dünya senaryolarını tartışın.
4. SQL Enjeksiyonlarının pratik bir tanıtımını yapmak için bazı kod örneklerini inceleyin.

İçindekiler

1. SQL Enjeksiyon Saldırılarının Yıkıcı Sonuçları

2. SQL Enjeksiyonunu Önlemek İçin Kanıtlanmış Yöntemler

3. Farklı SQL Enjeksiyon Saldırıları Biçimleri

4. Manşet Yapan Çeşitli SQL Enjeksiyon Saldırıları

5. SQL Enjeksiyon Kodu Örnekleri

6. Sonuç

SQL Enjeksiyon Saldırılarının Yıkıcı Sonuçları

SQL enjeksiyon saldırılarının, bir web uygulamasının ve depoladığı hassas verilerin güvenliği ve bütünlüğü üzerinde ciddi sonuçları olabilir. Başarılı bir SQL enjeksiyon saldırısının etkisi aşağıdakileri içerebilir:

  1. Veri hırsızlığı: Saldırgan, müşteri adları, adresler ve kredi kartı bilgileri gibi hassas verilere yetkisiz erişim elde etmek ve bunları sızdırmak için SQL enjeksiyonlarını kullanabilir.
  2. Veri bozulması: Bir saldırgan, bir veritabanında depolanan verileri değiştirmek veya silmek için SQL enjeksiyonlarını kullanabilir, bu da uygulamanın zarar görmesine ve potansiyel olarak iş operasyonlarının kesintiye uğramasına neden olabilir.
  3. Sunucu Uzlaşması: Başarılı bir SQL enjeksiyon saldırısı, bir saldırgana sunucuda rasgele kod yürütme, potansiyel olarak temeldeki sistemin kontrolünü ele geçirme ve ağdaki diğer kaynaklara erişim sağlama yeteneği sağlayabilir.
  4. Hizmet Reddi (DoS): Bir saldırgan, bir veritabanını veya web uygulamasını aşırı yükleyerek çökmesine veya kullanılamaz hale gelmesine neden olmak için SQL enjeksiyonlarını kullanabilir.
  5. Uyumluluk İhlali: Bir SQL enjeksiyon saldırısı, hassas bilgileri korumaya yönelik düzenlemeleri ve endüstri standartlarını ihlal edebilecek ve kuruluşta önemli mali ve itibarsal hasara yol açabilecek bir veri ihlaliyle sonuçlanabilir.

SQL enjeksiyon saldırılarının potansiyel etkisini anlamak ve bunları önlemek, tespit etmek ve bunlara yanıt vermek için gerekli kaynakları önceliklendirmek ve bunlara yatırım yapmak önemlidir.

SQL Injection
Kaynak: slideplayer.com

SQL Enjeksiyonunu Önlemek İçin Kanıtlanmış Yöntemler

Kaynak: www.cloudbric.com

Kuruluşlar, bu ve diğer güvenlik önlemlerini uygulayarak web uygulamalarını ve veritabanlarını SQL enjeksiyon saldırılarına karşı etkili bir şekilde koruyabilir.

  1. Giriş Doğrulama: Doğru türde ve formatta olduğundan emin olmak için tüm kullanıcı girdilerini doğrulayın ve bu kriterleri karşılamayan tüm girdileri reddedin.
  2. Parametreli Sorgular: Kullanıcı girdisini bir sorgu dizgisinde birleştirmek yerine, kullanıcı girdisini sorgu komutlarından ayırmak için hazırlanmış ifadeleri, parametreleştirilmiş sorguları veya saklı yordamları kullanın.
  3. Kaçan Özel Karakterler: Tek tırnak ve noktalı virgül gibi kötü amaçlı SQL kodunu enjekte etmek için kullanabileceğimiz kullanıcı girişindeki tüm özel karakterlerden kaçının.
  4. Kullanıcı Ayrıcalıklarının Sınırlandırılması: Web uygulamasıyla ilişkili veritabanı kullanıcısının ayrıcalıklarını, amaçlanan işlevleri gerçekleştirmek için gereken minimum düzeyde sınırlayın.
  5. ORM'nin kullanımı: Nesne-İlişkisel Eşleme (ORM) çerçevelerini kullanın. Veritabanı işlemlerini soyutlar ve kullanıcı girdilerinden otomatik olarak kaçar.
  6. Düzenli İzleme ve Teftiş: Web uygulamasını ve ilişkili veritabanlarını SQL enjeksiyon girişimleri ve olağandışı etkinlik belirtileri açısından izleyin ve inceleyin.
  7. Web Uygulaması Güvenlik Duvarı'nı (WAF) Kullanma: Web uygulaması güvenliği için WAF, kötü amaçlı SQL kodunu uygulamaya ulaşmadan önce belirleyip engelleyerek saldırılara karşı koruma sağlayabilir.
  8. Yazılımı Güncel Tutmak: Web bağlantısı, web sunucusu ve veritabanı yönetim sistemi dahil olmak üzere tüm yazılım bileşenlerini en son güvenlik yamaları ve güncellemeleriyle güncel tutun.

SQL Enjeksiyon Saldırılarının Farklı Biçimleri

Saldırganların uygulamanızdaki güvenlik açıklarından yararlanmaya çalışabilecekleri çeşitli yolların farkında olmak ve bunlara karşı korunmak için gerekli adımları atmak için farklı saldırı türlerini anlamak önemlidir.

  1. Klasik SQL Enjeksiyonu: Bu saldırı, veritabanına yetkisiz erişim elde etmek için oturum açma formu gibi bir giriş alanına kötü amaçlı SQL kodunun enjekte edilmesini içerir.
  2. Kör SQL Enjeksiyonu: Bu tür bir saldırı, saldırgan enjekte edilen SQL kodunun sonuçlarını göremediğinde, ancak uygulamanın veritabanının yapısı veya içeriği hakkında bilgi verecek şekilde yanıt vermesine neden olduğunda kullanılır.
  3. Zamana Dayalı SQL Enjeksiyonu: Bu saldırı, uygulamanın yanıtında gecikmeye neden olan ve daha sonra veritabanı hakkında bilgi çıkarmak için kullanılabilen SQL kodunun enjekte edilmesini içerir.
  4. Hata tabanlı SQL Enjeksiyonu: Bu tür bir saldırı, uygulama tarafından enjekte edilen SQL koduna yanıt olarak oluşturulan ve veritabanı hakkındaki bilgileri ortaya çıkarabilen hatalardan veya mesajlardan yararlanır.
  5. Bant İçi SQL Enjeksiyonu: Bu saldırı, verilerin hem enjeksiyonu hem de çıkarılması için aynı kanalı kullanır.
  6. Bant Dışı SQL Enjeksiyonu: Bu saldırı, veri ayıklamak için genellikle bir DNS veya HTTP isteği olmak üzere farklı bir kanal kullanır.
  7. Birlik tabanlı SQL Enjeksiyonu: Bu saldırı, enjekte edilen SQL kodunun sonuçlarını meşru bir sorguyla birleştirmek için UNION operatörünü kullanarak veritabanından veri çıkarmak için kullanılır.
  8. Çıkarımsal SQL Enjeksiyonu: Bu saldırı türü, veritabanının yapısı veya içeriği hakkında bilgi çıkarmak için uygulamanın yanıtlarının zamanlamasını kullanır.
türleri

Tarihte Manşet Yapan Çeşitli Saldırılar

Etkilenen kuruluşlara mali işlemle ilgili önemli zararlar veren gerçek hayattan SQL enjeksiyon saldırılarına örnekler

  • Hedef Kurum: 2013 yılında Amerika Birleşik Devletleri'ndeki büyük bir şirket olan Target Corporation, bir SQL enjeksiyon saldırısı nedeniyle veri kaybına uğradı. Saldırı, 40 milyondan fazla müşterinin kredi kartı numaraları ve kişisel verileri gibi hassas bilgilerinin çalınmasıyla sonuçlandı. Saldırganlar, satıcının satış noktası sistemindeki bir güvenlik açığından yararlanarak Target'ın ağına erişim sağlayabilir. Saldırganlar ağa girdikten sonra müşteri verilerini çalmak için bir SQL enjeksiyon saldırısı kullanabilir. Olay, Target için önemli mali kayıplara ve şirketin itibarının zedelenmesine neden oldu. Saldırı aynı zamanda veri güvenliği ve ihlal bildirimi ile ilgili daha katı düzenlemelere ve yasalara ve SQL enjeksiyon saldırılarına karşı korumaya yeniden odaklanmaya yol açtı.
  • yahoo!: Başka bir çok uluslu şirket olan Yahoo da 2013 yılında bir SQL enjeksiyon saldırısı nedeniyle benzer bir veri ihlali yaşadı. Saldırganlar, 3 milyarı aşkın e-posta adresi, telefon numarası ve doğum tarihi gibi hassas bilgilere yetkisiz erişim sağlamayı başardı. Yahoo kullanıcı hesapları. Saldırganlar, verileri çalmak için SQL enjeksiyonlarını kullanarak şirketin özel yazılım güvenlik açığından yararlandı. Olay, Yahoo için önemli mali kayıplara neden oldu ve şirketin itibarını da zedeledi. Bu saldırı, dikkatleri SQL enjeksiyon saldırılarına karşı korumanın önemine ve hassas verileri korumak için daha güçlü güvenlik önlemlerine ihtiyaç duyulduğuna çekti. Saldırıdan sonra Yahoo, sistemlerini güvence altına almak ve güvenlik uygulamalarını iyileştirmek için çeşitli adımlar attı ve etkilenen kullanıcılara da bildirimler sağladı.
  • Sony: Sony örneğinde, saldırganlar 77 milyondan fazla Sony Playstation Network ve Qriocity kullanıcısının kişisel verileri ve oturum açma kimlik bilgileri gibi hassas bilgilerine yetkisiz erişim sağlamayı başardı. Saldırganlar, verileri çalmak için SQL enjeksiyonlarını kullanarak şirketin ağındaki bir güvenlik açığından yararlanmayı başardılar. Olay, Sony için önemli mali kayıplara ve şirketin itibarının zedelenmesine neden oldu. Sony, sorunu çözmek için PlayStation Network'ü bir aylığına kapatmak zorunda kaldı, bu da gelir ve müşteri güveni kaybına yol açtı. Bu saldırı, dikkatleri SQL enjeksiyon saldırılarına karşı korumanın önemine ve hassas verileri korumak için daha güçlü güvenlik önlemlerine ihtiyaç duyulduğuna çekti. Saldırıdan sonra Sony, sistemlerini güvence altına almak ve güvenlik uygulamalarını iyileştirmek için çeşitli adımlar attı ve ayrıca etkilenen kullanıcılara bildirimler ve ücretsiz hizmetler sağladı.
  • LinkedIn: Saldırganlar, 167 milyondan fazla e-posta adresi ve şifrelenmiş parola gibi hassas bilgilere yetkisiz erişim sağlamayı başardı. LinkedIn kullanıcılar. Saldırganlar, verileri çalmak için SQL enjeksiyonlarını kullanarak şirketin sistemindeki bir güvenlik açığından yararlanmayı başardılar. Olay, LinkedIn için önemli mali kayıplara ve şirketin itibarının zedelenmesine neden oldu. Bu saldırı, dikkatleri SQL enjeksiyon saldırılarına karşı korumanın önemine ve hassas verileri korumak için daha güçlü güvenlik önlemlerine ihtiyaç duyulduğuna çekti. Saldırıdan sonra LinkedIn, sistemlerini güvence altına almak ve güvenlik uygulamalarını iyileştirmek için çeşitli adımlar attı ve ayrıca etkilenen kullanıcılara bildirimler ve ücretsiz hizmetler sağladı. Çalınan verilerin daha sonra karanlık ağda satıldığı keşfedildi, bu da parola güvenliğinin önemini vurguladı ve kullanıcıları benzersiz, güçlü parolalar kullanmaya teşvik etti.

SQL Enjeksiyon Kodu Örnekleri

Bu bölümde SQL Injection'ın temel örneklerine bakılacaktır.

1. Klasik SQL enjeksiyonu: Her zaman doğru bir ifade döndürmek için SQL sorgusunu işleyerek oturum açma kimlik doğrulamasını atlamak için kullanılır. Yukarıda admin' OR '1'='1 giriş alanında verdiğim örnek, SQL sorgusunu SELECT * FROM users WHERE username='admin' OR '1'='1′ AND password='{password_entered} olarak değiştirecek .' Bu, her zaman doğru bir ifade döndürür ve saldırganın yönetici kullanıcı olarak oturum açmasına izin verir.

Örnek : input : ' OR '1'='1 SQL sorgusu : SELECT * FROM users WHERE username='' OR '1'='1' AND password='{password_entered}'

2. Birlik tabanlı SQL enjeksiyonu: orijinal sorguya ek bir SQL sorgusu ekleyerek bir veritabanından veri çıkarır.

Örnek : Giriş : ' UNION SELECT 1,2,username,4,password FROM users WHERE '1'='1 SQL sorgusu : SELECT * FROM users WHERE username='' UNION SELECT 1,2,username,4,password FROM users NEREDE '1'='1'

3. Hata tabanlı SQL enjeksiyonu: Bir veritabanından veri ayıklayarak uygulamanın, temel alınan veritabanı hakkında bilgi veren hata mesajları döndürmesine neden olur.

Örnek : Girdi : ' OR 1=1 -- SQL sorgusu : SELECT * FROM users WHERE username='' OR 1=1 --'

4. Kör SQL enjeksiyonu: Uygulama herhangi bir hata mesajı döndürmediğinde kullanılır, ancak saldırgan, uygulamanın istediği bilgilere göre farklı yanıt vermesine neden olan istekler göndererek yine de bilgi alabilir.

Örnek : Giriş : admin' AND (bilgi_schema.tables'den SEÇ COUNT(*)) = 0 -- SQL sorgusu : SELECT * FROM users WHERE username='admin' AND (SELECT COUNT(*) FROM information_schema.tables) = 0 - -'

5. Zamana dayalı SQL enjeksiyonu: Bu tür bir SQL enjeksiyonu, saldırganın bilgileri çıkarabildiği ve uygulamanın istediği bilgilere göre yanıtını geciktirmesine neden olduğu durumlarda kullanılır.

Örnek : Giriş : admin' AND (SELECT IF(SUBSTR((SELECT password FROM users FROM users WHERE username='admin'),1,1)='a', SLEEP(5), 0))=0 -- SQL sorgusu : SELECT * FROM users FROM WHERE username='admin' AND (SELECT IF(SUBSTR((SELECT password FROM users FROM WHERE username='admin'),1,1)='a', SLEEP(5), 0))=0 - -'

Sonuç

Sonuç olarak, SQL enjeksiyonları, saldırganların kimlik doğrulamasını atlamasına, hassas verileri çıkarmasına ve hedef veritabanında kötü amaçlı kod yürütmesine olanak tanıyan kritik bir güvenlik açığıdır. Bir saldırgan, oturum açma formu gibi bir giriş alanına kötü amaçlı kod eklediğinde ortaya çıkar. Veritabanı daha sonra bunu yürütür. Çeşitli SQL enjeksiyon saldırı türleri arasında klasik, birlik tabanlı, hata tabanlı, kör ve zamana dayalı saldırılar bulunur. Bu saldırılar, veri ihlalleri ve hassas bilgilerin kaybı da dahil olmak üzere kuruluşları ciddi şekilde etkileyebilir.

Bu makalenin önemli çıkarımları:
1. SQL enjeksiyonlarının ne olduğunu ve bu teknolojinin neden bilinmesi gerektiğini tartıştık.
2. Girdi Doğrulama, Kullanıcı Girişlerini Sınırlayan Parametreli Sorgular vb. gibi etkiyi ve bunu önlemenin yollarını anlayın.
3. Hata tabanlı, zaman tabanlı, birleşim tabanlı, vb. gibi bazı SQL Enjeksiyon türlerini de tartıştık. Ardından Linkedin, Yahoo, vb. gibi büyük firmaların gerçek hayattan bazı örneklerini tartıştık.
4. Bazı temel kodları ve komutları öğrendi ve makaleyi tamamladı.

Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?