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

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
FortiGate ACME Sertifika Desteği
Siber Güvenlik

FortiGate ACME Sertifika Desteği

Ocak 24, 2022 1:22

Otomatik Sertifika Yönetim Ortamı (ACME), RFC 8555’te tanımlandığı üzere, ücretsiz SSL sunucu sertifikaları sağlamak için genel Let’s...

Android Reverse Mühendisliği Araçları Örnek Vakalar
Siber Güvenlik

Android Reverse Mühendisliği Araçları Örnek Vakalar

Ocak 24, 2022 12:39

Bir önceki yazıda yeni çıkan android reverse mühendisliği araçları hakkında bilgi vermiştim. Bu yazımda...

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor
Siber Güvenlik

Emotet Artık Alışılmadık IP Adreslerini Kullanıyor

Ocak 24, 2022 9:44

Emotet kötü amaçlı yazılım botnetinin dağıtımını içeren sosyal mühendislik kampanyaları, güvenlik çözümlerinin tespitinden kaçınmak...

FortiWeb Kurulumu 5-Operation Modu
Siber Güvenlik

FortiWeb Kurulumu 5-Operation Modu

Ocak 24, 2022 7:49

FortiWeb kurulumunu anlattığımız beşinci yazımızda operation modu ve FortiWeb cihazı açıldıktan sonra, FortiWeb cihazını...

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme
Siber Güvenlik

FortiWeb Kurulumu 4- Admin Şifresi Değiştirme

Ocak 23, 2022 10:21

FortiWeb kurulumunu anlattığımız serinin dördüncü yazısında Admin şifresi nasıl değiştirceğinizi, saat ve günü nasıl...

Metasploittable 2
Siber Güvenlik

Metasploittable 2

Ocak 22, 2022 11:57

Metasploittable 2 Nedir? Neden Kullanılır? Nasıl Kurulur? Metasploittable 2 Metasploit firması tarafından bizlerin güvenli...

FortiWeb Kurulumu 3- Firmware Güncellenmesi
Siber Güvenlik

FortiWeb Kurulumu 3- Firmware Güncellenmesi

Ocak 22, 2022 11:56

FortiWeb kurulumunu anlattığımız serinin üçüncü yazısında Firmware güncellemesini anlatacağız. FortiWeb cihazınız gönderildiğinde en son...

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama
Siber Güvenlik

FortiWeb Kurulumu 2- Web UI ve CLI Bağlama

Ocak 21, 2022 7:50

FortiWeb kurulumu yazımızın ikinci serisinde Web UI veya CLI bağlamanın nasıl yapılacağını anlatacağız. Eğer...

Yapay Zeka Nedir?
Yazılım Geliştirme

Yapay Zeka Nedir?

Ocak 20, 2022 10:57

Sürekli olarak değişen, gelişen ve oldukça hızlı bir şekilde boyut atlayan, günümüze kadar gelen...

İletişim
OZZTECH Bilgi Teknolojileri olarak siber güvenlik danışmanlığı ve bilgi güvenliği eğitimleri alanlarında 10 yılı aşkın bir süredir ülkemizin önde gelen kurumlarına hizmet vermeye devam etmektedir. Detaylı bilgi ve danışmanlık hizmetlerimiz için aşağıdaki formu kullanarak veya [email protected] adresimiz üzerinden bizlerle iletişime geçebilirsiniz.