CTF ve Siber Güvenlik Terimleri Sözlüğü
CTF'e yeni başladığında writeup'larda, challenge açıklamalarında ve Discord sohbetlerinde bir sürü tanımadık kelimeyle karşılaşırsın. Bu sözlük, en sık geçen terimleri bir öğrencinin "aa şimdi anladım" diyeceği kadar sade, tek-iki cümlelik tanımlarla topluyor.
- Flag, bir soruyu çözdüğünü kanıtlayan gizli metindir — genelde FLAG{...} biçimindedir.
- Encoding (kodlama) şifreleme DEĞİLDİR: base64/hex geri çevrilebilir, gizlilik sağlamaz.
- Hash tek yönlüdür; salt ve nonce, tahmin ve tekrar saldırılarını zorlaştırmak için kullanılır.
- Payload gönderdiğin girdi, brute-force ise tüm olasılıkları denemektir.
- Writeup, first blood, jeopardy gibi terimler yarışmanın kültürünü anlamana yardım eder.
Terimleri ezberlemek yerine mantığını kavramaya çalış. Aşağıdaki listeler temalara ayrılmış; her terimi okuduktan sonra ilgili kategoriden birkaç soruya bakmak, tanımı kafanda gerçekten oturtur. Daha geniş bir başlangıç için CTF Nedir? sayfasına, adım adım yol için Rehber bölümüne göz atabilirsin.
Yarışma Terimleri
Bunlar bir CTF etkinliğinin nasıl işlediğini anlatan sözcüklerdir. Önce bunları bilmek, ortama alışmanı hızlandırır.
- Flag (bayrak) — Bir soruyu çözdüğünü kanıtlayan gizli metin. Çoğunlukla
FLAG{...}ya daCTF{...}gibi bir kalıptadır; bulduğun metni platforma girip puan alırsın. - Jeopardy — En yaygın CTF formatı. Kategorilere (web, crypto, forensics...) ve puanlara ayrılmış bağımsız soruları çözersin. Diğer format ise takımların birbirinin sistemine saldırıp savunduğu attack-defense'tir.
- Writeup — Bir sorunun nasıl çözüldüğünü anlatan yazı. Kendi çözümlerini yazmak, tekniği kalıcı öğrenmenin en iyi yollarından biridir.
- First blood (ilk kan) — Bir soruyu ilk çözen kişi/takım. Genelde küçük bir onur rozetidir, ekstra puan getirmez.
- Rate-limit — Bir sunucunun belirli sürede kabul ettiği istek sayısını sınırlaması. Deneme-yanılma yaparken "çok hızlı gidiyorsun" diye engellenmen bundandır; savunmada da otomatik saldırıları yavaşlatmak için kullanılır.
Kodlama ve Gösterim Terimleri
Buradaki en kritik ders şu: kodlama (encoding), şifreleme değildir. Kodlama veriyi başka bir biçimde göstermektir ve anahtarsız geri çevrilir; gizlilik sağlamaz.
- Encoding (kodlama) — Veriyi taşınabilir bir biçime dönüştürme. Base64, hex ve URL-encoding birer kodlamadır; herkes geri çözebilir.
- Base64 — İkili (binary) veriyi 64 karakterlik bir alfabeyle metne çeviren kodlama. Sonundaki
=işareti dolgu (padding) içindir. Örnek:aGVsbG8=çözülüncehelloolur. - Hex (onaltılık) — Baytları 0-9 ve a-f ile gösterme. Örneğin
41hex değeri,Aharfinin ta kendisidir. - XOR — Bit düzeyinde "özel VEYA" işlemi. Basit şifrelemede sık görülür çünkü aynı anahtarla iki kez uygulanınca veri geri gelir:
A XOR K XOR K = A.
Bir metnin base64 mü hex mi olduğunu anlamak, birçok sorunun ilk adımıdır. Bu kas hafızasını kripto challenge'larında kolayca geliştirebilirsin.
Kriptografi ve Gizlilik Terimleri
Bu terimler "veri nasıl güvenli tutulur, nasıl tahmin zorlaştırılır" sorusunun etrafında döner.
- Hash — Herhangi uzunluktaki veriyi sabit uzunlukta bir "parmak izine" çeviren tek yönlü fonksiyon (MD5, SHA-256 gibi). Çıktıdan girdiye geri dönmek tasarım gereği zordur.
- Salt (tuz) — Bir parola hash'lenmeden önce eklenen rastgele değer. Aynı parolaların aynı hash'e düşmesini ve hazır tablolarla (rainbow table) kırılmasını engeller.
- Nonce — "Number used once", yani yalnızca bir kez kullanılan değer. Aynı isteğin tekrar oynatılmasını (replay) önlemek için kullanılır.
- Entropi — Bir değerin ne kadar rastgele/tahmin edilemez olduğunun ölçüsü. Yüksek entropi = tahmin etmesi zor; düşük entropi = kırması kolay.
Saldırı ve Çözüm Teknikleri
Önemli: Bu kavramları yalnızca yetkili olduğun ortamlarda, eğitim amacıyla dene. CTF platformları tam da bunun için vardır. Amaç "nasıl çalışır ve nasıl korunulur" u anlamaktır.
- Payload — Bir davranışı tetiklemek için gönderdiğin girdi/veri. Örneğin bir web sorusunda özenle hazırlanmış bir istek, senin payload'ındır.
- Brute-force (kaba kuvvet) — Doğrusunu bulana kadar tüm olasılıkları sırayla denemek. Kısa şifrelerde işe yarar; uzun ve yüksek entropili değerlerde pratik olmaktan çıkar. Savunma tarafında rate-limit ve salt bu yüzden önemlidir.
Bu terimleri bir arada görmek istersen: bir payload gönderirsin, sunucu rate-limit uygular, veriyi base64 ile kodlanmış bulursun, çözünce içinde hash'lenmiş bir değer çıkar. Bu akışı gerçek örneklerle web challenge'larında deneyimleyebilirsin.
Terimleri Kalıcı Hâle Getirmek
Sözlüğü bir kez okuyup bırakma. En iyi yöntem şudur: bir soru çözerken tanımadığın kelimeyi buradan bul, ardından çözümünü kendi cümlelerinle yazıya dök. Kısa bir writeup, o terimi bir daha unutmamanı sağlar. Zamanla bu kelimeler sana yabancı değil, günlük konuşma diline dönüşür.
Sıkça Sorulan Sorular
Encoding ile şifreleme (encryption) aynı şey mi?
Hayır. Encoding veriyi başka bir biçimde göstermektir ve anahtar olmadan herkes geri çözebilir; base64 ve hex buna örnektir. Şifreleme ise bir anahtar gerektirir ve amacı veriyi gizli tutmaktır. CTF'te bir metin base64 ise onu 'çözmek' güvenlik değil, sadece okunur hâle getirmektir.
Flag'i bulunca ne yapacağım?
Bulduğun flag metnini, sorunun sayfasındaki cevap kutusuna aynen (kalıp dahil, örneğin FLAG{...}) yapıştırıp gönderirsin. Doğruysa puanın eklenir. Boşluk veya eksik karakter olmamasına dikkat et.
Hash'i geri çözebilir miyim?
Hash tek yönlü olduğu için doğrudan 'geri çözme' işlemi yoktur. Ancak zayıf veya kısa girdiler için tahmin edip aynı hash'i üreterek eşleştirme yapılabilir; salt kullanımı bunu zorlaştırır. CTF'te sık kullanılan yaklaşım, olası girdileri deneyip hash'lerini karşılaştırmaktır.
Terimleri en hızlı nasıl öğrenirim?
Ezberlemek yerine uygulamada gör. Bir challenge çözerken tanımadığın kelimeyi bu sözlükten bak, sonra çözümünü kısa bir writeup olarak yaz. Kelimeyi bir bağlamda kullandığında kalıcı olarak aklında kalır.