Tuesday, July 28, 2020

Siber Güvenlik için Hangi Yazılım Dili?


Kısa cevap “hepsi”, hemen anlatıyorum. 



Siber güvenlik’te sızma testi alanında çalışıyorsanız yazılım dilleri hayatınıza 3 senaryo dahilinde giriyor; 
  1. Kendi araçlarınızı yazmak
  2. Yazılmış araçları anlamak
  3. Kaynak kod analizi çalışmaları


Kendi aracınızı yazmak için


Kendinizi rahat hissettiğiniz herhangi bir dil olur. Python ile yazılmış çok sayıda hazır araç olması, kütüphanelerinin bolluğu ve hemen her konuda en az bir blog yazısı bulabiliyor olmanız kendi araçlarınızı yazmak için Python’u tercih etmenize neden olabilir. 

Keylogger nasıl yazılır? 

Bir keylogger yazılımına ihtiyacımız olduğunu varsayalım, kod aşağıdaki gibi olabilir.





Nasıl çalıştığına bakacak olursak; herhangi bir tuşa basılması durumunda bu tuşun bilgisini “kayitlar.txt” isimli bir dosyaya kaydedecek. “Listener” özelliğiyle de yeni tuş hareketlerini “dinleyecek. Bu kod geliştirilebilir ama en temel haliyle işimizi görebilir. 





Aynı şeyi C’de, Go’da, Ruby’de veya aklınıza gelen herhangi bir yazılım dilinde de yazabilirsiniz. Önemli olan size kolay gelen, sevdiğiniz ve takıldığınız noktada kaynak bulabileceğiniz bir dil olmasıdır.



Yazılmış Araçları Anlamak İçin


Sızma testi veya CTF sırasında bir istismar kodu bulduğunuzu düşünelim, elbette kodu okumadan çalıştırmayacaksınız. Okurken gözünüze aşağıdaki kısım çarpıyor. 


 Ne ki bu? Hex encode edilmiş kısmı çözersek acı gerçekle karşılaşıyoruz: 

 
Evet, root yetkileriyle çalıştırdıysanız bütün bilgisayarınız, değilse “home” dizini üzücü şekilde silecek bir kod parçacığı.

Bu nedenle istismar kodları veya açık kaynak “hacking araçları” kullanılmadan önce mutlaka incelenmelidir.

İstismar kodlarının ve araçların yazıldığı dillere bakarsak genelde karşımıza C, Python, Perl ve son zamanlarda artan Go çıkacaktır. Bunların en azından ne demek istediğini, fonksiyonların işlevleri, hangi kütüphaneleri çağırdıkları ve varsa, dışarıda nereye hangi bilgileri/istekleri gönderdiklerini anlayabilecek kadar bu dilleri bilmek lazım.



Kaynak kod analizi


Uygulamanın veya basit bir Javascript kütüphanesinin kodunu okumak hedef hakkında önemli ipuçlarının yanında var olan güvenlik açıklarını da gösterir. Bu nedenle php, javascript veya .Net gibi yaygın olarak kullanılan web uygulama dillerine aşina olmak faydalı olacaktır.



Kendi araçlarınızı yazmak için kullanacağınız dile anadil diyelim. Yabancı dilleriniz de C, Go, PHP ve Javascript olsun. Anadilinizi iyi, diğerlerini de en azından ne anlatıldığını anlayacak kadar öğrenmeniz gerekiyor. 

LinkedIn’de yazılımcı arkadaşların “framework soruyorlar” diye isyan ettiğine şahit oluyorum. Peki biz ne yapalım?


No comments:

Post a Comment