CyberFlow Logo CyberFlow 📚 Blog

GNURadio - SDR ve donanım sinyal analizi

✍️ Ahmet BİRKAN 📂 kali_tools_donanim_rfid_araclari
GNURadio - SDR ve donanım sinyal analizi Giriş Giriş GNU Radio, açık kaynaklı bir yazılım tanımına sahip radyo (SDR) platformudur ve bu platform, kullanıcılara…
GNURadio - SDR ve donanım sinyal analizi

GNURadio - SDR ve donanım sinyal analizi

Giriş

Giriş

GNU Radio, açık kaynaklı bir yazılım tanımına sahip radyo (SDR) platformudur ve bu platform, kullanıcılara donanım sinyal analizi yapma imkanı sunar. SDR, "Software Defined Radio" (Yazılım Tanımlı Radyo) teriminin kısaltması olup, radyo alım ve iletim işlemlerini yazılım aracılığıyla gerçekleştiren bir sistemi ifade eder. Bu teknoloji, sinyalleri işlerken geleneksel analog devre elemanları yerine yazılım kombinasyonlarını kullanarak, frekans spektrumunda daha fazla esneklik ve özelleştirme sunar.

SDR Teknolojisinin Önemi

Geleneksel radyo sistemlerinde donanım sınırlandırmaları ve belirli frekans aralıklarıyla sınırlı işlem yetenekleri bulunurken, GNU Radio gibi yazılım tabanlı çözümler bu sınırlamaları büyük ölçüde ortadan kaldırır. Kullanıcılar, farklı modülasyon tekniklerini, protokolleri ve sinyal işleme algoritmalarını kullanarak kendi sinyal işleme uygulamalarını oluşturabilirler. Bu düzeyde bir özelleştirme, SDR'ı hem eğitimsel hem de ticari uygulamalar için cazip kılar.

Kullanım Alanları

GNU Radio ve SDR teknolojileri, çeşitli alanlarda uygulanabilir. Bu alanlar arasında:

Siber Güvenlik Açısından Değerlendirme

Siber güvenlik bağlamında, GNU Radio ve SDR, hem tehdit analizi hem de güvenlik testleri için kritik bir araçtır. Saldırganlar, sinyalleri dinleyerek veya manipüle ederek veri hırsızlığı gerçekleştirebilirken, güvenlik uzmanları da bu teknolojiyi kullanarak potansiyel saldırı vektörlerini tespit edebilir. SDR, radyo frekansı (RF) sinyallerinin algılanmasını ve analiz edilmesini sağladığı için, kötü niyetli etkinliklerin tespitinde önemli bir rol oynar.

Eğitim ve Uygulama

GNU Radio kullanıcılara, hem teorik hem de pratik deneyim kazandırarak, SDR teknolojileri hakkında daha derin bir anlayış geliştirmelerine olanak tanır. Kullanıcılar, çeşitli blokları birleştirerek farklı sinyal işleme uygulamaları oluşturabilir ve bu süreçte veri toplama ve değerlendirme becerilerini geliştirebilirler. Örneğin, bir GNU Radio akışı, belirli bir frekans bandındaki ses sinyallerini alıp işlem ederek, bu sinyallerin özelliklerini analiz edebilir.

Aşağıda basit bir GNU Radio akışı örneği bulunmaktadır:

# Basit GNU Radio Akışı
from gnuradio import gr
from gnuradio import blocks

class basic_flowgraph(gr.top_block):
    def __init__(self):
        gr.top_block.__init__(self)
        self.src = blocks.file_source(gr.sizeof_float, "input_data.dat", repeat=False)
        self.snk = blocks.file_sink(gr.sizeof_float, "output_data.dat")
        self.connect(self.src, self.snk)

flowgraph = basic_flowgraph()
flowgraph.run()

Bu örnek, bir dosyadan veri okuma ve başka bir dosyaya yazma işlemi gerçekleştiren basit bir GNU Radio akışını temsil eder. Böyle uygulamalar, kullanıcıların sinyal analizi becerilerini geliştirmesi ve gerçek dünya verileriyle çalışabilmesi için önemli bir başlangıç noktasıdır.

Sonuç olarak, GNU Radio ve SDR, siber güvenlik alanında büyük bir potansiyele sahip olup, hem araştırmacılara hem de pratik uygulayıcılara eğitim ve geliştirme fırsatları sunmaktadır.

Teknik Detay

GNURadio ve SDR ile Donanım Sinyal Analizi

GNURadio, yazılım tanımlı radyo (SDR) sistemleri için bir platformdur. Bu platform, kullanıcıların radyo sinyallerini işlemek ve analiz etmek için ihtiyaç duyduğu araçları ve bileşenleri sağlar. GNURadio, sinyal analizi ve işleme konusunda güçlü bir framework sunarak, donanım ve yazılım bileşenlerinin entegrasyonunu mümkün kılar. Bu bölümde, GNURadio'nun çalışma mantığı, kullandığı yöntemler ve donanım sinyal analizi üzerindeki etkisi derinlemesine ele alınacaktır.

GNURadio Çalışma Mantığı

GNURadio, iki temel bileşene dayanır: akış grafikleri ve blok temelli yapı. Kullanıcılar, radyo sinyallerini işlemek için grafiksel bir arayüzde blokları birleştirerek akış grafikleri oluştururlar. Her bir blok, belirli bir işlevi temsil eder ve birbirleri ile veri akışı sağlar. GNURadio'da kullanılan temel blok türleri şunlardır:

Kullanılan Yöntemler

GNURadio'da sinyal analizi yapılırken, çeşitli sinyal işleme yöntemleri kullanılır. Bunlar arasında Fourier analizi, zaman-frekans analizi ve istatistiksel yöntemler bulunur. Aşağıda, bazı yaygın yöntemlerin kısa açıklamaları yer almaktadır:

Fourier Analizi

Sinyalin frekans bileşenlerini analiz etmek için kullanılan bir tekniktir. Fourier dönüşümü, zaman alanındaki sinyali frekans alanına dönüştürerek, bileşen frekansları ve bunların genliklerini elde etmeye olanak tanır. GNURadio'da bu işlem genellikle FFT (Fast Fourier Transform) blokları ile gerçekleştirilir.

Zaman-Frekans Analizi

Sinyalin farklı zaman dilimlerindeki frekans özelliklerini değerlendirmek için kullanılır. Özellikle dinamik sinyallerin analizinde, zaman-frekans dönüştürmeleri oldukça yararlıdır. GNURadio, sürekli dalgalet analizi (CWT) ve kısa zamanlı Fourier dönüşümü (STFT) gibi teknikleri destekler.

İstatistiksel Yöntemler

Sinyal verilerini anlamak için istatistiksel yöntemler kullanılması gerekir. Bu yöntemler, sinyalin gürültü seviyesini, ortalamasını veya dağılımını analiz etmeye yarar.

Dikkat Edilmesi Gereken Noktalar

GNURadio kullanırken dikkat edilmesi gereken birkaç nokta vardır:

  1. Donanım Uyumluluğu: GNURadio, farklı SDR donanımları ile entegrasyon sağlar. Ancak, kullandığınız donanımın GNURadio ile uyumlu olmasına dikkat etmelisiniz. Örneğin, HackRF, RTL-SDR veya USRP gibi cihazlarına ait sürücülerin yüklü olması gerekmektedir.

  2. Veri İşleme Hızı: Sinyal analizi sırasında veri akış hızlarının yönetimi önemlidir. Yavaş bir sistem, sinyal kaybına veya gecikmelere neden olabilir. Bu nedenle, blokların ne tür veri hızlarını desteklediğini kontrol etmek önemlidir.

  3. Gürültü Yönetimi: Donanım sinyal analizi yaparken, gürültü seviyelerini düşürmek için uygun filtreleme tekniklerini kullanmak gereklidir. GNURadio’da, özellikle bu amaçla tasarlanmış çeşitli filtre blokları bulunmaktadır.

Teknik Bileşenler

GNURadio akış grafikleri, belirli bir sinyal analizi projesi için aşağıdaki teknik bileşenleri içerir:

Örneğin, bir akış grafiğini çalıştırmak için aşağıdaki komut kullanılabilir:

gnuradio-companion my_flowgraph.grc

Bu komut, my_flowgraph.grc adlı grafik dosyasındaki akış grafiğini başlatacaktır.

GNURadio, esnekliği ve özelleştirilebilirliği ile donanım sinyal analizi konusunda önemli bir araçtır. Kullanıcılar, kendi ihtiyaçlarına göre çeşitli blokları birleştirerek özel uygulamalar geliştirebilir, donanım bazlı sinyal analizi yaparak geniş bir yelpazede veri toplayabilirler. Uygulamalarının verimliliği, kullanılacak blokların doğru seçimi ve sistem performansı ile yakından ilişkilidir.

İleri Seviye

GNURadio Kullanımında İleri Seviye Yaklaşımlar

GNURadio, yazılım tanımlı radyo (SDR) uygulamaları için güçlü ve esnek bir platformdur. İleri seviye kullanım, sızma testleri, sinyal analizi ve daha fazlası için kullanıcıların en iyi şekilde yararlanabileceği çeşitli özellikler ve teknikler sunmaktadır. Bu bölümde, GNURadio’nun bu bağlamda nasıl kullanılabileceğini, bazı özel ipuçlarını ve örnek uygulamaları inceleyeceğiz.

Sinyal Analizi ve Donanım Entegrasyonu

GNURadio, farklı donanım bileşenleriyle uyumlu çalışabilme kapasitesi sayesinde, gerçek zamanlı sinyal analizi yapmamızı sağlar. SDRAmerica veya RTL-SDR gibi donanımlar, düşük maliyetli ve kolay erişilebilir seçeneklerdir. Örneğin, GSM şifreleme protokollerinin analiz edilmesi için GNURadio kullanarak bir SDR ile birlikte bunu gerçekleştirebiliriz.

Örnek Senaryo: GSM Sinyali Alma

GSM sinyallerini dinlemek için GNURadio'da uygun bloklar oluşturabiliriz. Aşağıda bu işlem için temel bir yapılandırma örneği verilmiştir:

# GSM sinyali almak için kullanılan temel blok konfigürasyonu
1. RTL-SDR blokunu ekleyin
2. Demodulator (GMSK) ekleyin
3. Sıralı bir ufak akış diyagramı oluşturun
4. Ses çıkış bloğu (Wav File Sink) ekleyin

Bu yapılandırmayla, GSM sinyalini alarak ses verisi haline dönüştürebiliriz. Ayarlarınızı özgün koşullara göre yapılandırmak için GNURadio Companion arayüzünü kullanabilirsiniz.

Sızma Testlerine Yönelik Yaklaşımlar

GNURadio, sızma testleri sırasında kullanılan bir dizi sinyal sağlamada faydalı olabilir. Özellikle, hedef sistemin iletişim protokollerinin ve şifreleme yöntemlerinin keşfedilmesi amacıyla kullanılabilir. Örneğin, WLAN sistemlerinde WPA/WPA2 parolalarının kırılması için bir sızma testi senaryosu oluşturabilirsiniz.

Wireless Sinyal Haritalama

Wireless sinyal haritalama, belirli bir alan içerisindeki erişim noktalarını tespit etmenin etkili bir yoludur. GNURadio kullanarak, bu sinyalleri tespit etmek için bir script yazabilirsiniz:

#!/usr/bin/env python
from gnuradio import analog, blocks, gr, digital, filter
import os

class wifi_mapper(gr.top_block):
    def __init__(self):
        gr.top_block.__init__(self, "WIFI Mapper")
        
        # SDR aygıtı için blok
        self.src = os.popen("rtl_sdr -f 2.45G -s 2048000 -g 20 -n 10000000").read()
        
        # Harmanlamalı filtre
        self.lp_filter = filter.fir_filter_ccf(1, firdes.low_pass(1.0, 
             2.45e9, 100e6, 10e6, firdes.WIN_HAMMING))
        
        # Veriyi yazmak için blok
        self.snk = blocks.file_sink(gr.sizeof_char*1, "output.bin")
        
        # Akış diyagramı
        self.connect(self.src, self.lp_filter, self.snk)

if __name__ == '__main__':
    tb = wifi_mapper()
    tb.run()

Uzman İpuçları

GNURadio, sinyal analizi ve sızma testlerinde güçlü bir araçtır ve yukarıda belirtilen teknik ipuçları ile birlikte kullanıldığında, daha etkili sonuçlar elde edilebilir. İleri seviye uygulamalar için, teorik bilgi kadar pratik deneyim de önemlidir. Uygulama yaparak bu bilgileri pekiştirmeyi unutmayın.