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?


Monday, July 27, 2020

Bu hataları yapmayın! Memleketimden Parola Manzaraları


Geçtiğimiz hafta Türkiye’de faaliyet gösteren bir siteden sızan 18.000 civarında kullanıcı adı ve parola bilgisini inceledim. Site online satış yapmadığı için rahat olunuz. Ancak bu olay bize parola kullanımı konusunda dikkat etmemiz gereken noktaları bir kez daha gösterdi. Yabancı kaynaklardan Google Translate marifetiyle tarzanca yazılmış bol miktarda “siber güvenlik haberi” sitesinde gördüğünüz “en çok kullanılan parola 123456” haberlerinin çoğunlukla yurtdışından sızan verilere dayalı olduğunu biliyoruz. Bu nedenle Türkiye’den bir sızıntı bizim neleri yanlış yaptığımızı anlamak için önemli bir fırsat olabilir.




Önce birkaç not:

  1. Sızanlardan derlediğim kötü parola örneklerini derledim, bunları elbette maskeledim (Sena Nur Mandalina diye biri yok)
  2. Örneklerdekilere benzer parolalar kullanıyorsanız bundan vazgeçmeniz lazım
  3. Örneklerin sonuna rakam, özel karakter, vb. eklemiş olmanız parolanızı buradaki örneklerden daha güvenli hale getirmez
  4. İmkân veren bütün sosyal medya ve üyelikle girdiğiniz sayfada 2 kademeli kimlik doğrulamasını devreye alın
  5. Bir sitede kullandığınız parolayı başka sitede kullanmayın
  6. Parolalarınızı düzenli olarak değiştirin
  7. Daha güvenli bir parola için ipuçlarını https://sparta.com.tr/makaleler/parola-guvenligi-icin-onemli-adimlar/ adresinden okuyabilirsiniz
Gelelim memleketimden kötü parola manzaralarına 
(Alfabetik sıraya dizilmiştir, en sık rastladığım hataları ele aldım, liste uzatılabilir) 
  1. Sananelan” iyi bir parola değil
  2. "123456" iyi bir parola değil
  3. "123abc" iyi bir parola değil
  4. "123qwe" iyi bir parola değil
  5. 1985 doğumluysanız ve adınız Didem ise "Didem85" veya "Didem1985" iyi parolalar değil
  6. "1q2w3e4r5t" iyi bir parola değil
  7. "1q2w3e4r5t6y" iyi bir parola değil
  8. 2020 yılında Aras 7 yaşında! Diye paylaşım yapıyorsanız "Aras2013" iyi bir parola değil
  9. "29101923" şeklinde yazılmış hiçbir tarih iyi bir parola değil
  10. Adınız Cemal ise "cemalim" iyi bir parola değil
  11. Adınız Cemal ise "cemcem34" iyi bir parola değil
  12. Adınız Cemal ise "cemo123" iyi bir parola değil
  13. Adınız Elmas ise "diamond" iyi bir parola değil
  14. Adınız Hasan ise "Hasan1" iyi bir parola değil
  15. Adınız Sena Nur Mandalina ise "SNM2020" veya "SNM1996" iyi parolalar değil
  16. Adınız Volkan Mandalina ise "*VolkanMandalina*" (yıldızlarıyla birlikte) iyi bir parola değil
  17. Adınız Yeliz ise "yeliz19" iyi bir parola değil
  18. Annenizin adı Hatice, Babanızın adı Hasan ise "HaticeHasan" iyi bir parola değil
  19. Arabanız BMW 3.20 ise ve bütün profil fotoğraflarınızda arabanız görünüyorsa "Alican320" (veya "Alican3.20") iyi bir parola değil
  20. Araç plakanız iyi bir parola değil
  21. Belli bir araba modeline hayranlığınız varsa “UzayKasaBMWci” iyi bir parola değil
  22. Çalıştığınız kuruluşun adı iyi bir parola değil, kuruluş tarihini ekleseniz bile
  23. Çalıştığınız kuruluşun marka ürününün adı iyi bir parola değil
  24. Doğduğunuz, büyüdüğünüz veya yaşadığınız şehrin adı iyi bir parola değil
  25. Futbol takımı adı iyi bir parola değil
  26. Futbol takımının sembol hayvanı, özellikle profil fotoğrafınızda forma veya atkı varsa, iyi bir parola değil
  27. Istanbulluysanız “Istanbullu” iyi bir parola değil, “Kayserili” de değil, “Angarali” da değil
  28. Kuruluş personel kimlik numaranız iyi bir parola değil
  29. Mail adresiniz adınızın sessiz yazılmış haliyse slymn ise "suleyman" iyi bir parola değil (bu kuralın tersi de geçerlidir)
  30. Mail adresiniz Banucuum_666 ise "banu666" İyi bir parola değil
  31. Öğrenci numaranız iyi bir parola değil
  32. "Soyadiniz1!" İyi bir parola değil
  33. TC Kimlik numaranız iyi bir parola değil
  34. Tekrar eden 3 harf ("lanlanlan", vb) iyi bir parola değil
  35. Twitter profilinizde Esra ve Emre’nin babası/annesi yazıyorsa "esraemre" iyi bir parola değil
  36. Üye olduğunuz sitenin adı iyi bir parola değil


MITRE ATT&CK Gerçek Hayatta Ne İşimize Yarar?

  Rusya kaynaklı siber saldırılar webinarı sırasında üzerinde durduğum önemli bir çalışma vardı. MITRE ATT&CK matrisini ele alıp hangi...