Yazılım güvenliği, bilgi güvencesi ve güvenlik teknolojileri
Yazılım güvenliği ile bilgi güvencesinin farkı, sosyal mühendislik ve politika gibi teknik olmayan sorunlar, firewall kural tablosu okuma, IDS/IPS ve taban oranı hesabı, VPN. Kural tablosu ve yanlış alarm soruları sınavın favorisi.
Geçen hafta saldırıların dilini öğrendin. Bu hafta karşı tarafa geçiyoruz: güvenlik nasıl inşa edilir, hangi teknik ve teknik olmayan önlemler kullanılır. Sınavda iki hesap tipi kesin çıkar: firewall kural tablosunu satır satır okumak ve IDS alarmlarının ne kadarının gerçek olduğunu bulmak. Altın kurallar:
- Firewall ilk eşleşen kuralı uygular. Yukarıdan aşağı oku; eşleşince dur.
- Eşleşme için bütün alanlar tutmalı. Protokol, kaynak, hedef, port. Biri bile tutmazsa sonraki kurala geç.
- Varsayılan reddet (default deny). Tablonun sonunda “her şeyi reddet” olur; izin verilmeyen her şey yasaktır.
- Nadir olayda yanlış alarm baskındır. Kesinliği ile hesapla, sezgiye güvenme.
- Teknoloji tek başına yetmez. İnsanlar ve politikalar da güvenlik sisteminin parçasıdır.
Yazılım güvenliği
Yazılım güvenliği (software security), yazılımı kötü niyetli saldırı altında bile doğru çalışacak biçimde tasarlamak ve kurmaktır. Ağ güvenliği gibi “sonradan çevreye duvar örmek” değildir; güvenlik yazılımın bir özelliği olarak baştan kurulur (build security in). Gerekçesi basit: firewall arkasındaki uygulama SQL enjeksiyonuna açıksa, firewall 443 portuna izin verdiği anda saldırı içeri girer.
Yazılımdaki güvenlik sorunları iki türdür:
- Hata (bug): uygulamada, kod seviyesinde. Örnek: tampon boyutunu kontrol etmeyen bir
strcpy. - Kusur (flaw): tasarım seviyesinde. Örnek: oturum belirtecinin URL’de taşınması, yetki kontrolünün sadece istemcide yapılması.
Kod incelemesi ve statik analiz araçları hataları yakalar; kusurları bulmak için mimari risk analizi ve tehdit modellemesi gerekir (13. hafta). Ne kadar erken bulunursa düzeltmek o kadar ucuzdur: gereksinim aşamasında bir cümleyi değiştirmek, canlıdaki sistemi yamamaktan çok daha az maliyetlidir.
Bilgi güvencesi
Bilgi güvencesi (information assurance, IA) daha geniş bir çerçevedir: bilginin ve bilgi sistemlerinin güvenilir kullanılabilmesini sağlamak. Beş hedef sık sayılır: gizlilik, bütünlük, erişilebilirlik, kimlik doğrulama (authentication) ve inkâr edilemezlik (non-repudiation). IA üç kaynağı birlikte yönetir: insan, süreç, teknoloji. Risk yönetimi, yedekleme, felaket kurtarma planı, denetim ve eğitim IA’nın parçasıdır.
Erişilebilirlik hesabı
Erişilebilirlik genellikle yüzde ile verilir. Yıllık izin verilen kesinti:
| Erişilebilirlik | Yıllık kesinti |
|---|---|
| %99.9 | 8.76 saat |
| %99.95 | 4.38 saat |
| %99.99 | yaklaşık 52.6 dakika |
Arıza istatistiğinden de hesaplanır: . Ortalama 990 saat arızasız çalışan, arızada 10 saatte onarılan bir sistem için .
Teknik olmayan güvenlik sorunları
Saldırıların büyük kısmı bir insan hatasıyla başlar. Bu yüzden ders planında “nontechnical issues” ayrıca yer alır.
Sosyal mühendislik (social engineering) insanların güvenine, korkusuna ya da yardımseverliğine oynar:
| Teknik | Nasıl çalışır |
|---|---|
| Pretexting | Uydurma senaryo: “BT destekten arıyorum, parolanızı doğrulamam gerek” |
| Phishing / spear phishing | Sahte e-posta, hedefli versiyonu kişiye özel |
| Vishing / smishing | Telefon ya da SMS ile oltalama |
| Baiting | Yem: “Maaşlar 2026” etiketli USB bellek |
| Quid pro quo | Karşılık teklif: “anketi doldurana hediye, giriş bilgisiyle” |
| Tailgating | Yetkili kişinin arkasından kapıdan geçmek |
İçeriden tehdit (insider threat): yetkili erişimi olan çalışanın kasıtlı ya da dikkatsiz zararı. Dış firewall’u hiç geçmesi gerekmez. Önlem: en az yetki, görev ayrılığı (separation of duties), erişim kayıtlarının denetimi, işten ayrılanın hesabını hemen kapatmak.
Politika (security policy): kurumun neye izin verdiğini ve neyi yasakladığını yazılı hale getirir. Örnekler: kabul edilebilir kullanım politikası (acceptable use policy), parola politikası, veri sınıflandırma, olay müdahale prosedürü. Politika olmadan teknik kontrolün neyi koruduğu belirsizdir. Politikanın işe yaraması için eğitim, denetim ve yaptırım gerekir. Ayrıca yasal düzenlemeler (örneğin kişisel verilerin korunması kanunları) ve fiziksel güvenlik de bu başlığa girer.
Örnek güvenlik teknolojileri
Firewall
Firewall iki ağ arasında durur ve paketleri bir kural tablosuna göre geçirir ya da düşürür. Üç temel türü:
| Tür | Neye bakar | Artısı / eksisi |
|---|---|---|
| Paket filtresi (stateless packet filter) | IP adresleri, protokol, portlar; her paket tek başına | Hızlı, basit; bağlamı bilmez |
| Durumlu denetim (stateful inspection) | Yukarıdakiler + bağlantı tablosu | Cevap paketlerini otomatik tanır |
| Uygulama proxy’si (application gateway) | Uygulama içeriği (HTTP isteği, komutlar) | En ayrıntılı kontrol; yavaş, protokole özel |
Kural tablosu okuma. Aşağıdaki tablo iç ağı (10.0.0.0/24) koruyor. 10.0.0.5 web sunucusu, 10.0.0.53 DNS sunucusu.
# aksiyon proto kaynak hedef port
1 allow tcp any -> 10.0.0.5 443
2 allow tcp any -> 10.0.0.5 80
3 deny tcp 203.0.113.0/24 -> any 22
4 allow tcp 198.51.100.0/24-> 10.0.0.0/24 22
5 allow udp any -> 10.0.0.53 53
6 deny any any -> any any
Örnek 1. tcp, 192.0.2.10 → 10.0.0.5, port 443. Kural 1’in bütün alanları tutar: izin. Değerlendirme orada biter.
Örnek 2. tcp, 203.0.113.9 → 10.0.0.7, port 22. Kural 1 ve 2’nin hedefi 10.0.0.5, tutmaz. Kural 3: kaynak 203.0.113.0/24 içinde, hedef any, port 22. Reddet. Kural 4’e hiç bakılmaz.
Örnek 3. udp, 192.0.2.10 → 10.0.0.53, port 53. Kural 1-4 tcp, tutmaz. Kural 5 tutar: izin.
CIDR kontrolü 5. haftadaki gibi: /24 demek ilk 24 bit, yani ilk üç oktet aynı olmalı. 10.0.1.9 adresi 10.0.0.0/24 ağına ait değildir.
TUZAK · gölgeleme (shadowing). Tablonun en üstüne “allow tcp any → 10.0.0.0/24 port 22” eklenirse, 203.0.113.0/24’ten gelen SSH artık kural 3’e ulaşamadan kabul edilir. Genel kural, alttaki özel kuralı öldürür. Kuralları özelden genele sırala.
IDS ve IPS
Saldırı tespit sistemi (intrusion detection system, IDS) trafiği ya da makine olaylarını izler ve şüpheli durumda uyarır. Saldırı önleme sistemi (IPS) trafiğin yolunda (inline) durur ve şüpheli paketi engeller. Ağı izleyen NIDS, tek bir makineyi izleyen HIDS olarak ayrılır.
İki tespit yaklaşımı:
- İmza tabanlı (signature-based, misuse): bilinen saldırı kalıplarını arar. Az yanlış alarm, ama yeni saldırıyı göremez.
- Anomali tabanlı (anomaly-based): normal davranış profilinden sapmayı arar. Yeni saldırıyı yakalayabilir, ama yanlış alarmı çoktur.
Dört sonuç: gerçek pozitif (TP, saldırı ve alarm), yanlış pozitif (FP, normal ama alarm), yanlış negatif (FN, saldırı ama alarm yok), gerçek negatif (TN).
Taban oranı örneği. Günde olay var, bunların %0.1’i saldırı. IDS saldırıların %99’unu yakalıyor, normal olayların %1’inde yanlış alarm veriyor.
saldırı = 1 000 000 × 0.001 = 1 000 normal = 999 000
TP = 1 000 × 0.99 = 990 FN = 10
FP = 999 000 × 0.01 = 9 990
kesinlik = 990 / (990 + 9 990) ≈ 0.090
“%99 doğru” bir sistemin alarmlarının sadece yaklaşık %9’u gerçek. Analist her 11 alarmdan 10’unu boşa inceler ve zamanla alarmları ciddiye almamaya başlar. Çözüm: yanlış alarm oranını düşürmek, kuralları ayarlamak, alarmları korelasyonla süzmek.
VPN
Sanal özel ağ (virtual private network, VPN) güvensiz bir ağ (internet) üzerinden şifreli bir tünel kurar. İki kullanım: siteden siteye (iki ofis ağını birleştirmek) ve uzaktan erişim (evdeki çalışanı şirket ağına bağlamak).
En yaygın teknolojiler IPsec ve TLS tabanlı VPN’lerdir. IPsec’te iki protokol vardır: AH (bütünlük ve kimlik doğrulama, şifreleme yok) ve ESP (şifreleme + bütünlük). İki mod vardır: transport mode orijinal IP başlığını açık bırakıp yükü korur; tunnel mode paketin tamamını şifreleyip yeni bir IP başlığıyla sarar. VPN gizliliği ve bütünlüğü sağlar ama uç noktadaki zararlı yazılımı durdurmaz.
Katmanlı savunma
Hiçbir kontrol mükemmel değildir. Katmanlı savunma (defense in depth) birden fazla bağımsız katman koyar: firewall, IDS, güncel yama, uygulama içi girdi doğrulama, yedekleme. Saldırının başarılı olması için hepsini geçmesi gerekir. Katmanlar bağımsızsa:
Kaçırma olasılıkları 0.1, 0.2 ve 0.3 olan üç katman için ; saldırıların %99.4’ü durur. Tek tek hiçbiri %90’ı geçmiyor.
İPUCU · olasılıkları çarp, yüzdeleri toplama. “%90 + %80 + %70” gibi toplamak anlamsızdır. Her katmanın kaçırma olasılığını çarp, sonra 1’den çıkar.
Sık yapılan hatalar
| Yanlış düşünce | Doğrusu |
|---|---|
| Firewall en uygun kuralı seçer | İlk eşleşen kuralı uygular, sırayla |
| Hedef ve port tutuyorsa kural eşleşir | Protokol ve kaynak da tutmalı |
| 10.0.1.9, 10.0.0.0/24 içindedir | /24 ilk üç okteti sabitler; 10.0.1.x dışarıda |
| Sona default deny gerekmez | İzin verilmeyen her şey açıkça reddedilmeli |
| %99 doğru IDS’in alarmları %99 gerçektir | Nadir saldırıda kesinlik çok düşük olabilir |
| İmza tabanlı IDS zero-day’i yakalar | Sadece anomali tabanlı yaklaşım yakalayabilir |
| IDS ile IPS aynı | IDS uyarır, IPS hatta durup engeller |
| VPN her şeyi korur | Tünelin uçlarını korumaz; zararlı yazılım geçer |
| Güvenlik sadece teknik bir iş | Sosyal mühendislik ve politika eksikliği en sık giriş kapısı |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
The firewall evaluates rules top to bottom and applies the first match. What happens to a TCP packet from 203.0.113.7 to 10.0.0.5, destination port 80?
1 allow tcp any -> 10.0.0.5 port 443
2 allow tcp any -> 10.0.0.5 port 80
3 deny tcp 203.0.113.0/24 -> any port 22
4 allow tcp 198.51.100.0/24 -> 10.0.0.0/24 port 22
5 allow udp any -> 10.0.0.53 port 53
6 deny any any -> any anyCevabı göster
Kural 1: hedef 10.0.0.5 ama port 443, eşleşmez.
Kural 2: tcp, kaynak any, hedef 10.0.0.5, port 80. Hepsi tutuyor: izin ver, dur.
Kaynağın 203.0.113.0/24 olması önemli değil; kural 3 sadece port 22 içindir ve zaten oraya hiç gelinmedi.
Same rule table. A TCP packet goes from 198.51.100.20 to 10.0.0.9, destination port 22. Which rule decides, and what is the action?
1 allow tcp any -> 10.0.0.5 port 443
2 allow tcp any -> 10.0.0.5 port 80
3 deny tcp 203.0.113.0/24 -> any port 22
4 allow tcp 198.51.100.0/24 -> 10.0.0.0/24 port 22
5 allow udp any -> 10.0.0.53 port 53
6 deny any any -> any anyCevabı göster
Kural 1 ve 2: hedef 10.0.0.5 değil, eşleşmez.
Kural 3: kaynak 198.51.100.20, 203.0.113.0/24 ağında değil, eşleşmez.
Kural 4: kaynak 198.51.100.0/24 içinde (ilk 24 bit 198.51.100), hedef 10.0.0.9 de 10.0.0.0/24 içinde, port 22. İzin.
Same rule table. A TCP packet goes from 198.51.100.20 to 10.0.1.9, destination port 22. Which rule decides, and what is the action?
1 allow tcp any -> 10.0.0.5 port 443
2 allow tcp any -> 10.0.0.5 port 80
3 deny tcp 203.0.113.0/24 -> any port 22
4 allow tcp 198.51.100.0/24 -> 10.0.0.0/24 port 22
5 allow udp any -> 10.0.0.53 port 53
6 deny any any -> any anyCevabı göster
Bir öncekiyle aynı görünüyor ama hedef 10.0.1.9. 10.0.0.0/24 ağı 10.0.0.0 ile 10.0.0.255 arasıdır; üçüncü oktet 1 olduğu için dışarıda kalır. Kural 4 eşleşmez.
Kural 5 udp içindir, eşleşmez. Geriye varsayılan kural 6 kalır: reddet. CIDR sınırını yanlış okumak bu soruların en klasik tuzağıdır.
Same rule table. A UDP packet goes from 198.51.100.20 to 10.0.0.5, destination port 443. What happens?
1 allow tcp any -> 10.0.0.5 port 443
2 allow tcp any -> 10.0.0.5 port 80
3 deny tcp 203.0.113.0/24 -> any port 22
4 allow tcp 198.51.100.0/24 -> 10.0.0.0/24 port 22
5 allow udp any -> 10.0.0.53 port 53
6 deny any any -> any anyCevabı göster
Kural 1'in hedefi ve portu tutuyor ama protokol tcp; paket udp. Eşleşme için bütün alanların tutması gerekir.
Kural 2, 3, 4 tcp; kural 5'in hedefi 10.0.0.53. Hiçbiri eşleşmez, kural 6 ile reddedilir. Protokol alanını atlayan "kural 1 izin verir" der ve yanlış yapar.
An administrator inserts a new rule 0 at the TOP of the table. Now a TCP packet from 203.0.113.7 to 10.0.0.9, port 22 arrives. What is the decision, and what problem does this reveal?
0 allow tcp any -> 10.0.0.0/24 port 22
1 allow tcp any -> 10.0.0.5 port 443
2 allow tcp any -> 10.0.0.5 port 80
3 deny tcp 203.0.113.0/24 -> any port 22
4 allow tcp 198.51.100.0/24 -> 10.0.0.0/24 port 22
5 allow udp any -> 10.0.0.53 port 53
6 deny any any -> any anyCevabı göster
Kural 0: tcp, kaynak any, hedef 10.0.0.9 (10.0.0.0/24 içinde), port 22. Eşleşir, izin verilir ve değerlendirme durur.
Eskiden bu paket kural 3 ile reddediliyordu. Artık kural 3, 10.0.0.0/24 hedefleri için hiç çalışamaz; kural 4 de gereksiz kalır. Buna gölgeleme (rule shadowing) denir: genel bir kural, kendinden sonra gelen daha özel kuralı etkisiz bırakır. Doğru sıra: özel kurallar üstte, genel kurallar altta, en sonda varsayılan reddet.
Which type of firewall keeps a table of established connections, so that reply packets of an allowed outgoing connection are accepted without a separate inbound rule?
- Stateless packet filter
- Stateful inspection firewall
- Application-level proxy
- Personal antivirus
Cevabı göster
Durumlu (stateful) firewall bağlantı tablosu tutar: içeriden çıkan bir TCP bağlantısını kaydeder, dönen cevap paketlerini bu kayda bakarak kabul eder. Durumsuz paket filtresi her paketi tek başına değerlendirir, cevap trafiği için ayrı kural ister. Uygulama proxy'si bağlantıyı kendisi sonlandırıp içeriği (örneğin HTTP) inceler.
An IDS monitors 100,000 benign connections and 40 malicious ones per day. Its detection rate is 95% and its false positive rate is 0.2%. Of all the alerts it raises, what fraction are real attacks?
Cevabı göster
Gerçek pozitif: . Kaçırılan: .
Yanlış pozitif: .
Toplam alarm . Kesinlik (precision): .
Yani alarmların sadece yaklaşık altıda biri gerçek. %0.2 yanlış alarm oranı küçük görünür ama saldırılar çok nadir olduğu için alarmları boğar. Buna taban oranı yanılgısı (base-rate fallacy) denir.
A company wants its IDS to detect a brand-new attack for which no pattern has been published yet. Which detection approach can, in principle, catch it?
- Signature-based detection
- Anomaly-based detection
- Port scanning
- Hash whitelisting of signatures
Cevabı göster
İmza tabanlı (signature-based) tespit bilinen saldırı kalıplarını arar; imzası olmayan sıfırıncı gün (zero-day) saldırısını göremez. Anomali tabanlı (anomaly-based) tespit normal davranışın bir profilini çıkarır ve sapmalara alarm verir; yeni saldırıyı yakalayabilir. Bedeli daha yüksek yanlış alarm oranıdır.
Two independent defensive layers miss an attack with probabilities 0.05 and 0.1. What is the probability that the attack is stopped? If a third independent layer with miss probability 0.4 is added, what is the new probability that the attack gets through?
Cevabı göster
Saldırı ancak bütün katmanları geçerse başarılı olur. Bağımsız katmanlarda olasılıklar çarpılır:
, yani durdurulma .
Üçüncü katman: . Tek başına zayıf bir katman bile (%60 yakalama) toplam riski 2.5 kat düşürdü. Katmanlı savunmanın (defense in depth) mantığı bu. Gerçekte katmanlar tam bağımsız değildir, sonuç bir üst sınır fikri verir.
A service level agreement promises 99.95% availability. What is the maximum allowed downtime per (365-day) year, in hours?
Cevabı göster
İzin verilen kesinti oranı .
Bir yıl saat. saat.
Karşılaştırma: %99.9 için 8.76 saat, %99.99 için yaklaşık 52.6 dakika. Her ek "9" kesintiyi on kat azaltır.
An attacker without a badge waits at the office entrance and walks in right behind an employee who opens the door. This social engineering technique is called:
- Pretexting
- Baiting
- Tailgating
- Vishing
Cevabı göster
Tailgating (piggybacking) yetkili birinin arkasından fiziksel alana girmektir. Pretexting uydurma bir senaryoyla bilgi istemek, baiting yem bırakmak (örneğin otoparka bırakılmış USB bellek), vishing telefonla oltalamadır. Önlem: turnike, "kapıyı arkandakine tutma" politikası, farkındalık eğitimi.
In IPsec tunnel mode, what does ESP protect?
- Only the TCP header
- Only the payload, keeping the original IP header in clear
- The entire original IP packet, which is placed inside a new IP packet
- Only the MAC address of the sender
Cevabı göster
Tünel modunda (tunnel mode) orijinal IP paketinin tamamı, başlığı dahil, şifrelenip yeni bir IP başlığının içine konur. Yeni başlıkta VPN geçitlerinin adresleri vardır, iç ağın adresleri gizlenir. Aktarım modunda (transport mode) orijinal IP başlığı açıkta kalır, sadece yük korunur. Siteden siteye VPN'ler tünel modunu kullanır.
Doğrulama: Firewall kararları ilk eşleşme kuralıyla çalışan bir node kural motoruyla (CIDR maskesi BigInt ile), IDS TP/FP/FN/kesinlik, katmanlı savunma olasılıkları ve erişilebilirlik süreleri node ile hesaplandı (verify/SEN2008/11.mjs). Tanım soruları kavramsal.