<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[TurkTeam | Türk Siber Güvenlik Topluluğu - Go / Rust]]></title>
		<link>https://www.turkteam.org/</link>
		<description><![CDATA[TurkTeam | Türk Siber Güvenlik Topluluğu - https://www.turkteam.org]]></description>
		<pubDate>Sun, 25 Oct 2026 18:48:36 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Rust ile Guvenli Sistem Programlama: Bellek Guvenligi ve Ilk CLI Araci]]></title>
			<link>https://www.turkteam.org/konu-rust-ile-guvenli-sistem-programlama-bellek-guvenligi-ve-ilk-cli-araci.html</link>
			<pubDate>Sat, 17 Oct 2026 11:30:52 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-rust-ile-guvenli-sistem-programlama-bellek-guvenligi-ve-ilk-cli-araci.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=116" loading="lazy"  alt="[Resim: attachment.php?aid=116]" class="mycode_img" /></div>
<br />
Merhaba arkadaslar,<br />
<br />
C ve C++ ile yazilan sistem yazilimlarindaki guvenlik aciklarinin buyuk cogunlugu bellek hatalarindan kaynaklaniyor (buffer overflow, use-after-free). Rust tam da bu sinifi derleme zamaninda ortadan kaldirmak icin tasarlandi. Bu konuda Rust'in guvenlik acisindan neden onemli oldugunu ve kucuk bir CLI araci ile pratige dokulmesini anlatiyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatilacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Bellek guvenligi neden kritik?<br />
</li>
<li>Rust'in sahiplik (ownership) modeli<br />
</li>
<li>Proje olusturma<br />
</li>
<li>Ornek: basit TCP port kontrolu<br />
</li>
<li>Guvenli derleme notlari<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Bellek Guvenligi</span></span><br />
Microsoft ve Google gibi kuruluslarin raporlarina gore bellek guvenligi hatalari, kritik aciklarin buyuk bir bolumunu olusturuyor. Bu yuzden pek cok kurum yeni sistem bilesenlerini Rust'a tasiyor. Rust, bu hatalari calisma zamaninda degil, derleme zamaninda yakalar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Sahiplik Modeli</span></span><br />
Rust'in kalbi ownership ve borrow checker. Her degerin tek bir sahibi vardir; referanslar kurallara tabidir. Bu sayede null pointer, veri yarisi (data race) ve use-after-free gibi hatalar derlenmeden onlenir. Ogrenme egrisi dik ama kazandirdigi guvenlik buyuk.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Proje Olusturma</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>cargo new portscan --bin
cd portscan</code></div></div><br />
Cargo hem paket yoneticisi hem derleme araci; bagimlilik yonetimi cok rahat.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) Basit Port Kontrolu</span></span><br />
Kendi makinenizde acik portlari kontrol eden minik bir ornek (yalnizca localhost):<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>use std::net::TcpStream;
use std::time::Duration;

fn main() {
    let host = "127.0.0.1";
    for port in [22, 80, 443, 3306, 8080] {
        let addr = format!("{host}:{port}");
        match TcpStream::connect_timeout(
            &amp;addr.parse().unwrap(),
            Duration::from_millis(300),
        ) {
            Ok(_) =&gt; println!("[ACIK]   {port}"),
            Err(_) =&gt; println!("[kapali] {port}"),
        }
    }
}</code></div></div><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>cargo run</code></div></div> ile calistirin. Burada hic manuel bellek yonetimi yok; yine de hizli ve guvenli.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) Guvenli Derleme Notlari</span></span><br />
Bagimliliklarinizi <span style="font-weight: bold;" class="mycode_b">cargo audit</span> ile zafiyetlere karsi tarayin:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>cargo install cargo-audit
cargo audit</code></div></div><br />
Mumkun oldugunca "unsafe" blok kullanmaktan kacinin; kullanacaksaniz da dar kapsamda tutup gerekcesini yorumlayin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://doc.rust-lang.org/book/" target="_blank" rel="noopener" class="mycode_url">The Rust Programming Language (resmi kitap)</a><br />
</li>
<li><a href="https://rustsec.org/" target="_blank" rel="noopener" class="mycode_url">RustSec Advisory Database</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal not:</span> Port tarama veya ag araclarini yalnizca kendi veya izinli sistemlerde kullanin.</blockquote>
<br />
Rust'a gecen var mi, deneyimlerinizi merak ediyorum.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=118" target="_blank" title="">bilgekagan-b10.png</a> (Dosya Boyutu: 88.35 KB / İndirme Sayısı: 6)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=116" loading="lazy"  alt="[Resim: attachment.php?aid=116]" class="mycode_img" /></div>
<br />
Merhaba arkadaslar,<br />
<br />
C ve C++ ile yazilan sistem yazilimlarindaki guvenlik aciklarinin buyuk cogunlugu bellek hatalarindan kaynaklaniyor (buffer overflow, use-after-free). Rust tam da bu sinifi derleme zamaninda ortadan kaldirmak icin tasarlandi. Bu konuda Rust'in guvenlik acisindan neden onemli oldugunu ve kucuk bir CLI araci ile pratige dokulmesini anlatiyorum.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatilacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Bellek guvenligi neden kritik?<br />
</li>
<li>Rust'in sahiplik (ownership) modeli<br />
</li>
<li>Proje olusturma<br />
</li>
<li>Ornek: basit TCP port kontrolu<br />
</li>
<li>Guvenli derleme notlari<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Bellek Guvenligi</span></span><br />
Microsoft ve Google gibi kuruluslarin raporlarina gore bellek guvenligi hatalari, kritik aciklarin buyuk bir bolumunu olusturuyor. Bu yuzden pek cok kurum yeni sistem bilesenlerini Rust'a tasiyor. Rust, bu hatalari calisma zamaninda degil, derleme zamaninda yakalar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) Sahiplik Modeli</span></span><br />
Rust'in kalbi ownership ve borrow checker. Her degerin tek bir sahibi vardir; referanslar kurallara tabidir. Bu sayede null pointer, veri yarisi (data race) ve use-after-free gibi hatalar derlenmeden onlenir. Ogrenme egrisi dik ama kazandirdigi guvenlik buyuk.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) Proje Olusturma</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>cargo new portscan --bin
cd portscan</code></div></div><br />
Cargo hem paket yoneticisi hem derleme araci; bagimlilik yonetimi cok rahat.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) Basit Port Kontrolu</span></span><br />
Kendi makinenizde acik portlari kontrol eden minik bir ornek (yalnizca localhost):<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>use std::net::TcpStream;
use std::time::Duration;

fn main() {
    let host = "127.0.0.1";
    for port in [22, 80, 443, 3306, 8080] {
        let addr = format!("{host}:{port}");
        match TcpStream::connect_timeout(
            &amp;addr.parse().unwrap(),
            Duration::from_millis(300),
        ) {
            Ok(_) =&gt; println!("[ACIK]   {port}"),
            Err(_) =&gt; println!("[kapali] {port}"),
        }
    }
}</code></div></div><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>cargo run</code></div></div> ile calistirin. Burada hic manuel bellek yonetimi yok; yine de hizli ve guvenli.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5) Guvenli Derleme Notlari</span></span><br />
Bagimliliklarinizi <span style="font-weight: bold;" class="mycode_b">cargo audit</span> ile zafiyetlere karsi tarayin:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>cargo install cargo-audit
cargo audit</code></div></div><br />
Mumkun oldugunca "unsafe" blok kullanmaktan kacinin; kullanacaksaniz da dar kapsamda tutup gerekcesini yorumlayin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://doc.rust-lang.org/book/" target="_blank" rel="noopener" class="mycode_url">The Rust Programming Language (resmi kitap)</a><br />
</li>
<li><a href="https://rustsec.org/" target="_blank" rel="noopener" class="mycode_url">RustSec Advisory Database</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite><span style="font-weight: bold;" class="mycode_b">Yasal not:</span> Port tarama veya ag araclarini yalnizca kendi veya izinli sistemlerde kullanin.</blockquote>
<br />
Rust'a gecen var mi, deneyimlerinizi merak ediyorum.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=118" target="_blank" title="">bilgekagan-b10.png</a> (Dosya Boyutu: 88.35 KB / İndirme Sayısı: 6)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Go 1.27 ile Küçük Araçlar: Yerel uuid Paketi ve encoding/json/v2 Notları]]></title>
			<link>https://www.turkteam.org/konu-go-1-27-ile-kucuk-araclar-yerel-uuid-paketi-ve-encoding-json-v2-notlari.html</link>
			<pubDate>Fri, 16 Oct 2026 11:24:59 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-go-1-27-ile-kucuk-araclar-yerel-uuid-paketi-ve-encoding-json-v2-notlari.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=38" loading="lazy"  alt="[Resim: attachment.php?aid=38]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Go 1.27 (19 Ağustos 2026) ile standart kütüphaneye native uuid paketi ve encoding/json/v2 geldi. Güvenlik otomasyonunda sık yazdığımız küçük CLI'ler için ikisi de işe yarıyor. Bu konuda kısa bir bakış ve örnek.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Go 1.27'den ilgili yenilikler<br />
</li>
<li>uuid paketi ile ID üretmek<br />
</li>
<li>json/v2 neden önemli?<br />
</li>
<li>Küçük bir CLI iskeleti<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Go 1.27 Öne Çıkanlar (güvenlikçi gözü)</span></span><br />
Resmi blog yazısına göre:<ul class="mycode_list"><li>Generic metodlar, daha iyi type inference<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">uuid</span> standart paketi<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">encoding/json/v2</span> ve jsontext (daha katı varsayılanlar, yapılandırılabilir)<br />
</li>
<li>crypto/mldsa (post-kuantum imza, FIPS 204) - uzun vadede TLS/x509 tarafında<br />
</li>
<li>goroutine leak profili (runtime/pprof)<br />
</li>
</ul>
Güncel yama: go.dev/dl üzerinden 1.27.x (Ekim 2026'da 1.27.2 vardı).<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) uuid Örneği</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>package main

import (
    "fmt"
    "uuid" // Go 1.27 standart kütüphane (pkg.go.dev/uuid)
)

func main() {
    fmt.Println(uuid.New())      // genelde v4
    fmt.Println(uuid.NewV7())    // zaman sıralı v7
}</code></div></div><br />
Önceden github.com/google/uuid modülüne bağlandığımız basit ID işleri artık stdlib ile çözülebilir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) json/v2</span></span><br />
Eski encoding/json geriye uyumlu kalırken v2 daha katı ve seçenekli. SIEM'e JSON event basan, REST çağrısı yapan küçük araçlarda belirsiz unmarshal davranışlarını azaltmak için v2'ye geçmek mantıklı. Detaylar: go.dev/doc/go1.27<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) Mini CLI İskeleti</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>package main

import (
    "flag"
    "fmt"
    "os"
)

func main() {
    hedef := flag.String("hedef", "", "zorunlu: lab IP veya hostname")
    flag.Parse()
    if *hedef == "" {
        fmt.Fprintln(os.Stderr, "-hedef gerekli")
        os.Exit(2)
    }
    // Buraya sadece kendi lab'ınıza yönelik mantık
    fmt.Println("hedef:", *hedef)
}</code></div></div><br />
flag + net/http + uuid ile "lab event üretici" gibi araçlar yazmak artık birkaç dosyaya sığıyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://go.dev/blog/go1.27" target="_blank" rel="noopener" class="mycode_url">Go 1.27 is released</a><br />
</li>
<li><a href="https://go.dev/doc/go1.27" target="_blank" rel="noopener" class="mycode_url">Go 1.27 Release Notes</a><br />
</li>
<li><a href="https://go.dev/dl/" target="_blank" rel="noopener" class="mycode_url">Go downloads</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Yazdığınız araçları yalnızca kendi/izinli sistemlerde çalıştırın. TCK 243-245.</blockquote>
<br />
Kapak: özgün TurkTeam görseli.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=38" target="_blank" title="">bilgekagan-08.png</a> (Dosya Boyutu: 89.69 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=38" loading="lazy"  alt="[Resim: attachment.php?aid=38]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Go 1.27 (19 Ağustos 2026) ile standart kütüphaneye native uuid paketi ve encoding/json/v2 geldi. Güvenlik otomasyonunda sık yazdığımız küçük CLI'ler için ikisi de işe yarıyor. Bu konuda kısa bir bakış ve örnek.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Go 1.27'den ilgili yenilikler<br />
</li>
<li>uuid paketi ile ID üretmek<br />
</li>
<li>json/v2 neden önemli?<br />
</li>
<li>Küçük bir CLI iskeleti<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1) Go 1.27 Öne Çıkanlar (güvenlikçi gözü)</span></span><br />
Resmi blog yazısına göre:<ul class="mycode_list"><li>Generic metodlar, daha iyi type inference<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">uuid</span> standart paketi<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">encoding/json/v2</span> ve jsontext (daha katı varsayılanlar, yapılandırılabilir)<br />
</li>
<li>crypto/mldsa (post-kuantum imza, FIPS 204) - uzun vadede TLS/x509 tarafında<br />
</li>
<li>goroutine leak profili (runtime/pprof)<br />
</li>
</ul>
Güncel yama: go.dev/dl üzerinden 1.27.x (Ekim 2026'da 1.27.2 vardı).<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2) uuid Örneği</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>package main

import (
    "fmt"
    "uuid" // Go 1.27 standart kütüphane (pkg.go.dev/uuid)
)

func main() {
    fmt.Println(uuid.New())      // genelde v4
    fmt.Println(uuid.NewV7())    // zaman sıralı v7
}</code></div></div><br />
Önceden github.com/google/uuid modülüne bağlandığımız basit ID işleri artık stdlib ile çözülebilir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3) json/v2</span></span><br />
Eski encoding/json geriye uyumlu kalırken v2 daha katı ve seçenekli. SIEM'e JSON event basan, REST çağrısı yapan küçük araçlarda belirsiz unmarshal davranışlarını azaltmak için v2'ye geçmek mantıklı. Detaylar: go.dev/doc/go1.27<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4) Mini CLI İskeleti</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>package main

import (
    "flag"
    "fmt"
    "os"
)

func main() {
    hedef := flag.String("hedef", "", "zorunlu: lab IP veya hostname")
    flag.Parse()
    if *hedef == "" {
        fmt.Fprintln(os.Stderr, "-hedef gerekli")
        os.Exit(2)
    }
    // Buraya sadece kendi lab'ınıza yönelik mantık
    fmt.Println("hedef:", *hedef)
}</code></div></div><br />
flag + net/http + uuid ile "lab event üretici" gibi araçlar yazmak artık birkaç dosyaya sığıyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://go.dev/blog/go1.27" target="_blank" rel="noopener" class="mycode_url">Go 1.27 is released</a><br />
</li>
<li><a href="https://go.dev/doc/go1.27" target="_blank" rel="noopener" class="mycode_url">Go 1.27 Release Notes</a><br />
</li>
<li><a href="https://go.dev/dl/" target="_blank" rel="noopener" class="mycode_url">Go downloads</a><br />
</li>
</ul>
<br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Yazdığınız araçları yalnızca kendi/izinli sistemlerde çalıştırın. TCK 243-245.</blockquote>
<br />
Kapak: özgün TurkTeam görseli.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=38" target="_blank" title="">bilgekagan-08.png</a> (Dosya Boyutu: 89.69 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>