PDF özeti aşağıda mevcut ama kişisel tavsiyem pdf içerisinde hocanın ders esnasında belirttiği yerleri bizzat üzerinden geçmeniz iyi olacaktır.
Yazılım Güvenliği
Sayfa 166-293 pdf özet
Yazılım Güvenliği Detaylı Kapsamlı Özeti
1. Mobil Uygulamalarda Güvenlik Riskleri ve Saldırı Türleri
Mobil uygulamalar, özellikle kullanıcı cihazları ve ağ bağlantıları üzerinden çeşitli saldırılara açıktır. Güvenliği sağlamak için aşağıdaki adımlar önemlidir:
-
Hazırlık: Saldırıların önlenmesi için sistemin ve uygulamanın yapısının bilinmesi,
-
Bilgi Toplama: Sistem zafiyetlerini keşfetmek için bilgi edinme,
-
İş Parçacığı Modelleme: Saldırı yüzeylerini katmanlara ayırarak incelemek,
-
Zafiyet Analizi: Sistemdeki açıklıkları ve güvenlik açıklarını tespit etmek,
-
Saldırıları Belirleme: Kötü amaçlı yazılımların ve saldırı tekniklerinin tespiti,
-
Güçlü Şifreleme: Verilerin korunması için AES gibi güçlü algoritmalar kullanmak,
-
Saldırıları Önleme: Güvenlik duvarları, kimlik doğrulama ve erişim kontrolleri ile saldırıları engellemek,
-
Sistem Açıklarını Düzenli Kontrol: Sürekli güncelleme ve izleme.
Saldırı Türleri Detayları:
-
İzinsiz Dinleme (Sniffing): Veri trafiğinin ele geçirilmesi; şifreler, e-postalar, dosyalar hedef alınır.
-
Toplu Gönderim (Spamming): İstenmeyen mesajlarla kullanıcıların cihazları veya hesapları hedeflenir.
-
Yanıltma (Spoofing): DNS önbelleğinin değiştirilmesiyle trafik başka IP adreslerine yönlendirilir.
-
Oltalama (Phishing): Banka veya finans kurumları taklidi yapılarak kullanıcı bilgileri çalınır.
-
Yönlendirme (Pharming): Kullanıcıyı sahte web sayfalarına yönlendirir.
-
Veri Sızıntısı: Uygulamalardan kısmi veri çalınması.
-
Hizmet Engelleme (DoS): Sistemi kullanılamaz hale getirmek için aşırı yükleme, batarya veya frekans engelleme.
İş Parçacığı Modeli:
-
Uygulama Katmanı: Kötü amaçlı yazılımlar uygulama gibi davranır, kullanıcı tarafından indirilir.
-
Haberleşme Katmanı: Zararlı yazılımlar bağlantı kanalları yoluyla cihazlara girer.
-
Kaynak Katmanı: Cihazın kritik bilgileri bu katmanda depolanır ve korunmalıdır.
2. Zafiyet Analizi ve Test Yöntemleri
Adli Bilişim:
-
Mobil cihazdaki silinmiş veriler dahil olmak üzere veri çıkarımı yapılır.
-
Araçlar: Micro Systemation’s XRY ve Cellecrite UFED Touch Ultimate.
Statik Analiz:
-
Uygulama çalıştırılmadan kod üzerinde yapılan analiz.
-
Zararlı kodlar, kötü niyetli fonksiyonlar araştırılır.
-
Araçlar: Android Reverse Tools, Static Android Analysis Framework.
Dinamik Analiz:
-
Uygulama çalıştırılarak ağ trafiği ve davranış incelenir.
-
Kötü amaçlı aktiviteler ortaya çıkarılır.
Fonksiyonel Test Türleri:
-
Birim Testi: Kodun küçük parçalarının bağımsız test edilmesi,
-
Regresyon Testi: Değişikliklerden sonra eski işlevlerin bozulmaması testi,
-
Sızma Testi (Penetrasyon Testi): Sistemlere gerçek saldırı simülasyonu,
-
Laboratuvar Testi: Farklı ağ ve operatör senaryolarında uygulama testi,
-
Performans Testi: Cihaz kısıtlamaları (düşük batarya, düşük hafıza) altında uygulama performansı,
-
Kesme Testi: Uygulamanın beklenmedik duraklamalara karşı davranışı,
-
Kullanılabilirlik Testi: Kullanıcıların uygulamayı ne kadar benimsediği ve kolay kullandığı.
3. Kişisel ve Kurumsal Verilerin Korunması
Kişisel Verilerin Korunması İçin Temel Önlemler:
-
Veri Şifreleme:
- Depolama ve iletim sırasında AES gibi endüstri standardı şifreleme,
-
Çift Faktörlü Kimlik Doğrulama (2FA):
- SMS, e-posta, uygulama tabanlı doğrulama ile ek güvenlik,
-
Güçlü Parolalar ve Parola Yönetimi:
- Karmaşık parolalar, parola yöneticileri ve düzenli değişim,
-
Erişim Kontrolü:
-
Azami yetki prensibi (least privilege),
-
Yetkilendirme seviyeleri,
-
-
Veri Maskelenmesi ve Anonimleştirme:
- Kişisel bilgiler gizlenmeli veya anonimleştirilmeli,
-
Gizlilik Politikaları ve Kullanıcı Onayı:
-
Açık ve şeffaf veri kullanımı politikaları,
-
Rıza belgeleri,
-
-
Veri İhlali Durumunda Müdahale:
-
Bildirim prosedürleri,
-
Acil müdahale planları,
-
-
Fiziksel Güvenlik:
- Cihazların korunması, şifrelenmesi,
-
Dijital İmza ve Elektronik Kimlik Doğrulama:
- İşlemlerde kimlik doğrulama,
-
Yazılım ve Sistem Güncellemeleri:
- Otomatik ve düzenli güncellemeler,
-
Veri Silme ve İmha:
- Güvenli silme ve fiziksel imha,
-
Eğitim ve Farkındalık Programları:
- Kimlik avı saldırılarına karşı bilinçlendirme,
-
Veri Paylaşımı ve Üçüncü Taraf Güvenliği:
- Sözleşmeli ve denetlenen veri paylaşımları,
-
Yasal Düzenlemelere Uyum:
- GDPR, KVKK ve benzeri kanunlara uygunluk.
Kurumsal Veri Koruma Önlemleri:
-
Veri şifreleme ve erişim kontrolleri aynı şekilde kurumsal düzeyde uygulanır.
-
Antivirüs, güvenlik duvarları ve ağ izleme gibi teknik önlemler,
-
Veri yedekleme ve acil kurtarma planları,
-
Fiziksel erişim kontrolü ve cihaz güvenliği,
-
Çalışanların güvenlik eğitimleri,
-
Üçüncü tarafların güvenlik uyumu ve denetimi,
-
Sosyal mühendislik saldırılarına karşı eğitim ve politikalar.
4. Türkiye’de Yaygın Güvenlik Açıkları
-
Hatalı kablosuz ağ ve VPN konfigürasyonu,
-
SQL enjeksiyon (SQL sorgularının değiştirilebilir olması),
-
XSS (başka siteden kod çalıştırma),
-
Zayıf parolalar,
-
Güncellenmemiş sunucu ve işletim sistemleri,
-
Hatalı yapılandırılmış saldırı tespit sistemleri,
-
Güvenlik duvarı olmadan çalışan sistemler.
5. Yazılım Kalite ve Güvenlik Aktiviteleri (YKG)
-
YKG, yazılım geliştirme sürecinde kesintisiz yürütülen aktiviteler bütünü.
-
Amaç: Riskleri azaltmak ve Gizlilik, Bütünlük, Erişilebilirlik (CIA üçgeni) sağlamak,
-
Kodlama standartları kaliteyi garanti eder,
-
Formal teknik görüşmelerle kodun doğruluğu değerlendirilir,
-
Test stratejileri oluşturulur, dokümanlar kontrol edilir,
-
Yazılım geliştirme standartlarına uyum denetlenir.
6. Yazılım Geliştirme Modelleri ve Güvenlik Yaklaşımları
CMM ve CMMI:
-
Organizasyonların olgunluk seviyelerini belirler, süreç iyileştirme rehberi sağlar.
-
CMMI, CMM’den gelişmiş olup iş süreçlerini entegre eder.
FAA-iCMM:
- Federal havacılıkta kullanılan olgunluk modeli.
Trusted CMM / TSM:
-
Güvenli yazılım geliştirme için yöntemler,
-
Düşük seviyede hatalara karşı önlem ve yüksek seviyede zararlı saldırılara direnç.
SSE-CMM:
- Sistem güvenliği mühendisliği olgunluk değerlendirmesi.
Microsoft SDL:
-
13 aşamalı güvenli geliştirme döngüsü:
- Eğitim, risk analizi, güvenli kodlama, test etme, güvenlik müdahale planı, ürün çıkarma sonrası destek.
OpenSAMM:
-
Yazılım güvenliği olgunluk modeli,
-
Dört temel alan: Yönetişim, Yapım, Doğrulama, Uygulama,
-
Her alanda güvenlik eylemleri ve hedefler belirlenir.
7. Yazılım Geliştirme Süreç Modeli (YGSM) Detayları
Temel Aşamalar:
-
Analiz: Problemin tanımı, gereksinimler, proje planlaması,
-
Çözümleme: Mevcut sistem incelenir, işlevler ayrıntılı tanımlanır,
-
Tasarım: Mantıksal ve fiziksel tasarım, güvenlik ihtiyaçları,
-
Gerçekleştirim: Kodlama ve modül testleri,
-
Test: Statik (kod analizi) ve dinamik (sistem testi) tekniklerle doğrulama,
-
Bakım: Düzeltici, uyarlayıcı, iyileştirici ve önleyici bakım faaliyetleri.
Yazılım Geliştirmede Önemli Şemsiye Etkinlikler:
-
Proje izleme ve denetim,
-
Biçimsel gözden geçirmeler,
-
Yazılım kalite güvencesi,
-
Yapılandırma yönetimi,
-
Belgelenme,
-
Yeniden kullanılabilirlik yönetimi,
-
Ölçümleme,
-
Risk yönetimi.
8. Yazılım Geliştirme Süreç Modelleri (Detay)
V-Modeli:
-
Geliştirme ve test aşamaları V şeklinde simetrik,
-
Dokümantasyon, proje planlama, risk yönetimi ön planda,
-
Özellikle kullanıcı katılımının önemli olduğu projelerde kullanılır,
-
AB standartlarına uyumludur.
Gelişigüzel Model:
- Adımlar arasında bağlantı yok, genellikle bireysel küçük projeler için.
Barok Model:
- Yap-at prototipi, belirsiz ve sabit fiyat sözleşmelerinde risklidir.
Spiral (Helezonik) Model:
-
Risk analizi odaklı, kullanıcı geri bildirimine dayalı yinelemeli,
-
Proje küçük ya da karmaşık olsun tüm yaşam döngüsünü kapsar.
Prototip Modeli:
-
Hızlı prototip oluşturma, kullanıcı geri bildirimi ile iyileştirme,
-
Belirsiz gereksinimler için uygundur.
RAD (Rapid Application Development):
-
Hızlı uygulama geliştirme, 4. kuşak dillerle hızlandırma,
-
Küçük ve modüler uygulamalarda etkilidir.
Şelale (Waterfall) Model:
-
Lineer ve sıralı, değişikliklere kapalı,
-
Dokümantasyon odaklı, kullanıcı katılımı azdır.
Bulut Sistem Altyapısı Özeti
Bulut bilişim, internet üzerinden paylaşılan kaynaklar (sunucular, depolama, ağ, yazılım) aracılığıyla esnek, ölçeklenebilir ve maliyet etkin hizmetler sunar. İşletmeler ve bireyler, fiziksel altyapı yatırımı yapmadan ihtiyaç duydukları kaynaklara anında erişebilir.
1. Bulut Hizmet Modelleri
-
IaaS (Altyapı Katmanı):
-
Sanal sunucular, depolama, ağ gibi temel kaynakları sağlar.
-
Örnek: Amazon EC2, Microsoft Azure Virtual Machines.
-
Kullanıcılar işletim sistemi ve uygulamaları yönetir.
-
-
PaaS (Platform Katmanı):
-
Yazılım geliştirme için hazır ortam sunar (veritabanı, ara yüzler, geliştirme araçları).
-
Örnek: Google App Engine, Heroku.
-
Kullanıcı sadece uygulama kodundan sorumludur.
-
-
SaaS (Uygulama Katmanı):
-
Kullanıma hazır uygulamalar (e-posta, ofis programları).
-
Örnek: Google Workspace, Salesforce.
-
Bakım ve güncellemeler sağlayıcı tarafından yapılır.
-
2. Bulut Dağıtım Modelleri
-
Genel Bulut (Public Cloud):
-
Kaynaklar birden çok kullanıcı tarafından paylaşılır.
-
Uygun maliyetli ve ölçeklenebilir (Örnek: AWS, Google Cloud).
-
-
Özel Bulut (Private Cloud):
-
Tek bir kuruluşa özel kaynaklar.
-
Yüksek güvenlik ve kontrol, ancak maliyetli (Örnek: Şirket içi veri merkezleri).
-
-
Hibrit Bulut (Hybrid Cloud):
-
Genel + özel bulut karışımı.
-
Hassas veriler özel bulutta, diğerleri genel bulutta çalışır.
-
-
Topluluk Bulutu (Community Cloud):
- Belirli bir sektör veya organizasyon grubu tarafından paylaşılır (Örnek: Sağlık sektörü bulutu).
3. Avantajlar
-
Maliyet Tasarrufu: Sabit altyapı maliyetleri yerine kullanılan kadar ödeme.
-
Esneklik: Kaynaklar anında artırılabilir/azaltılabilir.
-
Erişim Kolaylığı: Her yerden, her cihazdan erişim.
-
Veri Güvenliği: Otomatik yedekleme ve şifreleme.
4. Dezavantajlar ve Riskler
-
Güvenlik Endişeleri: Veri ihlalleri veya yetkisiz erişim riski.
-
Bağımlılık: İnternet bağlantısı ve sağlayıcının sürekliliği kritik.
-
Uyumluluk: Yasal düzenlemelere (KVKK, GDPR) uyum gerekliliği.
5. Güvenlik Önlemleri
-
Veri Şifreleme: Hassas verileri şifreleyerek saklama.
-
Çok Faktörlü Kimlik Doğrulama (MFA): Erişim güvenliğini artırır.
-
Düzenli Yedekleme: Veri kaybını önlemek için otomatik yedekler.
-
Güvenlik Duvarı ve İzleme: Anormal aktiviteleri tespit etme.
6. Bulut Saldırıları ve Korunma
-
Saldırı Türleri:
-
DoS/DDoS: Kaynak tüketerek hizmeti engelleme.
-
Hesap Ele Geçirme: Zayıf şifrelerle yetkisiz erişim.
-
Zararlı Yazılımlar: Ransomware, veri sızdırma.
-
-
Korunma Yöntemleri:
-
Zero Trust Modeli: Tüm erişimlerin sürekli doğrulanması.
-
Güncellemeler: Sistem ve yazılımları düzenli güncelleme.
-
Eğitim: Çalışanları siber güvenlik konusunda bilinçlendirme.
-
Önemli Noktalar
-
"Paylaşılan Sorumluluk Modeli" unutulmamalı:
- Sağlayıcı altyapıyı korur, kullanıcı veri ve erişim güvenliğinden sorumludur.
-
SLA (Hizmet Seviyesi Anlaşması): Sağlayıcının performans ve güvenlik taahhütlerini kontrol edin.