ozztech_logo_white

Güvenli Yazılım Geliştirme Kuralları

Güvenli Yazılım

Güvenli yazılım geliştirme kurallarını öğrenmek için öncelikle güvenli yazılımı anlamalısınız. Güvenli yazılım mimarisi, olası saldırılara karşı önlemler alınarak tasarlanmış, siber saldırıya maruz kaldığı zamanda bile işleyişi bozmadan çalışmaya devam edebilen yazılımları kapsar.

Güvenli Yazılım Geliştirme

Tüm yazılım geliştirme süreci aşamaları boyunca ihtiyaç duyulan özelliklerin tespiti, ara yüz tasarımı, özelliklerin geliştirilmesi ve test edilmesi vb. gibi hususlar dahil olmak üzere, yazılımın planlamasından bitirilmesine kadarki geçen sürede güvenli yazılım geliştirme için yapılan tüm faaliyetlerdir.

Özet

Bir saldırı veya tehdit durumunda, yazılım normal şekilde çalışmaya devam etmelidir. Siber saldırılara karşı önlemlerin alınması ve bu önlemler doğrultusunda yazılımın geliştirilmesine yazılım güvenliği denir. Yazılım güvenliği faaliyetlerinin amacı Tüm bilgi güvenliği saldırılarına karşı daha dayanıklı ve hatasız yazılımlar üretmektir.

Güvenli Yazılım Nasıl Geliştirilir?

Yazılımlara yapılan saldırılarda 3 farklı temel neden vardır;

  • Saldırılan yazılımı tamamen etkisiz hale getirip kullanılmasını engellemek.
  • Yazılıma korsan bir kod dahil edilerek işleyişini bozmak veya farklı amaçlarda çalışmasını sağlamak.
  • Yazılımdaki zafiyetleri tespit etmek için farklı aralıklarla incelemeler yapıp zayıf noktalarını tespit etmek ve sonrasında yazılımın bulunduğu sunucu ardından daha geniş bir alana yayılarak tüm veri merkezlerine erişimi sağlamak.

Yazılım saldırılarını önlemek için öncelikle yazılım güvenliği ilkelerine uygun bir yol izlenmeli ve güvenliği arttıracak tasarım yöntemleri ve uygulamaları kullanılmalıdır. Dışarıdan izinsiz veri aktarımını engellemek için form alanlarından gelen verilerin kontrol edilerek sunucuya aktarılması gerekir. Önlem almak ve güvenlik senaryolarını kafamızda kurmak, yazılımın geliştirilmesi ve bitirilmesi sonrası güvenli bir yazılım haline gelmesindeki en büyük etkendir.

YAZILIM GÜVENLİĞİ İLKELERİ

Aşağıda açıklanan güvenlik ilkelerinin yazılım geliştirme sürecindeki tüm durumlarda (planlama, geliştirme, kullanılan uygulamaların tercihi, projeye dahil olan personel ve projeyi kullanacak olan kullanıcılar) kullanılması gereklidir. Sistemsel devamlılığın yanı sıra kullanıcıların etkileşimleri ve geribildirimleri de dikkate alınmalıdır. Sistemsel ve kullanıcı taraflı güvenlik ilkeleri aşağıda detaylı bir şekilde açıklanmaktadır.

Ayrıcalıkları (Yetkileri) Düşük Tut

En az ayrıcalık ilkesi, kullanıcı ve yazılımın gerekli işlemleri gerçekleştirirken ihtiyaç duyacağı en düşük işlem yetkisine sahip olmasıdır. Bu ilkede projede yavaşlama ve aksamalar olmadığı gibi güvenlik bakımından da üst düzel bir güvenlik sağlanmış olur. Ayrıcalıkların düşük olması aşağıdakilerin gerçekleşmesini sağlar;

  • Yazılımın minimum veri kullanımı sayesinde sistemsel yavaşlıklar engellenir.
  • Uygulamaya verilen yetkilerin düşük olması sunucu üzerinde erişebileceği alanları kısıtlayacağı için saldırıya uğrasa bile dönüşü olmayan sonuçlara yol açmayacaktır.

Tüm Erişimleri Kayıt Altında Tut

Yazılımda gerçekleştirilen önemli işlemlerin kayıt altında tutulmasıdır. Yazılımın başlatılması, kapatılması, veri eklenmesi – silinmesi, bir isteğin gerçekleşmesi ve isteğe dönen cevap gibi önemli olarak sayılan işlemler loglama yöntemleri ile kayıt altında tutulur. Bu sayede yazılımda gerçekleşen sorunların ve fark edilmeyen zafiyetlerin tespiti kolaylaşır.

Erişimleri Ayrı Tut

Yazılımda bulunan önemli bir dosyaya veya özelliğe erişilmeye çalışıldığında erişim denetiminin arttırılmasıdır. 2fa (iki faktörlü doğrulama) buna bir örnektir. Kullanıcı önemli bir dosyaya erişmeden önce (Şekil 1) sunucuda oturum açmalı ardından erişmek istediği yere oturum açmalıdır. Her iki doğrulama işlemi de gerçekleşirse erişim izni verilebilir, aksi durumda erişim reddedilir.

Güvenli Yazılım Geliştirme

Şekil 1 Erişim Şeması

Varsayılanları Gözden Geçir

Yazılımda kullanılan tüm varsayılanların gözden geçirilmesidir. Güvenlik zafiyeti tespit edilen varsayılanlar güvenli hale getirilmelidir. Genel olarak yapılan hatalar aşağıdaki gibidir.

  • Kullanılan dosya ve metin belgelerinin herkese açık olması ve üzerinde düzenlemeler yapılabilmesi.
  • Yazılımın bulunduğun dizinin kolay erişilebilir ve basit (anlaşılır) olması.
  • Erişime açık dosyalarda şifrelerin bulunması
  • IP zafiyetine karşı tehdit olabilecek varsayılan ayarlar.

Ortak Erişim Alanlarına Erişimi Sınıflandır

Ortak alanlara erişimlerde farklı kanallar kullanılmasıdır. Aynı kanaldan yapılan erişimlerde veri sızması ve çalışması durumu kaçınılmazdır. Bu tip durumlarda erişim kanallarını sınıflandırmak gerekir.

Zafiyeti Tespit Et ve Engelle

Yazılımda bulunan zafiyetlerin tespit edilerek güvenlik önlemleri çerçevesinde düzenlemelerin yeniden yapılandırılmasıdır. Yazılımlara yapılan saldırılarda genellikle zafiyet oranı yüksek olan alanlar kullanılır. Güvenlik Zafiyeti bulunan yazılımda zafiyet tarama testleri yapılarak tespitler yapılır ve sonrasında güvenlik arttırma çalışmaları yapılır.

Saldırı Yapılabilecek Ara Yüz Alanlarının Minimuma İndirilmesi

Yazılım ara yüzünde sunucuya bilgi gönderme veya sunucudan bilgi alma alanlarının azaltılmasıdır. Yazılım ara yüzünde bulunan iletişim alanlarının az olması yazılım güvenliğini arttırır.

İlginizi Çekebilecek Makaleler​

LLM (Large Language Models) Nedir?

Günümüzde yapay zeka ve makine öğrenmesi, teknolojinin birçok alanında devrim niteliğinde ilerlemeler kaydetmiştir. Bu ilerlemelerin merkezinde yer alan büyük dil modelleri (LLM – Large Language

Devamı »
Message Broker Nedir?

Message broker, birçok farklı uygulama veya sistem arasında iletişim kurmak için kullanılan bir yazılım aracıdır. Bu araç, bir uygulama tarafından gönderilen mesajları bir veya daha

Devamı »
Loglama Nedir?

Loglama, bilgisayar sistemlerindeki olayları, hataları ve diğer önemli durumları kaydetme işlemidir. Bu kayıtlar, sistem yöneticileri ve geliştiriciler tarafından, sistemlerin işleyişini anlamak, hataları tespit etmek ve

Devamı »
Vcenter Üzerinden ESXI Upgrade’i Nasıl Yapılır?

Öncelikle herkese merhaba arkadaşlar, sizlere Vcenter üzerinde ESXI hostunuzu nasıl upgrade edeceğinizi anlatacağım. Öncelikle hangi versiyona yükselteceksek o versiyonun ISO dosyasını indiriyoruz. Ardından Vcenter’ımızı açıyoruz.

Devamı »