Exploit

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Bir exploit (İngilizce: to exploit - kötüye kullanmak) bir bilgisayar programıdır veya bir script, bilgisayar programlarında bulunan zayıflık veya hatalar için kullanılır.

Genel anlatım[değiştir | kaynağı değiştir]

Bir Exploit genellikle açığa gösteriş olarak yazılır ve İnternet'te yayınlanmaz. Bu yapılan uzman dilinde "Proof of Concept" olarak adlandırılır. Bunun sayesinde;

Yazılım üreticisi hızlı bir şekilde açığı bilmeli ve gerekeni yapmalı.

Exploit'in niteliği teorik olarak exploit olarak adlandırılıyor.

Ekseriya exploit'ler devreye giriyor, bir bilgisayar program kodu veri birbirinden ayırmazsa. Böylece mesela bir Buffer Overflow saldırganın kodu yanlış hafızaya yazılır ve programın uygulamasında manipule edilir.

Bir başka yöntem ise Format String saldırılarıdır. Filtre edilmemiş user komutu format fonksiyonu printf() olarak verilir.

Çeşitli exploit'ler mevcuttur:

  • Local Exploits
  • Remote Exploits
  • Dos-Exploits
  • Command-Execution-Exploits
  • SQL-Injection-Exploits
  • Zero-Day-Exploits

Local-Exploits[değiştir | kaynağı değiştir]

Lokal exploit'ler mesela bir *.exe *.gif vs gibi dosya çalıştırıldığında devreye girer ve yerel bilgisayarda yüklü olan vulnerable (savunmasız/yaralı) yazılım sayesınde exploit'te entegre edilmiş Shellcode'u çalıştır ve kötü kod enjekte eder. Bunun sayesinde saldırgan yüksek haklara sahip olur.

Remote-Exploits[değiştir | kaynağı değiştir]

Bir Remote Exploit İnternet(ağ) üzerinden çalışmakta ve mevcut olan güvenlik açığını kullanarak, bir vulnerable sisteme erişim sağlamaktadır.

Dos-Exploits[değiştir | kaynağı değiştir]

İlk tanınmış olan açığı yazılan exploit'ler Dos-Exploitlerdir (Danial - of Service) Bir sistemi yavaşlandıran veya durduran.

Command-Execution-Exploits[değiştir | kaynağı değiştir]

Saldırgan tarafından kontrol edilen bir program kodu hedef sisteme uygulama.

Böyle bir exploit'i doğru şekilde çalıştırabilmesi için programcı veya saldırkan, hafıza olmak üzere hedef uygulamayı iyi bilmesi gerek.

Bu bilgileri açık bir program kodu kaynağından veya test ederek edinir. Kendi kodunu becerikli yere yerleştirmeli çalıştırabilmesi için.

Command-Execution-Exploits çok tehlikeli, çünkü hedef olan sistemde saldırgan tüm haklara sahip oluyor.

Daha doğrusu tüm haklar ile sistemi yönetiyor.

SQL-Injection-Exploits[değiştir | kaynağı değiştir]

SQL Nedir?

SQL (Structured Query Language) veri tabanlarında veri çekme, silme ve değiştirme gibi işlemler için kullanılan basit yapılı bir dildir. Bugün hemen hemen tüm web uygulamalarının altyapısında veri tabanı desteği vardır ve bu web uygulamaları veri tabanı ile SQL aracılığıyla anlaşırlar.

Bir siteye mesaj bıraktığınızda bu mesaj veri tabanına kaydedilir. O mesaj onaylandığında veri tabanındaki bir alan güncellenmiş olur. Yönetici veri tabanındaki kaydı silerek o mesajın siteden silinmesini sağlar.

Örnek bir kayıt silme SQL çümlesi şu şekilde olabilir; DELETE FROM members WHERE id=17

Yukarıdaki kod veri tabanı tarafından çalıştırıldığında Members tablosunda ID alanı 17 olan kayıt silinecektir.

SQL Injection nedir?

Web uygulamalarında birçok işlem için kullanıcıdan alınan veri ile dinamik SQL cümlecikleri oluşturulur. Mesela “SELECT * FROM Products” örnek SQL cümleciği basit şekilde veri tabanından web uygulamasına tüm ürünleri döndürecektir. Bu SQL cümlecikleri oluşturulurken araya sıkıştırılan herhangi bir meta-karakter SQL Injection'a neden olabilir. SQL injection' ile birçok şeye erişebilir dikkat edilmesi gereken önemli açıklardan biridir.

Zero-Day-Exploits[değiştir | kaynağı değiştir]

Bir Exploit, açığa aynı günde yazılan ve sanalda hızlı bir şekilde yayınlanan güvenlik açığı ( 0-Gün Exploit)

Bu tip Exploitlerin tehlikeli olmasinin sebebi ise hiçbir üretici veya geliştirici bu güvenlik açığını kısa bir süre içerisinde yeni bir yama ile doğru veya anlamlı bir şekilde kapatamaması. Böyle bir saldiri Zero-Day-Saldırı olarak adlandırılıyor. Zero-Day-Saldırıları etkili, çünkü hızlı ve otomatize edilmeden yeni bir güvenlik açığı kullanılabiliyor. Önceden bir Firewall veya Anti-Virus-Software imzası ile karşılaşmadan.

Karşı Önlem[değiştir | kaynağı değiştir]

Çeşitli teknik korunmalar var, messela hafıza korunması.

Bunlar sadeçe belirli kullanım tekniklerini önler, fakat bir güvenlik açığından korunma imkânsız. Kısmen olarak Intrusion Detection System sayesinde bir saldırı tespit edilebilir veya intrusion prevention system sayesinde belki bir saldırı önlenebilir. Genel sorun ise yanlış programlama.

Tek çare ise işlem hatasından kaynaklanan güvenlik açıklarını geliştirmede önleme.

Ayrıca bakın[değiştir | kaynağı değiştir]

  • [1] Cracker (Bilgisayar)
  • [2] Hacker
  • [3] Arabellek aşımı (Buffer Overflow)