Bloga dön
Yazılım

Go ile Başlangıç: Siber Güvenlik Araçları

Go dilinin neden güvenlik araçlarında bu kadar popüler olduğunu ve ilk aracını nasıl yazacağını görelim.

9 Ağustos 20268 dk

Go Neden Güvenlik Araçlarında Popüler?

Go, güvenlik araçları için adeta yapılmış bir dil. Neden mi?

  • Tek binary: Bağımlılık cehennemi yok. Derlenmiş tek dosya her yerde çalışır.
  • Statik tip: Hataları derleme aşamasında yakalar.
  • Eşzamanlılık: Goroutine ve channel ile binlerce paralel istek kolayca yapılır.
  • Hız: C kadar olmasa da Python'dan katbekat hızlı.
  • Standart kütüphane: net/http, crypto ve encoding paketleri çok güçlü.

İlk Aracımız: Port Tarayıcı

package main

import (
    "fmt"
    "net"
    "sync"
)

func scan(host string, port int, wg *sync.WaitGroup) {
    defer wg.Done()
    address := fmt.Sprintf("%s:%d", host, port)
    conn, err := net.Dial("tcp", address)
    if err == nil {
        fmt.Printf("Port %d açık\n", port)
        conn.Close()
    }
}

func main() {
    var wg sync.WaitGroup
    host := "127.0.0.1"
    for port := 1; port <= 1024; port++ {
        wg.Add(1)
        go scan(host, port, &wg)
    }
    wg.Wait()
}

Bu küçük örnek, Go'nun eşzamanlılık gücünü gösterir. 1024 port birkaç saniye içinde taranabilir.

Mimari Tavsiyeler

  • Pipeline yapısı: Collect → Parse → Enrich → Report adımlarını ayrı paketler yap
  • Konfigürasyon: viper veya standart flag paketi
  • Logging: yapılandırılmış log için slog
  • Test: table-driven test alışkanlığı kazan

Pratik Araç Fikirleri

  • IOC toplayıcı: Açık kaynak beslemelerden IOC çek ve normalize et
  • Hash lookup: Birden çok servisi paralel sorgula
  • Log parser: SIEM için normalize edilmiş çıktı üret
  • Banner grabber: Servis parmak izi çıkar

Son Söz

Go, güvenlik araçları için mükemmel bir denge sunar: hız, güvenilirlik ve dağıtım kolaylığı. İlk aracını yaz, sonra mimariyi olgunlaştır.

PG

Polat GÖREN

Siber Tehdit İstihbaratı

İlgili Yazılar