SlideShare a Scribd company logo
1 of 50
Bilgisayar Mühendisliği Bölümü
GYTE - Bilgisayar Mühendisliği Bölümü
Yazılım Güvenliği
BIL 673
Veri ve Ağ Güvenliği
Uğur Tılıkoğlu
131041018
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
2
• Yazılım Güvenliği
– Kavramlar, örnekler
• Yazılımda Güvenlik
• Yazılım Güvenliği Mimarisi
– Prensipler
– Yaklaşım Metodları
• Tehdit Modelleme
• Güvenli Kodlama
• Kaynaklar
İçerik
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
3
• Sistem Bileşenleri
– Sistem yöneticileri
– Sunucular
– Sunucu yazılımları (*)
– Ağ yöneticileri
– Ağ bileşenleri
– İstemciler
– İstemci yazılımları (*)
– Son kullanıcılar
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
4
• Varlıklar
– Fiziki varlıklar (harddiskler, altın, para, cep
telefonu)
– Dijital varlıklar (kredi kartı numarası, TC kimlik
numarası, mail adresi şifresi)
• Açık
– Bir sistem üzerindeki saldırıya yol açabilecek tüm
zayıflıklar
– Araba anahtarının kolayca kopyalanabilmesi, para
kasası şifresinin başka tuş kombinasyonları ile
kırılabilmesi, SQL injection açıkları
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
5
• Saldırı
– Varlıklarımıza, açıklardan faydalanarak isteğimiz
dışında yapılmak istenen erişim
– Pasif saldırılar
– Aktif saldırılar
– Korsanlık
– Sosyal mühendislik
– Kimlik bilgilerinin çalınması
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
6
• Örnek açıklar, saldırılar ve sonuçları
– Free MP3 CD Ripper Buffer Overflow Açığı
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
7
• Örnek açıklar, saldırılar ve sonuçları
– Free MP3 CD Ripper Buffer Overflow Açığı
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
8
• Örnek açıklar, saldırılar ve sonuçları
– Free MP3 CD Ripper Buffer Overflow Açığı
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
9
• Örnek açıklar, saldırılar ve sonuçları
– Free MP3 CD Ripper Buffer Overflow Açığı
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
10
• Örnek açıklar, saldırılar ve sonuçları
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
11
• Örnek açıklar, saldırılar ve sonuçları
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
12
• Örnek açıklar, saldırılar ve sonuçları
– Geciken Yama Saldırıları
Yazılım Güvenliği
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
13
• Gizlilik (Confidentiality)
• Bütünlük (Integrity)
• Erişilebilirlik (Availability)
• Kimlik Doğrulama (Authentication)
• Yetki Doğrulama (Authorization)
• Faturalandırma (Accounting)
• Anonimlik (Anonimity)
Yazılımda Güvenlik
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
14
• Saltzer ve Schroeder Prensipleri (1)
– En Düşük Yetki (Least Privilege)
• Tüm programlar ve tüm kullanıcılar, bir işlemi
yapabilmek için gerekli en düşük yetki seviyesine sahip
olmalıdır.
– Varsayılan Yetki Seviyesi (Fail Safe Defaults)
• Tüm yetkilerin verilip daha sonra gereksiz yetkilerin
kısıtlanmasından ziyade, bir yetkinin neden verilmesi
gerektiğinin sorgulanması gerekmektedir.
– Sistem Ekonomisi (Economy of Mechanism)
• Tasarımı mümkün olduğunca basit ve küçük tutmak
gerekmektedir.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
15
• Saltzer ve Schroeder Prensipleri (2)
– Tam Arabuluculuk (Complete Mediation)
• Her bir nesneye her bir erişim mutlaka kontrol
edilmelidir.
– Açık Tasarım (Open Design)
• Bir sistemin tasarımı gizli olmamalıdır. Sistem dizaynı,
birden fazla göz ile şüphe bırakmayacak şekilde kontrol
edilmiş olmalıdır.
– Yetkilerin Paylaştırılması (Separation of Privilege)
• Gerektiği durumlarda bir sisteme erişimin birden fazla
kişiye paylaştırılması daha sağlıklı olacaktır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
16
• Saltzer ve Schroeder Prensipleri (3)
– En Az Ortak Sistem (Least Common Mechanism)
• Birden fazla kullanıcının kullandığı yapıların sayısının
mümkün olduğunca azaltılması gerekmektedir.
– Psikolojik Kabul Edilebilirlik (Psychological
Acceptability)
• Sistemler üzerindeki kullanıcı arayüzlerinin kolay
kullanılabilir şekilde tasarlanmış olması gerekmektedir.
Eğer kullanıcı bu sistemi benimser ise, sistem üzerine
yapabileceği hata sayısı da azalmış olacaktır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
17
• Yoder ve Barkalow Prensipleri (1)
– Tek Erişim Noktası (Single Access Point)
• Bir sisteme erişim tek noktadan olmalıdır. Örnek:
kullanıcı giriş ekranı, nizamiye kapısı
– Kontrol Noktası (Check Point)
• Sisteme erişimler kontrol edilmelidir. Örnek: kullanıcı
adı – şifre doğrulama, nizamiye kapısında kimlik
kontrolü
– Roller (Roles)
• Sistem kullanıcıları rollere, dolayısı ile farklı yetkilere
göre ayrılmalıdır. Örnek: admin kullanıcısı, normal
kullanıcı, nöbetçi asker, nöbetçi subay
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
18
• Yoder ve Barkalow Prensipleri (2)
– Oturum (Session)
• Her bir kullanıcıya ait bilgiler, çoklu ortamlarda
diğerlerinden ayrılmalıdır. Örnek: alışveriş sepeti, asker
ziyaretinde her ailenin ayrı masada oturması
– Detaylı Hata Bilgilendirme (Full View with Errors)
• Her bir kullanıcı, sistemde neleri yapıp neleri
yapamayacağı konusunda net hata mesajları ile
bilgilendirilmelidir. Örnek: Bu fonksiyonu kullanma
yetkiniz yoktur, nizamiye kapısından daha içeriye
giremezsiniz
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
19
• Yoder ve Barkalow Prensipleri (3)
– Kısıtlı Görüntüleme (Limited View)
• Kullanıcı yetkisi olmayan işlemleri yapamamalıdır.
Bunun için kullanıcıya, yetkisi kısıtlanmış fonksiyonlar
sunulmalıdır. Örnek: Kredi kartı girmediği takdirde satın
al butonunun aktif olmaması, yetkisi olmayan düğmeleri
görememesi
– Güvenli Erişim Katmanı (Secure Access Layer)
• Güvenli sistemlerin diğer sistemlerle konuşabilmesi
gerekiyorsa, güvenli erişim katmanı tasarlanmalıdır.
Örnek: web servisler için authentication mekanizmaları
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
20
• Yazılım Güvenliği Yaklaşım Metodları
– Prensiplere dayanarak farklı modeller üretilmiştir.
En çok bilinenler
• SDL (Security Development Lifecycle) - Microsoft
• CLASP (Comprehensive, Lightweight Application
Security Process) - OWASP
• BSIMM (Building Security in Maturity Model) – 70’den
fazla büyük teknoloji şirketinin oluşturduğu bir topluluk
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
21
• SDL (Security Development Lifecycle) (1)
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
22
• SDL (Security Development Lifecycle) (2)
– Tüm yazılım geliştirme ekibi aşağıdaki konularda
eğitim görür
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
23
• SDL (Security Development Lifecycle) (3)
– Gereksinimler
• Güvenlik gereksinimleri: Proje başlamadan önce bu
gereksinimler belirlenir
• Kalite kapıları / bug çubukları: Minimum kabul edilebilir
güvenlik seviyeleri belirlenir. Bug kritikliği seviyesine
göre de bug çubuk grafikleri oluşturulur
• Risk analizi: Proje başlamadan önce her bir özellik,
modül vb alt yapılar, P1 (Yüksek), P2 (Orta), P3
(Düşük) güvenlik riski taşıdığına dair belirlenir ve
işaretlenir.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
24
• SDL (Security Development Lifecycle) (4)
– Dizayn
• Dizayn gereksinimleri: Güvenlik gereksinimlerine göre
kullanılacak sistemler, yöntemler ve yaklaşımlar
belirlenir.
• Atak yüzeyi azaltma: Saldırganın saldırı yapabileceği
ve tehdit barındırabilecek kısımları minimum seviyede
tutmak gerekmektedir.
• Tehdit modelleme: Uygulamanın hangi parçalarında ne
tür tehditlerin oluşabileceğinin belirlenmesi
gerekmektedir. Yine MS tarafından geliştirilen STRIDE
metodolojisi kullanılır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
25
• SDL (Security Development Lifecycle) (5)
– İmplementasyon
• Güvenilir araçların kullanımı: Geliştirme esnasında
mutlaka onaylanmış güvenilir yazılım geliştirme araçları
ve kütüphaneleri kullanılmalıdır.
• Güvenilmeyen methodları devre dışı bırak: Kullanılacak
kütüphane ya da API’ler içerisinde güvenlik tehditi
barındırabilecek methodlar bulunabilir. Bunlar devre
dışı bırakılır ve güvenli olanları geliştirilebilir.
• Statik analiz: Manuel kod inceleme öncesinde, belli kod
şablonlarını yakalayabilecek şekilde otomatik kod
analizi yapan araçlar ile güvenlik konuları tespit etmeye
çalışılır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
26
• SDL (Security Development Lifecycle) (6)
– Doğrulama
• Dinamik program analizi: Statik analizde ortaya
çıkmayan noktalar, uygulama çalıştığında run-time’da
ortaya çıkabilir. Yardımcı araçlar ile memory hataları,
yetki kullanımı ve diğer kritik güvenlik konuları
uygulama çalışırken incelenmelidir.
• Bulanık test: Farklı ve random girdiler ve şablonlar ile
uygulamanın güvenlik açısından davranışları incelenir.
• Tehdit modeli ve saldırı arayüzü incelenmesi: Dizayn
aşamasında belirlenen tehditler ve saldırı arayüzü
azaltma çözümlerinin doğru uygulanıp uygulanmadığı
kontrol edilir.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
27
• SDL (Security Development Lifecycle) (7)
– Yayınlama
• Olay tepki planı: Uygulama yayınlandıktan sonra ortaya
çıkabilecek güvenlik durumlarında ne tür adımlar
uygulanacağı planlanır.
• Son güvenlik incelemesi: Güvenlik mentörü, takım
liderleri ve geliştiriciler bir araya gelerek son inceleme
yapılır.
• Arşivleme: Yayınlanan uygulamanın her bir versiyonu
tekrar incelenebilmesi açısından arşivlenir.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
28
• SDL (Security Development Lifecycle) (8)
– Opsiyonel Adımlar
• Manuel kod incelemesi
• Penetrasyon testleri
• Benzer uygulamaların açık – tehdit modellerinin
karşılaştırılarak incelenmesi
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
29
• SDL (Security Development Lifecycle) (9)
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
30
• CLASP (Comprehensive, Lightweight
Application Security Process) (1)
– Rol tabanlı olarak güvenlik alanındaki best
practiceleri referans alarak, yapısal, tekrarlanabilir
ve ölçülebilir bir yöntem ortaya koyar.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
31
• CLASP (Comprehensive, Lightweight
Application Security Process) (2)
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
32
• CLASP (Comprehensive, Lightweight
Application Security Process) (3)
– Kavram Bakışı (Concepts View)
• Kavramları ve temel bilgilerin tanımlanmasını, güvenlik
konusunda ekibin temel olarak bilgilendirilmesini önerir.
• Platformların, kaynakların, risk değerlendirmelerinin,
örneklerin ve diğer bilgi kaynaklarının tanımlanmasını
ve referans verilmesini belirtir.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
33
• CLASP (Comprehensive, Lightweight
Application Security Process) (4)
– Rol Tabanlı Bakış (Role-Based View) (1)
• Süreçleri parçalara değil, rollere ve rollerin
sorumluluklarına göre ayırır.
• Proje yöneticisi: Tüm CLASP sürecini yönetir. Ekip içi
ve dışındaki güvenlik algısını yönetir. Metrikleri takip
eder.
• Gereksinim tanımlayıcı: Talep sahipleri genellikle
güvenlik maddesini bir gereksinim olarak görmezler.
Taleplerin güvenlik kavramları ile ilişkilerini de göz
önünde bulundurarak gereksinimleri yeniden
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
34
• CLASP (Comprehensive, Lightweight
Application Security Process) (4)
– Rol Tabanlı Bakış (Role-Based View) (2)
• Mimar: Ağ ve uygulama mimarisini oluşturur, network
aygıtları, VPN gibi diğer kaynakları belirler. Hangi
rollerin hangi kaynaklara erişeceğini tanımlar.
• Tasarım sorumlusu: Uygulama içerisindeki güvenlik
yöntemlerinin araştırmasını ve teknoloji seçimini yapar,
güvenlik ölçüm metriklerini belirler, atak yüzeyini
raporlar. En önemli rol diyebiliriz.
• Uygulayıcı: Teknik geliştirmeyi yapar, karşılaştığı diğer
güvenlik risklerini tasarım sorumlusu ile paylaşır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
35
• CLASP (Comprehensive, Lightweight
Application Security Process) (4)
– Rol Tabanlı Bakış (Role-Based View) (3)
• Test analisti: Uygulamanın kalite kontrolünden
sorumludur. Bilgi sahibi olmadığı konularda otomatik
araçlardan da faydalanır.
• Güvenlik denetmeni: Güvenlik gereksinimlerinin
belirtildiği şekilde doğru olarak implemente edilip
edilmediğini kontrol eder. Dizaynı inceler.
Gereksinimlerden dolayı ortaya çıkan açıkları araştırır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
36
• CLASP (Comprehensive, Lightweight
Application Security Process) (5)
– Aktivite Değerlendirme Bakışı (Activity-Assesment
View)
• 24 Madde
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
37
• CLASP (Comprehensive, Lightweight
Application Security Process) (6)
– Aktivite İmplementasyon Bakışı (Activity-
Implementation View)
• Her bir aktivitenin hedef ve amaçları belirlenir
• Her bir hedefe alt hedefler tanımlanabilir
• Her bir hedefi gerçekleştirmek için izlenecek yollar
tanımlanabilir
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
38
• BSIMM (Building Security in Maturity Model)
(1)
– Dünya üzerindeki önemli teknoloji firmalarının
best practiceleri ile oluşturulmuştur.
– Güvenlik adımlarının nasıl implemente
edileceğinden ziyade, mevcut olgunluğunu ölçme
amacıyla kullanılır.
– Buradaki ölçüm methodları, mevcut yapıların
geliştirilmesi amacıyla da kullanılmaktadır.
– 2008 yılında ilk versiyonu yayınlanmıştır, şu anda
5. versiyonu bulunmaktadır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
39
• BSIMM (Building Security in Maturity Model)
(2)
– 12 ana başlık altında 112 aktivite
bulundurmaktadır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
40
• BSIMM (Building Security in Maturity Model)
(3)
– Bu maddeleri oluşturan firmalar, kendilerini de bu
olgunluk seviyesine göre değerlendirmişler ve
skor kartı oluşturmuşlardır.
– Bu firmaların %64’ünün tamamının uyguladığı
temel 12 aktivite, güvenlik konusunda iyileşme
kaydetmek isteyen organizasyonlar için iyi bir
referans noktasıdır.
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
41
• BSIMM (Building Security in Maturity Model)
(4)
Yazılım Güvenliği Mimarisi
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
42
• Modelleme yöntemleri
– STRIDE
– Saldırı Ağacı (Attack Tree)
– DREAD
– Saldırı Yüzeyi (Attack Surface)
Tehdit Modelleme
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
43
• STRIDE
– Microsoft tarafından önerilmiştir.
– Spoofing identity: sahte kimlik
– Tampering with data: sahte bilgi
– Repudiation: inkar
– Information disclosure: açığa çıkarma
– DoS: servis durdurma
– Elevation of privilage: yetkileri ele geçirme
Tehdit Modelleme
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
44
• Saldırı Ağacı (Attack Tree)
Tehdit Modelleme
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
45
• DREAD
– Tehditlerin sisteme toplam etkisini ölçer
– Her bir başlık için aşağıdaki ölçekte not verilir
• 0: gerçekleşmesi ileri düzeyde bilgi gerektiren /
herhangi bir etkisi olmayan
• 5: gerçekleşmesi için birden fazla adımın
gerçekleşmesi gereken / bölgesel etkileri olan
• 10: çok kolay şekilde gerçekleşebilen / etkileri tüm
sistemi kaplayacak
Tehdit Modelleme
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
46
• Saldırı Yüzeyi (Attack Surface)
– Aşağıdaki 5 sorunun sorulması gerekir
• Bu özellik gerçekten gerekli mi?
• Bu özelliğe erişim için uzak bağlantı gerçekten gerekli
mi?
• Bu özelliğe erişmesi gereken kullanıcılar / roller
kimlerdir?
• Bu hizmeti sağlamak için ne tür izinler verilmesi
gerekmektedir?
• Bu özelliğin diğer servislerle, sistemlerle, arayüzlerle
bağlantı noktaları nelerdir?
Tehdit Modelleme
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
47
• Temel Prensipler
– Saltzer ve Schroeder Prensipleri
– Yoder ve Barkalow Prensipleri
• Kaynaklar
– The CERT C Secure Coding Standard
– The CERT C++ Secure Coding Standard
– The CERT Oracle Secure Coding Standard for Java
– Java Coding Guidelines, 75 Reccommendations for
Reliable and Secure Programs
– The CERT Perl Secure Coding Standard
Güvenli Kodlama
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
48
• Araçlar
– Lint
– PREfast
– FxCop
– AppVerif
– Code Coverage Tools
• Test
– Netsparker (Türk girişimi)
Güvenli Kodlama
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
49
• Talukder, Chaitania, «Architecting Secure Software Systems», CRC Press, 2009
• Saltzer, Schroeder, «The Protection of Information in Computer Systems», Fourth ACM
Symposium on Operating System Principles, 1973
• Yoder, Barcalow, «Architectural Patterns for Enabling Application Security», PLoP, 1997
• MrTuxracer, «Buffer Overflow Exploitation: A Real World Example»,
http://www.rcesecurity.com/2011/11/buffer-overflow-a-real-world-example/, 2011
• Aleph One, «Smashing The Stack For Fun And Profit»,
http://insecure.org/stf/smashstack.html
• Blexim, «Basic Integer Overflows», http://phrack.org/issues/60/10.html
• CERT, «CERT Coding Standarts»,
https://www.securecoding.cert.org/confluence/display/seccode/CERT+Coding+Standards
• Marco Morana, «Managing Software Security Risks Using Application Threat Modeling», IMI
Security Symposium and Expo, 2008
• OWASP, «Secure Coding Practices Quick Reference Guide», 2010
• Ozan Çağlayan, Galatasaray Üniversitesi, «Yazılım Güvenliği ve Açıkları»,
http://ozancaglayan.com/files/Presentations/Yazilim-Guvenligi-Guvenlik-Aciklari.pdf
• Peterson, «Security Design Patterns», Black Hat Breifings
• Elisa Bertino, Purdue University, «Design Principles for Security Lecture Notes»,
• ARCTEC Group, «Secure By Design: Security in the Software Development Lifecycle»,
http://www.arctecgroup.net/pres/tcrugpres.pdf
Kaynaklar
GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği
50
• Hernan, Lambert, Ostwald, Shostack, «Uncover Security Design Flaws Using The STRIDE
Approach», MSDN Magazine, 2006
• McGraw, Migues, West, «Building Security in Maturity Model», 2013
• David Brumley, Carnegie Mellon University, «Software Security Lecture Notes», 2009
• Microsoft, «Simplified Implementation of the Microsoft SDL», 2010
• Nick Coblentz, «CLASP Overview Presentation», 2008
Kaynaklar

More Related Content

What's hot

Başarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru Entegrasyonu
Başarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru EntegrasyonuBaşarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru Entegrasyonu
Başarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru EntegrasyonuBGA Cyber Security
 
Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?
Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?
Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?BGA Cyber Security
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA Cyber Security
 
Normshield - Cloud Based Vulnerability Scan Service
Normshield - Cloud Based Vulnerability Scan Service Normshield - Cloud Based Vulnerability Scan Service
Normshield - Cloud Based Vulnerability Scan Service BGA Cyber Security
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBGA Cyber Security
 
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakWebinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakBGA Cyber Security
 
Windows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri Yakalama
Windows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri YakalamaWindows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri Yakalama
Windows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri YakalamaBGA Cyber Security
 
BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)
BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)
BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)BGA Cyber Security
 
Sızma Testlerinde Fiziksel Güvenlik Riskleri
Sızma Testlerinde Fiziksel Güvenlik RiskleriSızma Testlerinde Fiziksel Güvenlik Riskleri
Sızma Testlerinde Fiziksel Güvenlik RiskleriBGA Cyber Security
 
İstSec 2015 - Norm shield why
İstSec 2015 - Norm shield why İstSec 2015 - Norm shield why
İstSec 2015 - Norm shield why BGA Cyber Security
 
Man in-the-browser Saldırılarının Analizi
Man in-the-browser Saldırılarının AnaliziMan in-the-browser Saldırılarının Analizi
Man in-the-browser Saldırılarının AnaliziBGA Cyber Security
 
İnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit Yöntemleriİnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit YöntemleriBGA Cyber Security
 
BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...
BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...
BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...BGA Cyber Security
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 
Kurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif Kullanımı
Kurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif KullanımıKurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif Kullanımı
Kurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif KullanımıBGA Cyber Security
 

What's hot (20)

Başarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru Entegrasyonu
Başarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru EntegrasyonuBaşarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru Entegrasyonu
Başarılı Bir Savunma İçin Güvenlik Ürünlerinin Doğru Entegrasyonu
 
Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?
Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?
Some Tatbikatları ve SIEM Testleri İçin Siber Saldırıları Nasıl Optimize Ederiz?
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması Çözümleri
 
Osquery İle Open Source EDR
Osquery İle Open Source EDROsquery İle Open Source EDR
Osquery İle Open Source EDR
 
Normshield - Cloud Based Vulnerability Scan Service
Normshield - Cloud Based Vulnerability Scan Service Normshield - Cloud Based Vulnerability Scan Service
Normshield - Cloud Based Vulnerability Scan Service
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma Testleri
 
Mail Sniper Nedir?
Mail Sniper Nedir?Mail Sniper Nedir?
Mail Sniper Nedir?
 
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakWebinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
 
Windows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri Yakalama
Windows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri YakalamaWindows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri Yakalama
Windows Sistemlerde Yetkili Hesapları İzleyerek Yanal Hareketleri Yakalama
 
Kablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli AnalizKablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli Analiz
 
BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)
BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)
BGA SOME/SOC Etkinliği - APT Tehditlerine Karşı 7/24 Güvenlik İzlemesi (SOC)
 
Intelligence Driven Incident
Intelligence Driven Incident Intelligence Driven Incident
Intelligence Driven Incident
 
Sızma Testlerinde Fiziksel Güvenlik Riskleri
Sızma Testlerinde Fiziksel Güvenlik RiskleriSızma Testlerinde Fiziksel Güvenlik Riskleri
Sızma Testlerinde Fiziksel Güvenlik Riskleri
 
İstSec 2015 - Norm shield why
İstSec 2015 - Norm shield why İstSec 2015 - Norm shield why
İstSec 2015 - Norm shield why
 
Man in-the-browser Saldırılarının Analizi
Man in-the-browser Saldırılarının AnaliziMan in-the-browser Saldırılarının Analizi
Man in-the-browser Saldırılarının Analizi
 
İnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit Yöntemleriİnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit Yöntemleri
 
Open Source SOC Kurulumu
Open Source SOC KurulumuOpen Source SOC Kurulumu
Open Source SOC Kurulumu
 
BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...
BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...
BGA SOME/SOC Etkinliği - Ölçemediğin şeyi yönetemezsin: SOC'unuz Siber Saldır...
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Kurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif Kullanımı
Kurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif KullanımıKurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif Kullanımı
Kurumsal Ağlarda Saldırı Tespiti Amaçlı Honeypot Sistemlerin Efektif Kullanımı
 

Similar to Yazılım Güvenliği

Lecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel KavramlarLecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel KavramlarTurkIOT
 
GUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIGUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIAhmet Pekel
 
Information security Bilgi Guvenligi
Information security Bilgi GuvenligiInformation security Bilgi Guvenligi
Information security Bilgi GuvenligiBilal Dursun
 
Scada Sistemlerde Siber Guvenlik by Cagri POLAT
Scada Sistemlerde Siber Guvenlik by Cagri POLATScada Sistemlerde Siber Guvenlik by Cagri POLAT
Scada Sistemlerde Siber Guvenlik by Cagri POLATÇağrı Polat
 
Kritik Altyapıların Güvenliği
Kritik Altyapıların GüvenliğiKritik Altyapıların Güvenliği
Kritik Altyapıların GüvenliğiRumeysa Bozdemir
 
Kisisel Bilgi Guvenligi by Cagri POLAT
Kisisel Bilgi Guvenligi by Cagri POLATKisisel Bilgi Guvenligi by Cagri POLAT
Kisisel Bilgi Guvenligi by Cagri POLATÇağrı Polat
 
ISTSEC 2013 - Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini Atlatma
ISTSEC 2013 -  Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini AtlatmaISTSEC 2013 -  Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini Atlatma
ISTSEC 2013 - Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini AtlatmaBGA Cyber Security
 
Web Uygulamalarında Risk Yönetimi ve Değerlendirme
Web Uygulamalarında Risk Yönetimi ve DeğerlendirmeWeb Uygulamalarında Risk Yönetimi ve Değerlendirme
Web Uygulamalarında Risk Yönetimi ve DeğerlendirmeErkan Başavcı
 
Uç Nokta Güvenliği
Uç Nokta GüvenliğiUç Nokta Güvenliği
Uç Nokta GüvenliğiFevziye Tas
 
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇Kamuran Özkan
 
Yapılan ağ saldırılarına karşı önlemler
Yapılan ağ saldırılarına karşı önlemlerYapılan ağ saldırılarına karşı önlemler
Yapılan ağ saldırılarına karşı önlemlerIlkin Azizov
 
Siber Güvenlik ve Etik Hacking Sunu - 13
Siber Güvenlik ve Etik Hacking Sunu - 13Siber Güvenlik ve Etik Hacking Sunu - 13
Siber Güvenlik ve Etik Hacking Sunu - 13Murat KARA
 
Elektronik finansta riskler ve çözüm yolları
Elektronik finansta riskler ve çözüm yollarıElektronik finansta riskler ve çözüm yolları
Elektronik finansta riskler ve çözüm yollarıZühre Aydın
 
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdfMurat KARA
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1BGA Cyber Security
 
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdfMurat KARA
 
Bilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İnceleme
Bilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İncelemeBilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İnceleme
Bilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İncelemeBGA Cyber Security
 

Similar to Yazılım Güvenliği (20)

Lecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel KavramlarLecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel Kavramlar
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
GUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIGUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGI
 
Güvenlik Mühendisliği
Güvenlik MühendisliğiGüvenlik Mühendisliği
Güvenlik Mühendisliği
 
Information security Bilgi Guvenligi
Information security Bilgi GuvenligiInformation security Bilgi Guvenligi
Information security Bilgi Guvenligi
 
Scada Sistemlerde Siber Guvenlik by Cagri POLAT
Scada Sistemlerde Siber Guvenlik by Cagri POLATScada Sistemlerde Siber Guvenlik by Cagri POLAT
Scada Sistemlerde Siber Guvenlik by Cagri POLAT
 
Kritik Altyapıların Güvenliği
Kritik Altyapıların GüvenliğiKritik Altyapıların Güvenliği
Kritik Altyapıların Güvenliği
 
Kisisel Bilgi Guvenligi by Cagri POLAT
Kisisel Bilgi Guvenligi by Cagri POLATKisisel Bilgi Guvenligi by Cagri POLAT
Kisisel Bilgi Guvenligi by Cagri POLAT
 
ISTSEC 2013 - Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini Atlatma
ISTSEC 2013 -  Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini AtlatmaISTSEC 2013 -  Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini Atlatma
ISTSEC 2013 - Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini Atlatma
 
Web Uygulamalarında Risk Yönetimi ve Değerlendirme
Web Uygulamalarında Risk Yönetimi ve DeğerlendirmeWeb Uygulamalarında Risk Yönetimi ve Değerlendirme
Web Uygulamalarında Risk Yönetimi ve Değerlendirme
 
Uç Nokta Güvenliği
Uç Nokta GüvenliğiUç Nokta Güvenliği
Uç Nokta Güvenliği
 
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
 
Yapılan ağ saldırılarına karşı önlemler
Yapılan ağ saldırılarına karşı önlemlerYapılan ağ saldırılarına karşı önlemler
Yapılan ağ saldırılarına karşı önlemler
 
Siber Güvenlik ve Etik Hacking Sunu - 13
Siber Güvenlik ve Etik Hacking Sunu - 13Siber Güvenlik ve Etik Hacking Sunu - 13
Siber Güvenlik ve Etik Hacking Sunu - 13
 
Elektronik finansta riskler ve çözüm yolları
Elektronik finansta riskler ve çözüm yollarıElektronik finansta riskler ve çözüm yolları
Elektronik finansta riskler ve çözüm yolları
 
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
 
Inc 15 Scada Cyber Security
Inc 15 Scada Cyber SecurityInc 15 Scada Cyber Security
Inc 15 Scada Cyber Security
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1
 
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
 
Bilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İnceleme
Bilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İncelemeBilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İnceleme
Bilişim Sistemlerinde Adli Bilişim Analizi ve Bilgisayar Olayları İnceleme
 

Yazılım Güvenliği

  • 1. Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü Yazılım Güvenliği BIL 673 Veri ve Ağ Güvenliği Uğur Tılıkoğlu 131041018
  • 2. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 2 • Yazılım Güvenliği – Kavramlar, örnekler • Yazılımda Güvenlik • Yazılım Güvenliği Mimarisi – Prensipler – Yaklaşım Metodları • Tehdit Modelleme • Güvenli Kodlama • Kaynaklar İçerik
  • 3. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 3 • Sistem Bileşenleri – Sistem yöneticileri – Sunucular – Sunucu yazılımları (*) – Ağ yöneticileri – Ağ bileşenleri – İstemciler – İstemci yazılımları (*) – Son kullanıcılar Yazılım Güvenliği
  • 4. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 4 • Varlıklar – Fiziki varlıklar (harddiskler, altın, para, cep telefonu) – Dijital varlıklar (kredi kartı numarası, TC kimlik numarası, mail adresi şifresi) • Açık – Bir sistem üzerindeki saldırıya yol açabilecek tüm zayıflıklar – Araba anahtarının kolayca kopyalanabilmesi, para kasası şifresinin başka tuş kombinasyonları ile kırılabilmesi, SQL injection açıkları Yazılım Güvenliği
  • 5. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 5 • Saldırı – Varlıklarımıza, açıklardan faydalanarak isteğimiz dışında yapılmak istenen erişim – Pasif saldırılar – Aktif saldırılar – Korsanlık – Sosyal mühendislik – Kimlik bilgilerinin çalınması Yazılım Güvenliği
  • 6. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 6 • Örnek açıklar, saldırılar ve sonuçları – Free MP3 CD Ripper Buffer Overflow Açığı Yazılım Güvenliği
  • 7. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 7 • Örnek açıklar, saldırılar ve sonuçları – Free MP3 CD Ripper Buffer Overflow Açığı Yazılım Güvenliği
  • 8. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 8 • Örnek açıklar, saldırılar ve sonuçları – Free MP3 CD Ripper Buffer Overflow Açığı Yazılım Güvenliği
  • 9. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 9 • Örnek açıklar, saldırılar ve sonuçları – Free MP3 CD Ripper Buffer Overflow Açığı Yazılım Güvenliği
  • 10. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 10 • Örnek açıklar, saldırılar ve sonuçları Yazılım Güvenliği
  • 11. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 11 • Örnek açıklar, saldırılar ve sonuçları Yazılım Güvenliği
  • 12. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 12 • Örnek açıklar, saldırılar ve sonuçları – Geciken Yama Saldırıları Yazılım Güvenliği
  • 13. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 13 • Gizlilik (Confidentiality) • Bütünlük (Integrity) • Erişilebilirlik (Availability) • Kimlik Doğrulama (Authentication) • Yetki Doğrulama (Authorization) • Faturalandırma (Accounting) • Anonimlik (Anonimity) Yazılımda Güvenlik
  • 14. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 14 • Saltzer ve Schroeder Prensipleri (1) – En Düşük Yetki (Least Privilege) • Tüm programlar ve tüm kullanıcılar, bir işlemi yapabilmek için gerekli en düşük yetki seviyesine sahip olmalıdır. – Varsayılan Yetki Seviyesi (Fail Safe Defaults) • Tüm yetkilerin verilip daha sonra gereksiz yetkilerin kısıtlanmasından ziyade, bir yetkinin neden verilmesi gerektiğinin sorgulanması gerekmektedir. – Sistem Ekonomisi (Economy of Mechanism) • Tasarımı mümkün olduğunca basit ve küçük tutmak gerekmektedir. Yazılım Güvenliği Mimarisi
  • 15. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 15 • Saltzer ve Schroeder Prensipleri (2) – Tam Arabuluculuk (Complete Mediation) • Her bir nesneye her bir erişim mutlaka kontrol edilmelidir. – Açık Tasarım (Open Design) • Bir sistemin tasarımı gizli olmamalıdır. Sistem dizaynı, birden fazla göz ile şüphe bırakmayacak şekilde kontrol edilmiş olmalıdır. – Yetkilerin Paylaştırılması (Separation of Privilege) • Gerektiği durumlarda bir sisteme erişimin birden fazla kişiye paylaştırılması daha sağlıklı olacaktır. Yazılım Güvenliği Mimarisi
  • 16. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 16 • Saltzer ve Schroeder Prensipleri (3) – En Az Ortak Sistem (Least Common Mechanism) • Birden fazla kullanıcının kullandığı yapıların sayısının mümkün olduğunca azaltılması gerekmektedir. – Psikolojik Kabul Edilebilirlik (Psychological Acceptability) • Sistemler üzerindeki kullanıcı arayüzlerinin kolay kullanılabilir şekilde tasarlanmış olması gerekmektedir. Eğer kullanıcı bu sistemi benimser ise, sistem üzerine yapabileceği hata sayısı da azalmış olacaktır. Yazılım Güvenliği Mimarisi
  • 17. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 17 • Yoder ve Barkalow Prensipleri (1) – Tek Erişim Noktası (Single Access Point) • Bir sisteme erişim tek noktadan olmalıdır. Örnek: kullanıcı giriş ekranı, nizamiye kapısı – Kontrol Noktası (Check Point) • Sisteme erişimler kontrol edilmelidir. Örnek: kullanıcı adı – şifre doğrulama, nizamiye kapısında kimlik kontrolü – Roller (Roles) • Sistem kullanıcıları rollere, dolayısı ile farklı yetkilere göre ayrılmalıdır. Örnek: admin kullanıcısı, normal kullanıcı, nöbetçi asker, nöbetçi subay Yazılım Güvenliği Mimarisi
  • 18. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 18 • Yoder ve Barkalow Prensipleri (2) – Oturum (Session) • Her bir kullanıcıya ait bilgiler, çoklu ortamlarda diğerlerinden ayrılmalıdır. Örnek: alışveriş sepeti, asker ziyaretinde her ailenin ayrı masada oturması – Detaylı Hata Bilgilendirme (Full View with Errors) • Her bir kullanıcı, sistemde neleri yapıp neleri yapamayacağı konusunda net hata mesajları ile bilgilendirilmelidir. Örnek: Bu fonksiyonu kullanma yetkiniz yoktur, nizamiye kapısından daha içeriye giremezsiniz Yazılım Güvenliği Mimarisi
  • 19. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 19 • Yoder ve Barkalow Prensipleri (3) – Kısıtlı Görüntüleme (Limited View) • Kullanıcı yetkisi olmayan işlemleri yapamamalıdır. Bunun için kullanıcıya, yetkisi kısıtlanmış fonksiyonlar sunulmalıdır. Örnek: Kredi kartı girmediği takdirde satın al butonunun aktif olmaması, yetkisi olmayan düğmeleri görememesi – Güvenli Erişim Katmanı (Secure Access Layer) • Güvenli sistemlerin diğer sistemlerle konuşabilmesi gerekiyorsa, güvenli erişim katmanı tasarlanmalıdır. Örnek: web servisler için authentication mekanizmaları Yazılım Güvenliği Mimarisi
  • 20. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 20 • Yazılım Güvenliği Yaklaşım Metodları – Prensiplere dayanarak farklı modeller üretilmiştir. En çok bilinenler • SDL (Security Development Lifecycle) - Microsoft • CLASP (Comprehensive, Lightweight Application Security Process) - OWASP • BSIMM (Building Security in Maturity Model) – 70’den fazla büyük teknoloji şirketinin oluşturduğu bir topluluk Yazılım Güvenliği Mimarisi
  • 21. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 21 • SDL (Security Development Lifecycle) (1) Yazılım Güvenliği Mimarisi
  • 22. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 22 • SDL (Security Development Lifecycle) (2) – Tüm yazılım geliştirme ekibi aşağıdaki konularda eğitim görür Yazılım Güvenliği Mimarisi
  • 23. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 23 • SDL (Security Development Lifecycle) (3) – Gereksinimler • Güvenlik gereksinimleri: Proje başlamadan önce bu gereksinimler belirlenir • Kalite kapıları / bug çubukları: Minimum kabul edilebilir güvenlik seviyeleri belirlenir. Bug kritikliği seviyesine göre de bug çubuk grafikleri oluşturulur • Risk analizi: Proje başlamadan önce her bir özellik, modül vb alt yapılar, P1 (Yüksek), P2 (Orta), P3 (Düşük) güvenlik riski taşıdığına dair belirlenir ve işaretlenir. Yazılım Güvenliği Mimarisi
  • 24. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 24 • SDL (Security Development Lifecycle) (4) – Dizayn • Dizayn gereksinimleri: Güvenlik gereksinimlerine göre kullanılacak sistemler, yöntemler ve yaklaşımlar belirlenir. • Atak yüzeyi azaltma: Saldırganın saldırı yapabileceği ve tehdit barındırabilecek kısımları minimum seviyede tutmak gerekmektedir. • Tehdit modelleme: Uygulamanın hangi parçalarında ne tür tehditlerin oluşabileceğinin belirlenmesi gerekmektedir. Yine MS tarafından geliştirilen STRIDE metodolojisi kullanılır. Yazılım Güvenliği Mimarisi
  • 25. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 25 • SDL (Security Development Lifecycle) (5) – İmplementasyon • Güvenilir araçların kullanımı: Geliştirme esnasında mutlaka onaylanmış güvenilir yazılım geliştirme araçları ve kütüphaneleri kullanılmalıdır. • Güvenilmeyen methodları devre dışı bırak: Kullanılacak kütüphane ya da API’ler içerisinde güvenlik tehditi barındırabilecek methodlar bulunabilir. Bunlar devre dışı bırakılır ve güvenli olanları geliştirilebilir. • Statik analiz: Manuel kod inceleme öncesinde, belli kod şablonlarını yakalayabilecek şekilde otomatik kod analizi yapan araçlar ile güvenlik konuları tespit etmeye çalışılır. Yazılım Güvenliği Mimarisi
  • 26. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 26 • SDL (Security Development Lifecycle) (6) – Doğrulama • Dinamik program analizi: Statik analizde ortaya çıkmayan noktalar, uygulama çalıştığında run-time’da ortaya çıkabilir. Yardımcı araçlar ile memory hataları, yetki kullanımı ve diğer kritik güvenlik konuları uygulama çalışırken incelenmelidir. • Bulanık test: Farklı ve random girdiler ve şablonlar ile uygulamanın güvenlik açısından davranışları incelenir. • Tehdit modeli ve saldırı arayüzü incelenmesi: Dizayn aşamasında belirlenen tehditler ve saldırı arayüzü azaltma çözümlerinin doğru uygulanıp uygulanmadığı kontrol edilir. Yazılım Güvenliği Mimarisi
  • 27. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 27 • SDL (Security Development Lifecycle) (7) – Yayınlama • Olay tepki planı: Uygulama yayınlandıktan sonra ortaya çıkabilecek güvenlik durumlarında ne tür adımlar uygulanacağı planlanır. • Son güvenlik incelemesi: Güvenlik mentörü, takım liderleri ve geliştiriciler bir araya gelerek son inceleme yapılır. • Arşivleme: Yayınlanan uygulamanın her bir versiyonu tekrar incelenebilmesi açısından arşivlenir. Yazılım Güvenliği Mimarisi
  • 28. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 28 • SDL (Security Development Lifecycle) (8) – Opsiyonel Adımlar • Manuel kod incelemesi • Penetrasyon testleri • Benzer uygulamaların açık – tehdit modellerinin karşılaştırılarak incelenmesi Yazılım Güvenliği Mimarisi
  • 29. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 29 • SDL (Security Development Lifecycle) (9) Yazılım Güvenliği Mimarisi
  • 30. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 30 • CLASP (Comprehensive, Lightweight Application Security Process) (1) – Rol tabanlı olarak güvenlik alanındaki best practiceleri referans alarak, yapısal, tekrarlanabilir ve ölçülebilir bir yöntem ortaya koyar. Yazılım Güvenliği Mimarisi
  • 31. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 31 • CLASP (Comprehensive, Lightweight Application Security Process) (2) Yazılım Güvenliği Mimarisi
  • 32. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 32 • CLASP (Comprehensive, Lightweight Application Security Process) (3) – Kavram Bakışı (Concepts View) • Kavramları ve temel bilgilerin tanımlanmasını, güvenlik konusunda ekibin temel olarak bilgilendirilmesini önerir. • Platformların, kaynakların, risk değerlendirmelerinin, örneklerin ve diğer bilgi kaynaklarının tanımlanmasını ve referans verilmesini belirtir. Yazılım Güvenliği Mimarisi
  • 33. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 33 • CLASP (Comprehensive, Lightweight Application Security Process) (4) – Rol Tabanlı Bakış (Role-Based View) (1) • Süreçleri parçalara değil, rollere ve rollerin sorumluluklarına göre ayırır. • Proje yöneticisi: Tüm CLASP sürecini yönetir. Ekip içi ve dışındaki güvenlik algısını yönetir. Metrikleri takip eder. • Gereksinim tanımlayıcı: Talep sahipleri genellikle güvenlik maddesini bir gereksinim olarak görmezler. Taleplerin güvenlik kavramları ile ilişkilerini de göz önünde bulundurarak gereksinimleri yeniden Yazılım Güvenliği Mimarisi
  • 34. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 34 • CLASP (Comprehensive, Lightweight Application Security Process) (4) – Rol Tabanlı Bakış (Role-Based View) (2) • Mimar: Ağ ve uygulama mimarisini oluşturur, network aygıtları, VPN gibi diğer kaynakları belirler. Hangi rollerin hangi kaynaklara erişeceğini tanımlar. • Tasarım sorumlusu: Uygulama içerisindeki güvenlik yöntemlerinin araştırmasını ve teknoloji seçimini yapar, güvenlik ölçüm metriklerini belirler, atak yüzeyini raporlar. En önemli rol diyebiliriz. • Uygulayıcı: Teknik geliştirmeyi yapar, karşılaştığı diğer güvenlik risklerini tasarım sorumlusu ile paylaşır. Yazılım Güvenliği Mimarisi
  • 35. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 35 • CLASP (Comprehensive, Lightweight Application Security Process) (4) – Rol Tabanlı Bakış (Role-Based View) (3) • Test analisti: Uygulamanın kalite kontrolünden sorumludur. Bilgi sahibi olmadığı konularda otomatik araçlardan da faydalanır. • Güvenlik denetmeni: Güvenlik gereksinimlerinin belirtildiği şekilde doğru olarak implemente edilip edilmediğini kontrol eder. Dizaynı inceler. Gereksinimlerden dolayı ortaya çıkan açıkları araştırır. Yazılım Güvenliği Mimarisi
  • 36. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 36 • CLASP (Comprehensive, Lightweight Application Security Process) (5) – Aktivite Değerlendirme Bakışı (Activity-Assesment View) • 24 Madde Yazılım Güvenliği Mimarisi
  • 37. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 37 • CLASP (Comprehensive, Lightweight Application Security Process) (6) – Aktivite İmplementasyon Bakışı (Activity- Implementation View) • Her bir aktivitenin hedef ve amaçları belirlenir • Her bir hedefe alt hedefler tanımlanabilir • Her bir hedefi gerçekleştirmek için izlenecek yollar tanımlanabilir Yazılım Güvenliği Mimarisi
  • 38. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 38 • BSIMM (Building Security in Maturity Model) (1) – Dünya üzerindeki önemli teknoloji firmalarının best practiceleri ile oluşturulmuştur. – Güvenlik adımlarının nasıl implemente edileceğinden ziyade, mevcut olgunluğunu ölçme amacıyla kullanılır. – Buradaki ölçüm methodları, mevcut yapıların geliştirilmesi amacıyla da kullanılmaktadır. – 2008 yılında ilk versiyonu yayınlanmıştır, şu anda 5. versiyonu bulunmaktadır. Yazılım Güvenliği Mimarisi
  • 39. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 39 • BSIMM (Building Security in Maturity Model) (2) – 12 ana başlık altında 112 aktivite bulundurmaktadır. Yazılım Güvenliği Mimarisi
  • 40. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 40 • BSIMM (Building Security in Maturity Model) (3) – Bu maddeleri oluşturan firmalar, kendilerini de bu olgunluk seviyesine göre değerlendirmişler ve skor kartı oluşturmuşlardır. – Bu firmaların %64’ünün tamamının uyguladığı temel 12 aktivite, güvenlik konusunda iyileşme kaydetmek isteyen organizasyonlar için iyi bir referans noktasıdır. Yazılım Güvenliği Mimarisi
  • 41. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 41 • BSIMM (Building Security in Maturity Model) (4) Yazılım Güvenliği Mimarisi
  • 42. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 42 • Modelleme yöntemleri – STRIDE – Saldırı Ağacı (Attack Tree) – DREAD – Saldırı Yüzeyi (Attack Surface) Tehdit Modelleme
  • 43. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 43 • STRIDE – Microsoft tarafından önerilmiştir. – Spoofing identity: sahte kimlik – Tampering with data: sahte bilgi – Repudiation: inkar – Information disclosure: açığa çıkarma – DoS: servis durdurma – Elevation of privilage: yetkileri ele geçirme Tehdit Modelleme
  • 44. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 44 • Saldırı Ağacı (Attack Tree) Tehdit Modelleme
  • 45. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 45 • DREAD – Tehditlerin sisteme toplam etkisini ölçer – Her bir başlık için aşağıdaki ölçekte not verilir • 0: gerçekleşmesi ileri düzeyde bilgi gerektiren / herhangi bir etkisi olmayan • 5: gerçekleşmesi için birden fazla adımın gerçekleşmesi gereken / bölgesel etkileri olan • 10: çok kolay şekilde gerçekleşebilen / etkileri tüm sistemi kaplayacak Tehdit Modelleme
  • 46. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 46 • Saldırı Yüzeyi (Attack Surface) – Aşağıdaki 5 sorunun sorulması gerekir • Bu özellik gerçekten gerekli mi? • Bu özelliğe erişim için uzak bağlantı gerçekten gerekli mi? • Bu özelliğe erişmesi gereken kullanıcılar / roller kimlerdir? • Bu hizmeti sağlamak için ne tür izinler verilmesi gerekmektedir? • Bu özelliğin diğer servislerle, sistemlerle, arayüzlerle bağlantı noktaları nelerdir? Tehdit Modelleme
  • 47. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 47 • Temel Prensipler – Saltzer ve Schroeder Prensipleri – Yoder ve Barkalow Prensipleri • Kaynaklar – The CERT C Secure Coding Standard – The CERT C++ Secure Coding Standard – The CERT Oracle Secure Coding Standard for Java – Java Coding Guidelines, 75 Reccommendations for Reliable and Secure Programs – The CERT Perl Secure Coding Standard Güvenli Kodlama
  • 48. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 48 • Araçlar – Lint – PREfast – FxCop – AppVerif – Code Coverage Tools • Test – Netsparker (Türk girişimi) Güvenli Kodlama
  • 49. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 49 • Talukder, Chaitania, «Architecting Secure Software Systems», CRC Press, 2009 • Saltzer, Schroeder, «The Protection of Information in Computer Systems», Fourth ACM Symposium on Operating System Principles, 1973 • Yoder, Barcalow, «Architectural Patterns for Enabling Application Security», PLoP, 1997 • MrTuxracer, «Buffer Overflow Exploitation: A Real World Example», http://www.rcesecurity.com/2011/11/buffer-overflow-a-real-world-example/, 2011 • Aleph One, «Smashing The Stack For Fun And Profit», http://insecure.org/stf/smashstack.html • Blexim, «Basic Integer Overflows», http://phrack.org/issues/60/10.html • CERT, «CERT Coding Standarts», https://www.securecoding.cert.org/confluence/display/seccode/CERT+Coding+Standards • Marco Morana, «Managing Software Security Risks Using Application Threat Modeling», IMI Security Symposium and Expo, 2008 • OWASP, «Secure Coding Practices Quick Reference Guide», 2010 • Ozan Çağlayan, Galatasaray Üniversitesi, «Yazılım Güvenliği ve Açıkları», http://ozancaglayan.com/files/Presentations/Yazilim-Guvenligi-Guvenlik-Aciklari.pdf • Peterson, «Security Design Patterns», Black Hat Breifings • Elisa Bertino, Purdue University, «Design Principles for Security Lecture Notes», • ARCTEC Group, «Secure By Design: Security in the Software Development Lifecycle», http://www.arctecgroup.net/pres/tcrugpres.pdf Kaynaklar
  • 50. GYTE - Bilgisayar Mühendisliği Bölümü BIL 673 Veri ve Ağ Güvenliği 50 • Hernan, Lambert, Ostwald, Shostack, «Uncover Security Design Flaws Using The STRIDE Approach», MSDN Magazine, 2006 • McGraw, Migues, West, «Building Security in Maturity Model», 2013 • David Brumley, Carnegie Mellon University, «Software Security Lecture Notes», 2009 • Microsoft, «Simplified Implementation of the Microsoft SDL», 2010 • Nick Coblentz, «CLASP Overview Presentation», 2008 Kaynaklar