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

Güvenli Yazılım Geliştirme

Güvenli Yazılım Geliştirme

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

Bir yazılım mimarisi için güvenli yazılım, olası saldırılara karşı alınan önlemler ile tasarlanmış, saldırılara maruz kalmasına rağmen işlevini kaybetmeyip çalışması gibi yazılımları kapsar. Tüm yazılım geliştirme uygulamaları, gelişimi boyunca sadece ihtiyaç duyduğu özelliği veya özelliklerin tespit edilmesi, ara yüz tasarımı, özelliklerinin geliştirilmesi gibi hususlar dahilinde, yazılım tasarımından bitişine kadar olan süreyi kapsamaktadır

Yazılıma karşı yapılan saldırıların amaçları başlıca şunlardır;

  • Yazılımın kaynak kodunun analizini yapmak ve çevresi hakkında bilgi alarak yazılımın zayıf noktasını tespit etmek,
  • Kullanılan ortama sızarak istenilmeyen amaçları gerçekleştirerek,
  • İçerisinde zararlı kodları bulundurur veya yazılımı değiştirerek, yazılımın çalışma akışını değiştirir.
  • Herhangi bir yazılımın çalışmasını tamamen durdurarak veya rutin gidişatını bozmak,
  • İçerisinde zararlı kodları bulundurarak veya yazılımın kendisini tamamen değiştirmek yolu ile çalışma prensibini bozması gibi bir çok amaç bunlara örnektir

 Temel Yazılım Güvenliği İlkeleri 

  • Yetkiyi En Az Verme: Bir bileşene(kullanıcı vb.) belli herhangi bir görevi tamamlaması gereken en az yetki seçeneği sağlamasıdır.
  • Tüm Erişimleri Denetle: Her bir nesneye yapılan erişimde yetki kontrolü yapılarak sürekli denetlenir.
  • Yetkileri Ayırmak: Bir öğeyi verilen koşullara göre sınıflandırılma işlemidir.
  • Ortak Erişilen Kaynaklara Farklı Kanallardan Erişim Sağlamak: Kaynaklara erişen aygıtlar ortak kullanılması güvenliği tehlikeye atar.
  • En Zayıf Halkayı Tespit Et ve Güçlendir: Yazılıma yapılan ilk saldırıda zarar görecek olan taraf en zayıf kısım olan yazılımdır. Bu nedenle de zayıf halkalar olabildiğince azaltılmalı ve güçlendirilmelidir.
  • Saldırı Yüzey Alanını Azalt: Saldırı yüzeyi bir saldırıcının veri alabileceği ortamdır. Bu nedenle saldırı yüzeyine gereksiz özellikler eklenmemeli ve her zaman kontrol edilmelidir.
  • Savunma Derinliği Oluştur: Sisteme sürekli savunma gönderilmesi gerekmektedir. Böylelikle olası bir saldırıda savunma etkisiz kalamaz.
  • Anlaşılabilir ve Kolay Kullanılabilir Güvenlik Mekanizması Tasarla: Yazılımda kullanıcıyla etkileşim gerektiren güvenlik mekanizmaları anlaşılabilir ve kolay kullanılabilir olması gerekmektedir çünkü aksi bir durumda kullanıcı, güvenlik mekanizmalarının etrafından dolaşmak için yollar arayabilir.

YAZILIM GÜVENLİĞİNİ SAĞLAMA YÖNTEMLERİ 

Yazılım güvenliğini sağlama yöntemleriyle yazılımımızı koruyabilir, olası saldırılardan ve açıklardan kurtulabiliriz. Bu yöntemler ise başlıca şunlardır;

Sezgisel (Heuristic) ve Benzetime (Simulation) Dayalı Yöntemler

Statik Analiz(Static Analysis): Bu analiz türü, herhangi bir yazılımın genel özelliklerini gösteren ve bu yazılımın başlatılmadan önce analiz etmeyi amaçlamış bir analiz türüdür. Analizden sonra hangi yazılım hangi türde olduğu ve özelliklerini gösterir.

Sembolik Koşturma(Symbolic Execution): Sembolik koşturma denilen yöntemde ise yazılımın kendisi üzerine işlem yapılarak tüm olası etkenler modellenmektedir. Yazılım testi kullanılarak tanımlanan akış hataları bu denli bulunabilir.

Dinamik Analiz (Dynamic Analysis): Bir uygulamadaki yazılım açıklarını tespit etmek amacıyla yapılan analizlere “Dinamik Analiz (Dynamic Analysis)” denilmektedir. Dinamik analiz için farklı araçlar vardır. Bunlar;

  • Ağ tarayıcısı: Ağ üzerindeki cihazlar ile yazılımları belirler ve özelliklerine erişir. Örnek olarak “nmap” verilebilir.
  • Ağ dinleyicisi: Ağ üzerindeki etkileşimleri dinleyerek anlık veya sonradan kaydedip analiz yapan araçlardır. Örnek olarak “wireshark” verilebilir
  • Ağ zayıflık tarayıcısı: Herhangi bir cihaz veya yazılımın üzerinde bulunan servise daha önceden oluşmuş ağ etkileşimleri gönderilerek güvenliğe uygunluğu veya zayıflığı tespit edilir. Örneğin “OpenVAS” buna bir örnektir.

Bilgisayar tabanlı zayıflık tarayıcısı: Kurulum sırasında kullanılan yazılım ile ilgili güvenlik açığı var ise tespit ederek bilgisayar üzerindeki etkilerini ve denetim araçlarını test eden araçlardır. Örneğin “OpenSCAP” örnek verilebilir.

Uygulama zayıflık tarayıcısı: Seçilen uygulamanın özellikleri esas alınarak, zayıflıklarının olup olmadığını kontrol ve tespit etmeyi amaçlamış bir araçtır. Örneğin “sqlmap, Scuba” araçları veri tabanı kısmında kullanılır ve örnek birer araçtır.

  • Zafiyeti Tespit Etme ve Engelleme Nedir? Nasıl kullanılır?

Yazılım içerisinde bulunan zafiyetler tespit edilerek güvenlik önlemleri çerçevesinde düzenlemelerin yeniden yapılmasıdır. Yazılımlara yapılan bu saldırılarda genellikle zafiyet oranı yüksek alanlar kullanılmaktadır. Güvenlik Zafiyeti içinde bulunan yazılımlarda zafiyet taraması yapılır ve bu testlerin amacı güvenlik tespitleridir. Eğer bir açık bulunursa gereken güvenlik arttırması yapılır. Peki zafiyet testi nasıl yapılır?

Zafiyet Testi Adımları:

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

Ara yüzde sunucuya bilgi gönderilmesi veya alınması alanlarının azaltılmasıdır. Yazılım ara yüzünde bulunan iletişim alanları, daha az olması gerekir. Eğer çok olursa yazılım güvenliğini arttırma tehlikesi ile karşı karşıya kalırız.


İ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.