Bölüm 13: Güvenlik
Çoktan Seçmeli · CIA Üçlüsü
Soru 1: Hangi Hedef Çiğnendi?
Bir hastanenin dosya sunucusundaki hasta kayıtları fidye yazılımıyla şifrelendi. Kayıtlar dışarı sızdırılmadı ve içerikleri değiştirilmedi, ama doktorlar dosyalara saatlerce ulaşamadı. CIA üçlüsünün hangi bileşeni doğrudan ihlal edildi?
C: veri okunmadı ve değiştirilmedi; ama hizmet kullanılamaz hâle geldi. Fidye yazılımı ve DoS saldırıları erişilebilirliği hedefler. Sızıntı gizlilik, kayıt tahrifatı bütünlük ihlali olurdu; inkâr edilemezlik imza ve denetim kaydıyla ilgilidir.
Hesaplama Sorusu · Gizli Anahtarlı Şifreleme
Soru 2: Yerine Koyma Şifresi
Tek alfabeli yerine koyma şifresinin anahtarı tablodadır. (a) SALDIRI sözcüğünün şifreli hâli nedir? (b) Şifreli LTEXKOZN neyi gizler? (c) Anahtar uzayı 26! olduğu hâlde bu şifre neden kolayca kırılır?
| açık | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| şifreli | Q | W | E | R | T | Y | U | I | O | P | A | S | D | F | G | H | J | K | L | Z | X | C | V | B | N | M |
Cevabı göster
(a) S → L, A → Q, L → S, D → R, I → O, R → K, I → O: LQSROKO.
(b) Ters tabloyla L → S, T → E, E → C, X → U, K → R, O → I, Z → T, N → Y: SECURITY.
(c) 26! ≈ 4 × 10²⁶ anahtar kaba kuvvetle denenemez; ama her harf hep aynı harfe gider. (a)’daki iki I’nın ikisi de O oldu: harf sıklıkları şifreli metinde aynen kalır. Birkaç satırlık metinde en sık harfler (Türkçede A, E, İ) eşlenerek anahtar çıkarılır. Bugünkü simetrik şifreler (AES-GCM, ChaCha20) bu yüzden blok ya da akış yapısıyla sıklığı gizler.
Çoktan Seçmeli · Özet ve İmza
Soru 3: Dijital İmza
Ali bir sözleşmeyi Ayşe’ye gönderiyor; metnin yolda değişmediği ve Ali’den geldiği kanıtlanabilmeli, ama metnin gizli olması gerekmiyor. Doğru düzen hangisidir?
D: imzayı yalnız özel anahtarın sahibi üretebilir, herkes açık anahtarla doğrular; Ali sonradan inkâr edemez. A anahtarları ters kullanır. B gizlilik sağlar ama gönderenin kim olduğunu kanıtlamaz. C’deki paylaşılan anahtarı Ayşe de bildiği için imzayı Ayşe de üretebilirdi: inkâr edilemezlik olmaz.
Hesaplama Sorusu · İzin Bitleri
Soru 4: Sekizli ve Sembolik İzin
(a) chmod 754 yedekle.sh komutundan sonra ls -l izin sütununu nasıl gösterir? Grup üyeleri ve “diğerleri” bu betikle ne yapabilir? (b) rw-r-x--x izninin sekizli karşılığı nedir? (c) chmod 640 sonrası?
Cevabı göster
Her rakam üç bittir: r = 4, w = 2, x = 1.
| sahip | grup | diğer | |
|---|---|---|---|
| (a) 754 | 7 = 111 → rwx | 5 = 101 → r-x | 4 = 100 → r-- |
| (b) | rw- = 110 → 6 | r-x = 101 → 5 | --x = 001 → 1 |
| (c) 640 | rw- | r-- | --- |
(a) -rwxr-xr--: grup okuyup çalıştırabilir, diğerleri yalnız okuyabilir (okuyan, betiği kopyalayıp kendi adına çalıştırabilir). (b) 651. (c) -rw-r-----.
Çoktan Seçmeli · İzin Bitleri
Soru 5: Dizinde x Biti
/home/ali dizininin izni drwx--x--x, içindeki plan.txt dosyasının izni -rw-r--r--. Ali dışındaki sıradan bir kullanıcı için hangisi doğrudur?
B: dizinde r girdileri listelemeyi, w girdi eklemeyi/silmeyi, x içine girip ad aramayı sağlar. Diğerlerinde yalnız x var: ad bilinirse yol çözülür ve dosyanın kendi r biti okumaya izin verir. ls başarısız olur; dosya oluşturmak için dizinde w gerekirdi.
Klasik Soru · Erişim Matrisi
Soru 6: Matristen ACL ve Yeteneğe
Koruma matrisi tabloda. (a) rapor nesnesinin erişim denetim listesini (ACL), (b) D2 etki alanının yetenek listesini (C-list) yazın. (c) D3’ün rapor erişimini hemen kaldırmak hangi gösterimde kolaydır? (d) D2’nin yazıcı hakkını D3’e devretmek hangisinde kolaydır?
| rapor | derle.sh | yazıcı | |
|---|---|---|---|
| D1 | RW | RX | — |
| D2 | R | — | W |
| D3 | R | X | W |
Cevabı göster
- (a) ACL = matrisin sütunu, nesnenin yanında saklanır: rapor → {D1: RW, D2: R, D3: R}.
- (b) C-list = matrisin satırı, etki alanına aittir: D2 → {rapor: R, yazıcı: W}.
- (c) ACL: rapor’un listesinden D3 girdisi silinir. Yetenek gösteriminde D3’ün (ve kopyaladığı herkesin) yeteneklerini bulup geri almak gerekir.
- (d) Yetenek: D2 yeteneğin bir kopyasını D3’e verir; nesnenin listesine dokunulmaz. UNIX’te açık bir dosya tanımlayıcısını başka sürece göndermek de böyledir.
Adım Adım Çalıştırma · setuid
Soru 7: setuid Programda Kimlikler
Veli (uid 1001) root’a ait setuid bitli programı çalıştırıyor. Çıktı nedir? Son setresuid başarılı olur mu?
setuid biti: execve etkin ve saklı kimliği dosya sahibine (0) çevirir; gerçek kimlik Veli’dir.
getuid gerçek kimliği (1001), geteuid etkin kimliği (0) döndürür.
İzin etkin kimliğe göre denetlenir: euid 0, yalnız root’un yazabildiği günlük açılır.
Ayrıcalık kalıcı olarak bırakılır: üç kimlik de 1001. Kalan koddaki bir hata artık root vermez.
İkinci satır: 1001 1001.
Ayrıcalıksız süreç yalnız r, e ya da s değerine geçebilir; üçü de 1001: EPERM, −1.
Geri dönüş yok; ama fd 3 hâlâ yazılabilir: açık tanımlayıcı yetenek gibidir, izin yeniden denetlenmez.
/* arsiv: -rwsr-xr-x, sahibi root */ int main(void) { /* Veli (uid 1001) çalıştırır */ printf("%d %d\n", getuid(), geteuid()); int fd = open("/var/arsiv/log", O_WRONLY); uid_t me = getuid(); setresuid(me, me, me); printf("%d %d\n", getuid(), geteuid()); int r = setresuid(0, 0, 0); printf("%d %d\n", r, geteuid()); return 0; }
Çoktan Seçmeli · Bell-LaPadula
Soru 8: Bell-LaPadula Kuralı
Düzeyler: Çok Gizli > Gizli > Hizmete Özel > Tasnif Dışı. Bell-LaPadula modelinde Gizli düzeyde çalışan bir süreç için hangi işleme izin verilir?
A: BLP gizliliği korur: yukarı okuma yok (basit güvenlik özelliği), aşağı yazma yok (* özelliği). Aşağı okumak serbesttir. C ve D aşağı yazmadır: Gizli bilgi daha düşük düzeye sızardı. B yukarı okumadır.
Klasik Soru · Bell-LaPadula ve Biba
Soru 9: İki Model Birlikte
Süreç “Orta” düzeyde. Dört işlem için BLP (düzeyler gizlilik) ve Biba (düzeyler güvenilirlik) izin mi ret mi verir? İki model birlikte uygulanırsa süreç neye erişebilir?
(1) Yüksek’i okumak (2) Yüksek’e yazmak (3) Düşük’ü okumak (4) Düşük’e yazmak
Cevabı göster
| işlem | BLP | Biba |
|---|---|---|
| (1) yukarı okuma | ret | izin |
| (2) yukarı yazma | izin | ret |
| (3) aşağı okuma | izin | ret |
| (4) aşağı yazma | ret | izin |
Her satırda modellerden biri reddediyor: ikisi birlikte uygulanırsa süreç yalnız kendi düzeyindeki nesneleri okuyup yazabilir. BLP bilginin aşağı sızmasını, Biba kirli verinin yukarı bulaşmasını engeller; hedefler çatışır.
Adım Adım Çalıştırma · Gizli Kanal
Soru 10: Dosya Kilidiyle Gizli Kanal
Sunucu her 10 ms’de F’yi kilitleyerek ya da bırakarak bir bit iletiyor. İşbirlikçi ne alır? Kanal hızı nedir, 256 bitlik anahtar ne kadar sürede sızar?
İki süreç önceden anlaşmıştır. F’nin içeriği hiç okunmaz, yazılmaz: BLP’nin denetlediği hiçbir işlem yok.
7. bit (0–10 ms): birak(F): işbirlikçi kilitleyebilir → 0.
6. bit (10–20 ms): kilitle(F): işbirlikçinin denemesi başarısız → 1.
5. bit (20–30 ms): birak(F): işbirlikçi kilitleyebilir → 0.
4. bit (30–40 ms): birak(F): işbirlikçi kilitleyebilir → 0.
3. bit (40–50 ms): kilitle(F): işbirlikçinin denemesi başarısız → 1.
2. bit (50–60 ms): birak(F): işbirlikçi kilitleyebilir → 0.
1. bit (60–70 ms): kilitle(F): işbirlikçinin denemesi başarısız → 1.
0. bit (70–80 ms): kilitle(F): işbirlikçinin denemesi başarısız → 1.
80 ms’de 8 bit: 01001011 = 0x4B = ‘K’. Hız 1000 / 10 = 100 bit/s; 256 bitlik anahtar 2,56 s’de sızar. Gürültü eklemek hızı düşürür ama kanalı kapatmaz.
/* sunucu (yüksek düzey), sir = 'K' */ for (int i = 7; i >= 0; i--) { if ((sir >> i) & 1) kilitle(F); else birak(F); bekle(10); /* ms */ } /* işbirlikçi, her aralıkta: */ bit = kilitlemeyi_dene(F) ? 0 : 1;
Hesaplama Sorusu · Parola Saklama
Soru 11: Kaba Kuvvet Süresi
Parolalar 8 küçük harften (26 harfli alfabe) oluşuyor; saldırgan sızan veritabanındaki tek bir kullanıcının özetini kırmak istiyor. (a) Kaç olası parola vardır? (b) Özet düz SHA-256 ise ve saniyede 1010 deneme yapılıyorsa en kötü durumda süre nedir? (c) Özet Argon2id ise ve saniyede yalnız 104 deneme yapılabiliyorsa? (d) Tuzun bu hesaptaki rolü nedir?
Cevabı göster
(a) 268 = 208.827.064.576 ≈ 2,09 × 1011.
(b) 2,09 × 1011 / 1010 ≈ 21 s.
(c) 2,09 × 1011 / 104 ≈ 2,09 × 107 s ≈ 242 gün. Yavaş özet her denemeyi 106 kat pahalılaştırır; uzun parola da uzayı üstel büyütür (10 karakter, 62 simge: milyonlarca yıl).
(d) Tuz tek bir kullanıcının süresini değiştirmez; ama aynı hesabın bütün kullanıcılara birden uygulanmasını ve önceden hesaplanmış tabloları engeller: iş kullanıcı sayısı kadar çoğalır. Tuz gizli değildir, özetin yanında saklanır.
Hesaplama Sorusu · MFA ve TOTP
Soru 12: TOTP Kod Penceresi
Telefondaki uygulama ile sunucu aynı gizli anahtarı paylaşır; kod, T = ⌊t / 30⌋ sayacından üretilir (t: Unix zamanı, saniye). (a) t = 1.700.000.000 iken T kaçtır, aynı kod hangi t aralığında geçerlidir? (b) Sunucu saat kayması için T − 1, T ve T + 1 kodlarını kabul ediyorsa bu anda girilen bir kod hangi t aralığında üretilmiş olabilir? (c) Parola + TOTP neden MFA sayılır, ama oltalamaya karşı neden yetmez?
Cevabı göster
(a) 1.700.000.000 / 30 = 56.666.666,67 → T = 56.666.666. Kod T · 30 = 1.699.999.980 ile 1.700.000.009 arasında (30 s) aynıdır.
(b) T − 1 ile T + 1 arası: 1.699.999.950 … 1.700.000.039, 90 saniyelik pencere.
(c) Parola bildiğin, telefondaki anahtar sahip olduğun şeydir: iki farklı kategori. Ama kullanıcı sahte siteye kodu da yazabilir; saldırgan onu pencere kapanmadan gerçek sitede kullanır. FIDO2 imzası ise sitenin kökenine bağlıdır.
Çoktan Seçmeli · FIDO2
Soru 13: Geçiş Anahtarı ve Oltalama
Sahte bir giriş sayfası kullanıcıdan parolayı ve TOTP kodunu kolayca alabilir. FIDO2/WebAuthn geçiş anahtarlarını bu saldırıya dayanıklı kılan temel özellik hangisidir?
B: tarayıcı imzalanacak sınamaya sitenin kökenini (origin) ekler; sahte siteye verilen yanıt gerçek sitede geçersizdir. Sunucu yalnız açık anahtarı saklar, paylaşılan sır yoktur (C yanlış). 30 saniyede değişen kod TOTP’dir ve oltalanabilir; uzunluk oltalamayı engellemez.
Adım Adım Çalıştırma · Tampon Taşması
Soru 14: Tampon Kaç Bayt Taşar?
64 bit bir makinede kopyala çağrılıyor. strcpy kaç bayt yazar, kaçı taşar, dönüş adresinin kaç baytı bozulur? Satır nasıl düzeltilmeli?
Çağrı çerçeveyi açar: dönüş adresi, kayıtlı çerçeve işaretçisi (rbp) ve 8 baytlık ad. Kanarya ve dolgu yok (-fno-stack-protector).
strcpy kaynağın \0’ına kadar kopyalar, hedefin boyunu bilmez. “Giresun-” diziye tam sığar; \0 henüz gelmedi, kopyalama sürer.
“Ordu-Sam” dizinin dışına, kayıtlı rbp’nin üzerine yazılır.
“sun” ve \0 dönüş adresinin düşük 4 baytına yazılır (küçük uçlu: 73 75 6e 00). Toplam 19 + 1 = 20 bayt, 20 − 8 = 12 bayt taştı.
Fonksiyon dönerken CPU bozulmuş adrese atlar: burada çökme (SIGSEGV); girdiyi seçen saldırgan ise yürütmeyi istediği yere yönlendirir. Kanarya ad ile rbp arasında durur ve dönüşten önce bozulmayı yakalardı.
void kopyala(const char *in) { char ad[8]; strcpy(ad, in); /* sınır yok */ } /* ret */ /* main: */ kopyala("Giresun-Ordu-Samsun");
Klasik Soru · TOCTOU
Soru 15: Kontrol ile Kullanım Arasında
setuid root bir program bu kodu çalıştırıyor. Kod hangi açığı içeriyor? Saldırgan tam olarak hangi anda ne yapar? Nasıl düzeltilir?
/* setuid root yardımcı program */ if (access("/tmp/rapor", W_OK) == 0) { int fd = open("/tmp/rapor", O_WRONLY); write(fd, veri, n); }
Cevabı göster
- TOCTOU (kontrol zamanı ≠ kullanım zamanı) yarış durumu:
accessgerçek kullanıcıya göre denetler,openise root yetkisiyle adı yeniden çözer. - İki çağrı arasındaki pencerede saldırgan
/tmp/rapor’u silip yerine/etc/passwd’e sembolik bağ koyar; root programı korunan dosyaya yazar. Deneme çok kez tekrarlanarak pencere yakalanır. - Düzeltme: adı bir kez çözün. Ayrıcalığı düşürüp
open(..., O_WRONLY | O_NOFOLLOW)ile açın, gerekirse aynı tanımlayıcı üzerindefstatile denetleyin; güvenli bir dizindeopenatkullanın.
Çoktan Seçmeli · Savunmalar
Soru 16: Savunmaların Eşleşmesi
Tampon taşmasına karşı savunmalarla etkileri eşleştirilmiş. Hangi eşleştirme yanlıştır?
D: NX (DEP) yalnız veri sayfalarına enjekte edilen yeni kodun çalışmasını engeller. ROP ve return-to-libc zaten yürütülebilir olan kod parçalarını kullanır; bu yüzden ASLR, CFI ve gölge yığın birlikte kullanılır. Kökten çözüm bellek-güvenli dillerdir.
Çoktan Seçmeli · Giriş Sahtekârlığı
Soru 17: Ctrl+Alt+Del Neden?
Bir laboratuvarda oturum açmadan önce Ctrl+Alt+Del tuşlarına basmak zorunlu tutuluyor. Bu kural öncelikle hangi saldırıya karşıdır?
C: giriş sahtekârlığında (login spoofing) bir kullanıcı programı giriş ekranını taklit eder. Güvenli dikkat dizisi yalnız çekirdeğin gerçek giriş ekranını çağırır; hiçbir kullanıcı programı bu tuş birleşimini yakalayamaz. Mantık bombası ve arka kapıya karşı kod incelemesi ve yeniden üretilebilir derleme kullanılır.
Çoktan Seçmeli · Türler
Soru 18: Kendi Kendine Yayılan
Kullanıcının hiçbir dosyayı açmasına gerek kalmadan, ağdaki yamalanmamış bir hizmeti kullanarak makineden makineye kendini kopyalayan kötü amaçlı yazılım türü hangisidir?
A: solucan (worm) ağ üzerinden kendi kendine yayılır. Virüs başka bir programa eklenir ve o program çalıştırılınca bulaşır; Truva atı yararlı görünen bir programın içinde gelir; rootkit kendisini ve diğer zararlıları gizler.
Çoktan Seçmeli · SELinux ve AppArmor
Soru 19: DAC mı, MAC mı?
Bir web sunucusu ele geçirildi. Saldırgan, sunucunun kullanıcı hesabıyla kendine ait bir dosyanın iznini chmod ile rahatça değiştirebiliyor; ama izin bitleri izin verse bile /home altındaki dosyalara erişemiyor. Bu iki davranış sırasıyla hangi denetimden kaynaklanır?
B: DAC’de izni nesnenin sahibi belirler (rwx, ACL); sahip, zararlı da olsa, izni değiştirebilir. MAC’de politikayı sistem belirler ve süreç kendi kısıtını gevşetemez: SELinux/AppArmor profili ele geçirilen süreci izin verilen dosyalarla sınırlar.
Çoktan Seçmeli · Güvenli Önyükleme
Soru 20: Değiştirilmiş Önyükleyici
Güvenli önyükleme açık bir makinede bir önyükleme kiti (bootkit) diskteki önyükleyiciyi değiştirmiş. Makine yeniden başlatılınca ne olur?
D: güven zincirinde her katman bir sonrakinin imzasını doğrular; imzasız ya da değişmiş önyükleyici yürütülmez. TPM hiçbir şeyi onarmaz: ölçülen önyüklemede bileşenlerin özetini saklar ve beklenmeyen ölçümde anahtarı açmaz. C, güvenli önyükleme kapalıyken yalnız ölçülü önyüklemenin davranışıdır. Antivirüs çekirdekten sonra çalışır; ondan önce yerleşen kit onu kandırabilir.