Kategoriler
Teknoloji

DELL IDRAC Kurulum, Yapılandırma ve Temel Kullanım

Giriş

Amerika merkezli bilgisayar markası DELL, dünyadaki en büyük ikinci kişisel bilgisayar markası olarak bilinmektedir. Ancak yalnızca kişisel bilgisayar değil, sunucu, ağ bileşenleri, veri depolama donanımları ve çeşitli yazılımlar geliştirmektedir. Piyasaya çıkarttığı sunucular tüm dünyada kullanılmaktadır. Bunun yanı sıra ürettiği donanımların etkin kullanımı için geliştirdiği yazılımlar da bulunmaktadır.

Tasarladığı sunucuların tek merkezden envanter edilmesi, sistem durumlarının takibi ve yönetimi için de pazardaki gereksinimi karşılamak adına 1999 yılında DRAC yazılımını piyasaya sürdü. Bu yazılım sayesinde sistem ve ağ yöneticilerinin aksaklıkları tespit etmesi, olağan dışı durumlarda erken müdahale sağlaması ve sunucuya uzaktan erişilerek kullanılması amaçlandı. Aynı zamanda bu yazılım açık kaynak olarak da DELL Open Source platformunda paylaşıldı. Fakat yazılımın kullanılması için DELL donanımlarına ihtiyaç duyuluyor. 

Shodan’a göre[1] bugün, 549 adet sunucu iDRAC altyapısı kullanmaktadır. Ancak yerel ağda ve VPN üzerinden erişilen iDRAC sunucuları bu sayı ile kıyaslanamayacak kadar fazladır. 

Dell IDRAC Avantajları

  • Sunucu arızalarını önler, arıza sonrasında kurtarma çalışmalarının süresinin kısalmasını ve olası arızaların erken bildirimini sağlar.
  • Verimliliği arttırır
  • BT çalışanları için daha üretken bir ortam hazırlar.
  • Maliyeti düşürür.
  • Güvenlik önlemlerini güçlendirir.

Temel Özellikleri

DELL tarafından geliştirilen ve açılımı “Integrated Dell Remote Access Controller” olan uygulama, DELL sunucuların internet üzerinden yönetilebilmesini sağlar. Yerel ağ üzerinden veya VPN ile bağlanılabilir. Bu sayede sunucu ile fiziksel temas zorunluluğu ortadan kalkar. Bu uygulamaya bağlı cihazlar, web ara yüzü üzerinden bağlanılarak kapatılıp açılabilir, terminallerine uzaktan erişerek konfigürasyonları gerçekleştirilebilir. İşletim sistemi ve diğer kurulumlar gerçekleştirilebilir veya güncellemeler sağlanabilir.

Envanter ve durum izleme özellikleri ile sunucu sağlığı, CPU durumu ve bellek bilgileri, sıcaklık, gerilim ve izinsiz giriş gibi sensör bilgileri görüntülenebilir. Aynı zamanda güç durumu takip ve kontrol edilebilir. SNMPv3 desteği ile uyarı sistemi kurulabilir.

Versiyonları

Dell uzaktan erişim denetleyicileri genellikle yeni nesil Poweredge sunucularına bağlanıldığında gelir. Donanım ana kartına gömülü olarak gelir ve farklı sunucularda kullanılmaz. Enterprise sürümü ile birlikte özel bir fiziksel ağ interface’i gelmiştir.

Versiyon Tarih Server Açıklama
DRAC II 1999 Ekstra kart
DRAC III 2002
DRAC iV 2005 Generation 8
DRAC 5 2006 Generation 9 Ekstra kart, uzaktan konsol desteği (Firefox 1.5 gerekir)
iDRAC 6 embedded 2008 First version for blade servers Tüm sunuculardaki ana karta entegre
iDRAC 6 Express 2008
iDRAC 6 Enterprise 2008 Blade Express özelliklerinin yanı sıra vFlash SD kart yuvası
iDRAC 7 2008 Generation 12 NTP desteği, donanım tabanlı ve yeni lisanslama sistemi
iDRAC 8 2008 Generation 13 Hızlı senkronizasyon, NFC yapılandırması, UEFI güvenli boot, HTML sanal konsol
iDRAC 9 Generation 14 Hızlı senkronizasyon geliştirmesi, yeni kullanıcı arayüzü,USB portu ile iDRAC Direct

Kurulum ve Konfigürasyonlar

Kurulum

Ara yüzden erişmek için sunucudaki IDRAC portuna ağ kablosu ile bağlanmak gerekir. Varsayılan olarak 192.168.0.120 IP adresinden ara yüze ulaşılır. Açılışta system setup’a geçilerek (F2) ara yüze erişilecek IP adresi değiştirilebilir. Gelen ekranda IDRAC Settings’e tıklanır. Buradan da network seçeneğine geçilerek aşağıdaki ayarlamalar gerçekleştirilir.

IPv4 aktifleştirildi ve DHCP yerine statik IP adresi atandı. DHCP aktifleştirilerek, otomatik üzerinden de IP adresi alınması sağlanabilir. Aynı ekranda IPv6 ayarları da yer alır. Bu aşamanın sonrasında tarayıcı üzerinden iDRAC uygulamasına ulaşılabilir. 

Dokümantasyon için iDRAC 6 Enterprise kurulmuştur. Varsayılan kullanıcı adı “root”, parola ise “calvin”’dir. Güvenlik için varsayılan kullanıcı bilgilerinin değiştirilmesi gerekmektedir. Bunun için kullanıcı, başlangıçta bir uyarı ekranına yönlendirilir. “Keep Default Password” seçeneği ile devam edilmesi halinde varsayılan giriş bilgileri korunur.

Sistem Giriş Ekranı

Giriş yaptıktan sonra temel sistem bilgilerinin yer aldığı bir arayüz karşımıza çıkar. Uygulama java ile kodlanmıştır. Sistem sağlık durumu, sunucuya dair genel bilgiler tablosu, hızlı işlem seçenekleri ve uzaktan terminal bağlantısı yer alır. Sunucu terminaline bağlanmak için “launch” butonuna tıklanır ve açılır pencerede terminal ekranı gelir.

“Server Health” kısmında voltaj, CPU, iDRAC uygulaması, monitoring ve diğer sistemlerde bir hata olup olmadığı gösterilir. “Server Information” kısmında sistem modeli, hostname, işletim sistemi, BIOS ve firmware versiyonu, sunucunun IP adresi ve iDRAC6 MAC adresi yer alır.

“Quick launch tasks” menüsünden ise sunucuyu kapatıp açmak, uzaktan konsola erişmek, güncellemeleri yapmak, log kayıtlarını görmek ve iDRAC uygulamasını resetlemek mümkündür.

Sistem Detayları

Üst menüde yer alan “System Details” sayfasında ise sisteme dair daha fazla detaya erişmek mümkündür. Sunucuya dair ana sayfada verilen bilgilerin yanı sıra İşletim sistemi adı, açıklama gibi bilgiler de yer alır. Aynı zamanda input ve output cihazlar da burada sıralanır.

Uzaktan Sunucuya Log Göndermek

Setup sekmesinde yer alan sayfada ise sistemde oluşan log kayıtlarının merkezi bir log sunucusunda toplanması sağlanabilir. Enable kutusu aktifleştirildikten sonra log sunucularının IP adresi ve port numarası girilir. Syslog servisinin varsayılan port numarası olan 514 seçilidir. Kaydedildikten sonra log kayıtları daima log sunucusuna gönderilecektir.

Güç Yönetimi

Power Management menüsünde ise sistemi kapatıp açmak, yeniden başlatmak ve kibar kapatma seçenekleri yer alır. “Graceful shutdown” yani kibar kapatma seçeneği, sistemin aniden kapanarak yaşayacağı olası sorunlara karşı önlem olarak kullanılır. Sistemin şu anki durumu ise en başta yer alır. Diğer sekmede ise minimum ve maksimum potansiyel enerji durumu yer alır. Saat bazlı yapılan bu hesaba bir alt tabloda bir eşik ayarlanabilir.

Log Kayıtları

“Logs” kısmında ise sistem logları yer alır. Sunucuda olağan dışı herhangi bir durum gerçekleştiğinde ve normale döndüğünde bu ekranda yer alır. Log kayıtları lokaldeki cihaza indirilebilir ve temizlenebilir.

“Last Crash Screen” ekranında ise sunucuda görülen son hata anına dair ekran görüntüsü saklanır.

Uyarı Bildirimleri Oluşturmak ve Göndermek

“Alert Management” sekmesinde ise belirli durumlarda cihazın hangi işlemi gerçekleştireceği ayarlanır. Sistem yeniden başlatılabilir, güç kesilebilir veya yalnızca uyarı bildirimi oluşturulabilir. Bu aksiyonların uygulanabileceği durumlar ise batarya ısısının artışındaki ve voltajdaki seviyeler, genel sıcaklık artışı, olay günlüğündeki kritik log durumları ve kritik işlemci durumlarıdır. 

Diğer sayfalarda ise uyarı bildirimlerinin farklı IP adreslerine gönderilmesi veya mail atılması sağlanır. Örneğin Nagios gibi monitoring sistemlerinin IP adresi girilerek uyarı bildirimlerinin monitoring sistemlerine aktarılması sağlanır. Aynı zamanda SMTP sunucusu bilgileri ve hedef mail adresi girilerek mail üzerinden de bildirim alınması mümkündür. Acil durumlarda çalıştığından emin olmak için test bildirimlerini önceden göndererek sistemin doğru çalıştığından emin olmak faydalı olacaktır.

Uzaktan Kontrol

“Virtual Console/Media” sekmesinden ise cihazda yer alan sanallaştırma uygulamalarına ve işletim sistemi gibi ortamlara doğrudan erişilebilir. 

iDRAC Settings

Sistem ayarlarından sonra sol menüde yer alan “iDRAC settings” sayfasından uzaktan bağlantı bilgileri yer alır. Genel bilgilerin yanı sıra network, IPv4 ve IPv6 ayarları görüntülenir. Bu ayarlarda değişiklik yapmak için ise “Network/security” menüsüne geçilmesi gerekir.

Kullanıcı Düzenlemek

 

Users sekmesinden ise iDRAC uygulamasına erişebilen kullanıcıların bilgileri görüntülenir. Hesabın aktif olup olmadığı, kullanıcı adı ve yetkileri listelenir. Kullanıcıya ait daha fazla bilgi görüntülemek ve değişiklik yapmak için “User ID”’sine tıklanır.

Gelen ekrandan daha güvenli bir SSH bağlantısı için SSH key tanımlanabilir, var olan SSH key görüntülenebilir veya ilk satırdaki seçenek işaretlenerek kullanıcı bilgileri düzenlenebilir.

Kullanıcı aktif veya deaktif edilebilir. Kullanıcı adı ve parolası değiştirilebilir. Ağdaki ve iDRAC’taki yetkileri düzenlenebilir. Giriş yapma, iDRAC veya kullanıcıları konfigüre etme yetkileri tanımlanabilir. Log kayıtlarını temizleme yetkisi verilebilir. Sunucu kontrol ve diagnostik komutları çalıştırma izni verilebilir. Test uyarıları oluşturma, uzaktan medya ve uzaktan terminal erişimi seçenekleri de buradan ayarlanır. Yeni kullanıcı oluşturulmak isteniyorsa “Users” sayfasına dönülerek tablodaki boş “User ID”lerden birisine tıklanarak kullanıcı konfigürasyonu seçilir.

SSL Ekleme ve Düzenleme

SSL sekmesinden ise yeni bir SSL sertifikası oluşturulmak üzere bilgiler girilebilir veya direkt olarak sertifika dosyası yüklenebilir. Eğer daha önce bir sertifika tanımlanmışsa üçüncü seçenekle bunu görüntülemek de mümkündür. SSL sertifikası ile web trafiğini şifrelemek ve aradaki olası saldırganların ağı dinlemesi durumunda iDRAC paketlerini anlayamaması sağlanır.

Directory Servisleri Entegre Edilmesi

“Directory Service” menüsünden active directory ve LDAP servisleri konfigüre edilir, bağlantısı gerçekleştirilir. Ancak bunlardan yalnızca birinin kullanımına izin verilir.

Oturum Kontrolleri

“Sesions” sekmesinde ise iDRAC üzerindeki aktif oturumlar görüntülenir. Unutulan veya yetkisiz girişleri de buradan tespit etmek mümkündür. Her oturumun kullanıcı adı, IP adresi ve bağlantı türü burada yer alır. Oturumu iptal etmek için tablonun en sonundaki çöp kutusu ikonuna tıklamak gerekir.

Servislerin Konfigürasyonu

“Services” sekmesinden ise iDRAC’e ulaşılacak ortamların konfigüre edilmesi sağlanır. Web servisi üzerinden ulaşırken yapılabilecek maksimum bağlantılar, zaman aşımı süreleri, HTTP ve HTTPS port numaraları buradan ayarlanır. SSH, telnet, SNMP gibi servislerin de benzer özelliklerini aktif ederek kullanmak mümkündür.

iDRAC Logları

“Logs” sekmesinde ise zaman damgaları ile beraber SSH, web arayüzü, tlnet ve diğer servisler üzerinden giriş ve çıkış yapan kullanıcılar IP adresi ve kullanıcı adı ile birlikte listelenir. En alt kısımda logları temizlemek veya indirmek için iki seçenek yer alır.

Sistem Sağlık Durumları

Sol menüde yer alan “batteries” üzerinden batarya sağlık durumu,”temperatures” üzerinden sistem ısı durumu, “voltages” üzerinden donanımların voltaj sağlık durumu ve CPU menüsünden de CPU sağlık durumu takip edilebilir. 

Güç Takibi

“Power monitoring” sayfasından ise sistem voltaj durumları detaylı görüntülenir. Uyarı ve zarar görme durumları için azami voltaj gösterilir. Ortalama, minimum ve maksimum güç tüketimi de burada yer alır. Maksimum ve minimum güç tüketiminin bulunduğu tarihler belirtilir. iDRAC, “Show graph” seçeneği ile anlık grafik olarak görme imkanı verir.

Kaynaklar

Kategoriler
Siber Güvenlik

DHCP Snooping

Bir şirketin ethernet portuna modemi bağlasak, DHCP yayını yapsak, “Bundan sonra bu ağın yeni DHCP serveri benim, IP almak için paşa paşa benim ayağıma geleceksiniz” desek, IP adreslerini biz dağıtsak ne olur? Belki bunun için modeme bile gerek yok. DHCP server kurmak ve çalıştırmak yeterli.

DHCP (Dynamic Host Configuration Protokol) Nedir?

Öncelikle DHCP nedir ve nasıl çalışır kısaca bundan bahsedelim. Biz bir ağa bağlandığımızda bize bir IP adresi atanmalı. Aksi takdirde bağlandığımız ağda mülteci durumuna düşeriz keza bize bir kimlik atanmamıştır. Burada devreye DHCP girer. Bize bir IP adresi yanı sıra ağ maskesi, ağ geçidi, DNS adresi gibi bilgileri atar. Böylece sistem yöneticisi, her seferinde ağa bağlananlara IP adresi atamakla uğraşmaz. Kullanıcı tarafında da hiçbir ek ayara gerek kalmaz. IP adresi çakışmaları yaşanmaz. Ağda hangi VLAN’dayız, daha önce bize bir IP adresi atanmış mı, yenisini vermek lazım mı her şey DHCP tarafında hallolur. DHCP’ye önceden “Bu MAC adresi bağlanırsa, şu IP adresini ver” denmediyse rastgele olarak IP adresi atar. DHCP’nin atayacağı IP adresi aralıklarını da ayarlamak mümkündür. Aynı zamanda bilgi-işlem’e şu IP aralığını, muhasebeye bu IP aralığını ata gibi seçenekler de uygulanabilir.

DORA Süreci

Discover süreci: Ağa bağlandığımızda tüm ağa DHCPDISCOVER paketi gönderilir. Yani bilgisayarımız DHCP var mı, varsa hanginiz diye ağa sorar. Broadcast gönderilen pakette cihazımızın MAC adresi yer alır.

Offer: Bu paket DHCP servera ulaştığında server, kendini tanıtmak için kullanıcıya bir paket hazırlar. İçerisinde kendisinin IP adresi, MAC adresi ve karşı tarafın MAC adresi bulunur. Ben buradayım, IP adresi istiyorsan hemen atayayım diye dönüş yapar diyebiliriz.

Request: Kullanıcı bu isteği aldıktan sonra IP atanmasını onayladığını DHCP servera iletir.

Acknowledgement: Daha sonra DHCP server, kullanıcıya IP adresi ve gerekli diğer bilgilerinin yer aldığı paketi gönderir.

Diğer Kavramlar

Scope: DHCP serverda, kullanıcılara dağıtılmasına izin verilen IP aralığıdır. Bu sayede 50-150 arasını IP olarak dağıt gibi tercihlerde bulunabiliriz.

Exlusions: Scope’un aksine belirtilen aralığın dağıtılmamasını sağlar. 50-150 IP adresi hariç hepsini dağıt gibi tanımlamalar yapabiliriz.

Lesses: DHCP’nin kiraladığı IP adreslerinin listesini gösterir.

Reservation: Belli bir IP adresinin, belli bir cihaza atamak, rezerve etmektir. Örneğin patronun MAC adresine daima aynı IP adresini atayabiliriz.

Sahte DHCP Çalıştırmak (Rogue DHCP Attack)

Ağda sahte DHCP sunucusu kuran birisi, kullanıcılar DHCP server kim diye sorduğunda kendileri dönüş yapabilirler. Saldırgan, gönderdiği sahte DHCP paketi ile karşı tarafa kendi atadığı IP adresini gönderir. Artık kullanıcı, saldırganın DHCP  sunucusuna bağlıdır diyebiliriz. Saldırgan bundan sonra kendi DHCP sunucusuna bağlı kullanıcıların ağ trafiğini takip eder ve ulaşmak istediği adres yerine kendi istediği sayfaya yönlendirebilir. Bundan sonrasında karşı tarafın RDP’sini, mail adresini veya kurum platformundaki oturumunu phishing saldırıları ile ele geçirmesi gibi saldırıların sonu tamamen saldırganın hayal gücüne kalmıştır. Aynı zamanda man in the middle ataklarının yanı sıra ağdaki paketlerin hedefe ulaşamamasını da sağlayabilir. Neticede tüm paketler saldırgana ait DHCP üzerinden geçer ve paketlerin yönetimi de ona aittir diyebiliriz. Bu saldırıya Rogue DHCP Attack (Düzenbaz DHCP saldırısı) denir.

Öncelikle ağda bir keşif yaparak, ağ maskesi, dns sunucusu ve ağ geçidi gibi bilgilerini elde edelim. Daha sonrasında kullanılmayan IP adresi bulmamız ve kendimize tanımlamamız gerekli. Atak esnasında yeni bağlanan cihazlara IP atamak için de boştaki IP aralıklarını tespit etmek IP çakışmalarını önlemek için faydalı olabilir.

Keşif aşaması bittikten sonra cihazımızda eth0’ı daha önceden belirlediğimiz, kullanılmayan bir IP adresine ayarlayalım. Bu adres artık bizim sahte DHCP’mize ait olacak.

Ardından, Kali makinesinde, sahte DHCP istemcileri yönlendirmek için varsayılan ağ geçidi olarak kullanılacak bir ağ alt arayüzü oluşturacağız.

Ağdaki diğer cihazları bizim DHCP sunucumuza yönlendirmek için bir ağ alt arayüzü oluşturacağız ve sonra varsayılan ağ geçidi olarak ayarlayacağız.

Yeni ağ alt arayüzümüz olan eth0:1’e , halihazırda kullanılmayan bir IP adresi atayalım. Göze batmaması için varsayılan adresler daha sağlıklı olacaktır. Örneğin varsayılan yol 10.1.1.1 ise 10.1.1.11 veya varsayılan yol 10.1.1.254 ise 10.1.1.251 kullanın.

Şimdi makinemizin IP yönlendirmeye (ip_forwarding) izin vermemiz gerekiyor. Ancak makineyi yeniden başalttığımızda bu ayar değişecektir. Bu durumda, bu ayarları tekrar kontrol etmeyi unutmayın.

Daha sonra eth0:1 ağ alt arayüzümüz için varsayılan ağ geçidi ayarlamamız gerekiyor. Ağdaki gerçek “varsayılan ağ geçidine” (192.168.1.1) ayarlayacağız. Bu sayede bize gelen paketler, sahte DHCP sunucumuz üzerinden geçtikten sonra gerçek DHCP sunucusuna gidecek. Bu sayede ağ trafiği devam ettiği için kimse ağdaki saldırının ilk bakışta farkında olmayacaktır. Tabi biz ağdaki trafik akışını aksatmak istiyorsak durum farklı.

Aşağıdaki komutla beraber route tablosunu ekrana basıyoruz. 0.0.0.0 olarak ayarlanan “Genmask”, bilinmeyen trafiğin 192.168.1.1 ağ geçidine gönderilmesi gerektiği anlamına gelir. Ayrıca flags değerindeki(UG), G varsayılan ağ geçidini ifade eder.

Şimdi saldırı aşamasına geçelim. Yeni terminalde “msfconsole” komutu ile metasploiti açalım. Sahte DHCP oluşturmak için bir modül kullanacağız.

msfconsole

msf > use auxiliary/server/dhcp

Show options komutu ile bu modülü kullanmak için nelere ihtiyacımız var bir bakalım.

Başlangıçta ağı keşfederken boşta olan IP aralıklarını not almıştık hatırladınız mı? Burada kullanmamız gerekecek. DHCPIPSTART‘ın karşısına IP aralığının başlangıcını, DHCPIPEND‘in karşısına ise IP aralığının bitişini yazıyoruz. Görüldüğü üzere bu bilgiler zorunlu değil. Daha sonra DNSSERVER seçeneğini ayarlama sebebimiz ise kullanıcıların erişmek istediği web sayfalarına istekte bulunurken karşılık bulmasıdır. Eğer kullanıcılar web sayfalarına erişemezse muhtemelen ağ yöneticisine bir sorun olduğunu bildirecek ve saldırımız tehlikeye düşecek. DNSSERVER‘ı “8.8.8.8” ayarlıyoruz. Evet Google DNS sunucuları 🙂

SRVHOST kısmına makinemizin yerel IP adresini girip ağ maskesini de ayarlıyoruz. Yine ağ trafiğinde sorun yaşanmaması için ağ maskesini (NETMASK), gerçek DHCP sunucunun ağ maskesine ayarlıyoruz. Son olarak ROUTER değerini de önceden belirlediğimiz şekilde ayarlayarak modüle gerekli verileri vermiş oluyoruz.

DHCP sunucumuzu başlatmadan önce ağda son olarak neler olup bitiyor, gerçek DHCP sunucusu ne durumda bir kontrol edelim.

Şu anda DHCP sunucusundan iki IP adresi kiralanmış. Oluşturacağımız sahte DHCP sunucusu için belirlediğimiz IP aralığını önceden kiralayalım. Daha sonra bu IP adreslerini, bizden IP isteyen kullanıcılara dağıtacağız. Öncelikle IP adreslerini topluca kiralamak için yeni bir terminal daha açın. Aşağıdaki komutu çalıştırarak kiralanabilir IP adreslerini alacağız:

pig.py eth0:1

DHCP sunucusuna son kez göz atacak olursak artık tüm IP adreslerinin kiralandığını ve rastgele isimlere sahip olduğunu görebiliriz. Bu isimlendirme dikkat çekebilir, belki gerçekçi isimler vermek için de bir yol vardır. Ama biz saldırıya odaklanalım şimdi.

Artık elimizde dağıtacak bolca IP adresi ve çalışmak için tetikte bekleyen sahte bir DHCP sunucusu olduğuna göre saldırıya hazırız. Metasploit sekmesine dönerek run komutunu verebiliriz.

Artık IP adresi isteyen kişiler bize uğrayacak, biz gerçekten de DHCP’ye kaydettiğimiz için network admini durumu öyle kolayca çark edemeyecek, trafik biz kasten yapmadıkça aksamayacak ve bütün internet paketlerine biz sahip olacağız. İç ağ, dış ağ, web sayfaları her şeyi takip edebilir ve paketleri değiştirebiliriz. Temiz yöntem…

Bir kontrol edelim DHCP artık biz miyiz değil miyiz?

Aşağıdaki görselde de 80 portuna yani web adresine atılan bir isteğin görüntüsü yer alıyor.

Ağdaki Sahte DHCP Yayınlarının Tespiti

Wireshark

Bunun için ağdaki paketleri takip etmek yeterli. Wireshark bunun için en ideal araç. Neticede yalnızca saldırılar için değil blue team ve network üzerindeki hataların tespitinde de kullanıyoruz. Arama kısmına “bootp.type == 2” yazarak sadece DHCP ve ACK paketlerinin dinlenmesini sağlarız. Bu paketleri yalnızca DHCP sunucu gönderir. Eğer burada sizin DHCP sunucunuzun dışında başka bir IP adresi varsa sahte DHCP sunucusu olduğunu söyleyebiliriz.

Başka bir örnek daha verelim. Aşağıda olması gereken bir DHCP trafiği görüyoruz. f0:de:f1:a3:5d:d6 MAC adresi, ağımızın çaylağı, yeni bağlanan biricik kullanıcısı. 00:18:0a:40:05:34 ise ağdaki gerçek DHCP’nin mac adresi. DORA sürecine uygun biçimde kullanıcımız “Discover” ile DHCP sunucusunu aramış ve iletişime geçerek bir IP adresi almış.

Aşağıdaki wireshark çıktısı ise biraz daha uzun. 00:18:0a:10:8b.e0 MAC adresine sahip cihaz, DHCP sunucusu ile IP almak isteyen cihaz arasındaki iletişime sıkça salça olmuş gibi görünüyor. DORA sürecine dahil olup DHCK NAK (Negative Acknowledgment) paketleri göndermiş. Yani IP taleplerini olumsuz karşılamış. Bunu yapan ağdaki gerçek DHCP sunucusu olmadığına göre birilerinin ağda sahte DHCP sunucusu ayağa kaldırdığını tespit ettik demektir. 00:18:0a:10:8b.e0 MAC adresi sahte DHCP sunucumuzdur.

Tcpdump

Tcpdump’da ise kaynağın 67. portundan hedefin 68. portuna ulaşan UDP paketlerini takip ederiz. Aşağıdaki komutla bunu yapmak mümkün.

tcpdump -i eth0 -l  “udp src port 67 and udp dst port 68″

DHCP Snooping Tanımı ve Konfigürasyonu

Cisco bu saldırılara önlem olarak DHCP Snooping özelliği geliştirmiştir. Bu yöntemde artık yalnızca belirli portlardan DHCP yayınına izin verilir. Portlar güvenilir ve güvensiz olarak tanımlanır. Güvenli portlar üzerinden DHCP yayınına izin verilirken güvensiz portlardan gelen DHCP paketleri çöpe atılır. Bunun için ilgili switchlerde DHCP snooping özelliğinin açılması gerekir. Bunu da aşağıdaki komutla gerçekleştiririz:

Switch> enable

Switch# conf t

Switch(config)# ip dhcp snooping

Özelliği kapatmak için ise şu komut kullanılır:

(config)#no ip dhcp snooping

Özelliği aktif ettikten sonra hangi vlanda geçerli olacağını belirtmemiz, vlanları yapılandırmamız gerekiyor.

Switch(config)#ip dhcp snooping vlan 1

Daha sonra güvenilir portları belirlemek gerekiyor. Bunun için de seçtiğimiz interface’e geçerek onun güvenilir olduğunu belirtiyoruz.

Switch(config)#interface fastEtherne t 0/1

Switch(config-if)#ip dhcp snooping trust

DHCP snooping ayarlarımızı kontrol etmek için aşağıdaki komutu kullanırız. Sonuna “binding” ekleyerek hangi IP adresi hangi MAC adresine atanmış öğrenebiliriz.

Switch#sh dhcp snooping [binding]

Artık DHCP sunucumuz dışında kimse IP dağıtamayacak. Ancak hala başka bir sorun var ortada. Kullanıcılar, DHCP sunucudan sürekli IP adresi talep ederek IP havuzunu tüketebilirler. Bunu da önlememiz gerekiyor. Bunun için ise güvensiz bütün portlara bir sınırlama koymak mantıklı olur. Bunun için DHCP sunucusuna saniyede kaç paket gönderileceğini belirtelim. Saniyede en az iki paket gitsin ki kullanıcı IP alabilsin. Önceden anlattığımız gibi önce DHCP kim diye soran cihaz, daha sonra IP adresi istediğini teyit eden bir paket gönderiyordu. Saniyede giden paket sayısı ikinin altında olursa makine IP alamaz.

Switch(config)#interface fastEthernet 0/2

Switch(config-if)#ip dhcp snooping trust limit rate 2

Eğer kullanıcı saniyede ikiden fazla DHCP paketi gönderirse fazladan gönderdiği paketler çöpe atılır ve port bloklanır. İhtiyaç duyulursa, buradaki sınırlandırmayı güvenilir portlarda da yapabiliriz.

Artık güvenilir olmayan portlar arka arkaya istek atamıyor. Ancak paketleri daha yavaş göndererek de hala IP’leri bitirebilirler. Bunun için de bir porttan aynı anda en fazla kaç MAC adresi için IP istenebileceğini belirtebiliriz.

Switch(config)#interface fastEthernet 0/2

Switch(config-if)#switchport port-security

Switch(config-if)#switchport port-security maximum 3

Faydalandığım ve daha farklı örneklerin de bulunduğu kaynaklar:

Kategoriler
Siber Güvenlik Teknoloji

Spanning Tree Protokolü, Ataklar ve Önlemler

Siber güvenlikte en hassas saldırılar genellikle network saldırılarıdır. Çünkü network zafiyetleri genellikle güncelliğini korur ve sistemin temelinde network bulunduğu için bu saldırılar oldukça etkileyici olur. Zafiyetleri tespit etmek ve anlamak için önce sistemin nasıl çalıştığını anlamak gerekir. Bu yüzden önce spanning tree protokolüne neden ihtiyaç duyulduğu, tanımı ve protokolün kullanılması halinde sürecin nasıl işlediği öncelikli ele alınmıştır. Daha sonrasında ise spanning tree protokolünün diğer versiyonları ve switchler üzerinde pratik olarak nasıl konfigüre edileceği anlatılmıştır. Son olarak da bu protokolün kullanımında oluşabilecek zafiyetler ve mantık hataları ele alınmış, zafiyetlere karşı geliştirilen önlemler

Gereksinim ve Temel Tanım

Bilgisayarların iletişime geçmeleri için kurduğumuz ağları birbirine bağlayacağımız donanımlara ihtiyaç duyarız. Bunlardan birisi de switch’tir. Her bilgisayara bağlı kablolar, switch’in portuna bağlanır. Bu sayede artık bilgisayarlarımız birbirleri ile iletişime geçebilir. Ancak switchler, kendisine gelen bir paketi, kendisine bağlı tüm cihazlara gönderir. Bu duruma broadcast yayın denir. Aşağıda switch kullanılan örnek bir topoloji yer alıyor.

Bu durumda birden fazla switch olduğunu ve henüz konfigüre etmediğimizi düşünelim. Switchleri bağlamak için yedekli bir yapı kullanılır. Yani tek kablo ile değil, iki kablo ile yedekli, halkasal bir yapı oluşturulur. İki switch’in birbirine bağlı olduğu bir ağda, switch’lere gelen bir paket sonsuz bir döngüye (loop) girecektir. Çünkü önceden de dediğimiz gibi switchler kendisine gelen paketi, konfigüre edilmemesi halinde portlarına bağlı tüm cihazlara gönderiyordu. Bu portlardan birisinde de başka bir switch varsa o da paketi geri gönderecektir. İç ağda TTL (Time to Live) süresi bulunmayan paketler dönüp duracaktır. Buna broadcast fırtınası da denir. Switchler’den birisi kapatılana veya aralarındaki bağlantı kablosunun bir ucu porttan çekilinceye kadar sonsuz döngü devam edecektir.

Spanning Tree Protocol bu döngüyü bozmak için paketin geldiği portu devre dışı bırakır. Bu sayede gelen paket, paketi gönderen switche tekrar gönderilmez. Aynı zamanda STP, paketlerin ilerlemesi için en doğru yolu da belirler. Protokol uygulamaya koyulduktan sonra switchler’in topolojisini yapılandırır. Belirlenen yollardan birinde arıza olması durumunda da alternatif rotayı belirleyerek paketi hedefe ulaştırır. Haliyle spanning tree protokolü OSI katmanlarında layer 2’de yer alır. IEEE 802.1D standardı ile tanımlanmıştır.

Bridge Protocol Data Units (BPDU)

Spanning tree protokolünün çalışması için networkte sürekli dolanan BPDU isminde paketler bulunur. BPDU paketleri her iki saniyede bir diğer switchlere gönderilir. İçerisinde bridge ID’yi bulundurur. Bridge ID, bridge priority(öncelik) ve MAC adresi bilgilerini taşır. Bridge priority 2 byte, MAC adresi 6 byte, toplamda bridge ID ise 8 bytetır. Varsayılan bridge priority değeri ise 32768 olarak gelir.

Bu paketlerin izleyeceği yol için aşağıdaki adımları takip etmek gerekiyor:

  • Root bridge seçimi yapılır. Bridge priority değeri sıfıra en yakın olan switch, seçilir. Eğer tüm switchlerin önceliği eşit ise bu durumda MAC adresi en küçük olan switch, root bridge olacaktır. Root bridgelerin tüm portları designated porttur. Zaten kendisi root bridge olduğu için root portu bulunmaz.
  • Switchlerin, root bridge’den alacağı paketler için root portları belirlenir. Bu port, root bridge tarafına en yakın yolu olduğu porttur.
  • Switchlerin designated portları belirlenir. Switchlere aksi belirtilmedikçe son kullanıcıya bağlı portlar designated portu olur.

Switchlerin son kullanıcıya bağlı portları designated portu olduğuna göre switch, son kullanıcıya da BPDU paketleri gönderecektir. Ancak biz bu paketlerin yalnızca switchler arasında dolaşmasını istiyoruz. Aksi durumda ağda gereksiz bir trafik oluşacaktır. Bunun için de BPDU guard ve BPDU filter geliştirilmiştir.

Switchler arasındaki paketlerin sonsuz döngüye girmemesi için ise designated portlardan birisi seçilerek bloklanır. Bu porta artık non-designated port denir. Root port belirlenirken ise en yakın olan yani verinin en hızlı gideceği yol tercih edilir. Bu hız, cost değerine göre belirlenir. Alınan yollardaki bant genişliğinin karşılığındaki cost değerleri toplanır ve en düşük olan yol seçilir. Aynı zamanda bu yolun switch tarafındaki portu root port seçilir. Bant genişliği arttıkça cost değeri düşer.

Bandwidth (Bant Genişliği) Cost (Yol değeri)
4 Mbps 250
10 Mbps 100
16 Mbps 62
45 Mbps 39
100 Mbps 19
155 Mbps 14
622 Mbps 6
1 Gbps 4
10 Gbps 2

Switchler root portundan aldıkları BPDU paketleri ile diğer switch’leri tanırlar, root bridge’in kim olduğunu bilirler, ağdaki değişikliklerden haberdar olurlar ve loop durumu olmaması için spanning tree protokolünü artık kullanabilirler. Ağ topolojisi sağlıklı bir şekilde kurulduktan sonra artık switchler, root bridge’den gelecek Hello BPDU’sunu beklerler. Loop durumuna sebep olan portların tespit edilip kapatılma aşaması 20 saniye, listening süresi 15 saniye, learning süresi 15 saniye ve daha sonrasında ise diğer switche BPDU paketinin yönlendirilmesi ile süreç tamamlanır. Yaklaşık 50 saniye sürer. Bu sırada ağdaki kullanıcılar birbirleri ile iletişimde kalmaya devam ederler.

Switch Port Durumları

Switchlerin her portu için atanan belirli durumlar vardır. Bu sayede hangi porttan BPDU iletilip iletilemeyeceğini veya hangi işlemlerin yapılabileceğini yönetiriz.

Port Durumu Açıklama
Disabled STP devre dışı. Varsayılanda da bu geçerlidir.
Blocking Paketlerin bu porttan iletilemeyeceği anlamına gelir. Yalnızca BPDU paketleri alınır fakat iletilmezler.
Listening BPDU paketleri alınır ve gönderilir. Aktif topoloji oluşturulur.
Learning BPDU paketleri alınır, işlenir (birdge tabloları oluşturulur) ancak diğer switchlere iletilmez.
Forwarding BPDU paketleri alınır, işlenir ve diğer switchlere iletilir.

Spanning Tree Protokol Versiyonları

Rapid Spanning Tree Protokol (RSTP)

STP’nin gelişmiş halidir. Bekleme süresi sıkıntı çıkartmaya başlayınca bu 55 saniyelik süreci en aza indirmek için RSTP geliştirilmiştir. Buradaki çözüm ise bir portu bloklamak yerine yok etme metodunu kullanmasıdır. Bu sayede designated durumundaki portlar, root portta arıza çıkması durumuna karşı her zaman hazırlıklıdır. Cost değerini önceden hesaplarlar ve root port arızalandığında yerine geçerler. Bu süreç bir ile on beş saniye arasında sürer ve önemli bir zaman kazanılmış olur.

Port Durumu Açıklama
Forwarding BPDU paketleri alınır, işlenir ve diğer switchlere iletilir.
Learning BPDU paketleri alınır ve gönderilir. Aktif topoloji oluşturulur.
Discarding Bloklanan porttur. BPDU paketleri alınabilir.

 

Multiple Spanning Tree Protokol (MSTP)

RSTP’nin de bazı sorunları çözememesi üzerine MSTP geliştirilmiştir. RSTP ile aynı mantıkta çalışır ancak farklı olarak switch üzerinde bulunan diğer portları bloklamaz onun yerine her porttan farklı vlanlar geçirerek yük dengelenmesini sağlar. Yani çalışan bir portta sorun yaşanması durumunda diğer portlar üzerinden çalışmaya devam eder.

Port Durumu Açıklama
Root Port
Root bridge’e veri gönderen ve en düşük cost değerine sahip olan porttur.
Designated Port
Swich üzerlerindeki BPDU paketlerini ileten porttur.
Alternate Port Başka bir switch üzerinden gönderilen BPDU paketlerini aldıktan sonra, göndermek için alternatif bir port olarak blokede bekletir. Root Bridgeye yeniden bağlantı için alternatif yoldur.
Backup Port Adından da anlaşılacağı üzere yedek olarak hazırda bekleyen porttur.
Master Port
MST region içerisinde aldığı BPDU’ları Root Bridge gönderir. Root Bridge’e en yakın porttur.
Edge Port
Portlara doğrudan bağlanan terminal cihazlarıdır.
Forwarding
Learning

Discarding

RSTP’deki durumla aynıdır

Konfigürasyonların Gerçekleştirilmesi

Spanning Tree Kontrolü

Switch>en

Switch#sh spanning-tree

Bu komutları çalıştırdığımız switchte, önce enable moda geçip sonra spanning tree protokolü aktif mi öğreniyoruz. Aynı zamanda aktifse bu root ID, bridge ID, interaface gibi bilgilere de erişebiliriz. Aktif olduğunu “Spanning tree enabled protocol ieee” satırından anlayabiliriz. Interface kısmında hangi portun hangi durumda olduğu yer alır. “Sts” kısmı, gelen paketi yönlendiriyor ise FWD, port bloklanmış ise “BLK” olarak belirlenir.

Root Bridge Değiştirilmesi

Switch#spanning-tree vlan 1 priority 4096

Root bridge yapmak istediğimiz switch’in konfigürasyonunu yukarıdaki gibi gerçekleştiriyoruz. “vlan” ve “priority” değerleri değişkendir. Burada switch’In priority yani öncelik değeri 4096 oluyor. Verilen değerin ne olduğu teorik olarak önemli değil, en küçük değer kendisine ait olduğu için artık root bridge kendisidir. Ancak pratikte 4096 ve katları verilir. Kendisinden daha düşük değerde bir priority’e sahip switch olup olmadığı kontrol edilmelidir. Varsayılan 32768 olduğu için bizim verdiğimiz değer şu anda en küçük değerdir. Elli saniye sonunda root bridge değiştirilmiş olacak. Ayrıca pratikte, switchlerin birdge priority değeri direkt olarak varsayılanı verilmez. 32768(215) + [vlan ID] şeklinde verilir. Yukarıda değişiklik yaptığımız vlan 1’in önceki priority değeri 32768 +1 = 32769 şeklinde girilir.

PortFast

Switch>config

Switch(config)#interface fastEthernet 0/1

Switch(config-if)#switchport mode Access

Switch(config-if)#spanning-tree portfast

Elli saniyelik BPDU döngüsü sırasında diğer paket işlemleri devam edebilir. Fakat bunun için portfast aktif edilmelidir. Portfast ile beraber listening ve learning evreleri atlanır. Aktif edilecek portu Access mode’da çalışması gerekir. Bu özelliğin aktif edildiği porta hub, bridge ve switch gibi cihazlar bağlanırsa yine loop’a sebep olur. Sunucu ve son kullanıcı cihazlarının bağlı olduğu portlarda uygulanır.

BPDU Guard

Switch>config

Switch(config)#interface fastEthernet 0/1

Switch(config-if)#spanning-tree bpduguard enable

Portfast aktif edilmesi halinde oluşabilecek loop durumunu engellemek için BPDU Guard kullanılır. İlk aşamada sadece sunucu ve son kullanıcı cihazları bağlı olan porta daha sonra switch eklenebilir. Bu durumda oluşacak loop BPDU’nun aktif edilmesi ile engellenir.

Saldırı Senaryoları ve Önlemleri

Root Bridge Ele Geçirilmesi ve Root Protection

Root bridge atanırken önce priority değerine sonra da MAC adresine bakılıyordu. Bu durumda root bridge’in priority değeri sıfır dahi olsa ağa MAC adresi daha düşük olan bir cihazla bağlanarak BPDU paketleri alınabilir ve bu cihaz root bridge gibi gösterilebilir. Bu durumda bütün ağ trafiği bu cihaz üzerinden geçer. Aynı zamanda cihazı belli aralıklarla kapatıp açarak ağ sekteye uğratılabilir. Bu durumda paketler asla hedefine ulaşmaz. Bunun için root protection konfigürasyonu yapmak gerekir.

[SW1-GigabitEthernet0/0/13]stp root-protection

Spanning Tree Protokol Zamanlayıcıları

“Hello”, “Max Age” ve “Forward Delay” zamanlayıcıları, root bridge tarafından kontrol edilir ve müdahale edilebilir. Root bridge ele geçirildikten veya yerine geçildikten sonra bu paketler değiştirilebilir. “Max Age” ve “Forward Delay” paketleri en yüksek değerine, “Hello” paketi en düşük değerine alındığında bir süreliğine paket alışverişi aksatılabilir.

Topoloji Değişim Mesajları

Ağdaki switchler, kendisine bağlı olan cihazlarda fiziksel bir hata çıkması durumunda root porta TCN paketi gönderir. Bu paket ağ topolojisinin değiştiğini ve ilgili değişiklik bilgisini taşır. TCN paketi root bridge’e ulaştığında, root bridge “max age” ve “forward delay” değerleri kadar bir zaman için TC mesajını tüm portlara gönderir. Böylece bütün ağ, yeni topolojiden haberdar olur. Bu sistemi kötüye kullanmak için TCN mesajları tüm switchlere gönderilirken üzerinde değişiklik yapılarak ağın uzun süre aksaması sağlanabilir.

Kategoriler
Teknoloji

Binary Neden Önemli?

Yazılarımın neredeyse tamamını gelen bir soru veya arkadaşlar arasındaki kısa konuşmalardan yola çıkarak yazıyorum. Yine gelen sorulardan birisi subnet ile ilgili, başka bir sohbet internet hızı ile alakalı olunca bunları izah etmek için toplu bir yazı yerinde olur diye düşündüm. Binary kullanım alanında atladığım çok fazla nokta olduğunu biliyorum. En sık karşıma çıkanları yazdım. Sizler de ekleme yapabilirsiniz.

Bilgisayarlar 0 ve  1’ler üzerine kurulu makinelerdir. Sıfır dediğimiz şey kapalı, hayır, olumsuz gibi tanımlanırken bir, açık, evet, olumlu gibi kavramlarla tanımlanır. Bu sisteme binary, yani ikili sistem deriz. Örnek vermek gerekirse bilgisayarda bir işlemin sonucu 247 çıktı. Bu çıktı diske aynen böyle kaydedilmez. Evet biz ekranda, onluk tabanda 247 görürüz. Ancak arka planda diske, binary formatında 11110111 şeklinde kaydolur.Bu sıfır ve birler nasıl 247 olur? Sağdan başlamak üzere sayıları 2n ile çarparız. n, sıfırdan başlar ve bir artar.

(1×20) + (1×21) + (1×22) + (0x23) + (1×24) + (1×25) + (1×26) + (1×27)  = 247

1 + 2 + 4 + 0 + 16 + 32 + 64 + 128 = 247

Peki sayıları anladık. Harfleri nasıl binary ile izah ederiz? Orada da ASCII mantığı devreye giriyor. Her harfin ve karakterin ASCII tablosunda sayısal bir karşılığı bulunur ve bu çevirmeleri kullanırız.

Sıfırlar  ve birler yalnızca veriler diskte saklanırken kullanılmaz. Bütün hesaplamalar buna bağlıdır. Aynı zamanda veriler, bilgisayarın içerisinde aktarılırken de, internet üzerinde başka yerlere gönderilirken de binary ile iletilir. Bu binary olayı ile elektrik akımı arasında da bir bağ var. Örneğin binarydeki 1’i iletmek için +5 volt, 0’ı iletmek için -5 volt kullanılır. Hatalı veya istisnai durumlar olabilir. Örneğin analog sinyallerde ufak kaymalar bozulmaya sebep olur. Ancak binarydeki gibi dijital sinyallerde +4 volt gitmesi halinde en yakın olasılık olan +5 volta yuvarlanılır ve 1 olarak kabul edilir.

Peki başka bir soruya cevap arayalım. Veri büyüklüklerini hangi birimlerle belirtiriz? Kilobayt, Megabayt, Gigabayt… Bu verileri birbirine dönüştürürken ise 1024 ve katlarını kabul ederiz. Peki neden 1000 değil de 1024? Bunun için verinin en küçük birimi olan “bit” kavramını bilmemiz gerek.

İlkokuldaki matematik derslerimize geri dönelim ve kutucukları kullanalım. Bit dediğimiz şey bir kutudur. Ve içine sadece bir sayı alabilir. E bilgisayarda da sıfır ve bir dışında sayı olmadığını öğrendik. O zaman sıfır veya bir gelecek.

Byte ise sekiz adet bitin bir araya gelmesidir. Neden sekiz bit derseniz, 23 mantığından gelmektedir. Kilobyte ise 1024 byte eder. Sonrasında birimler 1024 katı ile sürekli katlanır. Tahmin edeceğiniz üzere bu da 210 sayısından gelir.

Başka bir soru, internet hızının olayı nedir? 100Mbps dediğimiz hız, saniyede 100 megabayt mı indirir? Hayır. Çünkü internet hızında kısaltma ile verdiğimiz Mbps, megabayt kavramından gelmez. Megabit per second demektir. Yani saniyede 100 megabit. Hemen başa saralım. Bir byte kaç bit ediyordu? Sekiz bit. Öyleyse 100’ü 8’e bölersem saniyede kaç megabayt indirdiğimi bilirim. Bu da saniyede 12.5 megabayt eder. Günümüzde normal bir kullanıcı için bence gayet iyi bir hız 🙂

Devam edelim. İşletim sistemlerinde ve programlarda yer alan 32 bit ve 64 bit nedir? Bu yazılımların mimarileri aynı anda belirli boyutta veriyi işleyebilecek şekilde tasarlanır. Teoride, 32 bitlik mimariler maksimum 4 GB (232 bit 4 GB ediyordu) 64 bitlik mimariler ise maksimum 18 milyar GB veri işler. Haliyle günümüzde 64 bit mimariyi zorlayacak bir RAM veya donanım yok diyebiliriz. Öyleyse buradan şu çıkarımda bulunabilirsiniz, 32 bit işletim sistemi kullandığınızda bilgisayarınızda 4 GB  üzerinde ne kadar RAM olursa olsun daima 4 GB’lık performans alacaksınız. Bu durum kullandığınız yazılımlar için de geçerlidir.

Pratikte ise bu hesaplamaların etkisi sıradan kullanıcıları genelde alakadar etmez. Ancak her zaman değil. Örneğin birkaç sene önce Gangnam Style o kadar çok karşımıza çıkmıştı ki artık gerçekten illallah eder olmuştuk. En azından benim için durum böyleydi. Fakat 2012 yılı ortalarında bir o kadar gündeme gelen diğer mesele ise Youtube sayacının çökmesi oldu. Bu acayip danslı klip o kadar çok izlendi ki Youtube’un 32 bitlik sayacının son kapasitesine erişildi ve daha sonrasını saymayı bıraktı. 2,147,483,647 izlenme son raddeydi. Sonrası ise…

Daha sonra ise Youtube, sayacıın 64 bit olarak düzenledi. Artık sayacı kilitlemek için 9,223,372,036,854,775,808 izlenmeye sahip bir video çekilmesi gerek, ki neredeyse imkansız. Belki de yerli bir slime videosu 128bit sayaca geçmeye vesile olur.

 

 

Kategoriler
Adli Bilişim

Apache Log Analizi ve GoAccess Kullanımı

Web sunucuları, web sitelerine giden isteklere cevap döndürerek ziyaretçiye istediği dosyaların ve web sayfasının gönderilmesini sağlar. Köklü web sunucularından olan Apache, çok yerde karşınıza çıkacaktır. Bu yazıda, Apache’ye ait log kayıtlarını analiz edeceğiz. Siz de kendi sunucunuzu oluşturarak test edebilirsiniz.

Öncelikle DigitalOcean üzerinden aldığın sunucuma Apache kuruyorum.

apt-get install Apache2

Apache’nin error.log ve access.log isimli iki temel kaydı bulunmakta. Bu dosyalar /var/log/apache2 dizininde yer alır. Adından da anlaşılacağı üzere access.log, web sunucunuza gelen istekleri kaydeder. 200, 300, 400, 500 gibi dönen tüm istekleri sınıflandırır.

20X: Bu aralıktaki tüm log kayıtlarının sorunsuz olarak döndüğünü, var olan bir sayfaya ulaştığını söyleyebiliriz.

30X: Yönlendirme işlemleri ve hatalarının yer aldığını belirtir.

40X: Bulunamayan sayfalar, yetkisiz sayfaların yer aldığı kayıtlardır.

50X: Sunucudan kaynaklanan hatalardan döndürülen durum kodlarıdır.

Detaylı liste için: https://www.mediaclick.com.tr/blog/http-server-durum-hata-kodlari-ve-anlamlari

Bu loglarda farklı formatlarda istediğiniz verileri tutmanız mümkün. Örneğin dosya boyutunu kaldırabilirsiniz veya ilk sütunda yer alan IP adresi yerine zaman damgası yerleştirebilirsiniz. Aynı zamanda farklı standartlarda log tutarak başka araçlara bu kayıtları gönderebilirsiniz.

Örnek bir access.log: 192.168.0.77 – – [24/Dec/2019:12:19:16 +0000] “GET /caglar HTTP/1.1” 404 494 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0”

Yukarıdaki logta IP adresi, zaman damgası, HTTP isteğinin metodu, hangi URL’e yapıldığı, cevabın ne döndüğü ve tarayıcı bilgileri yer alır.

[Tue Dec 24 11:58:18.959786 2019] [core:notice] [pid 1505:tid 140073209799808] AH00094: Command line: ‘/usr/sbin/apache2’

Yukarıda ise error.log dosyasından örnek bir satır. Adres damgası, hatanın kaynağı ve önem derecesi, pid adresi ve hatanın önem derecesi yer alıyor.

Bana kalırsa apache log kayıtları oldukça basit. Peki nasıl kullanabiliriz? En temelde web sitemize gelen atakları tespit edebiliriz, olağan dışı trafikleri gözlemleyebiliriz. Ben honeypot olarak kullanıyorum. Farklı sunuculara kurduğum inandırıcı sayfalara gelen isteklerin log kayıtlarını analiz ederek komuta kontrol merkezlerini, farklı payloadları ve IP adreslerini topluyorum. Kimisi saniyede beş kez /wp-login veya /phpmyadmin dizinlerine deneme yapıyor. Buradan o IP adresini brute force yaptığına dair not alıyorum. Kimisi girdi alanlarına standart XSS payloadları denerken kimisi de kendi geliştirdiği payloadları giriyor. Veya kimisi RFI açığını zorlayarak kendi komuta kontrol panelinden bir URL’e yönlendiriyor. Bu sayede bu panelleri de toparlayabiliyorum. Doğru filtrelemeler ile birçok çıkarımda bulunabiliriz.

GoAccess aracına geçelim. GoAccess, Apache log dosyalarının tamamını, güzel grafiklerle görmemizi sağlar. Terminalde veya web arayüzünde, gerçek zamanlı veya belirli bir zamana kadarki kayıtları tercih edebiliriz. Aynı zamanda Docker yapısını da destekliyor. Ben Apache logları için kullanıyorum fakat neredeyse bütün web servisleri için GoAccess kullanmak mümkün.

Öncelikle apt-get install goaccess ile Linux sistemimize indiriyoruz. Farklı sistemler için buradan faydalanabilirsiniz. Daha sonrasında log kayıtlarının bulunduğu dizine gitmemiz gerekiyor. Eğer daha önceden ayırdığınız bir log kaydı ile değil de o sistemdeki anlık kayıtları kullanacaksanız /var/log/apache2 dizinine geçmeniz gerekiyor. İlk komutumuzu çalıştıralım.

goaccess access.log -c

Bu komut ile access loglarının gerçek zamanlı çıktısını terminal üzerinden basit grafiklerle görüntüleyeceksiniz. Ancak öncelikle log formatını belirlemeniz gerekir. Varsayılan olan ve benim de kullandığım format en baştaki NCSA formatı. Mevcut standartların dışında özelleştirilmiş log formatlarını da klavyenizden c tuşuna basarak ilgili alana girebilirsiniz. Hazır standartlardan birini kullanacaksanız space ile seçip entera basıyoruz. Seçtiğimiz format aşağıdaki kutucuklara da yerleşiyor.

Daha sonrasında terminalde log kayıtlarına dair detaylar grafikleştiriliyor. En başta access loglarına dair genel istatistikler yer alıyor.

Birçok bilginin yanı sıra 404 denemeleri, en çok ziyaret eden IP adresleri, en çok kullanılan işletim sistemleri ve tarayıcılar listeleniyor. 404 kayıtlarının es geçilmemesi gerekir. Genelde başarısız da olsa saldırı kayıtlarının çoğu burada yer alır. Bu yazı için hazırladığım sunucuya dahi kısa zamanda saldırı denemeleri oldu. 

Daha kullanışlı bir arayüz sunan esas yöntem ise HTML output yöntemi.

goaccess access.log -o /var/www/html/report.html –log-format=COMBINED

Hala apache log dosyalarının yer aldığı dizinde bulunduğunuzu varsayıyorum. web sitemin yayın yaptığı dizine report.html adında log analiz raporu çıkartmak istiyorum. Arkasından verdiğim parametre ile log formatımı belirliyorum. Eğer belirtmezsem çıktı alamam. Bu komutla beraber o ana kadarki log kayıtlarını inceleyebilirim. Ancak ben log dosyası değiştiğinde de gerçek zamanlı olarak arayüzüme göndersin istiyorum. Bu durumda şu komutu kullanacağız:

goaccess access.log -o /var/www/html/report.html –log-format=COMBINED –real-time-html

–real-time-html parametresini ekledik. Bu durumda socket açılacak, terminalde CTRL+C yapmadıkça işlem yapamazsınız. Bundan sonraki arayüzümüzde log kaydının gerçek zamanlı birçok analizini görebiliriz. Bende yeteri kadar log birikmediği için GoAccess web sitesinde yer alan canlı demodan bir görüntü paylaşacağım.

Sol menüden tema değişikliği ve yer düzenlemesi yapabiliriz. Aynı zamanda JSON formatında çıktı alabiliriz.

Kategoriler
Siber Güvenlik

Phishing Nedir?

Phishing Nedir?

Siber dünyanın en köklü ve sık kullanılan saldırı yöntemlerinden birisi olan phishing kavramı, İngilizce’de balık avlamak anlamına gelen “fishing” kelimesinden esinlenerek oluşturulmuştur. Bu saldırıda saldırgan, güvenilir bir kuruluşun adını kullanarak karşı tarafa ait parola, banka hesabı, kredi kartı bilgileri veya herhangi bir sistemdeki oturumu gibi kritik bilgileri elde etmeye çalışır. Sosyal mühendislik kapsamında değerlendirilir ve farklı siber saldırılarla beraber kullanılabilir. Genellikle saldırgan, toplumca güvenilir olduğu kabul görmüş kuruluşlardan geldiği imajı verdiği bir mail gönderir. Mail içeriğinde genellikle parola yenileme linki veya giriş yap butonu yer alır. Ancak bu linkler saldırganın kendi sayfasına yönlendirilmiştir. Bu sayede karşı taraf giriş bilgilerini girdiğinde, hassas veriler saldırgana ulaşır ve genellikle sahte sayfanın bulunduğu URL, giriş yapıldıktan sonra orijinaline yönlendirme yapar.

Spear Phishing: Spesifik bir hedefi olan phishing saldırılarıdır. Bu hedef için öncesinde kapsamlı bir bilgi toplama çalışması yapılır ve ondan sonrasında saldırı senaryosu hazırlanır.

Pharming: Saldırgan, DNS kayıtlarını zehirleyerek bir web sitesinin ziyaretçilerini, saldırı için hazırladığı sayfaya yönlendirir.

Clone phishing: Saldırgan, toplum tarafından güven kazanmış kuruluşlarca gönderilen mail şablonlarını taklit ederek yeni bir mail içeriği hazırlar. Burada genelde yalnızca kendisine ait zararlı URL’i, gerçek URL ile değiştirir.

Email Spoofing: Saldırgan, başka bir kuruluşa veya kişiye ait mail adresini gönderdiği mail headerına ekler. Bu sayede maili açan personel, müdürünün, IT ekibinin veya güvendiği bir kurumun mail adresini görür ve mail içeriğine güvenir.

Su Kaynağı: Saldırganlar, hedeflediği kuruluştaki personelleri analiz ederek hangi siteleri sık ziyaret ettiğini tespit eder. Daha sonrasında bu sitelere zararlı kod enjekte etmeye çalışır.

Yöntemler

Saldırgan, farklı yöntemler de kullanabilir. Örneğin hedef aldığı bir kuruluşsa, bu kuruluştaki en dikkatsiz kişiyi tercih eder. Bu kişi alışverişi seviyorsa ona özel büyük bir indirim kuponu maili gönderilebilir. Sosyal medyada maaşından veya geçim sıkıntısından dert yanmışsa bu kişiye patrondan gelen maaş zammı maili atılabilir. Senin hakkında şu haberi buldum diyerek merak uyandırılabilir veya acil dönüş yapılmaması halinde kuruluşun veri kaybedeceğine dair bir senaryo ile hedef kandırılabilir. Bunların yanı sıra başarılı bir phishing mailinde genellikle inandırıcı ve başarılı hazırlanmış bir görsel, mail teması ve düzgün bir metin kullanılır. Öte yandan mailin gönderildiği zamanlama da önemli olabiliyor. Örneğin mesainin sonuna doğru ve yoğun olunan bir zamanda yapılan phishing saldırısı, karşı tarafın maili dikkatle inceleme süresini azaltabiliyor. Veya öğle molası sonrası, rehavete kapılan ve bu sırada mail kutusunu kontrol eden personeller hedef alınabiliyor. Hedef kurumdaki personellerin yapısına göre senaryo değişebilir. Ancak phishing saldırıları öncesinde bilgi toplama kısmı da oldukça önemli. Her personelin zayıf anını ve zaaflarını bilmek, saldırının başarı oranını arttıracaktır.

Söz konusu URL’ler taklit edilen güven kazanmış kuruluşun URL’lerine oldukça benzetilir. Bunun için birden fazla yöntem kullanılır.

Orijinal domainimiz domainbank.com olsun.

  • Domaindeki harflerden birinin, şekil olarak benzer bir harfle yer değiştirmesi ile bir domain oluşturulabilir.

clomainbank.com/loginpanel.php

  • Saldırıda kullanılacak olan bir domaine, hedef domainin adının geçtiği bir subdomain açılabilir.

domainbank.com.phishingdomain.com/loginpanel.php

  • Saldırgan zaman zaman gerçek domainden de bir saldırı gerçekleştirebilir. Örneğin hedef kuruluşta reflected XSS zafiyeti elde etmesi halinde zafiyetli URL’e, zararlı kod parçacığını ekler. oluşan bu zararlı URL’i kuruluştaki tüm personellere gönderir. Personeller, çalıştığı kuruluşa ait bu URL’e güvenerek tıkladığında oturumunu saldırgana kaptırır. Aynı yöntem, farklı web uygulama zafiyetleri ile de birleştirilebilir.
  • Sık rastlanmamakla beraber oldukça riskli olan bir başka yöntem ise IDN aracılığı ile görünürde IDN domain ile bire bir aynı olan domainler alınan saldırılardır. Eskiden Türkçe, Çince karakterler gibi ASCII karakterlerin dışındaki domainler alınamıyordu. Ancak artık unicode domainler de alınabiliyor. Bu sayede farklı unicodelara sahip fakat aynı görünen harfler kullanılarak domain alınıyor. Saldırganlar da hedeflediği güvenilir kuruluşun domainini taklit eden domainler alıyor. Örneğin:

Buradaki yöntemde saldırı için şu URL kullanılır:  https://www.аррӏе.com/

Ancak linke tıklandığında Apple’ın orijinal sayfası değil, başka bir sayfa karşınıza çıkar. Çünkü tıkladığınız URL Apple’a ait olan apple.com değil, xn--80ak6aa92e.com adresidir. Birçok tarayıcı bunun için önlem alır ve bu linklere tıklandığında phishing riskine karşı uyarır. Ancak kullanıcının gözle ayırt etmesi neredeyse imkansızdır.

  • Mailde yalnızca giriş paneli veya linkler yer almayabilir. Zaman zaman bu saldırılarda dosya eki de kullanılabilir. Zararlı yazılım bulunan bu dosyalar, ilgi çekici bir şekilde gönderilerek karşı tarafa gönderilir. Karşı taraf bu dosyayı açtığında, cihazı saldırgan tarafından ele geçirilir. Daha sonrasında saldırgan, ağdaki diğer cihazlara bulaşabilir, pivoting yaparak diğer ağlara atlayabilir, ransomware saldırısı ile fidye isteyebilir veya aylarca sessiz kalarak kuruluşta olan biten tüm hareketleri izleyebilir, veri çekebilir.
  • Kurum içerisinden bir personel hesabını ele geçiren saldırgan, o kişinin mailinden de phishing saldırısı gerçekleştirebilir. Yani kurum içerisinden veya tanıdığınız birisinden gelen bir mail kesinlikle güvenilirdir diyemeyiz.

Önlemler

Antivirüs ve firewall

Antivirüs veya firewall kullanmanız phishing saldırılarını belli oranda azaltacaktır. Bu tip yazılımlar, veri tabanlarında yer alan domainleri otomatik olarak engelleyecektir. Aynı zamanda belli mail adreslerinden gelen mailleri de personellere ulaşmadan engellemek mümkün.

Güvenlik politikaları

Kurumların belirlediği güvenlik politikaları da oldukça önemli. Bu politikalar, bir saldırı yaşanmadan belirlenmeli ve kurumdaki herkesin anlayıp uygulayabileceği düzeyde olmalıdır.

Eğitimler

Personellerin bilgi güvenliği noktasında eğitim alması da bu saldırılardan korunmaları için gerekli. Personeller, mailleri açmadan önce gönderenin mail adresi, mail eklerinde yer alan dosya ekleri ve içerikteki linklerin kontrol edilmesine yönelik uyarılmalıdır. Herhangi bir phishing saldırısına rastlaması halinde kurumda bilgi güvenliğinden sorumlu ekibe iletmesi gerektiği belirtilmelidir. Personeller, bu durumlar için daima tetikle olmalı ve şüpheci yaklaşmalıdır.

Loglama ve Beyaz Liste

Kurum içerisinde loglama sistemi doğru biçimde kullanılmalıdır. Aynı zamanda phishing domainleri sürekli olarak tespit edilmeli ve bu domainlerden gelen mailler sürekli olarak engellenmeli, ağdan bu domainlere çıkışlar engellenmelidir. Zararlı yazılım bulaşabilecek birçok dosya formatı bulunmaktadır. Gmail’in engellediği bazı dosya uzantıları şunlardır: .ade, .adp, .bat, .chm, .cmd, .com, .cpl, .dll, .dmg, .exe, .hta, .ins, .isp, .jar, .js, .jse, .lib, .lnk,.mde, .msc, .msi, .msp, .mst, .nsh .pif, .scr, .sct,.shb, .sys, .vb, .vbe, .vbs, .vxd, .wsc, .wsf, .wsh

Bunların yanı sıra pdf ve office dosyalarından da zararlı yazılım bulaşması mümkün. Bu dosyalar için de önlemler alınması gerekir. Eğer ihtiyaç yoksa dosya ekleri tamamen engellenebilir.

Kategoriler
Siber Güvenlik

SOC Nedir, Nasıl Çalışır?

Güvenlik operasyonları merkezi, İngilizce Security Operations Center (SOC) bir kuruluşun güvenliğinin takibi, analizi ve güvenliğin sağlanması için oluşturulan yapıya denir. Temelde amaç kuruma yapılan saldırıların loglanması ve analiz edilmesi olmakla beraber, kurumun bulunduğu sektörü hedef alan veya global alanda yeni çıkan önemli saldırı vektörlerini de takip eder ve bu saldırılardan zarar görmemek için önlemler alır. Yani SOC ekibi yalnızca kendi kurumunu değil, sektördeki diğer kurumları, globali ve ülkesini hedef alan saldırıları da sürekli olarak takip ederse başarılı olur.

  • İzleme
  • Tespit
  • Analiz
  • Müdahale
  • Raporlama

Ayrıca bazı ekiplere verilen ünvanlar:

  • CSIRT: Bilgisayar Güvenliği Olay Müdahale Ekibi
  • CIRT: Bilgisayar Olayları Müdahale Ekibi
  • CIRC: Bilgisayar Olayları Müdahale Merkezi
  • CSIRC: Bilgisayar Güvenliği Olay Müdahale Merkezi
  • CSOC: Siber Güvenlik Operasyonları Merkezi(SOC, yalnızca siberi değil tüm güvenlik tehditlerini ele alır.)
  • CERT: Bilgisayar Acil Durum Cevap Ekibi

SOC ekiplerinin, saldırı anı ve genel süreci şekillendirmek için önceden belirlediği politikalar (Security Operations Policy – SOP) ve tasarladığı mimariler vardır. Böylece kritik bir saldırı ele alınırken dahi her şey planlı gerçekleşir. Bir SOC ekibi üç katmana ayrılır. Zaman zaman katman 4 eklenebilir.

Katman 1: Uyarı Analisti (Alert Analyst)

Takip ettiği loglarda izinsiz bir giriş veya müdahale görmesi halinde ilk aşamayı başlatır ve bir güvenlik tehdidi olduğunu katman 2’ye iletir. Bu sırada katman 2’nin kullanabileceği verileri toplamaya başlar. Bu katmanda daha çok monitoring ekibi yer alır. IDS/IPS’ler, SIEM sistemleri bu analistlere yardımcı olur. False positive durumlarını önlemeye çalışır.

Temel düzeyde bilgi güvenliği, network, log yönetimi ve SIEM konusunda bilgi sahibi olunması gerekir.

False positive: Bire bir çevirisi hatalı pozitif diyebiliriz. Loglarda saldırı olarak görünen ancak normalde saldırı olmayan durumlara denir.

Monitoring: Genel anlamda sistemde yapılan tüm hareketlerin belirli bir kurala göre kaydedilip/loglanıp takip etmemizi sağlayan sistemler.

IDS: Intrusion Detection Systems, kuruma yapılan saldırıların tespit edilmesi için oluşturulan sistemler.

IPS: Intrusion Prevention System, IDS’ten farklı olarak tespit ettiği saldırı girişimini önler. İki sistem de genelde log tabanlı çalışır.

SIEM: Monitoringten farklı olarak belirlenen politikalara göre yazılan kurallarla, logları filtreleyerek olası saldırıları tespit eden sistemler. (Security Informatin and Event Management)

Katman 2: Tehdit Yanıtlayıcı (Incident Responder)

Katman 1’den gelen bildirimleri, gelen temel verilerle beraber ele alarak saldırıdan hangi sistemlerin etkilendiğini, kimin, neden ve nasıl yaptığını derinlemesine araştırarak iyileştirme çalışmalarına danışmanlık yapan kişi veya sistemler burada yer alır.

İyi düzeyde adli bilişim, tehdit istihbaratı, log incelemeleri ve temel zararlı yazılım değerlendirmelerini yapan kaynaklar burada yer alır.

Katman 3: Tehdit Avcısı

Katman 2’de yeterince veri elde edilemeyen durumlarda ve katman 2’nin gerekli önlemi alamaması halinde bu katman devreye girer. Tersine mühendislik ve zararlı yazılım analizi, tehdit istihbaratı, adli bilişim ve network konusunda iyi seviyede bilgi sahibi kişiler burada yer alır. Aynı zamanda belirli uygulamaların alt yapısında da bilgi sahibidirler. Tehditleri derinlemesine analiz ederler.

SOC Yöneticisi

Tüm bu sistem ve personelin yönetiminden, stratejik planlar ve güvenlik operasyonları politikasından sorumlu olan yöneticidir.

SOC’un zorlandığı ve olayları cevaplamakta geciktiği bazı durumlar olabilir. Bunlara sebep olan meseleler ise:

  • SOC, masum hareketleri/kullanıcıları engellemediğinden emin olmak ister. False positive durumundan bahsetmiştik.
  • Bazen saldırıya müdahale etmek, saldırının kendisinden daha fazla zarara sebep olabilir. Bazı durumlarda kurumun itibarını daha olumsuz etkileyebilir veya müdahale etmek, daha büyük maddi giderler gerektirebilir.
  • Saldırganın ne yapmak istediğini, kim olduğunu ve kapsamını anlamak için saldırı evresinin bir noktaya kadar devam etmesine izin verilebilir. Haliyle riskli bir seçenektir.

Loglama Zamanı!

Toplanan loglarda olmazsa olmaz veri zaman damgasıdır. Kaldı ki hukuken de zaman verisi bulunmayan logların geçerliliği olmuyor. Diğer yandan saldırgan IP adresi, saldırıya uğrayan makinenin ve ana makinenin adı ve IP adresi log kayıtlarında yer almalıdır. Aynı zamanda saldırının analizi için gönderilen paketin veya isteğin de takip edilmesi gerekir. Logları toplayabileceğimiz önemli kaynaklar:

  • Network paketleri
  • Apache, IIS gibi web sunucuları
  • Web sitelerine yapılan istekler
  • FTP, SSH ve RDP gibi servislere gelen talepler
  • Kurumdaki bilgisayarlar ve ağa bağlı diğer cihazlar
  • İşletim sistemleri
  • Veri tabanları
  • Mail sunucuları

SOC Türleri

Güvenlik Ekibi

Tehdit durumlarını tespit etme ve karşılama politikaları yoktur. Bir saldırı sonrasında soruna çözüm bulur, sistemi yeniden kurar ve sornasında saldırıyı analiz eder. Genelde bir monitoring ve saldırıları ele alma politikaları/süreçleri bulunmaz.

Sanal SOC

Daimi bir SOC ekibi bulunur fakat temel amacı SOC olmayan kişilerden oluşur. Genellikle BT ve güvenlik alanında çalışan personellerden oluşur. Personeller rutin işlerinin yanında aynı zamanda SOC işlemlerini gerçekleştirir. Bir kişi veya küçük bir grup, güvenlik operasyonlarını koordine eder.

Merkezi SOC / Adanmış SOC

Yalnızca bu amaç için çalışan personelleri, bu amaç için ayrılan bütçesi, tesisi ve kaynakları bulunur.

Dağıtık SOC

SOC faaliyetlerini kurumun bu amaç için bulundurduğu personellerin yanı sıra bu alanda uzman, anlaşma yapılan başka firmalar da uzaktan yürütür.

Sanal ve Merkezi SOC

Temelde SOC için ana bir ekip bulunmakla beraber kurumun belirli departmanlarında esas işi SOC olmayan BT ve güvenlik elemanlarını da bünyesinde bulundurur. Ana SOC ekibi ve departmanlardaki elemanlar arasında senkron bir çalışma söz konusudur. Hiyerarşik bir yapı gibi düşünebilirsiniz.

SOC Olgunluk Modeli

Her kurum aynı güvenlik önlemlerine ihtiyaç duymaz. Kurumun büyüklüğü veya yaptığı işin kritikliğine göre farklı güvenlik önlemleri gerekir. Bütçeleri, personelleri, bilginin kritikliği, ağdaki cihazlarının sayısı, envanter durumu, fiziksel alanın genişliği gibi kriterler farklı farklı önlemler gerektirir. Bu durumda eksikliklerin tespit edilmesi ve düzeltilmesi için SOC olgunluk modeli kullanılır.

1.Seviye: Başlangıç

Halihazırda bir SOC ekibi bulunur fakat gerek teknoloji gerek personel sayısı ve teknik beceri yeterliliği noktasında yetersizdir. Güvenlik ürünleri eskidir ve önlemler yetersizdir. Bir tehdit anında belirli bir politikaları yoktur. Durum vahim anlayacağınız.

2.Seviye: Yönetilen

Temel güvenlik ürünlerini temin etmişlerdir ancak yeterli seviyede kullanamıyorlardır. SOC için mevcut personelleri bulunur fakat yaptıkları tek iş güvenlik değildir. Aynı zamanda BT işlerini gerçekleştirir. Yazılı olmayan politikaları bulunur ve bunlar kısmen uygulanır.

3.Seviye: Tanımlı

Söz konusu güvenlik araçları temin edilmiş ve doğru şekilde kullanılıyordur. Önceden belirlenen yazılı politikaları tehdit anında doğru şekilde uygulanıyordur. Personellerin görevleri önceden belirlenmiştir. Güvenlik elemanları aynı zamanda BT elemanı olabilir fakat güvenlik alanında eğitimli ve yetkindir.

4.Seviye: Ölçülebilen

Gerekli güvenlik araçları temin edilmiştir, bakımı düzenli olarak yapılır ve ürünler arasındaki entegre sağlanır. Tüm süreç politikası oluşturulmuş ve düzgün biçimde uygulanır. Kontrol listesi ve iş akışı planlanmıştır. Perosneller BT elemanlarından ayrı olarak bu iş için ayrılmıştır, herkesin rolü detaylı olarak planlanmıştır ve aksilik olması durumunda yedek kişi bellidir.

5.Seviye: İyileştirici

Tüm güvenlik ürünleri temin edilmiş ve entegre şekilde çalışır. Etkin biçimde çalışıp çalışmadığı süreki değerlendirilir. Teknolojiler ve süreç arasında entegrasyon sağlanır. Oluşturulan süreç politikaları ve personeller de sürekli olarak değerlendirilir. Personeller kendi içerisinde iyi organize şekilde çalışır ve aksi durumlarda sürekli yedekleri bulunur.

Kategoriler
Siber Güvenlik

SIGINT Serisi 2: SDRSharp Ayarları ve Hata Çözümleri

Bu yazı serisini “The Hobbyist’s Guide to the RTL” kitabını referans alarak, SIGINT konusunda benim gibi meraklı Eren Altun ile beraber hazırladık. Bire bir çeviri olan kısımlar olmakla beraber; bizim de eklediğimiz başlıklar, daha açık izah etmek istediğimiz veya daha kısa anlatabileceğimizi düşündüğümüz yerler oldu. Her şeyden önce yazarken, araştırırken, çevirirken çok şey öğrendik. Umarım okuyanlara da faydası olur.

OLASI SORUNLAR VE ÇÖZÜMLERİ

Öncelikle kurulumda yaşayabileceğiniz olası hataları ve çözümlerini yazalım. Hataların çoğunu İngilizce bıraktım çünkü ekrana çıkan hatalar da onlara benzer şekilde oluyor.

[vurgu color=”#dd3333″]I GET THE ERROR “NO COMPATIBLE DEVICES FOUND” WHEN TRYING TO START THE DONGLE IN SDR#[/vurgu]

Düşük kalitedeki USB ara kabloları ve USB çoklayıcıları bu hataya neden olabilir. Aynı zamanda bazı USB 3.0 bağlantı noktaları da bu dongle ile uyumlu değildir. Dongle’ın arızalı olması da düşük bir ihtimal olmakla beraber mümkün. Bu durumda farklı cihazlarda test edip iade edebilir veya farklı bir ürün kullanabilirsiniz.

[vurgu color=”#dd3333″]ZADIG TAKES A LONG TIME TO INSTALL THE DRIVER, THEN FAILS[/vurgu]

Zadig’i yönetici modunda çalıştırmamanızdan dolayı bu hatayı alıyor olabilirsiniz. Sağ tıklayın ve yönetici olarak çalıştırın.

[vurgu color=”#dd3333″]I DON’T SEE BULK-IN, INTERFACE (INTERFACE 0)[/vurgu]

Seçenekler menüsünde tüm cihazları listele seçeneğinin işaretli olup olmadığını kontrol edin. DVB-T sürücülerini kurmamış olmanız da olası. Eğer sürücüleri de kurduysanız cihazınız ile ilgili bir sorun olabilir. Nadiren yaşanmakla beraber Zadig’de görünmeyecek hataya sahip bir donanım almış olabilirsiniz.

[vurgu color=”#dd3333″]I DON’T SEE RTL-SDR/USB IN SDRSHARP[/vurgu]

RTL-SDR desteği olmayan bir SDRSharp sürümü indirmiş olabilirsiniz. Resmi web sitesine gidip en güncel halini indirin.

[vurgu color=”#dd3333″]USB 3.0 PORTS DON’T WORK[/vurgu]

USB 3.0 ve RTL-SDR genellikle uyumludur ve iyi performans verir. Ancak bazı durumlarda bu USB girişleri, RTL-SDR’yi tanımaz. Bu durumda USB 2.0 kullanmayı deneyin.

[vurgu color=”#dd3333″]WHEN I RUN INSTALL.BAT A CMD/DOS WINDOW FLASHES ON THE SCREEN BRIEFLY THEN DISAPEARS. NOTHING IS DOWNLOADED OR INSTALLED.[/vurgu]

Bat dosyalarının yürütülmesine izin verilmiyor gibi görünüyor. Bazı antivirüsler ve bazı windows sürümleri buna izin vermeyebilir. Çözümü ise SDR# ve RTL-SDR sürücülerini manuel kurmak.

[vurgu color=”#dd3333″]ZADIG GIVES “SYSTEM POLICY HAS BEEN MODIFIED TO REJECT UNSIGNED DRIVERS“ ERROR IN WINDOWS 8[/vurgu]

Windows 8 sistemlerde imzasız sürücülerle ilgili sorun yaşanabiliyor. Bunun için de http://zadig.akeo.ie/ adresindeki yeni Zadig 2.1+ sürücülerini indirin. SDRSharp içerisindeki install.bat dosyası daima en güncel Zadig versiyonunu indirir.

[vurgu color=”#dd3333″]SDR# GIVES ERROR “APPLICATION FAILED TO INITIALIZE PROPERLY (0XC0000135). CLICK OK TO TERMINATE.”[/vurgu]

SDR# çalışmak için Microsoft .NET 3.5 Framework’e ihtiyaç duyar. Bilgisayarınızda yüklü olmadığı için bu hatayı almış olabilirsiniz. İndirmek için: http://www.microsoft.com/en-gb/download/details.aspx?id=21

[vurgu color=”#dd3333″]SDR# GIVES ERROR “CANNOT ACCESS RTL DEVICE”[/vurgu]

RTL-SDR’nin kapsamı dışındaki bir frekansı dinlemeye almış olabilirsiniz. Bu durumda radyo frekansı gibi RTL-SDR skalasındaki frekanslara yönelmeniz hatayı çözecektir.

[vurgu color=”#dd3333″]I GET THE ERROR “1 COMPATIBLE DEVICES HAVE BEEN FOUND BUT ARE ALL BUSY”[/vurgu]

Bazı bilgisayarların 3.0 girişinde bug olabiliyor. Bu durumda USB 2.0 girişi kullanmanız sorunu çözebilir. Bilgisayarı askıya almanız durumunda da bu hatayla karşılaşmış olabilirsiniz. Dongle’ı çıkartıp tekrar takmanız sorunu çözecektir. Tüm bunlar çözüm olmadıysa Zadig sürücülerini yeniden yüklemeyi deneyebilirsiniz.

[vurgu color=”#dd3333″]Belirtilen sistem dosyaları bulunamıyor veya SDRSHARP dosyası indirilemez.[/vurgu]

İndirdiğiniz kurulum dosyalarını rar içerisinden çıkartıp tek klasörde toplamayı deneyin. Daha sonra tekrar kurulum yapmayı deneyin.

[vurgu color=”#dd3333″]Dongle’ın USB portuna olan bağlantısı sürekli kopuyor.[/vurgu]

Kullandığınız USB uzatma kablo varsa onun yerine dongle’ınızı direkt olarak USB girişine takın. Yine sorun çözülmemiş ise dongle arızalı olabilir.

[vurgu color=”#dd3333″]THE DONGLE WON’T CONNECT TO THE PC AND ON MODELS WITH AN LED THE LED DOES NOT ILLUMINATE[/vurgu]

Donanım arızalı ve değiştirilmesi gerekiyor.

[vurgu color=”#dd3333″]ZADIG çalışmıyor[/vurgu]

Bazı kullanıcılarda Zadig açılırken hata veriyor. Bu durumda alternatif bir sürücü kullanabilirsiniz.

http://visualgdb.com/UsbDriverTool/ adresinde sürücü bulunabilir. WinUSB sürücülerini kurmak için ise “LibUSB” aracını kullanabilirsiniz.

[vurgu color=”#dd3333″]Spectrum ekranları yavaş ve sesler tutarsız.[/vurgu]

Bilgisayarınızın donanım özellikleri SDR#’ı çalıştıracak kadar iyi olmayabilir. Bu durumda CPU yükünü azaltın, FFT ekran çözünürlüğünü azaltın. SDR# girişindeki şelale monitörünü devre dışı bırakın ve filtrelemeyi azaltın.

[vurgu color=”#dd3333″]AUDIO SOUNDS CHOPPY OR DOESN’T WORK OVER WINDOWS RDP[/vurgu]

SDR #’ın ses çıkışı ayarlarından MME yerine directsound’u seçin.

SDR Sharp Kullanma Kılavuzu

SDR# RTL-SDR ile kullanılan en popüler SDR programıdır.

Başlarken yapacaklarımızı listeleyelim. Öncelikle yapacağımız şey, sürücü koltuğunu rahat edeceğimiz şekilde ayarlamak gibi bir şey esasında. Ekrandaki değerleri doğru analiz edebileceğimiz hale getiriyoruz. Maddelere değer verdiğim zamanlar oldu ancak bu yine sizin kişisel tercihlerinize kalmış.

  1. Sol üstteki ayarlar menüsünden “RF Gain” değerini sıfırdan yüksek bir değere getirin.
  2. Sağda yer alan Range değerini ise -70’e indirin.
  3. Daha net bir görüntü için “FFT Display” değerini, detayları ayırt edinceye kadar yükseltin.
  4. Eğer bir R820T/R820T2 kullanıyorsanız, sinyallerde yer alan sivri uçların üzerindeki ayırt edici yuvarlakları, Radio altında yer alan “Correct IQ” seçeneğinden kapatıp açabilirsiniz.
  5. Sol menüde Radio altında yer alan “Snap to Grid” ayarını kapatın veya değeri uygun şekilde ayarlayın.

Ana Ayarlar ve Pencereler

SDRSharp’ta yazılımla ilgili ayarlar ve donanımla ilgili ayarlar ayrı ayrı yerlerde bulunur. Donanıma dair tüm ayarlara sol üstte yer alan ayar menüsünden erişebilirsiniz. Buradan “RF Gain”, bant genişliği gibi ayarları yapmanız mümkün. Sinyal alımını optimize etmek için bu ayarları yapmanız gerekir.

Play/Stop Butonları

Bu butonlar SDRSharp’ın sinyal toplamasını başlatıp durdurursunuz.

Source

Buradan, bağlı olan SDR cihazlarından birini seçebilirsiniz. Biz RTL-SDR üzerinden gittiğimiz için RTL-SDR / USB seçeneğini tercih edeceğiz. Eğer uzak bir sunucuya bağlanacaksanız RTL-SDR / TCP’yi tercih edebilirsiniz. Başkalarının aktif kullandığı ve internete açtığı cihazlara veya kendi cihazlarınıza uzaktan erişmenizi sağlar bu seçenek. Seçtikten sonra ayarlar kısmından IP ve port belirtmeniz gerekir. Şimdilik bununla işimiz yok.

Ayar Menüsü / RTL-SDR Controller

Girişte de anlattığımız gibi donanıma dair optimizasyon ve diğer ayarları yaptığımız ekran.

Frekans Girişi

Dinlemek istediğiniz frekansı buradan ayarlayacaksınız. Değeri arttırmak veya azaltmak için sayıların üstüne veya altına tıklayabilirsiniz. Aynı zamanda fare tekerleğini kullanabilirsiniz veya değeri klavyeden kendiniz girebilirsiniz. Frekans girişleri üç değerli dört bölüme ayrılmıştır. (örneğin, 000.000.000.000) İlk bölüm GHz, ikinci kısım MHz, üçüncü kısım kHz ve son kısım Hz değerini belirtir. Örneğin 88.6 MHz değerini girmek için 000.088.600.000 değerini gireriz.

Volume

Ses çıkış hoparlörlerimizin veya ses borusu cihazınızın ses seviyesini buradan ayarlıyoruz.

RF Spectrum / FFT Display

Bu kısım sinyalleri grafik olarak yansıtan şelalenin ayarlarıdır. Bu kısımda radyo frekansları spektrumunu görsel olarak gerçek zamanlı bir grafik olarak gösterir. Bu grafikte aktif sinyaller tepe olarak görünecektir.

Radyo Frekansları Waterfall (Şelale)

Pencerenin bu bölümü, tıpkı bir şelale gibi, üstte yeni veriler ve altta eski veriler olmak üzere, zaman içinde yayılan RF spektrum grafiğini göstermektedir.

Tuning Bar

Radyo Frekansları spektrum grafiğindeki dikey kırmızı çizgi, radyo frekans spektrumunda RTL-SDR’nin o anda ayarlandığı yeri gösterir. Aktif olarak anlık bant genişliğinin bir parçası içinde grafiği bize yansıtır.

Radyo frekansları spektrumunda başka bir yere tıklanarak kırmızı çizgi sürüklenebilir. Bu kısımla hiç oynamasak daha iyi, şimdilik teorik olarak bilmemiz yeterli. Kırmızı çizginin etrafındaki gölgeli dikdörtgen alan, ayarlanan alanın bant genişliğini gösterir. Bunu, yapılandırma menüsünde ayarlanan bant genişliği/örnekleme hızı ile karıştırmayın. Bant genişliği, ayarlanan sinyalin alanını kapsayacak şekilde ayarlanmalıdır. Gölgeli alanın kenarlarını içeri veya dışarı fareyle sürükleyerek bant genişliğini kolayca ayarlayabilirsiniz. 

Radyo Sekmesi

Burada, şu anda ayarlanmış frekansınızdaki sinyalin, ne tür bir demodülasyon modunu kullanması gerektiğini seçebilirsiniz.

NFM (Dar Bant Frekans Modülasyonu): Telsizleri, meteoroloji radyosu ve çoğu VHF / UHF dijital sinyaller dahil olmak üzere yaygın olarak kullanılan mod. 

WFM (Geniş Bant Frekans Modülasyonu): FM istasyonlarını kullanan moddur (örneğin, radyo müzik istasyonları).

AM (Genlik Modülasyonu): Normal kısa dalga radyoları tarafından algılanabilen ve aynı zamanda uçak ve hava trafik kontrolünde kullanılan hava bandı ses frekanslarının kullandığı yayın, AM istasyonları tarafından kullanılır. Ayrıca bazı dijital sinyaller AM kullanır.

LSB/USB (Alt Yan Bant / Üst Yan Bant): HF bandında ham radyo kullanıcıları tarafından ses ve veriyi küçük bant genişlikleri ile verimli bir şekilde iletmek için kullanılır.

CW (Continuous Wave): Mors kodunu dinlemek için kullanılır.

DSB (Çift Taraflı Bant): AM’ye benzer, ancak merkezlenmiş ayar gerektirir.

RAW (Ham IQ sinyali): RAW IQ verilerini dinlemek veya kaydetmek için kullanılır. Yapılandırma menüsünde RF hızını sıfırdan daha yüksek bir değere yükseltin. Penceresinin sağındaki aralık kaydırıcısını yaklaşık -70’e indirin.

Önerilen Varsayılan Ayarlar

Shift: Bu sekme ayarlanan frekansı girilen miktar kadar dengeler. Bir dönüştürücü kullanıyorsanız kullanışlıdır. Örneğin, 100 MHz’lik bir osilatöre sahip bir sürücünüz varsa, vardiyayı -100.000.000 olarak ayarlayın (eksi işaretini unutmayın). Vardiya olmadan, 9 MHz’de bir sinyale ayarlamak için bir çevirici kullanırken, aslında 100 + 9 = 109 MHz ayar yapmanız gerekir. Vardiya seti ile normal olarak 9 MHz’e ayarlayabilirsiniz. 125 MHz osilatörlü bir konvertörünüz varsa, 125 + 9 = 134 MHz ayarını yapabilir veya vardiyayı -125,000,000 olarak ayarlayabilirsiniz.

Bandwidth: (NFM/AM12500, WFM: 250000) Bu, ayarlanabilir alanın gölgeli kısmının genişliğidir. Manuel olarak burada ayarlayabilir veya ayar çubuğunun tanımı altında açıklandığı şekilde, kenarları fareyle sürükleyerek ayarlayabilirsiniz.

Filter: (Blackman-Harris 4) RF alanındaki sinyallerde, hangi tür sinyallerin vurgulanacağını belirlemek için kullanılır. Önerilen ayar, genellikle en uygun filtredir ve neredeyse hiç değiştirilmesi gerekmez.

Order: (500) Düşük order değerlerinde, takip ettiğiniz bant genişliğinin dışındaki sinyalleri hala duyabilirsiniz. Bu durumda, order değerini yükselterek, bant geçişlerini sıkıştırıp keskinleştirebilirsiniz. Bu sayede söz konusu bant genişliği dışındaki sinyallerin duyulmasının önüne geçebilirsiniz. Seçilen alanda sinyaller güçlendikçe bu değeri daha da yükseltebilirsiniz. Ancak bu değerin yükselmesi CPU üzerinde daha fazla yüke neden olabilir ve bilgisayarın yavaşlamasına sebep olabilir.

Squelch: (OFF) Sinyal gücü, belirtilen değerin altına düştüğünde sesi kapatmak için kullanılır. Örneğin bir telsiz dinliyorsunuz. O frekansta konuşma olmadığında büyük oranda cızırtı duyacaksınız. Birisi konuşmaya başladığında net bir sinyal oluşacak ve konuşma duyulacak, cızırtı kesilecek. Konuşma olmadığı esnalarda cızırtıyı kesmek için bu değerle oynamanız gerekiyor.

CW SHIFT: (600) CW yani mors kodu alırken gönderme ve alma frekansları arasındaki farkı belirtmek için kullanılır.

FM Stereo: (OFF) Broadcast radyo WFM sinyalleri için stereo çıkış sağlayacaktır.

Snap To Grid / Step Size: (OFF)

Correct IQ: (ON)

Lock Carrier: (OFF) Sadece AM veya DSB modunda aktif edilebilir. Alımı önemli ölçüde iyileştiren ve ayrıca sinyali otomatik olarak ortalayan senkronize AM alımı için izin verir. Merkezleme ana RF spektrumunda gösterilmez, ancak etkisi Zoom FFT IF Spektrum penceresinde görülebilir. Daha iyi AM alımı için bunu açın, ancak CPU kullanımını artırabilir.

Anti-Fading: (OFF) “Lock carrier” etkin olduğunda kullanılabilir. Zayıf sinyallerde AM sinyallerinin simetrisinden faydalanır. Daha iyi bir AM sinyal alımı için bu değeri ON yapın, ancak CPU kullanımı artacaktır.

Swap I&Q: (OFF) Bir panadapter olarak SDR # kullanıyorsanız, bazı donanım telsizlerinde I & Q sinyalleri değiştirilmiş olabilir ve bu seçeneğin işaretlenmesi gerekebilir.

Mark Peak: (OFF) RF spektrumundaki tepe noktalarını daire ile işaretler. (Varsayılan ve önerilen OFF olsa da ben ON yapıyorum.)

AUDIO TAB

Sample Rate: (48000) Bu değer, ses kartınızın saniyedeki sample sayısını ayarlar. Play butonuna basmadan önce ayarlanır.

Input: (ANYTHING) Çoğunlukla yazılım tanımlı telsizlerle kullanılır, sıradan bir RTL-SDR kullanımında bu seçenekle ilgilenmenize gerek yoktur.

Output: (Ses kartınızı seçin) Ses çıkış cihazınızı ayarlar. Varsayılan olarak hoparlör ayarlanır. Ancak sinyal çıktısı bir kod çözücü aracılığı ile alınmak isteniyorsa “VAC / VB Cable” seçilmelidir.

Unity Gain: (OFF) “Audio Gain” genelde 0dB’ye ayarlandığı için bu seçenek normalde OFF konumunda bırakılmalıdır.

Filter Audio: (OFF) Düşük sesleri filtreleyip, yüksek tiz sesleri ve parazitleri ortadan kaldırır ve ses sinyallerini iyileştirir. Dijital sinyallerle uğraşılırken bu seçenek kapatılmalıdır.

AGC (AUTOMATIC GAIN CONTROL) TAB

Not: Bazı durumlarda AGC sekmesi pasif durumdadır.

Use AGC: (ON) Sesler arasında denge sağlar. Yani çok düşük seslerin, biraz daha güçlü duyulmasını, çok yüksek seslerin daha düşük duyulmasını sağlayacaktır. Ses sinyalleri için kullanılır. AM / USB / LSB sinyallerini dinlerken bu özelliği açmak oldukça kullanışlıdır.

USE HANG / THRESHOLD / DECAY / SLOPE: (-50,100,0) Varsayılan AGC davranışlarını kişiselleştirmenizi sağlar. Ancak genellikle varsayılan ayarlar iş görür.

FFT DISPLAY

View: (both) RF spektrumu ve şelale görünümünü açıp kapatmanızı sağlar. İkisini de görebilirsiniz veya hiçbirini görmeyebilirsiniz. Şelale görünümünün kapatılması yavaş işlemciler bulunduran cihazlarda performans açısından daha faydalı olacaktır.

Window: (Blackman-Harris 4) FFT’de kullanılan filtreleme algoritmasının türünü belirtir. Varsayılan seçenek genelde en iyisidir.

Resolution: (32768) Çözünürlüğü ayarlar. Şelale ve RF ekranındaki çıktıların kalitesini ayarlar. Yüksek çözünürlük, bir sinyalin yapısını daha net görmenizi ve tepe noktalarını daha iyi ayırt etmenizi sağlar. Çözünürlük arttıkça cihazınızın daha fazla enerji sarf edeceğini söylemeye gerek yok sanıyorum.

Time Markers: (OFF) Şelale görünümüne zaman ayraçları ekler. Bu sayede belli sinyallerin hangi saatlerde ekranınıza düştüğünü görebilirsiniz.

Gradient: Şelale ekranındaki renkleri özelleştirmenizi sağlar.

Mark Peaks: (OFF) RF spektrumunda alınan sinyallerin tepe noktasını yuvarlak içine alıp daha net görmenizi sağlar. Her ne kadar varsayılan ve önerilen OFF seçeneği olsa da ben ON şeklinde kullanıyorum.

S-Attack / S-Decay: RF spektrumundaki düzeltme ve ortalama miktarını değiştirir.

W-Attack / W-Decay: Şelale ekranındaki yumuşatma ve ortalama miktarını değiştirir.

Speed: RF spektrumundaki ve şelaledeki sinyallerin güncelleme hızını değiştirir.

ZOOM FFT

Zoom FFT, SDRSharp ile beraber gelen varsayılan bir eklentidir. RF spektrumunda yakınlaştırılmış bir görüntü oluşturur.

Enable IF: Sinyal yapısını daha büyük boyutta görmenizi sağlar.

Enable Filter: (-50,100,0) Varsayılan AGC davranışlarını kişiselleştirmenizi sağlar. Ancak genellikle varsayılan ayarlar iş görür.

Enable MPX: (ON) Sesler arasında denge sağlar. Yani çok düşük seslerin, biraz daha güçlü duyulmasını, çok yüksek seslerin daha düşük duyulmasını sağlayacaktır. Ses sinyalleri için kullanılır. AM / USB / LSB sinyallerini dinlerken bu özelliği açmak oldukça kullanışlıdır.

Enable Audio: Ses (baseband) spektrumunu görmenizi sağlar.

DIGITAL NOISE REDUCTION (DNR)

Analog ses sinyallerini dinlerken,DNR’ı (dijital gürültü azaltma) açmak faydalıdır. Bu ayar arkaplan sesini azaltmaya çalışır. İlk seçenek gelen sinyaldeki gürültüyü azaltmak için bir algoritma kullanır. Audio seçeneği ise bunu çıkış sinyalinde uygular. İlk önce “IF” seçeneği ile denemeler yapmak yeterli olacaktır ancak ikisini de denemek en iyi sonucu verir.

NOISE BLANKER

Motor, elektrik hatları gibi kaynaklardan gelen gürültü seslerini azaltan algoritma. Zayıf bir sinyalden gelen sesi dinlerken yardımcı olacaktır.

RECORDING TAB

Bu sekme, size gelen ve sizden giden sinyallerin seslerini kayda almanızı sağlar. Sample format seçeneği ile kayıt kalitesini tercih edebilirsiniz. RTL-SDR sadece 8 bit olduğundan en düşük 8 bit PCM seçeneğini seçebilirsiniz. Bu da bize önemli miktarda disk alanı kazandırır. Baseband işaretlenerek I/Q kaydı, yani giren ve çıkan sinyallerin söz konusu frekans aralığındaki hareketinin kaydı yapılabilir. Audio ise ses kaydı yapar. Baseband seçeneği ile diskte çok daha fazla yere ihtiyaç olacağını unutmayın. Kaydedilen tüm dosyalar SDR# dosyaları ile aynı klasörde saklanır.

FREQUENCY MANAGER TAB

SDR# ile bir frekans yakaladınız ve onu kaydetmek istiyorsunuz diyelim. Bu durumda frequency manager tab size frekansları veri tabanına kaydetmenizi sağlar. New butonuna basarak veri tabanına yeni frekans eklenir ve isimlendirilir. Daha sonra bunların üzerinde değişiklik yapabilir veya silebilirsiniz. Aynı zamanda frekans eklerken grup ismi de belirterek elinizdeki frekansları gruplandırmanız mümkün.

CONFIGURE WINDOW

Device: Takılı birden fazla cihaz varsa bu menüden kullanacağınız cihazı seçmeniz mümkün.

Sample Rate: (2.048 veya 2.4 MSPS) SDR’nin görüntülemesi gereken anlık bant genişliğinin boyutunu seçmenizi sağlar. 2.8 MSPS’ye kadar çoğu bilgisayar sorunsuz çalışır ancak bilgisayarınızın donanımı zayıfsa bunu azaltmayı tercih edebilirsiniz. Bu değeri arttırmak, zayıf sinyallerde alımı iyileştirebilir.

Sampling Mode: (Quadrature Sampling)

Offset Tuning: (OFF IF R820T/2, ON IF E4000/FC0012/13)

RTL AGC: (OFF) Bu ayarın açılması normalde kullanışlı değildir çünkü alımı alçaltır.

Tuner AGC: (OFF) Genel tarama için bu ayarı açmak faydalı olabilir ancak kapalı olması daha faydalı olacaktır. RF GAIN seçeneği ile ayar yapmak her zaman daha iyidir.

RF GAIN: RF kazancını manuel ayarlamanızı sağlar, Tuner AGC aktif ise aktif olmayacaktır.

Frequency Correction (PPM): Frekans kaymalarını düzeltmenizi sağlar.

SDRSharp ve uygun maliyette temin edeceğiniz RTL-SDR ile kapsamlı bir sigint çalışması yapmak mümkün. Daha fazla donanım ve kaynak için https://www.rtl-sdr.com/ adresini ziyaret edebilirsiniz. İlerleyen zamanda yeni donanımları ve yazılımları da inceleyeceğiz.

Kategoriler
Siber Güvenlik

SIGINT Serisi 1: RTL-SDR ve SDR# Kullanımı

Software Defined Radio (SDR) Nedir?

Geleneksel radyo donanımları, radyo sinyallerinin şifresini çözmek ve işlemek için gerekli matematiksel işlemleri, analog devre kullanarak gerçekleştirir. Ancak günümüzde bilgisayarlar, doğru yazılımlarla bu hesaplamaları oldukça hızlı bir şekilde halledebiliyor. Bu gelişmeler, analog radyolara da etki etmiş ve SDR tanımı ortaya çıkmış. Yani yazılım destekli radyo. Başlarda gelişmiş telsizler ile donanım odaklı yapılan bu işlemler, bugün geniş bant ayarı ve şelale ekranları gibi özelliklerle beraber çok daha uygun maliyetlere yapılabilmekte.

RTL-SDR nedir?

İçinde RTL2832U çipine sahip seri olarak üretilen DVB-T TV (Dijital HD TV) USB alıcı dongle’larına bağlanan oldukça ucuz bir yazılım tanımlı telsizdir. Dongle kelimesini de laf arası açıklayalım, USB portlarınıza bağlanan tüm cihazlar dongle olarak adlandırılır. Ve yazının devamında da bu kavramı sıkça kullanacağım. Bu cihazlar esasında bizim uygulamalarımız için yapılmış şeyler değil. Bildiğimiz televizyon alıcısı. 2012 yılında donanım odaklı hacking konuları ile ilgilenen Eric FLy, Linux sürücüsü geliştirici Antti Palosaari ve Osmocom ekibi bu yongaların geniş bant SDR olarak kullanılmasını sağlayan bir modda olduğunu keşfetti. Yani bu sıradan televizyon alıcıları aynı zamanda SDR işlemleri için de uygundu. Elbette özel SDRler ile bu alıcıların performansı bir değil. Ancak fiyatına oranla bu alıcılar da oldukça güzel işler yapabiliyor ve bu konuya meraklı olanlar için uygun fiyatta bir başlangıç imkanı sunuyor. Diğer yandan yaygın biçimde kullanıldığından büyük bir geliştirme ve yazılımcı desteğini de arkasına almış durumda. Haliyle özgür yazılımlar ve konuya dair dökümanlar kolayca keşfedilebiliyor.

Projelerimiz için çok daha güçlü ve kolay kullanımlı donanımlar var. (HackRF, PandwaRF gibi) Ancak fiyatlarına baktığımızda o kadar da uygun olmayacaktır. Hele ki benim gibi öğrenciyseniz 🙂 Bu durumda RTL2832U şeklinde bir arama ile karşınıza çıkacak bir ürünü almanız daha akıl karı. 15 dolardan daha az bir fiyata ulaşabilirsiniz. Aliexpress’ten bir haftada geldi. Satın almak için şu adrese bir göz atabilirsiniz : http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/

Ben ise şuradan aldım : https://tr.aliexpress.com/item/32914826153.html

Aldığınız ürünün bant genişliği 3.2 MHz’ye kadar çıkabilir. Ancak bilgisayarınıza bağlı olarak en fazla 2.4 veya 2.8 MHz’ye kadar çalışabileceksiniz. Peki bu cihaz ne yapıyor? Etrafta dolaşan analog telsiz sinyallerini dijitale çeviriyor ve USB portunuzdan, bilgisayarda kullanıma hazır bir biçimde size iletiyor. Bunu nasıl yapıyor? 2MHz değerindeki bant genişliğindeki yığını alıyor ve işe yarar kısmını dijitale çeviriyor. Aşağıdaki görselde daha anlaşılır bir şekilde gösteriliyor. Yeşil kısım bizim dinlediğimiz kısım.

Peki ilk akla gelen uygulamalar neler?

  • Şifrelenmemiş Polis/ Ambulans / İtfaiye / Askeriye gibi telsiz konuşmalarını dinlemek
  • Uçak-kule ve diğer konuşmaları dinlemek
  • Radar kullanan uçak ve gemi gibi taşıtların konumlarını öğrenmek
  • GSM görüşmeleri ve SMS’leri takip etmek
  • Bebek monitörleri ve kablosuz telefonları dinlemek
  • Amatör telsiz konuşmalarını dinlemek
  • FM radyo ve televizyon yayınlarını takip etmek
  • Uyduları ve ISS’yi dinlemek

Yapılabilecekler listesini gerçekten birkaç kat uzatabiliriz. Ancak ben en cezbedici olanları listeme aldım.

SDRSharp’a Cihazı Nasıl Entegre Edeceğim?

Peki, sık kullanacağımız bir programdan bahsedelim: SDRSharp (SDR# olarak da yazabilirsiniz fark etmez.) Bunun için Windows bilgisayar ihtiyacımız olacak. XP ve sonrası olacak. Aynı zamanda USB 2.0 ve üstü bir girişiniz olmalı. Eh, bunlara sahip olmamanız pek olası değil sanıyorum. Yine de Linux severler için farklı yazılımlara daha sonra değineceğim.

Şuradan Windows SDR Software Package seçeneğini seçip indirebilirsiniz : https://airspy.com/download/

İndirdiğiniz dosyayı zipten çıkartarak bir klasör haline getirin ve install.bat dosyasını çalıştırın. Bu bat dosyası, SDRSharp ve RTL-SDR cihazınızla çalışmaya başlamanız için gerekli tüm dosyaları indirecek bir komut çalıştıracak, sonrasında da komut penceresini otomatik kapatacak.

Kurulum kısmı tamam. Şimdi RTL-SDR cihazımızı da olaya dahil edelim. Yukarıdaki işlemden sonra zadig.exe isminde bir dosya oluşmuş olmalı. Cihazla beraber gelen CD’yi umarım kullanmamışsınızdır. Çünkü o driver işimize yaramayacak. Kurdunuz ise kaldırın ve zadig.exe’yi çalıştırın. Daha sonra options kısmından List All Devices diyerek mevcut cihazınızı listeleyin.

Daha sonra açılır menüden “Bulk-In, Interface (Interface 0)” seçeneğini seçin. Her şey tamamsa Install Driver’a (replace olarak da geçebilir) basın. Kısa bir süre sonra driver meselesi de hallolmuş olacak. (Bazı PC’lerde, RTL2832UHIDIR veya RTL2832U gibi, bir seçenek görebileceğinizi unutmayın. Bu da geçerli bir seçimdir). (“Bulk-In, Interface (Interface 1)” veya “USB Receiver (Interface 0)” seçmeyin). Windows güncellemeleri esnasında sıkıntı yaşayabilirsiniz. Bu durumda tekrar driverı yüklemeyi deneyin.

Tamamdır kurulum işleri ile şimdilik işimiz bitti. SDRSharp.exe’yi çalıştırın. Source kısmından “RTL-SDR / USB” seçeneğini seçin.

Daha sonra oynat düğmesine basarak havada olan bitenleri toplamaya başlayabilirsiniz. Şimdi, basit bir test yapıp FM radyo yayınlarını dinleyelim. Bildiğiniz, şu müzik çalan radyo kanalları… 88MHz ile 108 MHz arasındaki istasyonları bir araştırın. Sol üst kısımdan WFM modunu seçin. Eğer güzel de bir müzik duyduysanız cihazın çalışır olduğundan emin olabilirsiniz.

Kategoriler
Siber Güvenlik

Bandit WriteUP – Part:2

Daha önce yarısına geldiğimiz sinir makine banditi çözmeye devam edelim.

Önceki çözümleri okumak için: https://caglar-celik.com/siber-guvenlik/bandit-writeup-part1/

bandit15

Bir sonraki seviyeye ait anahtar, mevcut seviyenin anahtarının, SSL şifrelemesi kullanılarak localhost’taki port 30001’e göndererek alınabilir.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Yardımcı Kaynaklar

Çözüm:

Openssl ile localhosta bağlanıyorum. Bu bölüme giriş yaptığım anahtarı vererek sonraki seviyeye ulaşıyorum.

openssl s_client -quiet -connect localhost:30001

Flag: [vurgu color=”#dd3333″]cluFn7wTiGryunymYOu4RcffSxQluehd[/vurgu]

bandit16

Bir sonraki seviyeye ait anahtar, mevcut seviyenin anahtarının, SSL şifrelemesi kullanılarak localhost’taki port 30001’e göndererek alınabilir.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Yardımcı Kaynaklar

Çözüm:

Sırf chmod olayını bilmediğim için acı çektiğim soru. Önce, hangi portta SSL mevcut bulmak için bir nmap taraması atıyorum. Ve aradığımı da buluyorum. 31790 portundan giriş yapabilirim.

nmap -sV -sT localhost -p 31000-32000

Daha sonra openssl ile bağlanmayı deniyorum ve beni bir key karşılıyor.

Aslında bütün olay bu kadardı. Daha sonra kendi makinenize bu keyi kopyalıyorsunuz ve bu key ile sonraki soruya bağlanmayı deniyorsunuz. Ben uzun süre makine içinde yazma izni olan yer aradım durdum, haliyle bulamadım ve sonra çark etti 🙂 Ancak o da hata verecektir. Bu durumda da key dosyanızın izinlerini değiştirmelisiniz.

chmod 600 private.key

ssh [email protected] -p 2220 -i private.key

Flag: [vurgu color=”#dd3333″]Karşı makineden aldığınız private key[/vurgu]

bandit17

Ana dizinde iki dosya yer alıyor. Bir sonraki seviyeye ait anahtar password.new içerisinde yer alıyor ve password.new ve password.old arasındaki farkı bulmanız gerekiyor.

Not: “byebye” mesajı ile karşılaşırsanız bu seviyeyi geçtiniz demektir. Ancak bu seviye, bandit19 ile alakalı.

Çözüm için kullanabileceğiniz komutlar:

cat, grep, ls, diff

Çözüm:

İki dosyayı karşılaştırıp farklı olan satırı bulmam gerekiyor. Bunun için diff kullanıyorum. Ortaya çıkan ilk satır benim anahtarım oluyor.

Flag: [vurgu color=”#dd3333″]kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd[/vurgu]

bandit18

Bir sonraki seviyeye ait anahtar, ana dizindeki readme dosyası içerisinde. Ancak .bashrc dosyası, bir ssh bağlantısı yapıldığında oturumu kapatması için ayarlandı.

Çözüm için kullanabileceğiniz komutlar:

ssh,ls,cat

Çözüm:

Evet, giriş yaptığımda bağlantı kopuyor ancak ben de başka bir çözüm bulurum. SSH bağlantısı ile beraber readme dosyasının içini okurum.

Flag: [vurgu color=”#dd3333″]IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x[/vurgu]

bandit19

Bir sonraki seviyeye erişmek için, ana dizindeki setuid binary değerini kullanmalısınız. Nasıl kullanılacağını bulmak için argümanlar olmadan yürütün. Setuid ikilisini kullandıktan sonra, bu seviye için şifre  (/ etc / bandit_pass) bulunabilir.

Yardımcı Kaynaklar:

Çözüm:

bandit20-do isminde bir dosya var. Bu dosya çalıştırılabilir binary dosyası ancak erişmek için setuid değeri ile oynamam gerekiyor. Soru karşıma çıkana kadar ben de bilmiyordum ancak yardımcı kaynak ve internetteki diğer kaynaklara bakarak olayı anladım. Daha sonra soruda da verilen dosyayı setuid değeri olarak okutuyorum. Sonraki seviyenin anahtarı karşıma çıkıyor.

Flag: [vurgu color=”#dd3333″]GbKksEFF4yrVs6il55v6gwY5aVje5f0j[/vurgu]

bandit20

Ana dizindeki binary dosyası şunları yapıyor:

Localhostta belirtilen bağlantı noktası ile bağlantı kurar. Daha sonra bağlantıdan gelen metin satırını okur ve bunu önceki seviyenin anahtarı ile karşılaştırır. Eğer verilen anahtar doğru ise sonraki seviyeye ait anahtarı verir.

Çözüm için kullanabileceğiniz komutlar

ssh, nc, cat, bash, screen, tmux, Unix ‘job control’ (bg, fg, jobs, &, CTRL-Z, …)

Çözüm:

içeride suconnect isminde bir dosya var. ./suconnect dediğimde localhost üzerinde açılan bir porttan bağlanılması gerektiği ve diğer taraftan doğru anahtar gelirse yeni anahtarı vereceğini söylüyor. Ben de yeni bir SSH bağlantısı yapıp nc -l -p 12345 komutu ile 12345 portunu açıyorum. Önceki bağlantımdan ise ./suconnect 12345 yazarak bağlantıyı sağlıyorum. Yeni bağlantıya tekrar geçip önceki bölümün anahtarını gönderiyorum ve yeni anahtar karşıma çıkıyor. Kabul ediyorum biraz karışıktı. Ancak ekran görüntüleri ile daha anlaşılır olacak.

Flag: [vurgu color=”#dd3333″]gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr[/vurgu]

bandit21

Bir program, zamana bağlı iş zamanlayıcısı olan cron’dan düzenli aralıklarla otomatik olarak çalışıyor. Yapılandırma için /etc/cron.d/ adresine bakın ve hangi komutun yürütülmekte olduğunu görün.

Çözüm için kullanabileceğiniz komutlar

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

Çözüm:

etc/cron.d dizinine gidiyorum ve içindekileri listelediğimde cronjob_bandit22 isminde bir dosya görüyorum. Onun da içini okuduğumda usr/bin dizininde cronjob_bandit22.sh isminde bir dosyaya yönlendiriyor. O dosyanın içini okuduğumda da /tmp dizininde t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv isminde bir dosyaya yönlendiriyor. E onu da okuduğumda anahtar karşımda.

Flag: [vurgu color=”#dd3333″]Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI[/vurgu]

bandit22

Bir program, zamana bağlı iş zamanlayıcısı olan cron’dan düzenli aralıklarla otomatik olarak çalışıyor. Yapılandırma için /etc/cron.d/ adresine bakın ve hangi komutun yürütülmekte olduğunu görün.

Çözüm için kullanabileceğiniz komutlar

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

Çözüm:

Yine etc/cron.d dizinine gidiyorum ve içindekileri listelediğimde cronjob_bandit23 isminde bir dosya görüyorum. Onun da içini okuduğumda usr/bin dizininde cronjob_bandit23.sh isminde bir dosyaya yönlendiriyor. Dosya içini okuduğumda bash scriptin neler yaptığını anlıyorum.

Scripti bir de çalıştırıp görmek istedim. $myname bandit22 olarak çıkıyor. (whoami komutu ile almıştık)Tmp içinde bir dosya oluşturuyor Tmp içinde bir dosya oluşturuyor  ve  “I am user bandit22” metnini md5 ile şifreleyerek o dosyanın adı olarak belirliyor.

Oluşan dosyayı okuduğumda bandit22’ye ait anahtarı alıyorum.E o zaman myname kısmı yerine bandit23 yazarsam onun anahtarına erişebilirim belki.

Flag: [vurgu color=”#dd3333″]jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n[/vurgu]