Güvenli kodlama - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Arabellek Aşımı önlemi
  • 2 Biçim-Dizgi Saldırısı Önlemleri
  • 3 Kaynakça

Güvenli kodlama

  • English
  • فارسی
  • 日本語
  • 한국어
  • Македонски
  • മലയാളം
  • Русский
  • Українська
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Makale serilerinden
Bilgi güvenliği
Güvenlik kategorileri
  • İnternet güvenliği
  • Siber savaş
  • Bilgisayar güvenliği
  • Mobil güvenlik
  • Ağ güvenliği
Tehditler
  • Gelişmiş Sürekli Tehdit
  • Arka kapı
  • Bilişim suçları
  • Güvenlik açığı
  • Eavesdropping
  • Exploit
  • Truva atı
  • Virüs ve solucan
  • Fidye virüsü
  • Mantık bombası
  • Denial-of-service attack
  • Malware
  • Payload
  • Yemleme
  • Veri kazıma
  • Casus yazılım
  • Rootkit
  • Keylogger
Korunma
  • Bilgisayar Erişim Denetimi
  • Uygulama güvenliği
    • Antivirüs yazılımı
    • Güvenli kodlama
    • Güvenlik odaklı işletim sistemi
  • Kimlik doğrulama
    • Çok faktörlü kimlik doğrulaması
  • Veri merkezli güvenlik
  • Yetkilendirme
  • Şifreleme
  • Güvenlik duvarı
  • Saldırı tespit sistemleri
  • Mobil güvenli ağ geçidi
  • g
  • t
  • d

Güvenli kodlama, bilgisayarın yazılımsal olarak güvenlik zafiyetlerinden korumayı amaçlayan bir yöntemdir. Yazılım hata ve kusurları ile mantıksal hatalar yazılımı sömürme amaçlı kullanılan güvenlik zafiyetlerin başında gelir.[1] Raporlanan zafiyetlerden elde edilen bilgiler ışığında güvenlik uzmanları çoğu zafiyetin ufak programlama hatalarından kaynaklandığını keşfetmiştir. Güvenli olmayan bu kodlar incelenerek eğitimci yazılım geliştiren kişiler ve kurumlar bu açıklıkları azaltmayı hedeflemektedir.

Arabellek Aşımı önlemi

[değiştir | kaynağı değiştir]

Arabellek Aşımı, işlemci belirlenen arabellek uzunluğunu aştığında ortaya çıkan genel yazılım güvenlik açığıdır. Örneğin veri ögelerini saklamak için 8 bölüt varsa, 9 veri ögesi saklanmak istenildiğinde problem ortaya çıkar. Bilgisayar belleği taşan veri sorunuyla karşılaştığında verinin bir sonraki yerine üstüne yazma işlemi gerçekleştirir, bu da güvenlik zafiyetine(yığın aşılması) veya programın bitirilmesine(bölümlendirme hatası) sebebiyet verebilir.[1]

Arabellek aşımına eğilimi olan bir C programı aşağıda verilmiştir.

int vulnerable_function(char * large_user_input) {
char dst[SMALL];
strcpy(dst, large_user_input);
}

Eğer kullanıcı hedef bellekten daha büyük bir girdi verirse, arabellek taşması meydana gelebilir. Bu tehlikeli programı düzeltmek için, strncpy metodu olası arabellek taşması problemini önleyebilir.

int secure_function(char * user_input) {
char dst[BUF_SIZE];
   //copy a maximum of BUF_SIZE bytes
strncpy(dst, user_input,BUF_SIZE);
}

Diğer güvenli seçenek ise hafızayı dinamik olarak yığın yapısıyla ayırmaktır. Bazı programlama dillerinde malloc yardımıyla hafızada alan ayrılıp, geri bırakılabilir demalloc.

char * secure_copy(char * src) {
int len = strlen(src);
char * dst = (char *) malloc(len + 1);
if(dst != NULL){
strncpy(dst, src, len);
//append null terminator 
   dst[len] = '\0';
}
return dst;
}

Yukarıdaki kod parçasında, program src into dst, içeriklerini kopyalar, bunu yaparken de malloc'tan gelen dönüş tipini kontrol eder, bu şekilde hedef belleğin yeterli hafızası olup olmadığını kontrol etmiş olur.

Biçim-Dizgi Saldırısı Önlemleri

[değiştir | kaynağı değiştir]

Biçim Dizgi Saldırısı kötü amaçlı kullanıcının fonksiyon içine argüman olarak spesifik girdiler vererek biçimlendirmeye çalışmasıdır, örneğin printf() bir biçim-dizgi saldırısıdır. Düşman kişi okuma ve yazma yaparak saldırıyı gerçekleştirebilir.

C fonksiyonu çıktıyı stdout a yazar.Eğer parametreler biçimsel olarak uygun değilse, çeşitli güvenlik hatalarıyla karşılaşılabilir. Aşağıda biçim dizgi hatasına sebebiyet verebilecek örnek bir program verilmiştir.

int vulnerable_print(char * malicious_input) {
printf(malicious_input);
}

Programın uygunsuz hafıza okumasından dolayı sona erdirebilecek hatalı olarak verilebilecek argüman “%s%s%s%s%s%s%s”, parametre olarak verilmiştir.

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ a b John Viega, Gary McGraw (2001). Building Secure Software: How to Avoid Security Problems the Right Way. MAddison-Wesley Professional. s. 528. ISBN 978-0201721522. 
"https://tr.wikipedia.org/w/index.php?title=Güvenli_kodlama&oldid=33929931" sayfasından alınmıştır
Kategori:
  • Bilgisayar güvenliği
  • Sayfa en son 21.24, 2 Ekim 2024 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Güvenli kodlama
Konu ekle