GNU Linux Çekirdeğinin Güvenlik Özellikleri

Linux ve Unix tabanli isletim sistemlerini hep beraber tanıyıp öğreneceğiz.
Cevapla
Kullanıcı avatarı
trwe
Petabyte3
Petabyte3
Mesajlar: 7263
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Konum: Türkiye Cumhuriyeti

GNU Linux Çekirdeğinin Güvenlik Özellikleri

Mesaj gönderen trwe » 31 Ara 2018, 22:00

Linux, Torvalds'ın ilk test kodlarını İnternet üzerinden paylaşmaya başladığı günden bu yana oldukça önemli yol katetti. İlk çekirdek sürümlerinde ve dağıtımlarda güvenlik ile ilgili özellikler ve beceriler son derece kısıtlıyken özellikle son üç yıl içerisinde hem çekirdek seviyesinde ve hem de sistem uygulamaları düzeyinde Linux'un güvenlik becerileri önemli ölçüde arttı. Bu yazıda, Linux çekirdeğinin güvenlik özelliklerine ilişkin gelişmeler konu edilecektir.

Kodun Yeniden Organizasyonu

Linux'un ilk günlerinden bu yana güvenlik ile ilgili en önemli özelliklerinden birisi kaynak kodunun açık olması, dileyen herkesin kodu inceleyebilmesi ve değiştirebilmesi olmuştur. Kodun açıklığı, kapalı kaynaklı geliştirme modelleri ile kıyaslandığında, yazılımı inceleyen çok sayıda bağımsız uzmanı ve onlar tarafından üretilecek yamaların hızlı dağıtımını destekler niteliktedir.

2.6 serisi çekirdek ile birlikte pek çok bileşenin yeniden ele alınması (I/O, modül mimarisi vb.) ve bileşenler arası soyutlama düzeyinin arttırılarak yeniden kodlanmaları kodun okunurluğunu önemli ölçüde arttırmıştır. Geliştirici ekibinin giderek büyümesi de yazılımın kararlılığını olumlu yönde etkilemektedir.

Dosya Sistemi Sağlamlığı

2000'li yılların başında Linux'un en önemli zaafiyetlerinden birisi dosya sistemi çökmelerine ilişkin problemlerdi. Zamanının popüler dosya sistemi ext2, transaction desteğinden yoksundu ve bu durum özellikle elektrik kesilmeleri, uygunsuz sistem kapanışları ve nadiren görülen çökmeler sonrasında sistemin tekrar açılışında önemli bütünlük sorunları ile karşılaşılmasına neden oluyordu. Bu tarihlerde Linux kullananların pek çoğu az ya da çok veri kayıpları ile mücadele etmek zorunda kaldılar.

Dosya sistemi düzeyindeki bu önemli zaafiyet sistem kararlılığını olumsuz yönde etkiliyor ve kurumsal düzeyde kullanımda önemli çekinceleri beraberinde getiriyordu. Eksik olan transaction temelli işlem günlüğü (ing. journal) tutabilen bir dosya sistemiydi ve bu türden dosya sistemleri ticari UNIX'lerin (AIX, Tru64, IRIX vb.) pek çoğu üzerinde mevcuttu.

Pazar savaşı nedeniyle IBM ve SGI'ın ardı ardına kendi dosya sistemleri olan jfs ve xfs'i özgür yazılım dünyasına “bağışlamaları”, ext3 ve reiserfs gibi başından beri özgür dosya sistemlerinin yeterli kararlılık düzeyine ulaşması ile problem aşıldı. Bugün elektrik kesilmelerinden ve uygunsuz kapanışlardan etkilenmeyen, problemli kapanışların ardından dosya sistemi denetimlerini çok kısa sürelerde tamamlayarak daha hızlı açılışa imkan veren yüksek nitelikli ve kararlı dosya sistemleri kullanıyoruz.

Dosya Sistemi Erişim Denetim Listesi Desteği

Linux'un diğer popüler işletim sistemlerinden önemli eksikliklerinden birisi erişim denetimi mekanizmalarına ilişkindi. Linux, erişim denetimi için salt geleneksel UNIX erişim denetimi becerilerini destekliyor, erişim yetkileri kullanıcı, grup ya da diğerleri olmak üzere üç farklı nesne kümesine atanabiliyordu. Bu geleneksel erişim denetimi mekanizması “bu dosya muhasebe grubuna aittir; dosyayı yönetim grubu değiştirebilir, pazarlama grubu incelebilir ama diğer gruplar erişemez” şeklindeki bir tanımı yapmak mümkün değildi.

Windows türevi çok kullanıcılı işletim sistemleri ile masaüstüne kadar inen erişim denetim listeleri Linux'un önemli güvenlik eksikliklerinden birisi olarak sıkıntı veriyordu ki 2.6 serisi çekirdekler ile birlikte çeşitli farklı dosya sistemleri için ACL desteği sağlandı. Çekirdeğe yeni eklenen bu beceri sayesinde her dosya için uzun ve karmaşık yetkilendirme tanımlarını yapmak ve kullanmak mümkün hale geldi. Özellikle görev kritik sunucularda bu yeni becerinin kullanımı zaman içerisinde giderek yaygınlaşacaktır. Çekirdek ACL desteği ile ilgili bilgiler için “man 5 acl” ile okumaya başlamakta fayda var.

Linux Güvenlik Modülleri (LSM) Mimarisi

Uzun bir süre geliştirimi süren ve 2.6 serisi çekirdekler ile dağıtıma dahil edilen Linux Security Modules (LSM) mimarisi Linux çekirdeğinin güvenlik becerilerinin önemli biçimde arttırılmasına imkan sağladı.Temel olarak Linux çekirdeği içerisinde güvenlik ile ilintili olabilecek her farklı işlev için kanca noktaları (ing. hook points) tanımlanacak biçimde tüm çekirdek elden geçirildi; çekirdeğin büyüklüğü göz önüne alındığında bu çalışmanın ne denli yoğun efor gerektirdiğini tahmin etmek hiç de güç değildir.

LSM sayesinde, temel olarak, çekirdek içerisine yeni güvenlik işlevselliği eklemek oldukça kolaylaştı. LSM öncesinde çekirdek için yapılan güvenlik eklentileri “yamalar” halinde dağıtılırdı ve eklenti geliştiricileri her yeni sürüm Linux çekirdeği için yamalarını güncellemek için önemli miktarda emek ve zaman harcarlardı. 2.6 ile birlikte, güvenlik eklentilerinin hemen tümü LSM uyumlu modüllere dönüştürülmeye başlandı ve eklenti geliştiricileri yeniden kendi alanlarına odaklanmaya başlayabildiler. İzleyen bölümlerde LSM'den önemli ölçüde faydalanan Capability ve SeLinux eklentileri konu edilmektedir.

Capability Eklentisi

Capability eklentisi geleneksel UNIX'ler üzerinde görmeye alışageldiğimiz “root her işi yapmaya yetkilidir” yaklaşımını değiştirmeye yönelik bir güvenlik eklentisidir. Bu eklenti ile root'un yetkilerini sistem açıldıktan sonra azaltmak mümkün hale gelmektedir. Capability mekanizması çekirdeğe 2.4 serisi ile birlikte dahil olduysa da, 2.6 çekirdek ile birlikte oldukça olgun bir hale gelmiştir.

Capability eklentisi 'çekirdek truva atları' (ing. kernel trojans) ile mücadele konusunda önemli bir katkı sağlamaktadır. Bu mekanizmadan faydalanarak sistem açıldıktan sonra yeni çekirdek modüllerinin yüklenmesini engellemek ve /dev/kmem aracılığı ile sistem belleğine müdahale edilebilmesini engellemek mümkün hale gelmektedir. Bu iki işlemin tamamlanmasından sonra sisteme bugün bilinen herhangi bir çekirdek truva atı ile saldırı gerçekleştirilemez hale gelmektedir.

Yine capability eklentisi ile yalnızca belirli işlemler için root yetkisi gerektiren süreçlerin yetki gereksinimleri de azaltılabilmektedir. Örneğin yalnızca bilinen bir TCP portunu dinlemek için root yetkisi gerektiren program, kendisine verilen “ağ soketlerini dinleyebilir” capability'si ile root yetkisi olmaksızın 1024'ten küçük numaralı portları dinleyebilmektedir. Capability'lerin süreçlere doğru biçimde dağıtılması ve açılış sonrasında sistemin günlük işlemler için gereksiz capability'leri bırakması ile işletim sisteminin saldırı yüzeyi oldukça daraltılabilmektedir.

SELinux Eklentisi

SELinux eklentisi, 2.6 serisi çekirdekler ile birlikte Linux'a dahil olan güvenlik özelliklerinin en heyecan verici olanlarından birisidir. Geleneksel UNIX modelinde (DAC) kaynaklara erişim denetimi yalnızca kullanıcı kimliği ve nesne sahipliği ile sınanmaktadır. Ancak bu geleneksel model, bir kullanıcının truva atlı bir program çalıştırması durumunda programın kullanıcının yetkisi olan tüm kaynaklara erişmesine de izin vermektedir. SELinux, Linux çekirdeği için geliştirilmiş bir zorunlu erişim denetimi (ing. mandatory access control – MAC) mekanizmasıdır. SELinux ile bir Linux sistemi üzerindeki tüm öznelere (kullanıcılar, programlar ve süreçler) ve tüm nesnelere (dosyalar, aygıtlar vb.) ilişkin son derece kapsamlı erişim denetim kuralları tanımlanabilmektedir.

SELinux ile, örneğin, bir programa yalnızca işini yapması için gereken yetkileri vermek mümkün olmaktadır. Bir saldırgan programdaki hatalardan faydalanarak programı amacı dışında çalıştırmayı denese de, SELinux çekirdek eklentisi bu durumu tespit ederek engelleyecektir.

SELinux'un önümüzdeki dönemde büyük bir hızla yaygınlaşmasını beklemek hiç de yanlış olmayacaktır. Özellikle hizmet sunucu yazılımlar için (Apache, Postfix, MySQL) var olan SELinux kural kümelerinin rafine edilip geliştirilmesi sonrasında sunucu güvenliği için çok büyük bir katkısını görüyor olacağız.

Linux çekirdeği özellikle geçtiğimiz üç-dört yıllık süreçte güvenlik özellikleri bakımından çok önemli bir yol katetmiştir. Önümüzdeki dönemde çekirdeğe yeni eklenen bu özelliklerin güvenli ön-tanımlı ayarlarının dağıtımlar için standart hale gelmesi kaçınılmaz görülmektedir.

TRWE_2012
Alaydan Yetişme PC Kullanıcısı
TRWE_2016
FEDAKARLIK OLMADAN ZAFER OLMAZ....!
-----------------------------
LINUXMASTER 2018
ZAFER'E GİDEN YOL,FEDAKARLIKTAN GEÇER...!
-----------------------------
BATTALGAZİ 2023
Heaven to My Friend, Hell to My Enemy ....!



Cevapla