Making C Less Dangerous in the Linux kernel
Neden izlemeli?
Linux kernelinde C dilinin tehlikelerini azaltma ve güvenlik açıklarını önleme üzerine pratik öneriler içeriyor; kernel geliştirme ve güvenlik meraklıları için faydalı. Undefined behaviour, dil sınırlamaları ve savunma teknikleri hakkında uygulanabilir bilgiler sunar.
Video özeti
Sunum, Linux kernel geliştirmede C dilinin getirdiği tehlikeleri ve bu tehlikeleri nasıl azaltabileceğimizi uygulamalı örneklerle anlatıyor. Başlangıçta amaç ve Kernel Self Protection Project gibi girişimler özetleniyor; sonrasında C’nin makineye yakın doğası, undefined behavior (tanımsız davranış) sorunları ve bunların güvenlik etkileri detaylandırılıyor. Konuşma, Variable Length Arrays (VLA) ve alloca kullanımının neden tehlikeli ve yavaş olduğunu örneklerle gösteriyor, switch-case durumlarında çalıştırma hataları, her yerel değişkenin başlatılmasının önemi ve aritmetik taşma algılama yöntemleri üzerinde duruyor. Ayrıca snprintf gibi daha güvenli alternatifler, memcpy kullanırken dikkat edilmesi gerekenler, bellek etiketleme (memory tagging) ve Control Flow Integrity (CFI) mekanizmaları açıklanıyor; sunum sonunda çekirdek güvenliği geliştirme süreçindeki zorluklar özetleniyor. Sunum kernel geliştiricileri, sistem güvenliği araştırmacıları ve C ile düşük seviyede çalışan yazılımcılar için uygundur; temel C bilgisi ve kernel geliştirme deneyimi izleyicinin yararını artırır. İzleyici, tanımsız davranışların kaynaklarını, risk azaltma tekniklerini (VLA yasaklama, her değişkeni başlatma, CFI yaklaşımları) ve kernel kodunu daha güvenli hale getirecek pratik değişiklikleri öğrenmiş olacak.
Bölümler
- Intro
- Variable Length Arrays and alloca are bad
- Always-initialized local variables: just do it
- Arithmetic overflow detection: Clang :
- Bounds checking: memory tagging :
- Where is the Linux kernel now?
Öne çıkan fikirler
- Kernel kodunda Variable Length Arrays ve alloca kullanımı hem güvenlik hem performans açısından risk taşır ve mümkünse kaçınılmalıdır.
- Yerel değişkenleri her zaman başlatmak, birçok undefined behavior ve güvenlik sorununu önlemenin basit ve etkili bir yoludur.
- Control Flow Integrity ve memory tagging gibi mekanizmalar, kernel seviyesinde uygulandığında bellek ve kontrol akışı saldırılarını önemli ölçüde zorlaştırır.
Özet ve bölüm başlıkları Opendart editörlüğünde hazırlanmıştır; videonun içeriği ve hakları kanal sahibine aittir.
Hacker News'te 149 puan ve 14 yorum aldı: tartışmayı oku · YouTube'da aç
Bu konuyu canlı derste, gerçek projelerle öğrenin → Tüm Eğitimlerimiz
Eğitmen eşliğinde, canlı online veya sınıf içi; bireysel ve kurumsal seçenekler. Tüm eğitimler
İlgili Opendart makaleleri
Swift eğitimi: Xcode ile performans, derleme ve iOS MVVM incelikleri
Veritabanı optimizasyonu: OLTP index stratejileri, write amplification ve ölçüm
AI destekli yazılım geliştirme için cloud native CI/CD ve container orchestration
Spring REST API Performans Profili: Istek Bazli Kaynak Bütçelendirme ve Izolasyon