İçeriğe geç
parazade

Güvenli Kodlama Nedir?

İngilizce: Secure Coding

Yayın: · Son güncelleme:

Güvenli Kodlama Nedir? Kısaca

Güvenli kodlama, yazılımı geliştirirken enjeksiyon, yetki hatası ve veri sızıntısı gibi güvenlik açıklarının oluşmasını baştan önleyen yazım alışkanlıkları ve ilkeler bütünüdür.

Güvenli Kodlama nedir?
İçindekiler
  1. Güvenli kodlama nedir?
  2. Temel ilkeler nelerdir?
  3. Sık görülen hatalar
  4. Ekipte nasıl uygulanır?

Güvenli kodlama nedir?

Güvenli kodlama, güvenliği yazılım bittikten sonra eklenen bir katman olarak değil, kodun yazıldığı anda düşünülen bir özellik olarak ele alır. Bir açığı tasarım ya da geliştirme sırasında yakalamak, ürün yayına çıktıktan sonra düzeltmekten çok daha ucuzdur. Bu yaklaşım genellikle "güvenliği sola kaydırmak" diye de anılır.

Temel ilkeler nelerdir?

Dillere göre ayrıntılar değişse de ilkelerin özü aynıdır:

  • Girdiye güvenmeyin: Kullanıcıdan gelen her veriyi doğrulayın.
  • Parametreli sorgu kullanın: Veritabanı sorgularını metin birleştirerek kurmayın.
  • Çıktıyı kodlayın: Ekrana basılan veriyi bağlamına uygun biçimde işleyin.
  • En az yetki: Her bileşen yalnızca ihtiyaç duyduğu izinle çalışsın.
  • Gizli bilgileri koddan ayırın: Şifre ve API anahtarlarını depoya yazmayın.

Sık görülen hatalar

Pratikte en yaygın hatalardan biri, hata mesajlarında fazla bilgi vermektir. Örneğin bir giriş formu "bu e-posta kayıtlı değil" ve "şifre yanlış" uyarılarını ayrı gösterirse, kötü niyetli biri hangi adreslerin sistemde kayıtlı olduğunu öğrenebilir. Tek bir genel uyarı göstermek bu sızıntıyı engeller.

Bir diğer tuzak, eski kütüphanelerin güncellenmeden kullanılmasıdır. Kendi kodunuz temiz olsa bile bağımlılıklardaki bir açık uygulamayı etkileyebilir.

Ekipte nasıl uygulanır?

Kod incelemelerine kısa bir güvenlik kontrol listesi ekleyin ve otomatik analiz araçlarını sürekli entegrasyon hattına bağlayın. OWASP'ın konu bazlı rehberleri, ekibin ortak kurallarını yazarken iyi bir başlangıç kaynağıdır.

Sıkça Sorulan Sorular

Güvenli kodlama yalnızca güvenlik uzmanlarının işi mi?

Hayır. Kodu yazan her geliştiricinin temel ilkeleri bilmesi gerekir. Güvenlik ekibi rehberlik eder, araç sağlar ve kritik incelemeleri yapar.

Güvenli kodlama için hangi araçlar kullanılır?

Kaynak kodu inceleyen SAST, çalışan uygulamayı test eden DAST ve kütüphaneleri tarayan bağımlılık tarama araçları en yaygın kullanılan türlerdir.

İlgili terimler

OWASP Top 10OWASP Top 10, web uygulamalarındaki en kritik güvenlik risk kategorilerini veri ve topluluk görüşüne dayanarak sıralayan, OWASP'ın birkaç yılda bir güncellediği farkındalık belgesidir.SASTSAST (Static Application Security Testing), bir uygulamanın kaynak kodunu ya da derlenmiş kodunu çalıştırmadan inceleyerek güvenlik açıklarını arayan statik uygulama güvenliği testidir.Uygulama Güvenliği(Application Security)Uygulama güvenliği, web, mobil ve masaüstü uygulamalarının tasarım, geliştirme, test ve yayın aşamalarında güvenlik açıklarından arındırılması ve yayından sonra da korunması için uygulanan yöntemlerin bütünüdür.Bağımlılık Taraması(Software Composition Analysis)Bağımlılık taraması (SCA), bir yazılımın kullandığı açık kaynak kütüphaneleri ve paketleri listeleyip bunlarda bilinen güvenlik açıkları veya lisans sorunları olup olmadığını kontrol eden analizdir.Kodlama(Coding)Kodlama, bir işin nasıl yapılacağını programlama dilinin kurallarına uygun komutlarla yazma işidir. Yazılan metne kod denir ve bilgisayar bu kodu çalıştırarak istenen işlemi yapar.Sorgu(Query)Sorgu (query), bir veritabanından belirli verileri getirmek, yeni veri eklemek, mevcut veriyi güncellemek ya da silmek için gönderilen komuttur. İlişkisel veritabanlarında sorgular genellikle SQL diliyle yazılır.Sürekli Entegrasyon(Continuous Integration)Sürekli entegrasyon (Continuous Integration, CI), geliştiricilerin kod değişikliklerini gün içinde sık sık ortak depoya birleştirdiği ve her birleştirmede otomatik derleme ile testlerin çalıştığı yazılım geliştirme pratiğidir.OWASPOWASP, yazılım güvenliğini iyileştirmek için ücretsiz rehberler, araçlar ve standartlar üreten, kâr amacı gütmeyen uluslararası bir vakıf ve açık topluluktur. En bilinen projesi OWASP Top 10 listesidir.