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


Tuesday, July 21, 2020

NAVTEX nedir? yunanistan’a savaş mı ilan ettik?



Aşağıdaki haberi görmüş olabilirsiniz: 
 

 

“Türkiye NAVTEX ilan etti” haberinin üzerine Twitter bildiğiniz gibi; Türk hesaplar: “su nasıl Dimitri ekiekieki?”, yunan hesaplar: “MOLON LABE!”… 

NAVTEX nedir? Neden ilan edilir? 
NAVTEX orta dalgada yayın yapan ve seyir ve meteoroloji bilgilerinin paylaşıldığı bir mesaj formatıdır. Benim gibi yaşı yetenler TELEX mesajlarını hatırlayabilir; NAVTEX tam olarak “Navigational Telex” anlamına geliyor zaten. NAVTEX “direct printing” mesajlarından oluştuğu için gelen mesaj küçük bir yazıcıdan doğrudan çıkartılır.Kısacası NAVTEX savaş veya konkordato gibi "ilan edilen" özel bir durum değildir, TRT'nin Teletext'i gibi sürekli yayın yapan istasyonlardan gelen mesajlardır.

NAVTEX mesajı neye benzer?
Şu anda Ankara’da olduğum için SDR ile NAVTEX mesajı yakalama imkanım olmadığı için bu amaçla internette bulunan bir siteden faydalanıp gerçek NAVTEX mesajlarına bakacağız.
Aşağıda örnek birkaç NAVTEX mesajına bakalım


 

 

Gördüğünüz gibi “deniz fenerinin ışığı yanmıyor, dikkat edin” veya “bir gemi 16 temmuz - 6 ağustos tarihleri arasında bilimsel araştırmalar yapacak” tadında mesajlar. 

“Ege’de sular ısınıyor?” moduna geçmemize neden olan nedir? 

Önce bizim mesaj:


Gördüğünüz gibi tipik NAVTEX formatında ve kolay okunabilir bir mesaj. Mesajın İngilizcesi de burada;


Peki yunan NAVTEX’i ne diyor?
Yunan Irakleio istasyonu tarafından yayımlanan mesaj da aşağıda


Kendi bölgelerinde izinsiz NAVTEX yayını yapıldığını, bu bölgede NAVTEX mesajı yayımlayabilecek tek yetkili merkez olduklarını ve “FA10-977/20” numaralı mesajın dikkate alınmaması gerektiğini duyurmuşlar. "977/20" tanıdık geldi mi? Evet, bizimkilerin yayımladığı NAVTEX mesajının numarası!

Bölgede ne oluyor?
Dünyanın herhangi bir noktasında deniz trafiğini izlemenizi sağlayan birçok site var, bunlardan bir tanesinden NAVTEX mesajına konu Oruç Reis araştırma gemisini aradığımızda Antalya limanında görünüyor.


An itibariyle bölgede deniz trafiği normal görünüyor.  
Denize meraklı olanlar https://www.marinetraffic.com/ adresinden eş-dost teknelerinin de konumlarını bulabilirler. Örneğin geçtiğimiz yıllarda tekne yarışlarına katıldığım "Wind Rider" şu anda Marmaris civarında görünüyor:


Gemi hacklemek
Bundan bir süre önce Rusların GPS uydu sinyallerini nasıl bozduğu ve bunu gemileri yanlış yönlendirmek için nasıl kullandığını yazmıştım. Denizin ortasında bulunan bir gemiye GPS dışında bir yöntemle ulaşmak mümkün müdür?

Günümüzde gemiler seyir, iletişim ve meteoroloji gibi pek çok konuda dış dünyayla sürekli iletişim halindedir. Hackerların arama motoru olarak bilinen SHODAN gemilerin uydu bağlantısında kullandığı INMARSAT bağlantılarını da listelemektedir. Bununla ilgili bir arama yaptığımızda internete doğrudan bağlı 2,038 sistem görünmektedir;

Bunlara yakından baktığımızda aslında durumun internetten farklı olmadığını görüyoruz. Örneğin aşağıdaki gemiye uydu üzerinden hem SSH bağlantısı hem de HTTP bağlantısı olduğunu görüyoruz.

Üstelik ilgili sistemler çok sayıda bilinen güvenlik zafiyetinden etkileniyormuş gibi duruyor. Sanırım gemi güncellemek Windows güncellemek kadar kolay olmuyor. 

Bu durumda internet üzerinden geminin doğrudan hedef alınması ve “hacklenmesi” mümkün gibi duruyor. Yakında gemileri hedef alan fidye yazılımlarını duymaya başlarsak şaşırmayalım.





Görünen o ki aslında “NAVTEX” ilan edilen bir şey değil, normalde sıkça yayımlanan uyarı mesajlarıdır. Buna karşılık ilgili mesajın devam eden gerginliğin üzerine gelmesi durumu biraz daha alevlendirmiş gibi duruyor. 

Her zaman olduğu gibi, bu örnekte de gördüğümüz; internete bağlı herhangi bir şeyiniz varsa, buna gemileriniz de dahil, mutlaka gerekli güvenlik tedbirlerinin alınması gerekiyor çünkü siz farkında olmasanız bile birileri bunlara ulaşabiliyor
 
Kaynaklar:

Not: Yazım hatası yok, yunan ve yunanistan kelimelerini büyük harfle yazmıyorum.