CTF Nedir? Nereden Başlamalıyım?
1. CTF NEDİR?
CTF (Capture The Flag), siber güvenlik alanına ilgi duyanlar, kendini bu alanda geliştirmek isteyenler için hazırlanan, uygulamalı ve eğitici oyunlardır. Amaç, verilen görevleri yerine getirerek, sistemlerde saklanılan bilgileri ve/veya verileri (yani bayrakları) elde etmektir. CTF, şirketler ve topluluklar tarafından yarışmalar şeklinde uygulanabildiği gibi, kişisel gelişim amacıyla topluluk tarafından hazırlanan sanal makineler aracılığıyla bireysel olarak da gerçekleştirilebilir.
CTF oyunları birden fazla kategoride gerçekleşmektedir. Bir CTF tek bir kategori üzerine düzenlenebileceği gibi, birden fazla kategoriyi içerecek şekilde de hazırlanabilir. Bu kategoriler aşağıdaki gibidir;
- Kriptografi
- Web
- Mobil
- Adli Bilişim
- Ağ
- Sömürü (Exploiting)
- Bilgi Gizleme (Steganography)
2. CTF Pratiği Yapılabilecek Platformlar
Daha öncesinde belirttiğim gibi, bireysel çalışmalar için de CTF’ler bulabileceğimiz farklı platformlar mevcut. Bunlar arasından en popüler olanlar ve aynı zamanda benim de aktif şekilde kullandıklarımdan üç tanesi şu şekilde;
- HackTheBox: İçerisinde birçok farklı kategoride CTF makineleri ve yarışmalar bulundurmakta. Bu makinelere VPN ile bağlanarak, verilen görevleri tamamlamanız gerekiyor.
- TryHackMe: Yine içerisinde VPN ile bağlanabileceğiniz CTF makineleri bulunduran bir başka platform.
- VulnHub: Bu platformda, daha öncekilerden farklı olarak barındırdığı CTF’leri çözebilmek için sanal makinelere VPN ile bağlanmak yerine cihazınıza kurmanız gerekiyor. Bunun için VMWare veya VirtualBox kullanabilirsiniz.
3. Nereden Başlamalı, Neler Öğrenmeli?
Önceki maddede, CTF pratiği yapabileceğiniz birkaç platformdan bahsetmiştik. Bu platformlarda bulunan CTF’ler, farklı zorluklarda ve farklı yetkinlik seviyelerine göre kategorize edilmiş haldedir.
CTF’in ne olduğunu, nerelerde ve nasıl pratik yapacağımızı biraz anladık. Peki bu pratikler için ne gibi hazırlıklar yapmalıyız, neler öğrenmeliyiz ve nelere dikkat etmeliyiz?
- İşletim Sistemi Seçimi: Siber güvenlik dünyasında olmazsa olmazımız Linux Kernel. Linux kernel üzerine geliştirilmiş Kali Linux ve BlackArch (Arch Linux temeli) dağıtımları, bu alanda çalışmalar gerçekleştirmek için özel olarak hazırlanmış sistemlerdir. Bu sistemler ile birlikte, sızma testlerinde kullanabileceğiniz birçok araç ve ortam hazır olarak gelmektedir.
Eğer halihazırda Windows/Mac kullanıcısı iseniz merak etmeyin, bu dağıtımları VMWare veya VMBox gibi ortamlara sanal olarak kurabilir ve çalışabilirsiniz.
- Temel Ağ Bilgisi: CTF’ler ve Ethical Hacking alanında ilerlemek için en önemli şeylerin başında ağ bilgisi gelmekte. Bir ağ üzerindeki cihazların, aralarındaki iletişimin nasıl gerçekleştiğini, ağ teknolojilerinin neler olduğunu ve ağ protokollerinde bilgi sahibi olmanız önemlidir. Eğer bu alanda henüz bir bilgi birikiminiz yok ise; bunun için, udemy/coursera gibi sitelerden eğitim alabilir veya internette bulabileceğiniz kaynaklar ile kendinizi geliştirebilirsiniz.
- Temel Donanım Bilgisi: Farklı CTF’ler çözdükçe, hedef cihazın donanımsal özellikleri üzerinizde değişiklikler yapmanız, onları manipüle etmenizi gerektirecek durumlar ile karşılaşabilirsiniz. Bu sebeple temel bilgisayar donanımlarının (CPU,Storage, Ram, Keyboard vb) nasıl çalıştığı hakkında fikir sahibi olmanız gerekiyor.
- Veri Tabanı Bilgisi: CTF yarışmalarında bizden istenen bilgileri, sistemlere sızarak elde etmemiz gerektiğini biliyoruz. Bu bilgiler veri tabanları içerisinde saklanabileceği gibi, zaman zaman sistemlere girebilmek için veri tabanlarının zafiyetlerinden de yararlanmamız gerekebilmekte. Bu sebeple farklı veri tabanları nelerdir, nasıl oluşturulur ve nasıl çalışır bilmek faydalı olacaktır.
- Kriptoloji: Erişmek istediğimiz bilgiler her zaman açık bir şekilde tutulmuyor olabilir. Bu durumlarda, bu verileri elde edebilmek için temel kriptografi bilgisi CTF çözmek ve Ethical Hacking için olmazsa olmaz gereksinimlerimizden biridir.
- Programlama Bilgisi: Yine bir diğer önemli maddemiz programlama bilgisi. Farklı cihazlarda çalışan yazılımları anlayabilmek, scriptleri/kodları okuyabilmek, ne yaptıklarını anlamak; gerektiğinde bunları kendi işimize yarayacak şekilde değiştirmek, manipüle etmek bizim için çok gereklidir. Bu amaçla Python, Ruby, JavaScript, C gibi dillerin en az birinde veya birkaçında deneyim kazanmanızı öneririm.
Yukarıdaki gereksinimlere ek olarak, bu alanda ilerleyebilmek için sabırlı olmalı ve düzenli çalışmanız gerekmektedir. Başlangıçtan itibaren, pratik yaparak yeni şeyler öğrendikçe, karşınıza çıkacak CTF’leri tamamlamanız günlerinizi alabilir.
Bu yazıda CTF’in ne olduğundan, nerelerde pratik yapabileceğinizden ve CTF çözmek için ne gibi özelliklere sahip olmanız gerektiğinden bahsetmeye çalıştım. Bir sonraki yazımda, Ethical Hacking alanında ve CTF çözümlerinde sıkça kullanılan araç ve framework’lerden bahsedecek ve örnek bir CTF çözümü gerçekleştireceğim.