Red Hat'in RHEL kaynak kodu dağıtım yöntemini değiştirmesi
- Haziran 2023'te Red Hat, Red Hat Enterprise Linux (RHEL) arkasındaki kaynak kodunun dağıtım yöntemini değiştirme yönünde tartışmalı bir karar aldı
- Bu karar, Rocky Linux, AlmaLinux, Oracle Linux gibi RHEL'in aşağı akış yeniden derlemelerinin gelecekteki yaşayabilirliği hakkında birçok soru işareti doğurdu
- Her dağıtım daha sonra topluluğu yatıştırmak için açıklamalar yaptı
- Birçok açık kaynak topluluğu Red Hat'in kararını açgözlü bir şirket etkisi olarak yorumladı
- İnsanlar Debian'a taşındıklarını ya da zaten taşınmış olduklarını söyleyerek bir sığınak arıyor
Güvenliğin önemi ve zorluğu
- Güvenlik zordur, sıkıcıdır, tatsızdır ve düzgün yapmak için çok emek ister
- Debian kullanıcıları korumak için yeterli çabayı göstermiyor
Red Hat'in SELinux'u benimsemesi ve varsayılan politika sunması
- Red Hat uzun zaman önce SELinux kullanımını benimsedi ve yalnızca çekirdekte bu özelliği etkinleştirmenin ötesine geçti
- Dağıtım için varsayılan SELinux politikaları oluşturma gibi zahmetli işi üstlendi
- Bu politikalar RHEL'de varsayılan olarak etkin gelir ve RHEL'de varsayılan olarak çalışan çok çeşitli daemon ve sunucular arasında en yaygın kullanılanları korumaya yardımcı olur
- Apache, nginx, MariaDB, PostgreSQL, OpenSSH ve diğerleri, RHEL dağıtımıyla gelen SELinux politikaları tarafından korunur
SELinux politikalarının konteynerlere uygulanması
- Bu koruma konteynerlere kadar uzanır
- Konteynerler, geliştiricilerin yazılım dağıtımı için giderek daha çok tercih ettiği bir yöntem haline geliyor
- Bir şeyi konteyner içinde çalıştırmanın doğası gereği güvenli olduğu düşüncesi bir yanılgıdır
- Konteynerler güvenlik sorununu değil, yazılım dağıtımı sorununu çözer
- Red Hat tabanlı dağıtımlarda, daemon olmadan konteyner çalıştırabilme ve tamamen rootless çalışabilme avantajı sunan bir Docker alternatifi olan podman kullanılabilir
- Red Hat bir adım daha ileri giderek konteynerleri ana işletim sisteminden ve diğer konteynerlerden ayıran güçlü varsayılan SELinux politikaları uygular
- SELinux politikalarını konteynerlere uygulamak, bilinmeyen gelecekteki açık risklerini azaltan güçlendirilmiş bir güvenlik önlemi sağlar
Red Hat'in varsayılan SELinux politikaları sunma çabası
- Red Hat, bu varsayılan politikalar üzerindeki çalışmayı yapmazsa kullanıcıların teknolojiyi benimsemeyeceğini ve milyonlarca sunucunun savunmasız kalacağını biliyordu
- SELinux zordur; politika dili ve araçları karmaşık, muğlak ve vergi beyannamesi doldurmak kadar çekici değildir
- Ancak Red Hat'in yaptığı çalışma sayesinde RHEL'de SELinux kullanımı büyük ölçüde şeffaftır ve kullanıcılara somut güvenlik faydaları sağlar
Debian'ın AppArmor yaklaşımı
- Debian, kararlılığı ve geniş yazılım kütüphanesiyle tanınan açık kaynak topluluğunun temel taşlarından biridir
- Ancak varsayılan güvenlik çerçevesinin gelişmeye çok ihtiyacı vardır
- Debian 10'dan itibaren AppArmor'u varsayılan olarak etkinleştirme kararı güvenliği iyileştirmek adına olumlu bir adımdır, ancak sistem genelinde yarım yamalak uygulanmış olması nedeniyle yetersiz kalır
- Debian'ın AppArmor'a bağımlılığı ve varsayılan yapılandırması, güvenliğe yaklaşımında sistematik sorunlar olduğunu gösterir
- AppArmor uygun şekilde yapılandırıldığında güçlü güvenlik sağlayabilir, ancak Debian'ın varsayılan ayarları bu potansiyeli kullanamaz
Debian'daki AppArmor sorunları
- Sınırlı varsayılan profiller: Debian, birçok kritik hizmeti korumasız bırakan asgari bir AppArmor profil setiyle gelir
- Tepkisel yaklaşım ve proaktif duruş farkı: Debian'ın güvenlik modeli çoğu zaman daha sıkı politikaları uygulamayı kullanıcıya bırakır ve varsayılan olarak güvenli bir yapılandırma sunmaz
- Tutarsız uygulama: Red Hat sistemlerindeki SELinux'un aksine Debian'daki AppArmor kısmen uygulanır ve bu da potansiyel güvenlik boşlukları yaratır
- Kaynak eksikliği: Topluluk merkezli bir proje olan Debian, Red Hat'inkine benzer kapsamlı güvenlik politikalarını geliştirmek ve sürdürmek için gerekli kaynaklardan yoksundur
Debian'da Docker ile konteyner iş yükleri çalıştırmak
- Debian'da Docker üzerinden konteyner iş yükleri çalıştırmak son derece yaygındır
- Docker, konteynerler için
docker-default adlı varsayılan bir AppArmor profilini otomatik olarak oluşturur ve yükler
- Ne yazık ki bu güvenlik açısından çok güçlü bir profil değildir ve aşırı derecede izin vericidir
- Bu profil bir miktar koruma sağlasa da önemli bir saldırı yüzeyini açık bırakır
AppArmor ile SELinux arasındaki temel farklar
- AppArmor ile SELinux arasındaki temel fark, zorunlu erişim kontrolüne (MAC) yaklaşımlarında yatar
- AppArmor yol tabanlı bir modelle çalışırken SELinux çok daha karmaşık bir type enforcement sistemi kullanır
- Bu farklar özellikle konteyner ortamlarında belirgin hale gelir
- SELinux sistemdeki her nesneye (dosyalar, süreçler, portlar vb.) bir tür uygular
- SELinux destekli bir RHEL sisteminde bir konteyner başlatıldığında ona hemen
container_t türü atanır; bu katı bir erişim kontrol mekanizmasıdır
container_t türü, konteynerin konteyner kullanımı için açıkça etiketlenmemiş nesnelerle etkileşime girmesini etkili biçimde engelleyerek onu sınırlar
- SELinux type enforcement ile yetinmez; konteyner izolasyonunu bir adım öteye taşımak için çok kategorili güvenlik (MCS) etiketleri kullanır
- Bu etiketler, aynı türdeki (
container_t) konteynerler arasında bile izolasyonu koruyan ek bir ayrıştırma katmanı görevi görür
- Her konteyner kendine özgü bir MCS etiketi alır ve daha geniş
container_t ortamı içinde özel bir sandbox oluşturur
AppArmor'un yaklaşımı
- AppArmor türler veya kategorilerle ilgilenmez; bunun yerine önceden tanımlanmış profillere dayanarak belirli programların yeteneklerini sınırlamaya odaklanır
- Bu profiller, programların hangi dosyalara erişebileceğini ve hangi işlemleri yapabileceğini belirtir
- Bu yaklaşım uygulaması ve anlaşılması daha basittir, ancak SELinux'un type enforcement modeli kadar ayrıntılı veya sistem genelinde tutarlı değildir
- Ana akım Linux dağıtımları varsayılan olarak tüm yaygın ağ odaklı daemon'lar için kapsamlı AppArmor profilleri dağıtmaz
Gerçek dünyadaki etkiler
- SELinux ortamında ele geçirilmiş bir konteyner, type enforcement ve MCS etiketlerinden oluşan çift bariyer nedeniyle ana sisteme ya da diğer konteynerlere erişirken veya onları etkilerken ciddi engellerle karşılaşır
- SELinux daha güçlü izolasyon sağlar, ancak bunun bedeli daha yüksek karmaşıklık ve potansiyel performans ek yüküdür
- AppArmor uygun şekilde yapılandırıldığında hâlâ çok etkili olabilen daha basit ve daha erişilebilir bir güvenlik modeli sunar
- Red Hat, SELinux'u ve konteyner kullanımını sorunsuz ve kolay hale getirmek için çaba harcadı
- Sonuç olarak Debian ile Red Hat arasındaki seçim yalnızca şirket etkisi ile topluluk odaklı geliştirme arasında bir tercih değildir
- Aynı zamanda en iyisini varsayan bir sistem ile en kötü senaryoya hazırlanan bir sistem arasında bir tercihtir
- Günümüzün yoğun biçimde bağlantılı dünyasında ne yazık ki kötümserlik zorunludur
GN⁺ görüşü
- Red Hat'in RHEL kaynak kodu dağıtım politikasındaki değişiklik tartışmalı olsa da güvenlik açısından makul bir karar olabilir
- Kurumsal Linux dağıtımlarında SELinux gibi güçlü güvenlik özellikleri sunmak zorunludur
- Ancak Red Hat'in politika değişikliği açık kaynak ekosistemi üzerinde olumsuz etki yaratabilir ve Debian gibi topluluk temelli dağıtımların rolü daha da önemli hale gelebilir
- Debian kullanıcı dostu ve esnek bir dağıtım olarak bilinse de varsayılan güvenlik özelliklerinin güçlendirilmesine ihtiyaç vardır
- AppArmor, SELinux kadar güçlü olmasa da uygun biçimde yapılandırıldığında etkili bir güvenlik çözümü olabilir
- Uzun vadede SELinux ile AppArmor'un güçlü yönlerini birleştiren yeni bir güvenlik çerçevesinin geliştirilmesi gerekebilir
- Konteyner güvenliği cloud-native çağında son derece önemli bir konu olduğundan, tüm dağıtımlar bu alana daha fazla çaba ayırmalıdır
2 yorum
AppArmor'un SELinux'tan daha az katı olduğu doğru ama
buna güvenliğin zayıf olduğunu söylemek zor.
SELinux o kadar katı ki, sunucu kurulumu yapınca çoğu zaman neredeyse herkes SELinux'u kapatıyor.
Ayrıca masaüstünde güvenlik, SELinux'un ana odak noktası değildir.
UI veya kullanıcı deneyimi açısından gerekli kısıtlamalar ve uygun kimlik doğrulama isteme süreçleri gerekir; bu da SELinux'taki kaynak yalıtımıyla ilgili konudan farklıdır.
Bu yüzden masaüstü güvenliği, ister Red Hat tabanlı ister Debian tabanlı olsun, tamamen freedesktop'ta standartlaştırılan polkit (PolicyKit) temelli çalışır.
Hacker News görüşleri