Siber güvenlik dünyasını keşfederken CTF yarışmalarını duymuş olabilirsiniz. Elbette kendi kendinize, fiziksel bir CTF oyununun siber güvenlik dünyasıyla ilgili olamayacağını düşünüyorsunuz. Peki, gerçekten CTF yarışması nedir?
CTF nedir?
Fiziksel bir CTF oyunu nasıl gerçek bir bayrağı ele geçirmeyi içeriyorsa, siber güvenlik CTF'leri de dijital bir bayrağı ele geçirmeyi içerir. Bu dijital bayrak, savunmasız bir uygulama içinde gizlenmiş PwnLabCTF{[a-zA-Z0-9_-]{12,40}} gibi bir dizi karakter kadar basit olabilir. Bu tür bayrakları elde etmek için ekipler, sistemleri veya uygulamaları hacklemek için beceri ve bilgilerine güvenmek zorundadır. Her oyunda olduğu gibi, birden fazla varyasyon vardır.
CTF Türleri
CTF yarışmaları, Jeopardy ve Attack and Defence en popüler olanları olmak üzere çeşitli formatlarda gerçekleştirilebilir.
Jeopardy
Jeopardy CTF'ler belki de piyasadaki en popüler CTF formatıdır. Farklı alanlardan çeşitli zorluklarla, katılımcılar hangi zorlukları çözeceklerini seçebilirler. Bir görevin çözülmesi, daha sonra puanlarla değiştirilebilecek bir bayrak verir. Doğal olarak, daha zor görevler daha kolay görevlere göre daha fazla puan kazandırır. Süre içerisinde en fazla puanı toplayan takım veya katılımcı CTF'in galibi ilan edilecektir.
Jeopardy CTF'lerin bazı varyasyonları dinamik puanlama kullanımını içerir; burada bir mücadelenin puanları, mücadelenin sahip olduğu çözüm sayısına göre belirlenir. Yüzlerce çözüme sahip daha kolay bir challenge, bir ya da iki çözüme sahip daha zor bir challenge kıyasla daha düşük bir puan verecektir. Bir kez daha, süre içinde en fazla puanı toplayan takım veya katılımcı kazanan ilan edilecektir.
Jeopardy CTF'lerin bazı varyasyonları dinamik puanlama kullanımını içerir; burada bir mücadelenin puanları, mücadelenin sahip olduğu çözüm sayısına göre belirlenir. Yüzlerce çözüme sahip daha kolay bir challenge, bir ya da iki çözüme sahip daha zor bir challenge kıyasla daha düşük bir puan verecektir. Bir kez daha, süre içinde en fazla puanı toplayan takım veya katılımcı kazanan ilan edilecektir.
Attack & Defence
Jeopardy CTF'lerinin aksine, Saldırı ve Savunma CTF'leri tamamen farklıdır. Burada, takımlara savunmasız uygulamalar çalıştıran sistemlerin bulunduğu kendi ağları verilir. Takımlar kendi sistemlerini savunarak veya rakiplerinin sistemlerini istismar ederek puan kazanabilirler. Saldırı ve Savunma CTF'leri güvenlik açığı araştırma becerileri, adli tıp ve diğer mavi takımla ilgili becerileri vurgular, çünkü biri rakibinizin saldırılarını yakalayabilir ve bunları tekrarlayabilir. Bu nedenle, iyi bir ekip çalışması ve zaman yönetimi gerektiren, hizmetlerine saldıran ve savunan ekiplerle gerçekten bir zeka savaşıdır. Jeopardy CTF'lere benzer şekilde, kazanan, süre içinde en fazla puanı toplayan takım veya katılımcıdır.
CTF Kategorileri
CTF modunun türü ne olursa olsun, tüm zorluklar ve savunmasız uygulamalar farklı kategorilerde sınıflandırılabilir. En yaygın olanlardan bazıları kriptografi, web, binary vb.
Cryptography
Çoğu kriptografi mücadelesi ya simetrik ya da asimetrik şifrelemeyi içerir. Simetrik şifreleme tipik olarak tamamen bitsel manipülasyona dayanır. Bu nedenle, bu tür kriptosistemleri anlamak ve kullanmak için çok az ön koşul bilgisi gerekir. Ancak asimetrik şifreleme, sayı teorisinde bazı önkoşul bilgileri gerektiren daha ağır bir matematik içerir. Bu tür kriptosistemleri anlamak ve kullanmak için matematiğin belirli bir alanında aşinalık gerekir. Bazen, bir zorluğun çözümü belirli bir saldırıyı detaylandıran araştırma makalelerinde bulunabilir.
Web
Günümüz web siteleri genellikle diğer hizmetlerin yanı sıra bir web sunucusu, veritabanı ve bir uygulama programlama arayüzü (API) içerir. Zorluklar yukarıdaki tüm bileşenleri içermeyebilir ancak yukarıdaki bileşenlerin bilgisi web istismarında faydalıdır. Çoğu zaman, web zorlukları dile özgü veya çerçeveye özgü hatalar, komut dosyası oluşturma, veritabanları ve diğer alana özgü bilgiler hakkında bilgi sahibi olmayı gerektirir. Endişelenmeyin, web istismarı dünyasına başlamak için ihtiyacınız olan tek şey bir tarayıcıdır. Web istismarına daha fazla girdikçe, Burp Suite veya Zap gibi araçlar ağ isteklerinin keşif ve manipülasyonunu gerçekleştirmede faydalı olacaktır.
Binary
Normal bir masaüstünde web ile ilgili olmayan düzinelerce hizmet çalışır ve bunların hepsi uzak sistemde çalışan binarylerle açık iletişim sağlar. Bu tür binarylerdeki güvenlik açıkları, en kötüsü kötü amaçlı kodun yürütülmesi olmak üzere ciddi etkilere sahip olabilir. CTF'lerde, katılımcılar meydan okuma binarysini ve binarynin uzak bir dağıtımının bağlantı ayrıntılarını alırlar. Bu küçük ölçekli binarylere kaynak kodu eşlik edebilir, ancak genellikle durum böyle değildir ve katılımcılar bunun yerine savunmasız kod parçalarını keşfetmek için tersine mühendislik yapmak zorunda kalacaklardır. Puan kazanmak için, sistemden bayrağı dışarı sızdırmak için binarynin uzak bir örneğini istismar etmek gerekecektir. Binary kod istismarındaki yaygın istismarlar arasında Buffer Overflows, Integer Overflows, Return Orientated Programming (ROP), Heap exploits, Shellcode vb. yer almaktadır. IDA ve Ghidra gibi derleyiciler ve GDB gibi hata ayıklayıcılar, Python ve Pwntools kütüphanesi ile istismar komut dosyaları oluşturmaya yardımcı olarak güvenlik açıklarını bulmada yararlıdır.
Reverse Engineering
Reverse Engineering, başkası tarafından gizlenmiş olan kodu anlama sanatıdır. Elbette CTF'ler hiçbir zaman size kaynak kodu verecek kadar nazik olmayacaklardır - bunun neresi eğlenceli? Kaynak kodun derlenmesiyle oluşturulan, zorlukla anlaşılabilir ve gizlenmiş kodun size ızdırap çektirmesini sessizce bekleyebilirsiniz. Reverse Engineering, ister basit bir XOR şifrelemesi veya RC4 şifrelemesi olsun, ister özel bir karma algoritması kadar karmaşık bir şey olsun, kod kalıplarını tanıma yeteneği gerektirir. CTF'ler hayatınızı cehenneme çevirmeye çalışsa da Ghidra, IDA veya Binary Ninja gibi kod çözücüler ve GDB gibi hata ayıklayıcılar bayrağa giden yolu tersine çevirmenize yardımcı olacaktır!
Forensics
Forensics kulağa web istismarı veya binary istismar kadar çekici gelmese de, siber güvenlik endüstrisinde son derece yararlı bir beceridir. CTF'ler genellikle ağ adli bilimi, disk adli bilimi, dosya formatları ve bellek adli bilimi konularında bilgi sahibi olmayı gerektirir. Ağ adli bilimi, bir sistemden geçen ağ trafiğini anlamlandırmak için Wireshark gibi araçların kullanılmasını içerir. Disk adli bilişiminde, katılımcılar sabit diskler gibi dijital depolama aygıtlarından adli bilişim bilgilerini çıkarmakla görevlidir. FTK Imager gibi araçlar genellikle disk adli bilişiminde kullanılır. Herhangi bir sistemin belleği bilgi ile doludur ve bellek adli bilimi, bir sistemin bellek dökümlerinden bilgi çıkarma sanatıdır. Burada tercih edilen araç Volatility'dir. Hangi zorluk olursa olsun, dosyaları analiz etmek ve onarmak için dosya formatları hakkında bilgi sahibi olmak şarttır. Genellikle bayraklar dosyaların içinde gizlidir.
Steganography
Steganography, bir dosya, mesaj, görüntü veya video içinde bilgi gizleme veya gizleme uygulamasıdır. Bu tür gizleme yöntemleri araçlar ya da özel bir yöntem aracılığıyla yapılabilir. Bayrak genellikle katılımcıların analiz etmesi ve daha sonra çıkarması gereken dosyalarda gizlenir. Steganografi zorlukları bazen Adli Tıp kategorisine dahil edilebilir.
Mobile
Mobile challengelarda, imkansız bir oyunu kazanmak veya uygulama içinde gizlenmiş çeşitli sırları bulmak gibi çeşitli hedeflere ulaşma görevi verilebilir. Tersine Mühendislik veya Binary İstismara çok benzer, ancak challenge bir telefonda çalışıyor. Çoğu challenge, APK dosyası biçiminde yayınlanan Android uygulamalarıdır, tersine mühendislik için bir Java derleyicisi gerekir ve Frida ile hata ayıklanabilir.
Miscellaneous
Yukarıda açıklanan bu kadar çok kategori varken, daha fazlası olamaz, değil mi? CTF'lerde, yukarıdaki kategorilere uymayan zorluklar Miscellaneous kategorisi altında sınıflandırılır. Miscellaneous kategorisi altında sınıflandırılan zorluklar arasında programlama zorlukları, sinyal istihbaratı ve diğer birçok rastgele benzeri görülmemiş zorluk yer alır. Bunlara hazırlanmanın kesin bir yolu yoktur, ancak bu tür zorlukların çözülmesi için sadece basit mantık, bilgi ve sabır gerekir.
Cryptography
Çoğu kriptografi mücadelesi ya simetrik ya da asimetrik şifrelemeyi içerir. Simetrik şifreleme tipik olarak tamamen bitsel manipülasyona dayanır. Bu nedenle, bu tür kriptosistemleri anlamak ve kullanmak için çok az ön koşul bilgisi gerekir. Ancak asimetrik şifreleme, sayı teorisinde bazı önkoşul bilgileri gerektiren daha ağır bir matematik içerir. Bu tür kriptosistemleri anlamak ve kullanmak için matematiğin belirli bir alanında aşinalık gerekir. Bazen, bir zorluğun çözümü belirli bir saldırıyı detaylandıran araştırma makalelerinde bulunabilir.
Web
Günümüz web siteleri genellikle diğer hizmetlerin yanı sıra bir web sunucusu, veritabanı ve bir uygulama programlama arayüzü (API) içerir. Zorluklar yukarıdaki tüm bileşenleri içermeyebilir ancak yukarıdaki bileşenlerin bilgisi web istismarında faydalıdır. Çoğu zaman, web zorlukları dile özgü veya çerçeveye özgü hatalar, komut dosyası oluşturma, veritabanları ve diğer alana özgü bilgiler hakkında bilgi sahibi olmayı gerektirir. Endişelenmeyin, web istismarı dünyasına başlamak için ihtiyacınız olan tek şey bir tarayıcıdır. Web istismarına daha fazla girdikçe, Burp Suite veya Zap gibi araçlar ağ isteklerinin keşif ve manipülasyonunu gerçekleştirmede faydalı olacaktır.
Binary
Normal bir masaüstünde web ile ilgili olmayan düzinelerce hizmet çalışır ve bunların hepsi uzak sistemde çalışan binarylerle açık iletişim sağlar. Bu tür binarylerdeki güvenlik açıkları, en kötüsü kötü amaçlı kodun yürütülmesi olmak üzere ciddi etkilere sahip olabilir. CTF'lerde, katılımcılar meydan okuma binarysini ve binarynin uzak bir dağıtımının bağlantı ayrıntılarını alırlar. Bu küçük ölçekli binarylere kaynak kodu eşlik edebilir, ancak genellikle durum böyle değildir ve katılımcılar bunun yerine savunmasız kod parçalarını keşfetmek için tersine mühendislik yapmak zorunda kalacaklardır. Puan kazanmak için, sistemden bayrağı dışarı sızdırmak için binarynin uzak bir örneğini istismar etmek gerekecektir. Binary kod istismarındaki yaygın istismarlar arasında Buffer Overflows, Integer Overflows, Return Orientated Programming (ROP), Heap exploits, Shellcode vb. yer almaktadır. IDA ve Ghidra gibi derleyiciler ve GDB gibi hata ayıklayıcılar, Python ve Pwntools kütüphanesi ile istismar komut dosyaları oluşturmaya yardımcı olarak güvenlik açıklarını bulmada yararlıdır.
Reverse Engineering
Reverse Engineering, başkası tarafından gizlenmiş olan kodu anlama sanatıdır. Elbette CTF'ler hiçbir zaman size kaynak kodu verecek kadar nazik olmayacaklardır - bunun neresi eğlenceli? Kaynak kodun derlenmesiyle oluşturulan, zorlukla anlaşılabilir ve gizlenmiş kodun size ızdırap çektirmesini sessizce bekleyebilirsiniz. Reverse Engineering, ister basit bir XOR şifrelemesi veya RC4 şifrelemesi olsun, ister özel bir karma algoritması kadar karmaşık bir şey olsun, kod kalıplarını tanıma yeteneği gerektirir. CTF'ler hayatınızı cehenneme çevirmeye çalışsa da Ghidra, IDA veya Binary Ninja gibi kod çözücüler ve GDB gibi hata ayıklayıcılar bayrağa giden yolu tersine çevirmenize yardımcı olacaktır!
Forensics
Forensics kulağa web istismarı veya binary istismar kadar çekici gelmese de, siber güvenlik endüstrisinde son derece yararlı bir beceridir. CTF'ler genellikle ağ adli bilimi, disk adli bilimi, dosya formatları ve bellek adli bilimi konularında bilgi sahibi olmayı gerektirir. Ağ adli bilimi, bir sistemden geçen ağ trafiğini anlamlandırmak için Wireshark gibi araçların kullanılmasını içerir. Disk adli bilişiminde, katılımcılar sabit diskler gibi dijital depolama aygıtlarından adli bilişim bilgilerini çıkarmakla görevlidir. FTK Imager gibi araçlar genellikle disk adli bilişiminde kullanılır. Herhangi bir sistemin belleği bilgi ile doludur ve bellek adli bilimi, bir sistemin bellek dökümlerinden bilgi çıkarma sanatıdır. Burada tercih edilen araç Volatility'dir. Hangi zorluk olursa olsun, dosyaları analiz etmek ve onarmak için dosya formatları hakkında bilgi sahibi olmak şarttır. Genellikle bayraklar dosyaların içinde gizlidir.
Steganography
Steganography, bir dosya, mesaj, görüntü veya video içinde bilgi gizleme veya gizleme uygulamasıdır. Bu tür gizleme yöntemleri araçlar ya da özel bir yöntem aracılığıyla yapılabilir. Bayrak genellikle katılımcıların analiz etmesi ve daha sonra çıkarması gereken dosyalarda gizlenir. Steganografi zorlukları bazen Adli Tıp kategorisine dahil edilebilir.
Mobile
Mobile challengelarda, imkansız bir oyunu kazanmak veya uygulama içinde gizlenmiş çeşitli sırları bulmak gibi çeşitli hedeflere ulaşma görevi verilebilir. Tersine Mühendislik veya Binary İstismara çok benzer, ancak challenge bir telefonda çalışıyor. Çoğu challenge, APK dosyası biçiminde yayınlanan Android uygulamalarıdır, tersine mühendislik için bir Java derleyicisi gerekir ve Frida ile hata ayıklanabilir.
Miscellaneous
Yukarıda açıklanan bu kadar çok kategori varken, daha fazlası olamaz, değil mi? CTF'lerde, yukarıdaki kategorilere uymayan zorluklar Miscellaneous kategorisi altında sınıflandırılır. Miscellaneous kategorisi altında sınıflandırılan zorluklar arasında programlama zorlukları, sinyal istihbaratı ve diğer birçok rastgele benzeri görülmemiş zorluk yer alır. Bunlara hazırlanmanın kesin bir yolu yoktur, ancak bu tür zorlukların çözülmesi için sadece basit mantık, bilgi ve sabır gerekir.
CTF için ipuçları
Tüm bu bilgiler ışığında, bir CTF'e nasıl hazırlanacağınız konusunda endişeleniyor olabilirsiniz. İşte CTF'lere katıldığımız zamanlardan derlediğimiz bazı ipuçları.
Google'da aramaya devam edin
Forumlarda doğrudan yardım istemenin dışında, çoğu CTF'de Google kullanma konusunda herhangi bir kısıtlama yoktur. Basit zorluklar için, geçmiş CTF'lerden, zorluğu çözme sürecinin tamamında size rehberlik edebilecek yazılar bile bulabilirsiniz. İyi bilinen problemlerin CTF mücadelesi olarak kullanılabilecek çok fazla yinelemesi vardır.
Pratik, Pratik, Pratik
İyi olmak için pratik yapmaya devam etmekten daha iyi bir yol yoktur. Bir CTF, çözülen zorluk sayısı veya kazanılan puanlardan daha fazlasıdır. Aksine, mücadeleyi çözme süreci çok daha önemlidir. Görevi çözmeye çalışırken sadece makaleleri, forumları ve blogları okuyarak bile bilginizi genişletebilirsiniz.
Bir challenge'ı çözmeyi başaramamış olsanız bile, başkalarının challenge hakkındaki yazılarını okuyun - belki de challenge hakkında benzersiz bir bakış açıları vardı veya sizin gözden kaçırdığınız önemli bir fikir buldular. Challenge her zaman challenge'ları çözmek için kullanılan yeni teknikler hakkında okuyun ve ister web, ister pwn veya cryptography olsun, altta yatan sistemin nasıl çalıştığı hakkında daha derin bilgi edinin.
CTF platformlarını konu aldığımız yazımıza buradan ulaşabilirsiniz. En İyi CTF Platformları
Aynı zamanda CTF becerilerinizi test etmek için ctf.pwnlab.me portalımızda alıştırmalar yapabilirsiniz.
Bir challenge'ı çözmeyi başaramamış olsanız bile, başkalarının challenge hakkındaki yazılarını okuyun - belki de challenge hakkında benzersiz bir bakış açıları vardı veya sizin gözden kaçırdığınız önemli bir fikir buldular. Challenge her zaman challenge'ları çözmek için kullanılan yeni teknikler hakkında okuyun ve ister web, ister pwn veya cryptography olsun, altta yatan sistemin nasıl çalıştığı hakkında daha derin bilgi edinin.
CTF platformlarını konu aldığımız yazımıza buradan ulaşabilirsiniz. En İyi CTF Platformları
Aynı zamanda CTF becerilerinizi test etmek için ctf.pwnlab.me portalımızda alıştırmalar yapabilirsiniz.