SEN2008 · 11. hafta · Security Fundamentals (II): Software Security, Information Assurance, Sources of Software Nontechnical security issues, Example Security Technologies

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.

software securityinformation assurancebugdesign flawsocial engineeringpretextingtailgatinginsider threatsecurity policyfirewallpacket filterstateful inspectionapplication proxydefault denyrule shadowingIDSIPSsignature-basedanomaly-basedfalse positivebase-rate fallacyVPNIPsecdefense in depth

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:

  1. Firewall ilk eşleşen kuralı uygular. Yukarıdan aşağı oku; eşleşince dur.
  2. Eşleşme için bütün alanlar tutmalı. Protokol, kaynak, hedef, port. Biri bile tutmazsa sonraki kurala geç.
  3. Varsayılan reddet (default deny). Tablonun sonunda “her şeyi reddet” olur; izin verilmeyen her şey yasaktır.
  4. Nadir olayda yanlış alarm baskındır. Kesinliği TP/(TP+FP)TP / (TP + FP) ile hesapla, sezgiye güvenme.
  5. 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:

kesinti=(1−A)×8760 saat\text{kesinti} = (1 - A) \times 8760 \text{ saat}

ErişilebilirlikYıllık kesinti
%99.98.76 saat
%99.954.38 saat
%99.99yaklaşık 52.6 dakika

Arıza istatistiğinden de hesaplanır: A=MTBF/(MTBF+MTTR)A = MTBF / (MTBF + MTTR). Ortalama 990 saat arızasız çalışan, arızada 10 saatte onarılan bir sistem için A=990/1000=0.99A = 990 / 1000 = 0.99.

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:

TeknikNasıl çalışır
PretextingUydurma senaryo: “BT destekten arıyorum, parolanızı doğrulamam gerek”
Phishing / spear phishingSahte e-posta, hedefli versiyonu kişiye özel
Vishing / smishingTelefon ya da SMS ile oltalama
BaitingYem: “Maaşlar 2026” etiketli USB bellek
Quid pro quoKarşılık teklif: “anketi doldurana hediye, giriş bilgisiyle”
TailgatingYetkili 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ürNeye bakarArtısı / eksisi
Paket filtresi (stateless packet filter)IP adresleri, protokol, portlar; her paket tek başınaHızlı, basit; bağlamı bilmez
Durumlu denetim (stateful inspection)Yukarıdakiler + bağlantı tablosuCevap 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 10610^6 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:

P(gec¸er)=m1×m2×⋯×mkP(\text{geçer}) = m_1 \times m_2 \times \dots \times m_k

Kaçırma olasılıkları 0.1, 0.2 ve 0.3 olan üç katman için 0.1×0.2×0.3=0.0060.1 \times 0.2 \times 0.3 = 0.006; 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üşünceDoğrusu
Firewall en uygun kuralı seçerİlk eşleşen kuralı uygular, sırayla
Hedef ve port tutuyorsa kural eşleşirProtokol 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çektirNadir saldırıda kesinlik çok düşük olabilir
İmza tabanlı IDS zero-day’i yakalarSadece anomali tabanlı yaklaşım yakalayabilir
IDS ile IPS aynıIDS uyarır, IPS hatta durup engeller
VPN her şeyi korurTü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ç.

Soru 1kolay

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          any
Cevabı göster
Allowed by rule 2

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.

Soru 2orta

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          any
Cevabı göster
Rule 4, allow

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.

Soru 3orta

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          any
Cevabı göster
Rule 6, deny

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.

Soru 4orta

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          any
Cevabı göster
Denied by rule 6

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.

Soru 5zor

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          any
Cevabı göster
Allowed by rule 0; rules 3 and 4 are shadowed for that subnet

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.

Soru 6kolay

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?

  1. Stateless packet filter
  2. Stateful inspection firewall
  3. Application-level proxy
  4. Personal antivirus
Cevabı göster
B) Stateful inspection firewall

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.

Soru 7zor

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
38 / 238 ≈ 16.0%

Gerçek pozitif: TP=40×0.95=38TP = 40 \times 0.95 = 38. Kaçırılan: FN=2FN = 2.

Yanlış pozitif: FP=100000×0.002=200FP = 100000 \times 0.002 = 200.

Toplam alarm 38+200=23838 + 200 = 238. Kesinlik (precision): 38/238≈0.16038 / 238 \approx 0.160.

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.

Soru 8orta

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?

  1. Signature-based detection
  2. Anomaly-based detection
  3. Port scanning
  4. Hash whitelisting of signatures
Cevabı göster
B) Anomaly-based detection

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

Soru 9orta

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
0.995; 0.002

Saldırı ancak bütün katmanları geçerse başarılı olur. Bağımsız katmanlarda olasılıklar çarpılır:

P(gec¸er)=0.05×0.1=0.005P(\text{geçer}) = 0.05 \times 0.1 = 0.005, yani durdurulma 1−0.005=0.9951 - 0.005 = 0.995.

Üçüncü katman: 0.005×0.4=0.0020.005 \times 0.4 = 0.002. 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.

Soru 10orta

A service level agreement promises 99.95% availability. What is the maximum allowed downtime per (365-day) year, in hours?

Cevabı göster
4.38 hours

İzin verilen kesinti oranı 1−0.9995=0.00051 - 0.9995 = 0.0005.

Bir yıl 365×24=8760365 \times 24 = 8760 saat. 8760×0.0005=4.388760 \times 0.0005 = 4.38 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.

Soru 11kolay

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:

  1. Pretexting
  2. Baiting
  3. Tailgating
  4. Vishing
Cevabı göster
C) Tailgating

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.

Soru 12orta

In IPsec tunnel mode, what does ESP protect?

  1. Only the TCP header
  2. Only the payload, keeping the original IP header in clear
  3. The entire original IP packet, which is placed inside a new IP packet
  4. Only the MAC address of the sender
Cevabı göster
C) The entire original IP packet, which is placed inside a new IP packet

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.

Deftere not kartı

Yazılım güvenliği: yazılımı baştan güvenli kurmak (bug = kod hatası, flaw = tasarım hatası) Bilgi güvencesi (IA): bilginin C, I, A + authentication + non-repudiation; insan + süreç + teknoloji Sosyal mühendislik: pretexting, baiting, tailgating, phishing/vishing; önlem: eğitim + politika + MFA Firewall: ilk eşleşen kural uygulanır, en altta default deny Bütün alanlar tutmalı: protokol, kaynak, hedef, port. /24 = ilk 3 oktet aynı Özel kural üstte, genel kural altta; tersi = shadowing Packet filter (durumsuz) / stateful (bağlantı tablosu) / proxy (uygulama içeriği) IDS uyarır, IPS engeller (hatta, inline). NIDS ağ, HIDS makine İmza: bilinenleri yakalar, zero-day kaçırır. Anomali: yeniyi yakalar, çok FP TP = saldırı × TPR FP = normal × FPR precision = TP / (TP + FP) Nadir saldırı + küçük FPR = alarmların çoğu sahte (base-rate fallacy) Katmanlı savunma: P(geçer) = miss1 × miss2 × ... Kesinti/yıl = (1 − A) × 8760 saat 99.9% → 8.76 sa 99.99% → 52.6 dk IPsec ESP: transport = yükü korur; tunnel = tüm paketi yeni IP başlığına sarar