Konuyu Okuyanlar: 1 Ziyaretçi

Rust ile Guvenli Sistem Programlama: Bellek Guvenligi ve Ilk CLI Araci

Rust ile Guvenli Sistem Programlama: Bellek Guvenligi ve Ilk CLI Araci
[Resim: attachment.php?aid=116]

Merhaba arkadaslar,

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.

Konuda Anlatilacaklar
  1. Bellek guvenligi neden kritik?
  2. Rust'in sahiplik (ownership) modeli
  3. Proje olusturma
  4. Ornek: basit TCP port kontrolu
  5. Guvenli derleme notlari

1) Bellek Guvenligi
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.

2) Sahiplik Modeli
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.

3) Proje Olusturma
Kod:
cargo new portscan --bin cd portscan

Cargo hem paket yoneticisi hem derleme araci; bagimlilik yonetimi cok rahat.

4) Basit Port Kontrolu
Kendi makinenizde acik portlari kontrol eden minik bir ornek (yalnizca localhost):

Kod:
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( &addr.parse().unwrap(), Duration::from_millis(300), ) { Ok(_) => println!("[ACIK] {port}"), Err(_) => println!("[kapali] {port}"), } } }

Kod:
cargo run
ile calistirin. Burada hic manuel bellek yonetimi yok; yine de hizli ve guvenli.

5) Guvenli Derleme Notlari
Bagimliliklarinizi cargo audit ile zafiyetlere karsi tarayin:

Kod:
cargo install cargo-audit cargo audit

Mumkun oldugunca "unsafe" blok kullanmaktan kacinin; kullanacaksaniz da dar kapsamda tutup gerekcesini yorumlayin.

Kaynaklar
Alıntı:Yasal not: Port tarama veya ag araclarini yalnizca kendi veya izinli sistemlerde kullanin.

Rust'a gecen var mi, deneyimlerinizi merak ediyorum.


Ek DosyalarEkran Görüntüleri
   
Cevapla



Hızlı Menü: